Repository: misskey-dev/misskey-hub-next Branch: master Commit: 66d3b68df50d Files: 2349 Total size: 6.3 MB Directory structure: gitextract_z999s_ga/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── 01_visitor-bug-report-ja.yml │ │ ├── 02_visitor-bug-report-en.yml │ │ ├── 03_developer-bug-report.yml │ │ ├── 04_feature-request.yml │ │ └── config.yml │ └── workflows/ │ ├── deploy.yml │ └── on-misskey-release.yml ├── .gitignore ├── .npmrc ├── .nuxtignore ├── LICENSE ├── README.md ├── app/ │ ├── router.options.ts │ └── spa-loading-template-base.html ├── app.config.ts ├── app.vue ├── assets/ │ ├── css/ │ │ ├── bootstrap-forms.scss │ │ ├── global.css │ │ ├── mfm.scss │ │ └── nprogress.css │ ├── data/ │ │ ├── features.ts │ │ ├── forks.ts │ │ ├── locales.ts │ │ ├── nav.ts │ │ ├── old-hub-redirects.ts │ │ ├── team-members.ts │ │ └── toolsNav.ts │ └── js/ │ ├── mi/ │ │ ├── aid.ts │ │ ├── aidx.ts │ │ ├── clone.ts │ │ ├── collapsed.ts │ │ ├── gen-identicon.ts │ │ ├── io-emojis.ts │ │ ├── io-media-proxy.ts │ │ └── io-meta.ts │ ├── misc/ │ │ ├── get-issue-url.ts │ │ ├── index.ts │ │ └── uwu.ts │ ├── scroll-to/ │ │ └── index.ts │ ├── vFadeIn.ts │ └── vTextUnderline.ts ├── components/ │ ├── about-us/ │ │ └── TeamMember.vue │ ├── brand-assets/ │ │ └── ImgPreview.vue │ ├── charts/ │ │ └── CircGraph.vue │ ├── content/ │ │ ├── AiModeB.vue │ │ ├── ApiPermissions.vue │ │ ├── Badge.vue │ │ ├── Danger.vue │ │ ├── Fukidashi.vue │ │ ├── GDetails.vue │ │ ├── MfmPreview.vue │ │ ├── MiWebEmbed.vue │ │ ├── MkIndex.vue │ │ ├── ProseA.vue │ │ ├── ProseImg.vue │ │ ├── ProseTable.vue │ │ ├── Tip.vue │ │ ├── Warning.vue │ │ ├── X__Blog__2023-12-19-mac202319__Figure1.vue │ │ ├── X__Docs__mi-card__Calculator.vue │ │ └── X__Docs__mi-card__InteractiveView.vue │ ├── docs/ │ │ ├── AsideNav.vue │ │ ├── PrevNext.vue │ │ ├── ReadersNav.vue │ │ ├── SteppedGuide.vue │ │ └── TocLinks.vue │ ├── g/ │ │ ├── AiChan.vue │ │ ├── BsCopyButton.vue │ │ ├── Button.vue │ │ ├── Dots.vue │ │ ├── Footer.vue │ │ ├── Hero.vue │ │ ├── LargeLinks.vue │ │ ├── Links.vue │ │ ├── LocalNav.vue │ │ ├── Marquee.vue │ │ ├── MisskeyGateway.vue │ │ ├── Nav.vue │ │ ├── NoScript.server.vue │ │ ├── NuxtLink.vue │ │ └── SocialShare.vue │ ├── index/ │ │ ├── GetStarted.vue │ │ ├── Sponsors.vue │ │ ├── desktop.vue │ │ ├── hero/ │ │ │ ├── Bg.vue │ │ │ ├── Mi3d.vue │ │ │ ├── NodesAnim.vue │ │ │ ├── Particles.vue │ │ │ ├── calc.ts │ │ │ ├── ease.ts │ │ │ └── particles-worker.ts │ │ └── mobile.vue │ ├── misc/ │ │ └── AiSign.vue │ ├── mk/ │ │ ├── AnimBg.vue │ │ ├── CustomEmoji.vue │ │ ├── Google.vue │ │ ├── Loading.vue │ │ ├── Mention.vue │ │ ├── Mfm.ts │ │ ├── Sparkle.vue │ │ └── Time.vue │ ├── servers/ │ │ ├── Finder.vue │ │ ├── Item.vue │ │ └── StatsViewer.vue │ └── tools/ │ ├── AsideNavSection.vue │ └── mocks/ │ ├── MkNote.vue │ └── MkProf.vue ├── composables/ │ ├── useGAsyncData.ts │ ├── useGLocalPath.ts │ ├── useGSwitchLocalePath.ts │ └── useScrollSpy.ts ├── content/ │ ├── .README.md │ ├── blog/ │ │ ├── 2021-09-11-hello-to-misskey-hub.md │ │ ├── 2021-11-05-mac2021.md │ │ ├── 2021-12-01-inside-misskey-hub.md │ │ ├── 2022-02-11-inside-mfm.md │ │ ├── 2022-11-28-media-k-tai.md │ │ ├── 2023-02-08-contribute-to-earn.md │ │ ├── 2023-02-13-gihyo.md │ │ ├── 2023-02-13-media-k-tai.md │ │ ├── 2023-03-04-media-itmedia.md │ │ ├── 2023-03-22-gihyo.md │ │ ├── 2023-04-08-media-nikkei-linux.md │ │ ├── 2023-05-15-gihyo.md │ │ ├── 2023-06-14-gihyo.md │ │ ├── 2023-07-01-interview.md │ │ ├── 2023-07-10-interview.md │ │ ├── 2023-07-12-trademark.md │ │ ├── 2023-07-14-skeb.md │ │ ├── 2023-07-14-xserver.md │ │ ├── 2023-07-16-media-nikkei.md │ │ ├── 2023-07-18-shindanmaker.md │ │ ├── 2023-07-19-gihyo.md │ │ ├── 2023-08-08-misskeyhq.md │ │ ├── 2023-08-30-conoha.md │ │ ├── 2023-09-04-media-nlab.md │ │ ├── 2023-09-07-hatenablog.md │ │ ├── 2023-09-09-interview.md │ │ ├── 2023-09-11-gihyo.md │ │ ├── 2023-09-12-sakuravps.md │ │ ├── 2023-09-24-release.md │ │ ├── 2023-10-10-release.md │ │ ├── 2023-10-24-gihyo.md │ │ ├── 2023-10-27-xserver.md │ │ ├── 2023-11-05-mac2023.md │ │ ├── 2023-11-05-release.md │ │ ├── 2023-11-14-gihyo.md │ │ ├── 2023-11-17-release.md │ │ ├── 2023-12-01-2023recap.md │ │ ├── 2023-12-03-inside-misskey-hub-next.md │ │ ├── 2023-12-12-gihyo.md │ │ ├── 2023-12-19-mac202319.md │ │ ├── 2023-12-23-release.md │ │ ├── 2024-02-16-gihyo.md │ │ ├── 2024-02-17-release.md │ │ ├── 2024-02-27-wp-cocoon-share.md │ │ ├── 2024-03-01-release.md │ │ ├── 2024-03-26-gihyo.md │ │ ├── 2024-04-11-gihyo.md │ │ ├── 2024-05-31-release.md │ │ ├── 2024-06-04-pepabo.md │ │ ├── 2024-06-11-historical-materials.md │ │ ├── 2024-06-11-mi-card.md │ │ ├── 2024-06-17-gihyo.md │ │ ├── 2024-07-19-gihyo.md │ │ ├── 2024-07-31-release.md │ │ ├── 2024-08-18-release.md │ │ ├── 2024-08-19-gihyo.md │ │ ├── 2024-09-20-gihyo.md │ │ ├── 2024-09-29-release.md │ │ ├── 2024-10-09-release.md │ │ ├── 2024-10-15-release.md │ │ ├── 2024-10-28-10kstars.md │ │ ├── 2024-11-10-mac2024.md │ │ ├── 2024-11-13-gihyo.md │ │ ├── 2024-11-22-release.md │ │ ├── 2024-12-20-gihyo.md │ │ ├── 2024-12-31-2024recap.md │ │ ├── 2025-01-28-release.md │ │ ├── 2025-02-05-release.md │ │ ├── 2025-02-27-release.md │ │ ├── 2025-03-06-release.md │ │ ├── 2025-03-09-release.md │ │ ├── 2025-03-17-xfolio.md │ │ ├── 2025-04-09-release.md │ │ ├── 2025-04-22-gihyo.md │ │ ├── 2025-04-30-release.md │ │ ├── 2025-05-07-release.md │ │ ├── 2025-05-31-release.md │ │ ├── 2025-06-02-release.md │ │ ├── 2025-06-16-release.md │ │ ├── 2025-07-18-release.md │ │ ├── 2025-08-31-release.md │ │ ├── 2025-09-08-release.md │ │ ├── 2025-10-06-gihyo.md │ │ ├── 2025-10-08-release.md │ │ ├── 2025-10-24-release.md │ │ ├── 2025-10-27-release.md │ │ ├── 2025-11-01-mac2025.md │ │ ├── 2025-11-16-release.md │ │ ├── 2025-11-28-release.md │ │ ├── 2025-12-02-announce.md │ │ ├── 2025-12-06-release.md │ │ ├── 2025-12-14-release.md │ │ ├── 2025-12-15-gihyo.md │ │ ├── 2025-12-20-2025recap.md │ │ ├── 2025-12-22-release.md │ │ ├── 2026-01-26-gihyo.md │ │ ├── 2026-03-05-release.md │ │ ├── 2026-03-09-release.md │ │ ├── 2026-03-10-gihyo.md │ │ ├── 2026-03-31-release.md │ │ ├── 2026-05-02-release.md │ │ └── 2026-05-06-release.md │ ├── ca/ │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── index.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── cn/ │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── de/ │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── en/ │ │ ├── .docs-legacy/ │ │ │ ├── admin/ │ │ │ │ ├── cdn.md │ │ │ │ ├── default-reaction.md │ │ │ │ ├── emoji.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ └── troubleshooting.md │ │ │ ├── api/ │ │ │ │ ├── app.md │ │ │ │ ├── common.json5 │ │ │ │ ├── index.md │ │ │ │ └── streaming/ │ │ │ │ ├── channel/ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ └── main.md │ │ │ │ ├── index.md │ │ │ │ └── note-capture-events.md │ │ │ ├── donate.md │ │ │ ├── faq.md │ │ │ ├── features/ │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── drive.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── index.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── reaction.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── getting-started.md │ │ │ ├── glossary.md │ │ │ ├── install/ │ │ │ │ ├── bash.md │ │ │ │ ├── docker.md │ │ │ │ ├── kubernetes.md │ │ │ │ └── manual.md │ │ │ ├── install.md │ │ │ ├── misskey-hub.md │ │ │ ├── misskey.md │ │ │ ├── releases.md │ │ │ ├── tips/ │ │ │ │ └── disable-timelines.md │ │ │ └── troubleshooting.md │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── es/ │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── fr/ │ │ ├── .docs-legacy/ │ │ │ ├── admin/ │ │ │ │ ├── cdn.md │ │ │ │ ├── default-reaction.md │ │ │ │ ├── emoji.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ └── troubleshooting.md │ │ │ ├── api/ │ │ │ │ ├── app.md │ │ │ │ ├── common.json5 │ │ │ │ ├── index.md │ │ │ │ └── streaming/ │ │ │ │ ├── channel/ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ └── main.md │ │ │ │ ├── index.md │ │ │ │ └── note-capture-events.md │ │ │ ├── donate.md │ │ │ ├── faq.md │ │ │ ├── features/ │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── drive.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── index.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── reaction.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── getting-started.md │ │ │ ├── glossary.md │ │ │ ├── install/ │ │ │ │ ├── bash.md │ │ │ │ ├── docker.md │ │ │ │ ├── kubernetes.md │ │ │ │ └── manual.md │ │ │ ├── install.md │ │ │ ├── misskey-hub.md │ │ │ ├── misskey.md │ │ │ ├── releases.md │ │ │ ├── tips/ │ │ │ │ └── disable-timelines.md │ │ │ └── troubleshooting.md │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── id/ │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── it/ │ │ ├── .docs-legacy/ │ │ │ ├── admin/ │ │ │ │ ├── cdn.md │ │ │ │ ├── default-reaction.md │ │ │ │ ├── emoji.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ └── troubleshooting.md │ │ │ ├── api/ │ │ │ │ ├── app.md │ │ │ │ ├── common.json5 │ │ │ │ ├── index.md │ │ │ │ └── streaming/ │ │ │ │ ├── channel/ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ └── main.md │ │ │ │ ├── index.md │ │ │ │ └── note-capture-events.md │ │ │ ├── faq.md │ │ │ ├── features/ │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── drive.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── index.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── reaction.md │ │ │ │ ├── share-form.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── getting-started.md │ │ │ ├── glossary.md │ │ │ ├── install/ │ │ │ │ ├── docker.md │ │ │ │ ├── manual.md │ │ │ │ └── ubuntu-manual.md │ │ │ ├── install.md │ │ │ ├── misskey-hub.md │ │ │ ├── misskey.md │ │ │ ├── releases.md │ │ │ ├── tips/ │ │ │ │ └── disable-timelines.md │ │ │ └── troubleshooting.md │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── ja/ │ │ ├── .docs-legacy/ │ │ │ └── api/ │ │ │ ├── common.json5 │ │ │ ├── endpoints/ │ │ │ │ ├── admin/ │ │ │ │ │ ├── abuse-user-reports.json5 │ │ │ │ │ ├── accounts/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ └── delete.json5 │ │ │ │ │ ├── ad/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── list.json5 │ │ │ │ │ │ └── update.json5 │ │ │ │ │ ├── announcements/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── list.json5 │ │ │ │ │ │ └── update.json5 │ │ │ │ │ ├── delete-account.json5 │ │ │ │ │ ├── delete-all-files-of-a-user.json5 │ │ │ │ │ ├── drive/ │ │ │ │ │ │ ├── clean-remote-files.json5 │ │ │ │ │ │ ├── cleanup.json5 │ │ │ │ │ │ ├── files.json5 │ │ │ │ │ │ └── show-file.json5 │ │ │ │ │ ├── drive-capacity-override.json5 │ │ │ │ │ ├── emoji/ │ │ │ │ │ │ ├── add-aliases-bulk.json5 │ │ │ │ │ │ ├── add.json5 │ │ │ │ │ │ ├── copy.json5 │ │ │ │ │ │ ├── delete-bulk.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── list-remote.json5 │ │ │ │ │ │ ├── list.json5 │ │ │ │ │ │ ├── remove-aliases-bulk.json5 │ │ │ │ │ │ ├── set-aliases-bulk.json5 │ │ │ │ │ │ ├── set-category-bulk.json5 │ │ │ │ │ │ └── update.json5 │ │ │ │ │ ├── federation/ │ │ │ │ │ │ ├── delete-all-files.json5 │ │ │ │ │ │ ├── refresh-remote-instance-metadata.json5 │ │ │ │ │ │ ├── remove-all-following.json5 │ │ │ │ │ │ └── update-instance.json5 │ │ │ │ │ ├── get-index-stats.json5 │ │ │ │ │ ├── get-table-stats.json5 │ │ │ │ │ ├── get-user-ips.json5 │ │ │ │ │ ├── invite.json5 │ │ │ │ │ ├── meta.json5 │ │ │ │ │ ├── moderators/ │ │ │ │ │ │ ├── add.json5 │ │ │ │ │ │ └── remove.json5 │ │ │ │ │ ├── promo/ │ │ │ │ │ │ └── create.json5 │ │ │ │ │ ├── queue/ │ │ │ │ │ │ ├── clear.json5 │ │ │ │ │ │ ├── deliver-delayed.json5 │ │ │ │ │ │ ├── inbox-delayed.json5 │ │ │ │ │ │ └── stats.json5 │ │ │ │ │ ├── relays/ │ │ │ │ │ │ ├── add.json5 │ │ │ │ │ │ ├── list.json5 │ │ │ │ │ │ └── remove.json5 │ │ │ │ │ ├── reset-password.json5 │ │ │ │ │ ├── resolve-abuse-user-report.json5 │ │ │ │ │ ├── send-email.json5 │ │ │ │ │ ├── server-info.json5 │ │ │ │ │ ├── show-moderation-logs.json5 │ │ │ │ │ ├── show-user.json5 │ │ │ │ │ ├── show-users.json5 │ │ │ │ │ ├── silence-user.json5 │ │ │ │ │ ├── suspend-user.json5 │ │ │ │ │ ├── unsilence-user.json5 │ │ │ │ │ ├── unsuspend-user.json5 │ │ │ │ │ ├── update-meta.json5 │ │ │ │ │ ├── update-user-note.json5 │ │ │ │ │ └── vacuum.json5 │ │ │ │ ├── announcements.json5 │ │ │ │ ├── antennas/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ ├── list.json5 │ │ │ │ │ ├── notes.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ └── update.json5 │ │ │ │ ├── ap/ │ │ │ │ │ ├── get.json5 │ │ │ │ │ └── show.json5 │ │ │ │ ├── app/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ └── show.json5 │ │ │ │ ├── auth/ │ │ │ │ │ └── session/ │ │ │ │ │ ├── generate.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ └── userkey.json5 │ │ │ │ ├── blocking/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ └── list.json5 │ │ │ │ ├── channels/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── featured.json5 │ │ │ │ │ ├── follow.json5 │ │ │ │ │ ├── followed.json5 │ │ │ │ │ ├── owned.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ ├── timeline.json5 │ │ │ │ │ ├── unfollow.json5 │ │ │ │ │ └── update.json5 │ │ │ │ ├── charts/ │ │ │ │ │ ├── active-users.json5 │ │ │ │ │ ├── ap-request.json5 │ │ │ │ │ ├── drive.json5 │ │ │ │ │ ├── federation.json5 │ │ │ │ │ ├── hashtag.json5 │ │ │ │ │ ├── instance.json5 │ │ │ │ │ ├── notes.json5 │ │ │ │ │ ├── user/ │ │ │ │ │ │ ├── drive.json5 │ │ │ │ │ │ ├── following.json5 │ │ │ │ │ │ ├── notes.json5 │ │ │ │ │ │ └── reactions.json5 │ │ │ │ │ └── users.json5 │ │ │ │ ├── clips/ │ │ │ │ │ ├── add-note.json5 │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ ├── list.json5 │ │ │ │ │ ├── notes.json5 │ │ │ │ │ ├── remove-note.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ └── update.json5 │ │ │ │ ├── drive/ │ │ │ │ │ ├── files/ │ │ │ │ │ │ ├── attached-notes.json5 │ │ │ │ │ │ ├── check-existence.json5 │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── find-by-hash.json5 │ │ │ │ │ │ ├── find.json5 │ │ │ │ │ │ ├── show.json5 │ │ │ │ │ │ ├── update.json5 │ │ │ │ │ │ └── upload-from-url.json5 │ │ │ │ │ ├── files.json5 │ │ │ │ │ ├── folders/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── find.json5 │ │ │ │ │ │ ├── show.json5 │ │ │ │ │ │ └── update.json5 │ │ │ │ │ ├── folders.json5 │ │ │ │ │ └── stream.json5 │ │ │ │ ├── drive.json5 │ │ │ │ ├── email-address/ │ │ │ │ │ └── available.json5 │ │ │ │ ├── endpoint.json5 │ │ │ │ ├── endpoints.json5 │ │ │ │ ├── federation/ │ │ │ │ │ ├── followers.json5 │ │ │ │ │ ├── following.json5 │ │ │ │ │ ├── instances.json5 │ │ │ │ │ ├── show-instance.json5 │ │ │ │ │ ├── stats.json5 │ │ │ │ │ ├── update-remote-user.json5 │ │ │ │ │ └── users.json5 │ │ │ │ ├── fetch-rss.json5 │ │ │ │ ├── following/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ ├── invalidate.json5 │ │ │ │ │ └── requests/ │ │ │ │ │ ├── accept.json5 │ │ │ │ │ ├── cancel.json5 │ │ │ │ │ ├── list.json5 │ │ │ │ │ └── reject.json5 │ │ │ │ ├── gallery/ │ │ │ │ │ ├── featured.json5 │ │ │ │ │ ├── popular.json5 │ │ │ │ │ ├── posts/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── like.json5 │ │ │ │ │ │ ├── show.json5 │ │ │ │ │ │ ├── unlike.json5 │ │ │ │ │ │ └── update.json5 │ │ │ │ │ └── posts.json5 │ │ │ │ ├── get-online-users-count.json5 │ │ │ │ ├── hashtags/ │ │ │ │ │ ├── list.json5 │ │ │ │ │ ├── search.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ ├── trend.json5 │ │ │ │ │ └── users.json5 │ │ │ │ ├── i/ │ │ │ │ │ ├── favorites.json5 │ │ │ │ │ ├── gallery/ │ │ │ │ │ │ ├── likes.json5 │ │ │ │ │ │ └── posts.json5 │ │ │ │ │ ├── get-word-muted-notes-count.json5 │ │ │ │ │ ├── notifications.json5 │ │ │ │ │ ├── page-likes.json5 │ │ │ │ │ ├── pages.json5 │ │ │ │ │ ├── pin.json5 │ │ │ │ │ ├── read-all-messaging-messages.json5 │ │ │ │ │ ├── read-all-unread-notes.json5 │ │ │ │ │ ├── read-announcement.json5 │ │ │ │ │ ├── unpin.json5 │ │ │ │ │ ├── update.json5 │ │ │ │ │ └── webhooks/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ ├── list.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ └── update.json5 │ │ │ │ ├── i.json5 │ │ │ │ ├── messaging/ │ │ │ │ │ ├── history.json5 │ │ │ │ │ ├── messages/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ └── read.json5 │ │ │ │ │ └── messages.json5 │ │ │ │ ├── meta.json5 │ │ │ │ ├── mute/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ └── list.json5 │ │ │ │ ├── my/ │ │ │ │ │ └── apps.json5 │ │ │ │ ├── notes/ │ │ │ │ │ ├── children.json5 │ │ │ │ │ ├── clips.json5 │ │ │ │ │ ├── conversation.json5 │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ ├── favorites/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ └── delete.json5 │ │ │ │ │ ├── featured.json5 │ │ │ │ │ ├── global-timeline.json5 │ │ │ │ │ ├── hybrid-timeline.json5 │ │ │ │ │ ├── local-timeline.json5 │ │ │ │ │ ├── mentions.json5 │ │ │ │ │ ├── polls/ │ │ │ │ │ │ ├── recommendation.json5 │ │ │ │ │ │ └── vote.json5 │ │ │ │ │ ├── reactions/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ └── delete.json5 │ │ │ │ │ ├── reactions.json5 │ │ │ │ │ ├── renotes.json5 │ │ │ │ │ ├── replies.json5 │ │ │ │ │ ├── search-by-tag.json5 │ │ │ │ │ ├── search.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ ├── state.json5 │ │ │ │ │ ├── thread-muting/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ └── delete.json5 │ │ │ │ │ ├── timeline.json5 │ │ │ │ │ ├── translate.json5 │ │ │ │ │ ├── unrenote.json5 │ │ │ │ │ ├── user-list-timeline.json5 │ │ │ │ │ └── watching/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ └── delete.json5 │ │ │ │ ├── notes.json5 │ │ │ │ ├── notifications/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── mark-all-as-read.json5 │ │ │ │ │ └── read.json5 │ │ │ │ ├── pages/ │ │ │ │ │ ├── create.json5 │ │ │ │ │ ├── delete.json5 │ │ │ │ │ ├── featured.json5 │ │ │ │ │ ├── like.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ ├── unlike.json5 │ │ │ │ │ └── update.json5 │ │ │ │ ├── ping.json5 │ │ │ │ ├── pinned-users.json5 │ │ │ │ ├── promo/ │ │ │ │ │ └── read.json5 │ │ │ │ ├── request-reset-password.json5 │ │ │ │ ├── reset-db.json5 │ │ │ │ ├── reset-password.json5 │ │ │ │ ├── server-info.json5 │ │ │ │ ├── stats.json5 │ │ │ │ ├── sw/ │ │ │ │ │ ├── register.json5 │ │ │ │ │ └── unregister.json5 │ │ │ │ ├── test.json5 │ │ │ │ ├── username/ │ │ │ │ │ └── available.json5 │ │ │ │ ├── users/ │ │ │ │ │ ├── clips.json5 │ │ │ │ │ ├── followers.json5 │ │ │ │ │ ├── following.json5 │ │ │ │ │ ├── gallery/ │ │ │ │ │ │ └── posts.json5 │ │ │ │ │ ├── get-frequently-replied-users.json5 │ │ │ │ │ ├── lists/ │ │ │ │ │ │ ├── create.json5 │ │ │ │ │ │ ├── delete.json5 │ │ │ │ │ │ ├── list.json5 │ │ │ │ │ │ ├── pull.json5 │ │ │ │ │ │ ├── push.json5 │ │ │ │ │ │ ├── show.json5 │ │ │ │ │ │ └── update.json5 │ │ │ │ │ ├── notes.json5 │ │ │ │ │ ├── pages.json5 │ │ │ │ │ ├── reactions.json5 │ │ │ │ │ ├── recommendation.json5 │ │ │ │ │ ├── relation.json5 │ │ │ │ │ ├── report-abuse.json5 │ │ │ │ │ ├── search-by-username-and-host.json5 │ │ │ │ │ ├── search.json5 │ │ │ │ │ ├── show.json5 │ │ │ │ │ └── stats.json5 │ │ │ │ └── users.json5 │ │ │ └── index.md │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── ko/ │ │ ├── .docs-legacy/ │ │ │ ├── admin/ │ │ │ │ ├── cdn.md │ │ │ │ ├── default-reaction.md │ │ │ │ ├── emoji.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ └── troubleshooting.md │ │ │ ├── advanced/ │ │ │ │ ├── aiscript.md │ │ │ │ ├── create-plugin.md │ │ │ │ ├── develop-bot.md │ │ │ │ └── plugin-api-reference.md │ │ │ ├── api/ │ │ │ │ ├── app.md │ │ │ │ ├── common.json5 │ │ │ │ ├── index.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ └── streaming/ │ │ │ │ ├── channel/ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ └── main.md │ │ │ │ ├── index.md │ │ │ │ └── note-capture-events.md │ │ │ ├── apps.md │ │ │ ├── donate.md │ │ │ ├── faq.md │ │ │ ├── features/ │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── drive.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── index.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── play.md │ │ │ │ ├── plugin.md │ │ │ │ ├── reaction.md │ │ │ │ ├── roles.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── getting-started.md │ │ │ ├── glossary.md │ │ │ ├── install/ │ │ │ │ ├── bash-v140.md │ │ │ │ ├── bash-v165.md │ │ │ │ ├── bash.md │ │ │ │ ├── docker.md │ │ │ │ ├── kubernetes.md │ │ │ │ ├── manual.md │ │ │ │ └── ubuntu-manual.md │ │ │ ├── install.md │ │ │ ├── misskey-hub.md │ │ │ ├── misskey.md │ │ │ ├── releases.md │ │ │ ├── tips/ │ │ │ │ └── disable-timelines.md │ │ │ └── troubleshooting.md │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── ns.md │ ├── pl/ │ │ ├── .docs-legacy/ │ │ │ ├── admin/ │ │ │ │ ├── cdn.md │ │ │ │ ├── default-reaction.md │ │ │ │ ├── emoji.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ └── troubleshooting.md │ │ │ ├── api/ │ │ │ │ ├── app.md │ │ │ │ ├── common.json5 │ │ │ │ ├── index.md │ │ │ │ └── streaming/ │ │ │ │ ├── channel/ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ ├── index.md │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ └── main.md │ │ │ │ ├── index.md │ │ │ │ └── note-capture-events.md │ │ │ ├── donate.md │ │ │ ├── faq.md │ │ │ ├── features/ │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── drive.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── index.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── reaction.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── getting-started.md │ │ │ ├── glossary.md │ │ │ ├── install/ │ │ │ │ ├── bash.md │ │ │ │ ├── docker.md │ │ │ │ ├── kubernetes.md │ │ │ │ └── manual.md │ │ │ ├── install.md │ │ │ ├── misskey-hub.md │ │ │ ├── misskey.md │ │ │ ├── releases.md │ │ │ ├── tips/ │ │ │ │ └── disable-timelines.md │ │ │ └── troubleshooting.md │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ ├── th/ │ │ ├── contact-faq/ │ │ │ ├── 0.cannot-create-account.md │ │ │ ├── 1.cannot-login-to-the-account.md │ │ │ ├── 2.delete-account.md │ │ │ ├── 3.server-wide-content-mod.md │ │ │ ├── 4.copyright-infringement.md │ │ │ ├── 5.client-not-working.md │ │ │ └── 6.mention-spam.md │ │ └── docs/ │ │ ├── 1.about-misskey.md │ │ ├── 2.for-users/ │ │ │ ├── 1.index.md │ │ │ ├── 2.onboarding/ │ │ │ │ ├── 0.index.md │ │ │ │ ├── 1.warning.md │ │ │ │ ├── 2.get-started.md │ │ │ │ ├── 3.join-server.md │ │ │ │ └── 4.things-to-know.md │ │ │ ├── 3.features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── ads.md │ │ │ │ ├── antenna.md │ │ │ │ ├── charts.md │ │ │ │ ├── clip.md │ │ │ │ ├── custom-emoji.md │ │ │ │ ├── deck.md │ │ │ │ ├── dev-mode.md │ │ │ │ ├── drive.md │ │ │ │ ├── embed.md │ │ │ │ ├── favorite.md │ │ │ │ ├── follow.md │ │ │ │ ├── hashtag.md │ │ │ │ ├── mention.md │ │ │ │ ├── mfm.md │ │ │ │ ├── mute-and-block.md │ │ │ │ ├── note.md │ │ │ │ ├── online-status.md │ │ │ │ ├── pages.md │ │ │ │ ├── plugin.md │ │ │ │ ├── poll.md │ │ │ │ ├── reaction.md │ │ │ │ ├── safemode.md │ │ │ │ ├── share-form.md │ │ │ │ ├── silence.md │ │ │ │ ├── theme.md │ │ │ │ ├── thread-mute.md │ │ │ │ ├── timeline.md │ │ │ │ ├── webhook.md │ │ │ │ ├── widgets.md │ │ │ │ └── word-mute.md │ │ │ ├── 4.resources/ │ │ │ │ ├── 1.troubleshooting.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── apps.md │ │ │ │ ├── faq.md │ │ │ │ ├── glossary.md │ │ │ │ ├── misskey-hub.md │ │ │ │ └── self-xss.md │ │ │ ├── 5.stepped-guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── _dir.yml │ │ │ │ ├── how-to-delete-account.yml │ │ │ │ ├── how-to-enable-2fa.yml │ │ │ │ └── how-to-use-pwa.yml │ │ │ └── _dir.yml │ │ ├── 3.for-admin/ │ │ │ ├── _dir.yml │ │ │ ├── features/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── abuse-report.md │ │ │ │ ├── announcement.md │ │ │ │ ├── cli.md │ │ │ │ ├── federation.md │ │ │ │ ├── ftt.md │ │ │ │ ├── managing-emojis.md │ │ │ │ ├── role.md │ │ │ │ └── search.md │ │ │ ├── install/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── guides/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── 2.service.md │ │ │ │ │ ├── bash.md │ │ │ │ │ ├── docker.md │ │ │ │ │ ├── kubernetes.md │ │ │ │ │ ├── manual.md │ │ │ │ │ └── ubuntu-manual.md │ │ │ │ └── resources/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── cdn.md │ │ │ │ ├── forking.md │ │ │ │ ├── nginx.md │ │ │ │ ├── push-docker-hub.md │ │ │ │ ├── scale-out.md │ │ │ │ └── troubleshooting.md │ │ │ └── moderation-tips/ │ │ │ ├── _dir.yml │ │ │ └── disable-timelines.md │ │ ├── 4.for-developers/ │ │ │ ├── _dir.yml │ │ │ ├── aiscript.md │ │ │ ├── api/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── endpoints.md │ │ │ │ ├── libraries.md │ │ │ │ ├── permission.md │ │ │ │ ├── streaming/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── channel/ │ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ │ └── main.md │ │ │ │ │ └── note-capture-events.md │ │ │ │ └── token/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.miauth.md │ │ │ │ ├── 3.oauth.md │ │ │ │ └── 50.app.md │ │ │ ├── bot/ │ │ │ │ └── 1.index.md │ │ │ ├── plugin/ │ │ │ │ ├── _dir.yml │ │ │ │ ├── create-play.md │ │ │ │ ├── create-plugin.md │ │ │ │ └── plugin-api-reference.md │ │ │ └── publish-on-your-website.md │ │ ├── 5.releases.md │ │ ├── 6.donate.md │ │ ├── 7.become-a-sponsor.md │ │ ├── 8.mi-card.md │ │ └── 9.misskey-and-misskey-servers.md │ └── tw/ │ ├── contact-faq/ │ │ ├── 0.cannot-create-account.md │ │ ├── 1.cannot-login-to-the-account.md │ │ ├── 2.delete-account.md │ │ ├── 3.server-wide-content-mod.md │ │ ├── 4.copyright-infringement.md │ │ ├── 5.client-not-working.md │ │ └── 6.mention-spam.md │ └── docs/ │ ├── 1.about-misskey.md │ ├── 2.for-users/ │ │ ├── 1.index.md │ │ ├── 2.onboarding/ │ │ │ ├── 0.index.md │ │ │ ├── 1.warning.md │ │ │ ├── 2.get-started.md │ │ │ ├── 3.join-server.md │ │ │ └── 4.things-to-know.md │ │ ├── 3.features/ │ │ │ ├── 1.index.md │ │ │ ├── ads.md │ │ │ ├── antenna.md │ │ │ ├── charts.md │ │ │ ├── clip.md │ │ │ ├── custom-emoji.md │ │ │ ├── deck.md │ │ │ ├── dev-mode.md │ │ │ ├── drive.md │ │ │ ├── embed.md │ │ │ ├── favorite.md │ │ │ ├── follow.md │ │ │ ├── hashtag.md │ │ │ ├── mention.md │ │ │ ├── mfm.md │ │ │ ├── mute-and-block.md │ │ │ ├── note.md │ │ │ ├── online-status.md │ │ │ ├── pages.md │ │ │ ├── plugin.md │ │ │ ├── poll.md │ │ │ ├── reaction.md │ │ │ ├── safemode.md │ │ │ ├── share-form.md │ │ │ ├── silence.md │ │ │ ├── theme.md │ │ │ ├── thread-mute.md │ │ │ ├── timeline.md │ │ │ ├── webhook.md │ │ │ ├── widgets.md │ │ │ └── word-mute.md │ │ ├── 4.resources/ │ │ │ ├── 1.troubleshooting.md │ │ │ ├── _dir.yml │ │ │ ├── apps.md │ │ │ ├── faq.md │ │ │ ├── glossary.md │ │ │ ├── misskey-hub.md │ │ │ └── self-xss.md │ │ ├── 5.stepped-guides/ │ │ │ ├── 1.index.md │ │ │ ├── _dir.yml │ │ │ ├── how-to-delete-account.yml │ │ │ ├── how-to-enable-2fa.yml │ │ │ └── how-to-use-pwa.yml │ │ └── _dir.yml │ ├── 3.for-admin/ │ │ ├── _dir.yml │ │ ├── features/ │ │ │ ├── 1.index.md │ │ │ ├── abuse-report.md │ │ │ ├── announcement.md │ │ │ ├── cli.md │ │ │ ├── federation.md │ │ │ ├── ftt.md │ │ │ ├── managing-emojis.md │ │ │ ├── role.md │ │ │ └── search.md │ │ ├── install/ │ │ │ ├── _dir.yml │ │ │ ├── guides/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── 2.service.md │ │ │ │ ├── bash.md │ │ │ │ ├── docker.md │ │ │ │ ├── kubernetes.md │ │ │ │ ├── manual.md │ │ │ │ └── ubuntu-manual.md │ │ │ └── resources/ │ │ │ ├── _dir.yml │ │ │ ├── cdn.md │ │ │ ├── forking.md │ │ │ ├── nginx.md │ │ │ ├── push-docker-hub.md │ │ │ ├── scale-out.md │ │ │ └── troubleshooting.md │ │ └── moderation-tips/ │ │ ├── _dir.yml │ │ └── disable-timelines.md │ ├── 4.for-developers/ │ │ ├── _dir.yml │ │ ├── aiscript.md │ │ ├── api/ │ │ │ ├── 1.index.md │ │ │ ├── endpoints.md │ │ │ ├── libraries.md │ │ │ ├── permission.md │ │ │ ├── streaming/ │ │ │ │ ├── 1.index.md │ │ │ │ ├── channel/ │ │ │ │ │ ├── 1.index.md │ │ │ │ │ ├── global-timeline.md │ │ │ │ │ ├── home-timeline.md │ │ │ │ │ ├── hybrid-timeline.md │ │ │ │ │ ├── local-timeline.md │ │ │ │ │ └── main.md │ │ │ │ └── note-capture-events.md │ │ │ └── token/ │ │ │ ├── 1.index.md │ │ │ ├── 2.miauth.md │ │ │ ├── 3.oauth.md │ │ │ └── 50.app.md │ │ ├── bot/ │ │ │ └── 1.index.md │ │ ├── plugin/ │ │ │ ├── _dir.yml │ │ │ ├── create-play.md │ │ │ ├── create-plugin.md │ │ │ └── plugin-api-reference.md │ │ └── publish-on-your-website.md │ ├── 5.releases.md │ ├── 6.donate.md │ ├── 7.become-a-sponsor.md │ ├── 8.mi-card.md │ └── 9.misskey-and-misskey-servers.md ├── crowdin.yml ├── error.vue ├── i18n/ │ └── i18n.config.ts ├── layouts/ │ ├── blank.vue │ ├── default.vue │ ├── docs.vue │ ├── landing.vue │ ├── slim.vue │ └── tools.vue ├── locales/ │ ├── README.md │ ├── ca-ES.yml │ ├── de-DE.yml │ ├── en-US.yml │ ├── es-ES.yml │ ├── fr-FR.yml │ ├── id-ID.yml │ ├── it-IT.yml │ ├── ja-JP.yml │ ├── ja-KS.yml │ ├── ko-KR.yml │ ├── pl-PL.yml │ ├── th-TH.yml │ ├── zh-CN.yml │ └── zh-TW.yml ├── mdc.config.ts ├── nuxt.config.ts ├── package.json ├── pages/ │ ├── about-us/ │ │ ├── history.vue │ │ ├── index.vue │ │ └── team.vue │ ├── blog/ │ │ ├── [slug].vue │ │ └── index.vue │ ├── brand-assets.vue │ ├── contact.vue │ ├── docs/ │ │ ├── [...slug].vue │ │ └── index.vue │ ├── index.vue │ ├── learn-more.vue │ ├── mi-web.client.vue │ ├── ns.vue │ ├── servers/ │ │ ├── index.vue │ │ └── stats.vue │ ├── share.client.vue │ ├── test.vue │ └── tools/ │ ├── aid-converter.vue │ ├── avatar-decoration-preview.vue │ ├── custom-emoji-preview.vue │ ├── hub-servers-preview.vue │ ├── identicon-generator.vue │ ├── index.vue │ ├── mfm-playground.vue │ ├── share-link-generator.vue │ └── tools-template-ignore.vue ├── public/ │ ├── _headers │ ├── _redirects_template │ ├── fonts/ │ │ ├── GenJyuuGothicX-Bold/ │ │ │ └── GenJyuuGothicX-Bold.css │ │ ├── GenJyuuGothicX-P-Bold/ │ │ │ └── GenJyuuGothicX-P-Bold.css │ │ ├── GenJyuuGothicX-P-Regular/ │ │ │ └── GenJyuuGothicX-P-Regular.css │ │ ├── GenJyuuGothicX-Regular/ │ │ │ └── GenJyuuGothicX-Regular.css │ │ ├── LICENSE │ │ └── fonts.css │ ├── gltf/ │ │ ├── mi.glb │ │ └── micard.glb │ ├── hdr/ │ │ └── micard.hdr │ ├── header-mask.afdesign │ ├── img/ │ │ ├── docs/ │ │ │ └── fukidashi/ │ │ │ └── README.md │ │ ├── sponsors/ │ │ │ └── LICENSE │ │ └── uwu/ │ │ └── LICENSE │ └── section-mask.afdesign ├── scripts/ │ ├── changelog-auto-updater/ │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── fetch-crowdin.ts │ ├── gen-locales.ts │ ├── gen-old-hub-redirects.ts │ ├── gen-spa-loading-template.ts │ ├── get-old-hub-redirects.ts │ ├── get-static-endpoints.ts │ ├── markdown-fixer/ │ │ ├── index.js │ │ └── package.json │ └── vercel-branch-deploy-config.sh ├── server/ │ ├── plugins/ │ │ ├── appendComment.ts │ │ └── i18nRedirector.ts │ └── tsconfig.json ├── tsconfig.json ├── types/ │ ├── content.ts │ ├── instances-info.ts │ ├── misc.d.ts │ ├── others.ts │ └── router.d.ts ├── uno.config.ts └── vercel.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] indent_style = tab indent_size = 2 charset = utf-8 insert_final_newline = true end_of_line = lf [*.yml] indent_style = space ================================================ FILE: .gitattributes ================================================ public/fonts/** linguist-documentation ================================================ FILE: .github/ISSUE_TEMPLATE/01_visitor-bug-report-ja.yml ================================================ name: 🐛 【閲覧者】バグ報告 (Japanese) description: サイトの誤作動があった場合はこちらにご報告ください。 labels: ["bug?", "maybe non-developer"] body: - type: markdown attributes: value: | ご報告ありがとうございます!実際に問題を報告する前に、以下をお試しください: - **ブラウザのキャッシュ・Cookieを削除**してみましたか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? また、以下のことにもご注意ください。 - **このフォームはバグ報告専用です。** 機能リクエストは[こちら](https://github.com/misskey-dev/misskey-hub-next/issues/new?assignees=&labels=feature&projects=&template=04_feature-request.yml)からお願いします。 以上のことを試してもまだ問題が解決しない場合は、以下に症状をできるだけ詳しく記入してください。**貴重なお時間を使ってご報告いただきありがとうございます!** - type: textarea attributes: label: 💡 概要 description: どのような問題が起こっているかを簡潔にお書きください。 validations: required: true - type: textarea attributes: label: 🥰 期待されるふるまい description: 本当はどういうことがしたかったのかをお書きください。 validations: required: true - type: textarea attributes: label: 🤬 実際のふるまい description: | 実際には何が起きたのかをお書きください。 可能であれば、スクリーンショットやエラーログなども添付いただけますと幸いです。 validations: required: true - type: textarea attributes: label: 📝 再現方法 description: その問題が起こるまでにどのような操作をしたかを、手順別に詳細にお書きください。 placeholder: | 1. 2. 3. validations: required: false - id: environment type: textarea attributes: label: 💻 動作環境 description: | この問題が起きた環境をお教えください(既に埋まっている場合は記入不要です)。 例: * Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4 * Browser: Chrome 113.0.5672.126 value: | * Model and OS of the device(s): * Browser: render: markdown validations: required: false - type: checkboxes attributes: label: 【開発者向け】自分でこのバグに対処しますか? description: これが何かわからない場合は、チェックボックスを開けたままにして、そのままフォームを送信してください。 options: - label: はい、私はこのバグに自分で対処して、このリポジトリにPull Requestを送信する予定です。 ================================================ FILE: .github/ISSUE_TEMPLATE/02_visitor-bug-report-en.yml ================================================ name: 🐛 [For visitors] Bug Report (English) description: If you encounter any malfunction on the site, please report it here. labels: ["bug?", "maybe non-developer"] body: - type: markdown attributes: value: | Thank you for your report! Before reporting an issue, please try the following: - Have you tried **clearing your browser cache and cookies**? - Have you **waited for some time and tried accessing again**? - Have you confirmed that the **URL is correct**? Please also note the following: - **This form is for bug reports only**. For feature requests, please [click here](https://github.com/misskey-dev/misskey-hub-next/issues/new?assignees=&labels=feature&projects=&template=04_feature-request.yml). If the issue persists after trying the above, please provide details of the symptoms below. **Thank you for taking the time to report the issue!** - type: textarea attributes: label: 💡 Summary description: Please briefly describe the issue. validations: required: true - type: textarea attributes: label: 🥰 Expected Behavior description: Please describe what you expected to happen. validations: required: true - type: textarea attributes: label: 🤬 Actual Behavior description: | Please describe what actually happened. If possible, attaching screenshots or error logs would be appreciated. validations: required: true - type: textarea attributes: label: 📝 Steps to Reproduce description: Please provide detailed steps on how to reproduce the issue. placeholder: | 1. 2. 3. validations: required: false - id: environment type: textarea attributes: label: 💻 Environment description: | Please provide information about the environment where the issue occurred (fill in if not already provided). Example: * Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4 * Browser: Chrome 113.0.5672.126 value: | * Model and OS of the device(s): * Browser: render: markdown validations: required: false - type: checkboxes attributes: label: (For developer) Do you want to address this bug yourself? description: If you do not know what this is, please leave the checkbox open and submit the form as is. options: - label: Yes, I will patch the bug myself and send a pull request ================================================ FILE: .github/ISSUE_TEMPLATE/03_developer-bug-report.yml ================================================ name: 🐛 [For developers] Bug Report description: Create a report to help us improve labels: ["bug?"] body: - type: markdown attributes: value: | Thank you for your report! First, in order to avoid duplicate Issues, please search to see if the problem you found has already been reported. **IMPORTANT NOTE**: This program is designed to run on the infrastructure used by the Misskey Project and is not intended to be used in other environments. Failure to work in other environments (e.g., your server or hosting service) is not likely to be addressed. - type: textarea attributes: label: 💡 Summary description: Tell us what the bug is validations: required: true - type: textarea attributes: label: 🥰 Expected Behavior description: Tell us what should happen validations: required: true - type: textarea attributes: label: 🤬 Actual Behavior description: | Tell us what happens instead of the expected behavior. Please include errors from the developer console and/or server log files if you have access to them. validations: required: true - type: textarea attributes: label: 📝 Steps to Reproduce placeholder: | 1. 2. 3. validations: required: false - type: textarea attributes: label: 💻 Environment description: | Please provide information about the environment where the issue occurred. You can use `npx nuxi info` to fill this section. Example: * Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4 * Browser: Chrome 113.0.5672.126 value: | * Model and OS of the device(s): * Browser: render: markdown validations: required: false - type: checkboxes attributes: label: Do you want to address this bug yourself? options: - label: Yes, I will patch the bug myself and send a pull request ================================================ FILE: .github/ISSUE_TEMPLATE/04_feature-request.yml ================================================ name: ✨ Feature Request description: Suggest an idea for this project labels: ["feature"] body: - type: textarea attributes: label: Summary description: Tell us what the suggestion is validations: required: true - type: textarea attributes: label: Purpose description: Describe the specific problem or need you think this feature will solve, and who it will help. validations: required: true - type: checkboxes attributes: label: Do you want to implement this feature yourself? options: - label: Yes, I will implement this by myself and send a pull request ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ contact_links: - name: 💬 Bug reports and feature requests for Misskey itself url: https://github.com/misskey-dev/misskey/issues about: Misskey本体に関するバグ報告・機能リクエストはこちらから - name: 🖥 Bug reports and feature requests for Server List API url: https://github.com/joinmisskey/api/issues about: サーバー一覧ページで使用している「サーバー一覧API」に関するバグ報告・機能リクエストはこちらから ================================================ FILE: .github/workflows/deploy.yml ================================================ name: Deploy on: # Runs on pushes targeting the default branch push: branches: ["master"] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false permissions: contents: read pages: write id-token: write jobs: # Build job build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: cache: pnpm node-version: "22" - name: Install dependencies run: pnpm install - name: Build website run: pnpm generate env: NODE_ENV: production CROWDIN_INTG_API: ${{ secrets.CROWDIN_INTG_API }} SERVER_LIST_API_BASE_URL: ${{ secrets.SERVER_LIST_API_BASE_URL }} # - name: Upload with ftp # uses: SamKirkland/FTP-Deploy-Action@v4.3.6 # with: # server: ${{ secrets.FTP_SERVER }} # username: ${{ secrets.FTP_USERNAME }} # password: ${{ secrets.FTP_PASSWORD }} # local-dir: ./.output/public/ # server-dir: ${{ secrets.FTP_SERVER_DIR }} - name: Upload artifact uses: actions/upload-pages-artifact@v4 with: path: ./.output/public/ # Deploy job deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 # Purge Cloudflare Cache purge-cache: needs: deploy runs-on: ubuntu-latest steps: - name: Purge Cloudflare Cache run: | curl -X POST "https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE_ID }}/purge_cache" \ -H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \ -H "Content-Type: application/json" \ --data '{"hosts":["misskey-hub.net"]}' continue-on-error: true ================================================ FILE: .github/workflows/on-misskey-release.yml ================================================ name: On Misskey Release (Update Release Notes) on: repository_dispatch: types: [misskey_release] workflow_dispatch: inputs: version: description: 'Latest version of Misskey' required: false releaseDate: description: 'Release date (YYYY-MM-DD)' required: false env: TZ: Asia/Tokyo VERSION: ${{ github.event.client_payload.version || github.event.inputs.version }} RELEASE_DATE: ${{ github.event.client_payload.releaseDate || github.event.inputs.releaseDate }} jobs: update-release-notes: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: cache: 'pnpm' - run: corepack enable - run: pnpm install - run: pnpm install working-directory: scripts/changelog-auto-updater - run: pnpm start working-directory: scripts/changelog-auto-updater - name: Check diff id: diff run: | git add . git reset HEAD pnpm-lock.yaml scripts/changelog-auto-updater/pnpm-lock.yaml git diff --staged --name-only --exit-code continue-on-error: true - name: Commit changes if: steps.diff.outcome == 'failure' run: | set -x git checkout -b update-release-notes-${{ env.VERSION || 'latest' }} git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com git add . git reset HEAD pnpm-lock.yaml scripts/changelog-auto-updater/pnpm-lock.yaml git commit -m "docs: Update release notes for ${{ env.VERSION || 'latest' }} release" git push -u origin HEAD - name: Create Pull Request if: steps.diff.outcome == 'failure' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh pr create --draft --title "Update release notes (${{ env.VERSION != null && env.VERSION || 'latest' }})" --body "【自動生成】マージ後は必ずブランチを削除してください。" --base master --head update-release-notes-${{ env.VERSION != null && env.VERSION || 'latest' }} ================================================ FILE: .gitignore ================================================ # Nuxt dev/build outputs .output .nuxt .nitro .cache .vercel dist # Node dependencies node_modules # Logs logs *.log # Misc .DS_Store .fleet .idea # Local env files .env .env.* !.env.example # Locale build outputs locales_dist i18n/locales_dist # Crowdin Members Result assets/data/i18n-members.ts # SPA Loading Template (Dynamically Generated) app/spa-loading-template.html # CF Pages Redirect public/_redirects .favorites.json ================================================ FILE: .npmrc ================================================ shamefully-hoist=true strict-peer-dependencies=false ================================================ FILE: .nuxtignore ================================================ pages/**/*-ignore.vue locales __misc scripts/changelog-auto-updater ================================================ FILE: LICENSE ================================================ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Remote Network Interaction; Use with the GNU General Public License. Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . ================================================ FILE: README.md ================================================ # Misskey Hub (Next) ![Screenshot of Misskey Hub](./public/img/og/misskey-hub-screenshot-dr.png) Website for Misskey, built with [Nuxt](https://nuxt.com/). ## お知らせの文言のいじり方 `app.config.ts` から指定できます。 ## Docsの書き方 **必ず [`/content/.README.md`](./content/.README.md) をご覧ください** ## NuxtLinkについて 内部リンク・外部リンクに関する処理を強化した[``](./components/g/NuxtLink.vue)を使用していますので、**リンクを追加する際は``ではなく``を使用してください。** また、Nuxtのルーティングストラテジに、ホスティング環境に適した設定を適用するため、動的リンクの作成に使用する`useLocalePath`をラップしたコンポーサブル関数`useGLocalePath`を使うようにしています。 ### Misskey Webへのリンクについて GNuxtLinkおよび各種Docsで、アドレスに `x-mi-web://` から始め、続けてMisskeyの相対パスを入力すると、Misskey Webへのリンクに置き換えられます。 例: `/play` → `x-mi-web://play` ## 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 > [!NOTE] > > > > このプログラムはMisskey Projectの使用するインフラストラクチャで動作するように設計されており、その他の環境で使用することは想定されていません。 > > This program is designed to run on the infrastructure used by the Misskey Project and is not intended to be used in other environments. 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. ## (おまけ) デプロイ時のオートメーションプログラム `/__misc/gas/` に、Misskey Hubデプロイ時に自動実行しているプログラムを同梱しています。 Google Apps Scriptで動作します。 ## License GNU Affero General Public License v3.0 (c) 2023-2025 syuilo, kakkokari-gtyih and Misskey Project ================================================ FILE: app/router.options.ts ================================================ import type { RouterConfig } from '@nuxt/schema' export default { scrollBehavior(to) { if (to.meta.layout && to.hash) { const width = window ? window.innerWidth : 0; switch (to.meta.layout) { case 'blank': return { el: to.hash }; case 'docs': if (width < 1024) { return { top: 128, el: to.hash }; } else { return { top: 80, el: to.hash }; } case 'slim': case 'tools': return { top: 80, el: to.hash }; default: if (width < 1024) { return { top: 80, el: to.hash }; } else { return { top: 96, el: to.hash }; } } } return { top: 0 }; }, } ================================================ FILE: app/spa-loading-template-base.html ================================================
================================================ FILE: app.config.ts ================================================ export default defineAppConfig({ notice: { title: { ja: 'v2026.5.1 をリリースしました!', en: 'v2026.5.1 is out now!', }, to: "/docs/releases/", }, }); ================================================ FILE: app.vue ================================================ ================================================ FILE: assets/css/bootstrap-forms.scss ================================================ @import "bootstrap/scss/mixins/banner"; @include bsBanner("Forms & Buttons"); //$primary: #4a4c94; $primary: #86b300; // scss-docs-start import-stack // Configuration @import "bootstrap/scss/functions"; @import "bootstrap/scss/variables"; @import "bootstrap/scss/variables-dark"; @import "bootstrap/scss/maps"; @import "bootstrap/scss/mixins"; @import "bootstrap/scss/utilities"; // Layout & components @import "bootstrap/scss/root"; // Breaking down form components @import "bootstrap/scss/forms/labels"; @import "bootstrap/scss/forms/form-control"; @import "bootstrap/scss/forms/form-select"; @import "bootstrap/scss/forms/form-range"; @import "bootstrap/scss/forms/form-check"; @import "bootstrap/scss/forms/form-text"; @import "bootstrap/scss/forms/input-group"; // button @import "bootstrap/scss/buttons"; @import "bootstrap/scss/button-group"; // Overrides .btn-outline-primary { --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; } .btn-primary { --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; --bs-btn-disabled-color: #fff; } ================================================ FILE: assets/css/global.css ================================================ :root { --THEME-bg: #eee; --THEME-fg: #222; background: var(--THEME-bg); color: var(--THEME-fg); } :root.dark { --THEME-bg: #1a1a1a; --THEME-fg: #eee; } ::selection { color: #fff; background-color: #86b300; } html, body { margin: 0; padding: 0; } html { overflow: auto; scroll-padding: 100px; /* ヘッダーなどが干渉するため */ min-height: 100vh; -webkit-tap-highlight-color: transparent; } html:not(.landing) { @apply font-sans; } .bi::before, [class^="bi-"]::before, [class*=" bi-"]::before, .bi { display: inline-block; font-family: bootstrap-icons !important; font-style: normal; font-weight: normal !important; font-variant: normal; text-transform: none; line-height: 1; vertical-align: -.125em; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .bi { width: 1em; height: 1em; } ._hoverRubber:hover { animation: .75s linear 0s 1 normal both running mfm-rubberBand; } ._hoverTada:hover { animation: .75s linear 0s 1 normal both running tada; } ._plainButton { display: inline-block; appearance: none; display: inline-block; padding: 0; margin: 0; background: none; border: none; cursor: pointer; color: inherit; touch-action: manipulation; tap-highlight-color: transparent; -webkit-tap-highlight-color: transparent; font-size: 1em; font-family: inherit; line-height: inherit; max-width: 100%; } ._plainLink { color: inherit; text-decoration: none; } .__v_textUnderline { background-image: linear-gradient(90deg, rgba(134, 179, 0, 0), rgba(74, 179, 0, 0), rgba(74, 179, 0, 0)); background-size: 100% 6px; background-repeat: no-repeat; background-position: 0% calc(100% + 2px); transition: background-size 0.5s ease, background-image 0.5s ease; transition-delay: 0.3s; } .__v_textUnderline_out { background-image: linear-gradient(90deg, rgba(134, 179, 0, 0), rgba(74, 179, 0, 0), rgba(74, 179, 0, 0)); background-size: 0% 6px; } .__v_textUnderline_in { background-image: linear-gradient(90deg, #86b300, #4ab300, #4ab300); background-size: 100% 6px; } /* Github Markdown Css Override */ html.dark .markdown-body { color-scheme: dark; --focus-outlineColor: #1f6feb; --fgColor-default: #e6edf3; --fgColor-muted: #8d96a0; --fgColor-accent: #4493f8; --fgColor-success: #3fb950; --fgColor-attention: #d29922; --fgColor-danger: #f85149; --fgColor-done: #ab7df8; --bgColor-default: #0d1117; --bgColor-muted: #161b22; --bgColor-neutral-muted: #6e768166; --bgColor-attention-muted: #bb800926; --borderColor-default: #30363d; --borderColor-muted: #30363db3; --borderColor-neutral-muted: #6e768166; --borderColor-accent-emphasis: #1f6feb; --borderColor-success-emphasis: #238636; --borderColor-attention-emphasis: #9e6a03; --borderColor-danger-emphasis: #da3633; --borderColor-done-emphasis: #8957e5; --color-prettylights-syntax-comment: #8b949e; --color-prettylights-syntax-constant: #79c0ff; --color-prettylights-syntax-constant-other-reference-link: #a5d6ff; --color-prettylights-syntax-entity: #d2a8ff; --color-prettylights-syntax-storage-modifier-import: #c9d1d9; --color-prettylights-syntax-entity-tag: #7ee787; --color-prettylights-syntax-keyword: #ff7b72; --color-prettylights-syntax-string: #a5d6ff; --color-prettylights-syntax-variable: #ffa657; --color-prettylights-syntax-brackethighlighter-unmatched: #f85149; --color-prettylights-syntax-brackethighlighter-angle: #8b949e; --color-prettylights-syntax-invalid-illegal-text: #f0f6fc; --color-prettylights-syntax-invalid-illegal-bg: #8e1519; --color-prettylights-syntax-carriage-return-text: #f0f6fc; --color-prettylights-syntax-carriage-return-bg: #b62324; --color-prettylights-syntax-string-regexp: #7ee787; --color-prettylights-syntax-markup-list: #f2cc60; --color-prettylights-syntax-markup-heading: #1f6feb; --color-prettylights-syntax-markup-italic: #c9d1d9; --color-prettylights-syntax-markup-bold: #c9d1d9; --color-prettylights-syntax-markup-deleted-text: #ffdcd7; --color-prettylights-syntax-markup-deleted-bg: #67060c; --color-prettylights-syntax-markup-inserted-text: #aff5b4; --color-prettylights-syntax-markup-inserted-bg: #033a16; --color-prettylights-syntax-markup-changed-text: #ffdfb6; --color-prettylights-syntax-markup-changed-bg: #5a1e02; --color-prettylights-syntax-markup-ignored-text: #c9d1d9; --color-prettylights-syntax-markup-ignored-bg: #1158c7; --color-prettylights-syntax-meta-diff-range: #d2a8ff; --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58; } html.light .markdown-body { color-scheme: light; --focus-outlineColor: #0969da; --fgColor-default: #1f2328; --fgColor-muted: #636c76; --fgColor-accent: #0969da; --fgColor-success: #1a7f37; --fgColor-attention: #9a6700; --fgColor-danger: #d1242f; --fgColor-done: #8250df; --bgColor-default: #ffffff; --bgColor-muted: #f6f8fa; --bgColor-neutral-muted: #afb8c133; --bgColor-attention-muted: #fff8c5; --borderColor-default: #d0d7de; --borderColor-muted: #d0d7deb3; --borderColor-neutral-muted: #afb8c133; --borderColor-accent-emphasis: #0969da; --borderColor-success-emphasis: #1a7f37; --borderColor-attention-emphasis: #bf8700; --borderColor-danger-emphasis: #cf222e; --borderColor-done-emphasis: #8250df; --color-prettylights-syntax-comment: #57606a; --color-prettylights-syntax-constant: #0550ae; --color-prettylights-syntax-constant-other-reference-link: #0a3069; --color-prettylights-syntax-entity: #6639ba; --color-prettylights-syntax-storage-modifier-import: #24292f; --color-prettylights-syntax-entity-tag: #0550ae; --color-prettylights-syntax-keyword: #cf222e; --color-prettylights-syntax-string: #0a3069; --color-prettylights-syntax-variable: #953800; --color-prettylights-syntax-brackethighlighter-unmatched: #82071e; --color-prettylights-syntax-brackethighlighter-angle: #57606a; --color-prettylights-syntax-invalid-illegal-text: #f6f8fa; --color-prettylights-syntax-invalid-illegal-bg: #82071e; --color-prettylights-syntax-carriage-return-text: #f6f8fa; --color-prettylights-syntax-carriage-return-bg: #cf222e; --color-prettylights-syntax-string-regexp: #116329; --color-prettylights-syntax-markup-list: #3b2300; --color-prettylights-syntax-markup-heading: #0550ae; --color-prettylights-syntax-markup-italic: #24292f; --color-prettylights-syntax-markup-bold: #24292f; --color-prettylights-syntax-markup-deleted-text: #82071e; --color-prettylights-syntax-markup-deleted-bg: #ffebe9; --color-prettylights-syntax-markup-inserted-text: #116329; --color-prettylights-syntax-markup-inserted-bg: #dafbe1; --color-prettylights-syntax-markup-changed-text: #953800; --color-prettylights-syntax-markup-changed-bg: #ffd8b5; --color-prettylights-syntax-markup-ignored-text: #eaeef2; --color-prettylights-syntax-markup-ignored-bg: #0550ae; --color-prettylights-syntax-meta-diff-range: #8250df; --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f; } .markdown-body { @apply !font-content-sans; --bgColor-default: transparent!important; min-height: 0!important; } .markdown-body > h1 > a[href^='#'], .markdown-body :not(.ignore) h1 > a[href^='#'], .markdown-body > h2 > a[href^='#'], .markdown-body :not(.ignore) h2 > a[href^='#'], .markdown-body > h3 > a[href^='#'], .markdown-body :not(.ignore) h3 > a[href^='#'], .markdown-body > h4 > a[href^='#'], .markdown-body :not(.ignore) h4 > a[href^='#'], .markdown-body > h5 > a[href^='#'], .markdown-body :not(.ignore) h5 > a[href^='#'], .markdown-body > h6 > a[href^='#'] , .markdown-body :not(.ignore) h6 > a[href^='#'] { color: var(--color-fg-default); cursor: pointer; } .markdown-body > h1 > a[href^='#']:hover, .markdown-body :not(.ignore) h1 > a[href^='#']:hover, .markdown-body > h2 > a[href^='#']:hover, .markdown-body :not(.ignore) h2 > a[href^='#']:hover, .markdown-body > h3 > a[href^='#']:hover, .markdown-body :not(.ignore) h3 > a[href^='#']:hover, .markdown-body > h4 > a[href^='#']:hover, .markdown-body :not(.ignore) h4 > a[href^='#']:hover, .markdown-body > h5 > a[href^='#']:hover, .markdown-body :not(.ignore) h5 > a[href^='#']:hover, .markdown-body > h6 > a[href^='#']:hover , .markdown-body :not(.ignore) h6 > a[href^='#']:hover { text-decoration: none; } .markdown-body > ul , .markdown-body :not(.ignore) ul { list-style: disc; } .markdown-body > ol , .markdown-body :not(.ignore) ol { list-style: decimal; } .markdown-body u { text-decoration: underline; text-underline-offset: .2em; } .markdown-body .footnotes { padding-top: 16px; } .markdown-body > p, .markdown-body :not(.ignore) p:not(.truncate-box), .markdown-body li { line-height: 1.75; } .markdown-body video { @apply rounded-lg; } ================================================ FILE: assets/css/mfm.scss ================================================ @charset "utf-8"; /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * * SPDX-License-Identifier: AGPL-3.0-only */ /* MFM */ @keyframes blink { 0% { opacity: 1; transform: scale(1); } 30% { opacity: 1; transform: scale(1); } 90% { opacity: 0; transform: scale(0.5); } } @keyframes tada { from { transform: scale3d(1, 1, 1); } 10%, 20% { transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { transform: scale3d(1, 1, 1); } } ._anime_bounce { will-change: transform; animation: mk-bounce ease 0.7s; animation-iteration-count: 1; transform-origin: 50% 50%; } ._anime_bounce_ready { will-change: transform; transform: scaleX(0.90) scaleY(0.90) ; } ._anime_bounce_standBy { transition: transform 0.1s ease; } @keyframes mk-bounce { 0% { transform: scaleX(0.90) scaleY(0.90) ; } 19% { transform: scaleX(1.10) scaleY(1.10) ; } 48% { transform: scaleX(0.95) scaleY(0.95) ; } 100% { transform: scaleX(1.00) scaleY(1.00) ; } } // MFM ----------------------------- ._mfm_blur_ { filter: blur(6px); transition: filter 0.3s; &:hover { filter: blur(0px); } } .mfm-x2 { --mfm-zoom-size: 200%; } .mfm-x3 { --mfm-zoom-size: 400%; } .mfm-x4 { --mfm-zoom-size: 600%; } .mfm-x2, .mfm-x3, .mfm-x4 { font-size: var(--mfm-zoom-size); .mfm-x2, .mfm-x3, .mfm-x4 { /* only half effective */ font-size: calc(var(--mfm-zoom-size) / 2 + 50%); .mfm-x2, .mfm-x3, .mfm-x4 { /* disabled */ font-size: 100%; } } } @keyframes mfm-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes mfm-spinX { 0% { transform: perspective(128px) rotateX(0deg); } 100% { transform: perspective(128px) rotateX(360deg); } } @keyframes mfm-spinY { 0% { transform: perspective(128px) rotateY(0deg); } 100% { transform: perspective(128px) rotateY(360deg); } } @keyframes mfm-jump { 0% { transform: translateY(0); } 25% { transform: translateY(-16px); } 50% { transform: translateY(0); } 75% { transform: translateY(-8px); } 100% { transform: translateY(0); } } @keyframes mfm-bounce { 0% { transform: translateY(0) scale(1, 1); } 25% { transform: translateY(-16px) scale(1, 1); } 50% { transform: translateY(0) scale(1, 1); } 75% { transform: translateY(0) scale(1.5, 0.75); } 100% { transform: translateY(0) scale(1, 1); } } // const val = () => `translate(${Math.floor(Math.random() * 20) - 10}px, ${Math.floor(Math.random() * 20) - 10}px)`; // let css = ''; // for (let i = 0; i <= 100; i += 5) { css += `${i}% { transform: ${val()} }\n`; } @keyframes mfm-twitch { 0% { transform: translate(7px, -2px) } 5% { transform: translate(-3px, 1px) } 10% { transform: translate(-7px, -1px) } 15% { transform: translate(0px, -1px) } 20% { transform: translate(-8px, 6px) } 25% { transform: translate(-4px, -3px) } 30% { transform: translate(-4px, -6px) } 35% { transform: translate(-8px, -8px) } 40% { transform: translate(4px, 6px) } 45% { transform: translate(-3px, 1px) } 50% { transform: translate(2px, -10px) } 55% { transform: translate(-7px, 0px) } 60% { transform: translate(-2px, 4px) } 65% { transform: translate(3px, -8px) } 70% { transform: translate(6px, 7px) } 75% { transform: translate(-7px, -2px) } 80% { transform: translate(-7px, -8px) } 85% { transform: translate(9px, 3px) } 90% { transform: translate(-3px, -2px) } 95% { transform: translate(-10px, 2px) } 100% { transform: translate(-2px, -6px) } } // const val = () => `translate(${Math.floor(Math.random() * 6) - 3}px, ${Math.floor(Math.random() * 6) - 3}px) rotate(${Math.floor(Math.random() * 24) - 12}deg)`; // let css = ''; // for (let i = 0; i <= 100; i += 5) { css += `${i}% { transform: ${val()} }\n`; } @keyframes mfm-shake { 0% { transform: translate(-3px, -1px) rotate(-8deg) } 5% { transform: translate(0px, -1px) rotate(-10deg) } 10% { transform: translate(1px, -3px) rotate(0deg) } 15% { transform: translate(1px, 1px) rotate(11deg) } 20% { transform: translate(-2px, 1px) rotate(1deg) } 25% { transform: translate(-1px, -2px) rotate(-2deg) } 30% { transform: translate(-1px, 2px) rotate(-3deg) } 35% { transform: translate(2px, 1px) rotate(6deg) } 40% { transform: translate(-2px, -3px) rotate(-9deg) } 45% { transform: translate(0px, -1px) rotate(-12deg) } 50% { transform: translate(1px, 2px) rotate(10deg) } 55% { transform: translate(0px, -3px) rotate(8deg) } 60% { transform: translate(1px, -1px) rotate(8deg) } 65% { transform: translate(0px, -1px) rotate(-7deg) } 70% { transform: translate(-1px, -3px) rotate(6deg) } 75% { transform: translate(0px, -2px) rotate(4deg) } 80% { transform: translate(-2px, -1px) rotate(3deg) } 85% { transform: translate(1px, -3px) rotate(-10deg) } 90% { transform: translate(1px, 0px) rotate(3deg) } 95% { transform: translate(-2px, 0px) rotate(-3deg) } 100% { transform: translate(2px, 1px) rotate(2deg) } } @keyframes mfm-rubberBand { from { transform: scale3d(1, 1, 1); } 30% { transform: scale3d(1.25, 0.75, 1); } 40% { transform: scale3d(0.75, 1.25, 1); } 50% { transform: scale3d(1.15, 0.85, 1); } 65% { transform: scale3d(0.95, 1.05, 1); } 75% { transform: scale3d(1.05, 0.95, 1); } to { transform: scale3d(1, 1, 1); } } @keyframes mfm-rainbow { 0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); } 100% { filter: hue-rotate(360deg) contrast(150%) saturate(150%); } } ================================================ FILE: assets/css/nprogress.css ================================================ /* Make clicks pass-through */ #nprogress { pointer-events: none; } #nprogress .bar { background: #4ab300; position: fixed; z-index: 10010; top: 0; left: 0; width: 100%; height: 2px; } /* Fancy blur effect */ #nprogress .peg { display: block; position: absolute; right: 0px; width: 100px; height: 100%; box-shadow: 0 0 10px #4ab300, 0 0 5px #4ab300; opacity: 1.0; -webkit-transform: rotate(3deg) translate(0px, -4px); -ms-transform: rotate(3deg) translate(0px, -4px); transform: rotate(3deg) translate(0px, -4px); } .nprogress-custom-parent { overflow: hidden; position: relative; } .nprogress-custom-parent #nprogress .spinner, .nprogress-custom-parent #nprogress .bar { position: absolute; } ================================================ FILE: assets/data/features.ts ================================================ type FeatureItem = { img?: string; title: string; description: string; }; export const features = [{ img: '/img/top-features/top-features-note.png', title: '_landing._features._note.title', description: '_landing._features._note.description', }, { img: '/img/top-features/top-features-reaction.png', title: '_landing._features._reaction.title', description: '_landing._features._reaction.description', }, { img: '/img/top-features/customEmojis.webp', title: '_landing._features._customEmojis.title', description: '_landing._features._customEmojis.description', }, { title: '_landing._features._channel.title', description: '_landing._features._channel.description', }, { title: '_landing._features._antenna.title', description: '_landing._features._antenna.description', }, { img: '/img/top-features/role.webp', title: '_landing._features._roles.title', description: '_landing._features._roles.description', }, { img: '/img/top-features/top-features-charts.png', title: '_landing._features._charts.title', description: '_landing._features._charts.description', }, { title: '_landing._features._privacy.title', description: '_landing._features._privacy.description', }, { title: '_landing._features._multiPurpose.title', description: '_landing._features._multiPurpose.description', }, { img: '/img/top-features/oss.webp', title: '_landing._features._oss.title', description: '_landing._features._oss.description', }, { img: '/img/top-features/top-features-federation.png', title: '_landing._features._federation.title', description: '_landing._features._federation.description', }, { img: '/img/top-features/top-features-drive.png', title: '_landing._features._drive.title', description: '_landing._features._drive.description', }, { img: '/img/top-features/2fa.webp', title: '_landing._features._2fa.title', description: '_landing._features._2fa.description', }, { img: '/img/top-features/branding.webp', title: '_landing._features._branding.title', description: '_landing._features._branding.description', }, { img: '/img/top-features/moderation.webp', title: '_landing._features._moderation.title', description: '_landing._features._moderation.description', }, { title: '_landing._features._monetization.title', description: '_landing._features._monetization.description', }, { img: '/img/top-features/since2014.webp', title: '_landing._features._battleTested.title', description: '_landing._features._battleTested.description', }] satisfies FeatureItem[]; export const featuresServer = [{ title: '_landing._featuresServer._easyInstall.title', description: '_landing._featuresServer._easyInstall.description', }, { title: '_landing._featuresServer._easySetup.title', description: '_landing._featuresServer._easySetup.description', }, { img: '/img/top-features/nodejs.webp', title: '_landing._featuresServer._nodejs.title', description: '_landing._featuresServer._nodejs.description', }, { title: '_landing._featuresServer._postgresql.title', description: '_landing._featuresServer._postgresql.description', }, { img: '/img/top-features/scalable.webp', title: '_landing._featuresServer._scalable.title', description: '_landing._featuresServer._scalable.description', }, { img: '/img/top-features/jobQueue.webp', title: '_landing._featuresServer._jobQueue.title', description: '_landing._featuresServer._jobQueue.description', }, { title: '_landing._featuresServer._seo.title', description: '_landing._featuresServer._seo.description', }, { title: '_landing._featuresServer._cdn.title', description: '_landing._featuresServer._cdn.description', }, { img: '/img/top-features/api.webp', title: '_landing._featuresServer._api.title', description: '_landing._featuresServer._api.description', }, { title: '_landing._featuresServer._relay.title', description: '_landing._featuresServer._relay.description', }, { img: '/img/top-features/ftt.webp', title: '_landing._featuresServer._ftt.title', description: '_landing._featuresServer._ftt.description', }, { img: '/img/top-features/rbt.webp', title: '_landing._featuresServer._rbt.title', description: '_landing._featuresServer._rbt.description', }, { title: '_landing._featuresServer._fullTextSearch.title', description: '_landing._featuresServer._fullTextSearch.description', }, { img: '/img/top-features/ml.webp', title: '_landing._featuresServer._ml.title', description: '_landing._featuresServer._ml.description', }, { img: '/img/top-features/sentry.webp', title: '_landing._featuresServer._sentry.title', description: '_landing._featuresServer._sentry.description', }] satisfies FeatureItem[]; export const featuresClient = [{ img: '/img/top-features/responsive.webp', title: '_landing._featuresClient._responsive.title', description: '_landing._featuresClient._responsive.description', }, { img: '/img/top-features/theme.webp', title: '_landing._featuresClient._theme.title', description: '_landing._featuresClient._theme.description', }, { img: '/img/top-features/mfm.webp', title: '_landing._featuresClient._mfm.title', description: '_landing._featuresClient._mfm.description', }, { img: '/img/top-features/deck.webp', title: '_landing._featuresClient._deck.title', description: '_landing._featuresClient._deck.description', }, { title: '_landing._featuresClient._realtimeMode.title', description: '_landing._featuresClient._realtimeMode.description', }, { title: '_landing._featuresClient._pushNotification.title', description: '_landing._featuresClient._pushNotification.description', }, { img: '/img/top-features/multiAccounts.webp', title: '_landing._featuresClient._multiAccounts.title', description: '_landing._featuresClient._multiAccounts.description', }, { title: '_landing._featuresClient._watermark.title', description: '_landing._featuresClient._watermark.description', }, { title: '_landing._featuresClient._imageEditing.title', description: '_landing._featuresClient._imageEditing.description', }, { img: '/img/top-features/widgets.webp', title: '_landing._featuresClient._widgets.title', description: '_landing._featuresClient._widgets.description', }, { img: '/img/top-features/settings.webp', title: '_landing._featuresClient._settingsManagement.title', description: '_landing._featuresClient._settingsManagement.description', }, { title: '_landing._featuresClient._achievements.title', description: '_landing._featuresClient._achievements.description', }, { img: '/img/top-features/plugin.webp', title: '_landing._featuresClient._plugin.title', description: '_landing._featuresClient._plugin.description', }, { title: '_landing._featuresClient._embed.title', description: '_landing._featuresClient._embed.description', }, { title: '_landing._featuresClient._pwa.title', description: '_landing._featuresClient._pwa.description', }, { img: '/img/top-features/i18n.webp', title: '_landing._featuresClient._i18n.title', description: '_landing._featuresClient._i18n.description', }] satisfies FeatureItem[]; ================================================ FILE: assets/data/forks.ts ================================================ export const forkedSoftwares = [ 'firefish', 'calckey', 'iceshrimp', 'meisskey', 'ebisskey', 'foundkey', 'sharkey', 'cherrypick' ]; ================================================ FILE: assets/data/locales.ts ================================================ import type { LocaleObject } from '@nuxtjs/i18n'; export const localesConst = [ { files: [ 'ja-JP.json' ], code: 'ja', language: 'ja-JP', name: '日本語' }, { files: [ 'en-US.json' ], code: 'en', language: 'en-US', name: 'English' }, { files: [ 'id-ID.json' ], code: 'id', language: 'id-ID', name: 'Bahasa Indonesia' }, { files: [ 'ko-KR.json' ], code: 'ko', language: 'ko-KR', name: '한국어' }, { files: [ 'it-IT.json' ], code: 'it', language: 'it-IT', name: 'Italiano' }, { files: [ 'pl-PL.json' ], code: 'pl', language: 'pl-PL', name: 'Polski' }, { files: [ 'fr-FR.json' ], code: 'fr', language: 'fr-FR', name: 'Français' }, { files: [ 'th-TH.json' ], code: 'th', language: 'th-TH', name: 'ภาษาไทย' }, { files: [ 'es-ES.json' ], code: 'es', language: 'es-ES', name: 'Español' }, { files: [ 'de-DE.json' ], code: 'de', language: 'de-DE', name: 'Deutsch' }, { files: [ 'zh-CN.json' ], code: 'cn', language: 'zh-CN', name: '简体中文' }, { files: [ 'zh-TW.json' ], code: 'tw', language: 'zh-TW', name: '繁体中文' }, { files: [ 'ja-KS.json' ], code: 'ja-ks', language: 'ja-KS', name: '🐙' }, ] as const satisfies LocaleObject[]; export type LocaleCodes = typeof localesConst[number]['code']; export const localePathRegex = new RegExp(`^/(${localesConst.map((v) => v.code).join('|')})/`); export const locales = localesConst as unknown as LocaleObject[]; ================================================ FILE: assets/data/nav.ts ================================================ import type { Component } from "#app/compat/capi"; import GHIcon from "bi/github.svg"; export type NavSection = { /** セクションタイトル 翻訳キー */ title: string; /** アイテム */ items: NavItem[]; }; /** ナビゲーションバー アイテム */ export type NavItem = { /** 翻訳キー */ i18n: string; /** 説明文 翻訳キー */ description?: string; /** リンク先 */ to: string; } | { /** アイコン(svgをインポートして貼り付け) */ icon: Component | string; /** リンク先 */ to: string; }; /** ナビゲーションバー コンテンツ */ export default <{ /** ナビゲーションの真ん中のリンク */ center: NavItem[]; /** * ナビゲーションの右端のリンク * (SNSとかGithubのリンクとか) */ right: NavItem[]; }> { center: [ { i18n: '_nav.docs', to: '/docs/', }, { i18n: '_nav.news', to: '/blog/', }, { i18n: '_nav.servers', to: '/servers/', }, { i18n: '_nav.other', to: '/learn-more/', } ], right: [ { icon: GHIcon, to: 'https://github.com/misskey-dev/misskey', }, ] }; ================================================ FILE: assets/data/old-hub-redirects.ts ================================================ export const redirects: [string, string][] = [ [ "/docs/api/", "/docs/for-developers/api/" ], [ "/docs/features/", "/docs/for-users/features/" ], [ "/docs/api/streaming/", "/docs/for-developers/api/streaming/" ], [ "/docs/api/streaming/channel/", "/docs/for-developers/api/streaming/channel/" ], [ "/docs/api/streaming/channel/global-timeline.html", "/docs/for-developers/api/streaming/channel/global-timeline/" ], [ "/docs/api/streaming/channel/global-timeline.md", "/docs/for-developers/api/streaming/channel/global-timeline/" ], [ "/docs/api/streaming/channel/home-timeline.html", "/docs/for-developers/api/streaming/channel/home-timeline/" ], [ "/docs/api/streaming/channel/home-timeline.md", "/docs/for-developers/api/streaming/channel/home-timeline/" ], [ "/docs/api/streaming/channel/hybrid-timeline.html", "/docs/for-developers/api/streaming/channel/hybrid-timeline/" ], [ "/docs/api/streaming/channel/hybrid-timeline.md", "/docs/for-developers/api/streaming/channel/hybrid-timeline/" ], [ "/docs/api/streaming/channel/index.html", "/docs/api/streaming/channel/" ], [ "/docs/api/streaming/channel/index.md", "/docs/api/streaming/channel/" ], [ "/docs/api/streaming/channel/local-timeline.html", "/docs/for-developers/api/streaming/channel/local-timeline/" ], [ "/docs/api/streaming/channel/local-timeline.md", "/docs/for-developers/api/streaming/channel/local-timeline/" ], [ "/docs/api/streaming/channel/main.html", "/docs/for-developers/api/streaming/channel/main/" ], [ "/docs/api/streaming/channel/main.md", "/docs/for-developers/api/streaming/channel/main/" ], [ "/docs/api/streaming/index.html", "/docs/for-developers/api/streaming/" ], [ "/docs/api/streaming/index.md", "/docs/for-developers/api/streaming/" ], [ "/docs/api/streaming/note-capture-events.html", "/docs/for-developers/api/streaming/note-capture-events/" ], [ "/docs/api/streaming/note-capture-events.md", "/docs/for-developers/api/streaming/note-capture-events/" ], [ "/docs/api/endpoints.html", "/docs/for-developers/api/endpoints/" ], [ "/docs/api/endpoints.md", "/docs/for-developers/api/endpoints/" ], [ "/docs/admin/cdn.html", "/docs/for-admin/install/resources/cdn/" ], [ "/docs/admin/cdn.md", "/docs/for-admin/install/resources/cdn/" ], [ "/docs/admin/nginx.html", "/docs/for-admin/install/resources/nginx/" ], [ "/docs/admin/nginx.md", "/docs/for-admin/install/resources/nginx/" ], [ "/docs/admin/push-docker-hub.html", "/docs/for-admin/install/resources/push-docker-hub/" ], [ "/docs/admin/push-docker-hub.md", "/docs/for-admin/install/resources/push-docker-hub/" ], [ "/docs/admin/troubleshooting.html", "/docs/for-admin/install/resources/troubleshooting/" ], [ "/docs/admin/troubleshooting.md", "/docs/for-admin/install/resources/troubleshooting/" ], [ "/docs/advanced/aiscript.html", "/docs/for-developers/aiscript/" ], [ "/docs/advanced/aiscript.md", "/docs/for-developers/aiscript/" ], [ "/docs/advanced/create-plugin.html", "/docs/for-developers/plugin/create-plugin/" ], [ "/docs/advanced/create-plugin.md", "/docs/for-developers/plugin/create-plugin/" ], [ "/docs/advanced/develop-bot.html", "/docs/for-developers/bot/" ], [ "/docs/advanced/develop-bot.md", "/docs/for-developers/bot/" ], [ "/docs/advanced/plugin-api-reference.html", "/docs/for-developers/plugin/plugin-api-reference/" ], [ "/docs/advanced/plugin-api-reference.md", "/docs/for-developers/plugin/plugin-api-reference/" ], [ "/docs/advanced/publish-on-your-website.html", "/docs/for-developers/publish-on-your-website/" ], [ "/docs/advanced/publish-on-your-website.md", "/docs/for-developers/publish-on-your-website/" ], [ "/docs/api/app.html", "/docs/for-developers/api/app/" ], [ "/docs/api/app.md", "/docs/for-developers/api/app/" ], [ "/docs/api/index.html", "/docs/for-developers/api/" ], [ "/docs/api/index.md", "/docs/for-developers/api/" ], [ "/docs/api/libraries.html", "/docs/for-developers/api/libraries/" ], [ "/docs/api/libraries.md", "/docs/for-developers/api/libraries/" ], [ "/docs/api/permission.html", "/docs/for-developers/api/permission/" ], [ "/docs/api/permission.md", "/docs/for-developers/api/permission/" ], [ "/docs/features/ads.html", "/docs/for-users/features/ads/" ], [ "/docs/features/ads.md", "/docs/for-users/features/ads/" ], [ "/docs/features/antenna.html", "/docs/for-users/features/antenna/" ], [ "/docs/features/antenna.md", "/docs/for-users/features/antenna/" ], [ "/docs/features/charts.html", "/docs/for-users/features/charts/" ], [ "/docs/features/charts.md", "/docs/for-users/features/charts/" ], [ "/docs/features/clip.html", "/docs/for-users/features/clip/" ], [ "/docs/features/clip.md", "/docs/for-users/features/clip/" ], [ "/docs/features/custom-emoji.html", "/docs/for-users/features/custom-emoji/" ], [ "/docs/features/custom-emoji.md", "/docs/for-users/features/custom-emoji/" ], [ "/docs/features/deck.html", "/docs/for-users/features/deck/" ], [ "/docs/features/deck.md", "/docs/for-users/features/deck/" ], [ "/docs/features/drive.html", "/docs/for-users/features/drive/" ], [ "/docs/features/drive.md", "/docs/for-users/features/drive/" ], [ "/docs/features/favorite.html", "/docs/for-users/features/favorite/" ], [ "/docs/features/favorite.md", "/docs/for-users/features/favorite/" ], [ "/docs/features/follow.html", "/docs/for-users/features/follow/" ], [ "/docs/features/follow.md", "/docs/for-users/features/follow/" ], [ "/docs/features/hashtag.html", "/docs/for-users/features/hashtag/" ], [ "/docs/features/hashtag.md", "/docs/for-users/features/hashtag/" ], [ "/docs/features/index.html", "/docs/features/" ], [ "/docs/features/index.md", "/docs/features/" ], [ "/docs/features/mention.html", "/docs/for-users/features/mention/" ], [ "/docs/features/mention.md", "/docs/for-users/features/mention/" ], [ "/docs/features/mfm.html", "/docs/for-users/features/mfm/" ], [ "/docs/features/mfm.md", "/docs/for-users/features/mfm/" ], [ "/docs/features/mute-and-block.html", "/docs/for-users/features/mute-and-block/" ], [ "/docs/features/mute-and-block.md", "/docs/for-users/features/mute-and-block/" ], [ "/docs/features/note.html", "/docs/for-users/features/note/" ], [ "/docs/features/note.md", "/docs/for-users/features/note/" ], [ "/docs/features/online-status.html", "/docs/for-users/features/online-status/" ], [ "/docs/features/online-status.md", "/docs/for-users/features/online-status/" ], [ "/docs/features/pages.html", "/docs/for-users/features/pages/" ], [ "/docs/features/pages.md", "/docs/for-users/features/pages/" ], [ "/docs/features/plugin.html", "/docs/for-users/features/plugin/" ], [ "/docs/features/plugin.md", "/docs/for-users/features/plugin/" ], [ "/docs/features/reaction.html", "/docs/for-users/features/reaction/" ], [ "/docs/features/reaction.md", "/docs/for-users/features/reaction/" ], [ "/docs/features/share-form.html", "/docs/for-users/features/share-form/" ], [ "/docs/features/share-form.md", "/docs/for-users/features/share-form/" ], [ "/docs/features/silence.html", "/docs/for-users/features/silence/" ], [ "/docs/features/silence.md", "/docs/for-users/features/silence/" ], [ "/docs/features/theme.html", "/docs/for-users/features/theme/" ], [ "/docs/features/theme.md", "/docs/for-users/features/theme/" ], [ "/docs/features/thread-mute.html", "/docs/for-users/features/thread-mute/" ], [ "/docs/features/thread-mute.md", "/docs/for-users/features/thread-mute/" ], [ "/docs/features/timeline.html", "/docs/for-users/features/timeline/" ], [ "/docs/features/timeline.md", "/docs/for-users/features/timeline/" ], [ "/docs/features/webhook.html", "/docs/for-users/features/webhook/" ], [ "/docs/features/webhook.md", "/docs/for-users/features/webhook/" ], [ "/docs/features/widgets.html", "/docs/for-users/features/widgets/" ], [ "/docs/features/widgets.md", "/docs/for-users/features/widgets/" ], [ "/docs/features/word-mute.html", "/docs/for-users/features/word-mute/" ], [ "/docs/features/word-mute.md", "/docs/for-users/features/word-mute/" ], [ "/docs/install/bash.html", "/docs/for-admin/install/guides/bash/" ], [ "/docs/install/bash.md", "/docs/for-admin/install/guides/bash/" ], [ "/docs/install/docker.html", "/docs/for-admin/install/guides/docker/" ], [ "/docs/install/docker.md", "/docs/for-admin/install/guides/docker/" ], [ "/docs/install/kubernetes.html", "/docs/for-admin/install/guides/kubernetes/" ], [ "/docs/install/kubernetes.md", "/docs/for-admin/install/guides/kubernetes/" ], [ "/docs/install/manual.html", "/docs/for-admin/install/guides/manual/" ], [ "/docs/install/manual.md", "/docs/for-admin/install/guides/manual/" ], [ "/docs/install/ubuntu-manual.html", "/docs/for-admin/install/guides/ubuntu-manual/" ], [ "/docs/install/ubuntu-manual.md", "/docs/for-admin/install/guides/ubuntu-manual/" ], [ "/docs/tips/disable-timelines.html", "/docs/for-admin/moderation-tips/disable-timelines/" ], [ "/docs/tips/disable-timelines.md", "/docs/for-admin/moderation-tips/disable-timelines/" ], [ "/docs/tips/scale-out.html", "/docs/for-admin/install/resources/scale-out/" ], [ "/docs/tips/scale-out.md", "/docs/for-admin/install/resources/scale-out/" ], [ "/appendix/assets.html", "/brand-assets/" ], [ "/appendix/assets.md", "/brand-assets/" ], [ "/docs/apps.html", "/docs/for-users/resources/apps/" ], [ "/docs/apps.md", "/docs/for-users/resources/apps/" ], [ "/docs/donate.html", "/docs/donate/" ], [ "/docs/donate.md", "/docs/donate/" ], [ "/docs/faq.html", "/docs/for-users/resources/faq/" ], [ "/docs/faq.md", "/docs/for-users/resources/faq/" ], [ "/docs/getting-started.html", "/docs/for-users/onboarding/" ], [ "/docs/getting-started.md", "/docs/for-users/onboarding/" ], [ "/docs/glossary.html", "/docs/for-users/resources/glossary/" ], [ "/docs/glossary.md", "/docs/for-users/resources/glossary/" ], [ "/docs/index.md", "/docs/" ], [ "/docs/install.html", "/docs/for-admin/install/guides/" ], [ "/docs/install.md", "/docs/for-admin/install/guides/" ], [ "/docs/misskey-hub.html", "/docs/for-users/resources/misskey-hub/" ], [ "/docs/misskey-hub.md", "/docs/for-users/resources/misskey-hub/" ], [ "/docs/misskey.html", "/docs/about-misskey/" ], [ "/docs/misskey.md", "/docs/about-misskey/" ], [ "/docs/notes.html", "/docs/for-users/onboarding/warning/" ], [ "/docs/notes.md", "/docs/for-users/onboarding/warning/" ], [ "/docs/releases.html", "/docs/releases/" ], [ "/docs/releases.md", "/docs/releases/" ], [ "/docs/troubleshooting.html", "/docs/for-users/resources/troubleshooting/" ], [ "/docs/troubleshooting.md", "/docs/for-users/resources/troubleshooting/" ], [ "/blog/2021-09-11-hello-to-misskey-hub.html", "/ja/blog/2021-09-11-hello-to-misskey-hub/" ], [ "/blog/2021-09-11-hello-to-misskey-hub.md", "/ja/blog/2021-09-11-hello-to-misskey-hub/" ], [ "/blog/2021-11-05-mac2021.html", "/ja/blog/2021-11-05-mac2021/" ], [ "/blog/2021-11-05-mac2021.md", "/ja/blog/2021-11-05-mac2021/" ], [ "/blog/2021-12-01-inside-misskey-hub.html", "/ja/blog/2021-12-01-inside-misskey-hub/" ], [ "/blog/2021-12-01-inside-misskey-hub.md", "/ja/blog/2021-12-01-inside-misskey-hub/" ], [ "/blog/2022-02-11-inside-mfm.html", "/ja/blog/2022-02-11-inside-mfm/" ], [ "/blog/2022-02-11-inside-mfm.md", "/ja/blog/2022-02-11-inside-mfm/" ], [ "/blog/2022-11-28-media-k-tai.html", "/ja/blog/2022-11-28-media-k-tai/" ], [ "/blog/2022-11-28-media-k-tai.md", "/ja/blog/2022-11-28-media-k-tai/" ], [ "/blog/2023-02-08-contribute-to-earn.html", "/ja/blog/2023-02-08-contribute-to-earn/" ], [ "/blog/2023-02-08-contribute-to-earn.md", "/ja/blog/2023-02-08-contribute-to-earn/" ], [ "/blog/2023-02-13-gihyo.html", "/ja/blog/2023-02-13-gihyo/" ], [ "/blog/2023-02-13-gihyo.md", "/ja/blog/2023-02-13-gihyo/" ], [ "/blog/2023-02-13-media-k-tai.html", "/ja/blog/2023-02-13-media-k-tai/" ], [ "/blog/2023-02-13-media-k-tai.md", "/ja/blog/2023-02-13-media-k-tai/" ], [ "/blog/2023-03-04-media-itmedia.html", "/ja/blog/2023-03-04-media-itmedia/" ], [ "/blog/2023-03-04-media-itmedia.md", "/ja/blog/2023-03-04-media-itmedia/" ], [ "/blog/2023-03-22-gihyo.html", "/ja/blog/2023-03-22-gihyo/" ], [ "/blog/2023-03-22-gihyo.md", "/ja/blog/2023-03-22-gihyo/" ], [ "/blog/2023-04-08-media-nikkei-linux.html", "/ja/blog/2023-04-08-media-nikkei-linux/" ], [ "/blog/2023-04-08-media-nikkei-linux.md", "/ja/blog/2023-04-08-media-nikkei-linux/" ], [ "/blog/2023-05-15-gihyo.html", "/ja/blog/2023-05-15-gihyo/" ], [ "/blog/2023-05-15-gihyo.md", "/ja/blog/2023-05-15-gihyo/" ], [ "/blog/2023-06-14-gihyo.html", "/ja/blog/2023-06-14-gihyo/" ], [ "/blog/2023-06-14-gihyo.md", "/ja/blog/2023-06-14-gihyo/" ], [ "/blog/2023-07-01-interview.html", "/ja/blog/2023-07-01-interview/" ], [ "/blog/2023-07-01-interview.md", "/ja/blog/2023-07-01-interview/" ], [ "/blog/2023-07-10-interview.html", "/ja/blog/2023-07-10-interview/" ], [ "/blog/2023-07-10-interview.md", "/ja/blog/2023-07-10-interview/" ], [ "/blog/2023-07-12-trademark.html", "/ja/blog/2023-07-12-trademark/" ], [ "/blog/2023-07-12-trademark.md", "/ja/blog/2023-07-12-trademark/" ], [ "/blog/2023-07-14-skeb.html", "/ja/2023-07-14-skeb/" ], [ "/blog/2023-07-14-skeb.md", "/ja/2023-07-14-skeb/" ], [ "/blog/2023-07-14-xserver.html", "/ja/blog/2023-07-14-xserver/" ], [ "/blog/2023-07-14-xserver.md", "/ja/blog/2023-07-14-xserver/" ], [ "/blog/2023-07-16-media-nikkei.html", "/ja/blog/2023-07-16-media-nikkei/" ], [ "/blog/2023-07-16-media-nikkei.md", "/ja/blog/2023-07-16-media-nikkei/" ], [ "/blog/2023-07-18-shindanmaker.html", "/ja/blog/2023-07-18-shindanmaker/" ], [ "/blog/2023-07-18-shindanmaker.md", "/ja/blog/2023-07-18-shindanmaker/" ], [ "/blog/2023-07-19-gihyo.html", "/ja/blog/2023-07-19-gihyo/" ], [ "/blog/2023-07-19-gihyo.md", "/ja/blog/2023-07-19-gihyo/" ], [ "/blog/2023-08-08-misskeyhq.html", "/ja/blog/2023-08-08-misskeyhq/" ], [ "/blog/2023-08-08-misskeyhq.md", "/ja/blog/2023-08-08-misskeyhq/" ], [ "/blog/2023-08-30-conoha.html", "/ja/blog/2023-08-30-conoha/" ], [ "/blog/2023-08-30-conoha.md", "/ja/blog/2023-08-30-conoha/" ], [ "/blog/2023-09-04-media-nlab.html", "/ja/blog/2023-09-04-media-nlab/" ], [ "/blog/2023-09-04-media-nlab.md", "/ja/blog/2023-09-04-media-nlab/" ], [ "/blog/2023-09-07-hatenablog.html", "/ja/blog/2023-09-07-hatenablog/" ], [ "/blog/2023-09-07-hatenablog.md", "/ja/blog/2023-09-07-hatenablog/" ], [ "/blog/2023-09-09-interview.html", "/ja/blog/2023-09-09-interview/" ], [ "/blog/2023-09-09-interview.md", "/ja/blog/2023-09-09-interview/" ], [ "/blog/2023-09-11-gihyo.html", "/ja/blog/2023-09-11-gihyo/" ], [ "/blog/2023-09-11-gihyo.md", "/ja/blog/2023-09-11-gihyo/" ], [ "/blog/2023-09-12-sakuravps.html", "/ja/blog/2023-09-12-sakuravps/" ], [ "/blog/2023-09-12-sakuravps.md", "/ja/blog/2023-09-12-sakuravps/" ], [ "/blog/2023-09-24-release.html", "/ja/blog/2023-09-24-release/" ], [ "/blog/2023-09-24-release.md", "/ja/blog/2023-09-24-release/" ], [ "/blog/2023-10-10-release.html", "/ja/blog/2023-10-10-release/" ], [ "/blog/2023-10-10-release.md", "/ja/blog/2023-10-10-release/" ], [ "/blog/2023-10-24-gihyo.html", "/ja/blog/2023-10-24-gihyo/" ], [ "/blog/2023-10-24-gihyo.md", "/ja/blog/2023-10-24-gihyo/" ], [ "/blog/2023-10-27-xserver.html", "/ja/blog/2023-10-27-xserver/" ], [ "/blog/2023-10-27-xserver.md", "/ja/blog/2023-10-27-xserver/" ], [ "/blog/2023-11-05-mac2023.html", "/ja/blog/2023-11-05-mac2023/" ], [ "/blog/2023-11-05-mac2023.md", "/ja/blog/2023-11-05-mac2023/" ], [ "/blog/2023-11-05-release.html", "/ja/blog/2023-11-05-release/" ], [ "/blog/2023-11-05-release.md", "/ja/blog/2023-11-05-release/" ], [ "/blog/2023-11-14-gihyo.html", "/ja/blog/2023-11-14-gihyo/" ], [ "/blog/2023-11-14-gihyo.md", "/ja/blog/2023-11-14-gihyo/" ], [ "/blog/2023-11-17-release.html", "/ja/blog/2023-11-17-release/" ], [ "/blog/2023-11-17-release.md", "/ja/blog/2023-11-17-release/" ], [ "/blog/2023-12-01-2023recap.html", "/ja/blog/2023-12-01-2023recap/" ], [ "/blog/2023-12-01-2023recap.md", "/ja/blog/2023-12-01-2023recap/" ], [ "/blog/2023-12-12-gihyo.html", "/ja/blog/2023-12-12-gihyo/" ], [ "/blog/2023-12-12-gihyo.md", "/ja/blog/2023-12-12-gihyo/" ], [ "/blog/index.html", "/blog/" ], [ "/blog/index.md", "/blog/" ], [ "/help.html", "/docs/for-users/" ], [ "/help.md", "/docs/for-users/" ], [ "/home.html", "/" ], [ "/home.md", "/" ], [ "/instances.html", "/servers/" ], [ "/instances.md", "/servers/" ], [ "/ns.html", "/ns/" ], [ "/ns.md", "/ns/" ], [ "/plugins.html", "/learn-more/" ], [ "/plugins.md", "/learn-more/" ], [ "/index.html", "/" ], [ "/docs/for-users/resources/donate/", "/docs/donate/" ], ]; ================================================ FILE: assets/data/team-members.ts ================================================ export type MiHubMember = { /** Github User ID */ id: number; /** Github user name */ username: string; /** 表示用の名前 */ name?: string; /** 役割 */ occupation?: string; /** 貢献回数 */ contributions?: number; /** ついかふぃーるど(今のところつかってない) */ fields?: ({ type: 'twitter'; id: string; } | { type: 'fediverse'; acct: string; } | { type: 'website'; href: string; })[]; } | { id: 'crowdin'; username: string; name?: string; avatar?: string; }; /** 現行のコアチームメンバー */ export const coreTeamMember: MiHubMember[] = [ { id: 4439005, username: 'syuilo', name: 'しゅいろ', }, { id: 20679825, username: 'acid-chicken', name: 'Acid Chicken (硫酸鶏)', }, { id: 40626578, username: 'tai-cha', name: 'taichan', }, { id: 67428053, username: 'kakkokari-gtyih', name: 'かっこかり', }, { id: 46447427, username: 'samunohito', name: 'おさむのひと', }, { id: 22656849, username: 'anatawa12', name: 'anatawa12', }, ]; /** 過去のコアチームメンバー */ export const coreTeamEmeriti: MiHubMember[] = [ { id: 30769358, username: 'mei23', name: 'MeiMei', }, { id: 8159402, username: 'robflop', name: 'robflop', }, ]; ================================================ FILE: assets/data/toolsNav.ts ================================================ import type { NavSection } from "./nav"; export default [ { title: "_tools._forUsers.title", items: [ { i18n: "_mfmPlayground.title", description: "_mfmPlayground.description", to: "/tools/mfm-playground/", }, { i18n: "_avatarDecorationPreview.title", description: "_avatarDecorationPreview.description", to: "/tools/avatar-decoration-preview/", }, { i18n: "_customEmojiPreview.title", description: "_customEmojiPreview.description", to: "/tools/custom-emoji-preview/", }, { i18n: "_shareLinkGenerator.title", description: "_shareLinkGenerator.description", to: "/tools/share-link-generator/", }, { i18n: '_identiconGenerator.title', description: '_identiconGenerator.description', to: '/tools/identicon-generator/', }, ], }, { title: "_tools._forAdmin.title", items: [ { i18n: "_aidConverter.title", description: "_aidConverter.description", to: "/tools/aid-converter/", }, { i18n: "_miHubServerListPreview.title", description: "_miHubServerListPreview.description", to: "/tools/hub-servers-preview/", }, ], } ]; ================================================ FILE: assets/js/mi/aid.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * SPDX-License-Identifier: AGPL-3.0-only */ // AID // 長さ8の[2000年1月1日からの経過ミリ秒をbase36でエンコードしたもの] + 長さ2の[ノイズ文字列] import { customAlphabet } from 'nanoid'; export const aidRegExp = /^[0-9a-z]{10}$/; const rand = customAlphabet('0123456789', 5); const TIME2000 = 946684800000; let counter: number; counter = parseInt(rand(), 10); function getTime(time: number): string { time = time - TIME2000; if (time < 0) time = 0; return time.toString(36).padStart(8, '0'); } function getNoise(ctr: number): string { return ctr.toString(36).padStart(2, '0').slice(-2); } export function genAid(t: number, ctr: number | null = null): string { if (isNaN(t)) throw new Error('Failed to create AID: Invalid Date'); if (!ctr) { counter++; } return getTime(t) + getNoise(ctr ?? counter); } export function parseAid(id: string): { date: Date; } { const time = parseInt(id.slice(0, 8), 36) + TIME2000; return { date: new Date(time) }; } ================================================ FILE: assets/js/mi/aidx.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * SPDX-License-Identifier: AGPL-3.0-only */ // AIDX // 長さ8の[2000年1月1日からの経過ミリ秒をbase36でエンコードしたもの] + 長さ4の[個体ID] + 長さ4の[カウンタ] // (c) mei23 // https://misskey.m544.net/notes/71899acdcc9859ec5708ac24 import { customAlphabet } from 'nanoid'; export const aidxRegExp = /^[0-9a-z]{16}$/; const TIME2000 = 946684800000; const TIME_LENGTH = 8; const NODE_LENGTH = 4; const NOISE_LENGTH = 4; const nodeId = customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', NODE_LENGTH)(); let counter = 0; function getTime(time: number): string { time = time - TIME2000; if (time < 0) time = 0; return time.toString(36).padStart(TIME_LENGTH, '0').slice(-TIME_LENGTH); } function getNoise(ctr: number): string { return ctr.toString(36).padStart(NOISE_LENGTH, '0').slice(-NOISE_LENGTH); } export function genAidx(t: number, ctr: number | null = null): string { if (isNaN(t)) throw new Error('Failed to create AIDX: Invalid Date'); if (!ctr) { counter++; } return getTime(t) + nodeId + getNoise(ctr ?? counter); } export function parseAidx(id: string): { date: Date; } { const time = parseInt(id.slice(0, TIME_LENGTH), 36) + TIME2000; return { date: new Date(time) }; } ================================================ FILE: assets/js/mi/clone.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * SPDX-License-Identifier: AGPL-3.0-only */ // structredCloneが遅いため // SEE: http://var.blog.jp/archives/86038606.html // あと、Vue RefをIndexedDBに保存しようとしてstructredCloneを使ったらエラーになった // https://github.com/misskey-dev/misskey/pull/8098#issuecomment-1114144045 type Cloneable = string | number | boolean | null | { [key: string]: Cloneable } | Cloneable[]; export function deepClone(x: T): T { if (typeof x === 'object') { if (x === null) return x; if (Array.isArray(x)) return x.map(deepClone) as T; const obj = {} as Record; for (const [k, v] of Object.entries(x)) { obj[k] = deepClone(v); } return obj as T; } else { return x; } } ================================================ FILE: assets/js/mi/collapsed.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * SPDX-License-Identifier: AGPL-3.0-only */ import * as Misskey from 'misskey-js'; export function shouldCollapsed(note: Misskey.entities.Note): boolean { const collapsed = note?.cw == null && note?.text != null && ( (note.text.includes('$[x2')) || (note.text.includes('$[x3')) || (note.text.includes('$[x4')) || (note.text.includes('$[scale')) || (note.text.split('\n').length > 9) || (note.text.length > 500) || (note.files && note.files.length >= 5) ); return collapsed ?? false; } ================================================ FILE: assets/js/mi/gen-identicon.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and misskey-project * SPDX-License-Identifier: AGPL-3.0-only */ /** * Identicon generator * https://en.wikipedia.org/wiki/Identicon */ import gen from 'random-seed'; const size = 128; // px const n = 5; // resolution const margin = (size / 4); const colors = [ ['#FF512F', '#DD2476'], ['#FF61D2', '#FE9090'], ['#72FFB6', '#10D164'], ['#FD8451', '#FFBD6F'], ['#305170', '#6DFC6B'], ['#00C0FF', '#4218B8'], ['#009245', '#FCEE21'], ['#0100EC', '#FB36F4'], ['#FDABDD', '#374A5A'], ['#38A2D7', '#561139'], ['#121C84', '#8278DA'], ['#5761B2', '#1FC5A8'], ['#FFDB01', '#0E197D'], ['#FF3E9D', '#0E1F40'], ['#766eff', '#00d4ff'], ['#9bff6e', '#00d4ff'], ['#ff6e94', '#00d4ff'], ['#ffa96e', '#00d4ff'], ['#ffa96e', '#ff009d'], ['#ffdd6e', '#ff009d'], ]; const actualSize = size - (margin * 2); const cellSize = actualSize / n; const sideN = Math.floor(n / 2); /** * canvasにIdenticonを描画する * @param seed アカウントのacct */ export function genIdenticon(seed: string, canvas: HTMLCanvasElement) { const rand = gen.create(seed); canvas.width = size; canvas.height = size; const ctx = canvas.getContext('2d'); if (!ctx) return; const bgColors = colors[rand(colors.length)]; const bg = ctx.createLinearGradient(0, 0, size, size); bg.addColorStop(0, bgColors[0]); bg.addColorStop(1, bgColors[1]); ctx.fillStyle = bg as any; ctx.beginPath(); ctx.fillRect(0, 0, size, size); ctx.fillStyle = '#ffffff'; // side bitmap (filled by false) const side: boolean[][] = new Array(sideN); for (let i = 0; i < side.length; i++) { side[i] = new Array(n).fill(false); } // 1*n (filled by false) const center: boolean[] = new Array(n).fill(false); for (let x = 0; x < side.length; x++) { for (let y = 0; y < side[x].length; y++) { side[x][y] = rand(3) === 0; } } for (let i = 0; i < center.length; i++) { center[i] = rand(3) === 0; } // Draw for (let x = 0; x < n; x++) { for (let y = 0; y < n; y++) { const isXCenter = x === ((n - 1) / 2); if (isXCenter && !center[y]) continue; const isLeftSide = x < ((n - 1) / 2); if (isLeftSide && !side[x][y]) continue; const isRightSide = x > ((n - 1) / 2); if (isRightSide && !side[sideN - (x - sideN)][y]) continue; const actualX = margin + (cellSize * x); const actualY = margin + (cellSize * y); ctx.beginPath(); ctx.fillRect(actualX, actualY, cellSize, cellSize); } } } ================================================ FILE: assets/js/mi/io-emojis.ts ================================================ import { getIOEmoji } from './io-meta'; import * as Misskey from 'misskey-js'; export const customEmojisMap = new Map(); async function init() { const emojis = await getIOEmoji(); for (const emoji of emojis.emojis) { customEmojisMap.set(emoji.name, emoji); } } init(); ================================================ FILE: assets/js/mi/io-media-proxy.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * SPDX-License-Identifier: AGPL-3.0-only */ /** 各インスタンスから画像引っ張ってくるのがとても大変なのでio経由で出す */ import { withQuery } from "ufo"; export function getProxiedImageUrl(imageUrl: string, type?: 'preview' | 'emoji' | 'avatar', mustOrigin = false, noFallback = false): string { const localProxy = 'https://misskey.io/proxy'; if (imageUrl.startsWith('https://proxy.misskeyusercontent.com/') || imageUrl.startsWith('/proxy/') || imageUrl.startsWith(localProxy + '/')) { // もう既にproxyっぽそうだったらurlを取り出す imageUrl = (new URL(imageUrl)).searchParams.get('url') ?? imageUrl; } return withQuery(`${mustOrigin ? localProxy : 'https://proxy.misskeyusercontent.com'}/${type === 'preview' ? 'preview.webp' : 'image.webp'}`, { url: imageUrl, ...(!noFallback ? { 'fallback': '1' } : {}), ...(type ? { [type]: '1' } : {}), ...(mustOrigin ? { origin: '1' } : {}), }); } ================================================ FILE: assets/js/mi/io-meta.ts ================================================ import * as Misskey from 'misskey-js'; export const getIOMeta = async (): Promise => { if (!import.meta.client) { return {} as Misskey.entities.MetaDetailed; } if (!sessionStorage.getItem('miHub_io_meta')) { const meta = await fetch('https://misskey.io/api/meta'); const metaText = await meta.text(); sessionStorage.setItem('miHub_io_meta', metaText); return JSON.parse(metaText); } else { return JSON.parse(sessionStorage.getItem('miHub_io_meta') ?? ''); } } export const getIOEmoji = async (): Promise<{ emojis: Misskey.entities.EmojiSimple[] }> => { if (!import.meta.client) { return { emojis: [] }; } if (!localStorage.getItem('miHub_io_emoji')) { const emoji = await fetch('https://misskey.io/api/emojis'); const emojiText = await emoji.text(); localStorage.setItem('miHub_io_emoji', emojiText); return JSON.parse(emojiText); } else { return JSON.parse(localStorage.getItem('miHub_io_emoji') ?? ''); } } ================================================ FILE: assets/js/misc/get-issue-url.ts ================================================ import { withQuery } from 'ufo'; export async function getGhIssueUrl(options: { lang: string; repoUrl: string; additionalInfo?: Record; }) { // Issue Templateのプレフィル let environmentArr: string[] = [ '* Model and OS of the device(s):', '* Browser:', ]; let template = '02_visitor-bug-report-en.yml'; if (options.lang === 'ja') { template = '01_visitor-bug-report-ja.yml'; } if (import.meta.client) { //@ts-ignore if ('userAgentData' in navigator && 'getHighEntropyValues' in navigator.userAgentData) { //@ts-ignore const uaData = await navigator.userAgentData.getHighEntropyValues([ "fullVersionList", "platformVersion", ]); let osVersion = 'v' + uaData.platformVersion; if (uaData.platform === 'Windows') { // https://learn.microsoft.com/ja-jp/microsoft-edge/web-platform/how-to-detect-win11 const majorPlatformVersion = parseInt(uaData.platformVersion.split('.')[0]); if (majorPlatformVersion >= 13) { osVersion = '11 or later'; } else if (majorPlatformVersion > 0) { osVersion = '10'; } else { osVersion = '8.1 or before'; } } const browserData = uaData.fullVersionList.find((item: any) => item.brand.toLowerCase() !== 'not_a brand'); environmentArr = [ `* Model and OS of the device(s): ${uaData.platform} ${osVersion}`, `* Browser: ${browserData.brand} ${browserData.version}`, `* Viewport Size: ${window.innerWidth}x${window.innerHeight}`, `* (UA Detected Using getHighEntropyValues)`, ]; } else { const { UAParser } = await import('ua-parser-js'); const ua = new UAParser(); const uaRes = ua.getResult(); environmentArr = [ `* Model and OS of the device(s): ${uaRes.os.name} v${uaRes.os.version}`, `* Browser: ${uaRes.browser.name} (${uaRes.engine.name}) v${uaRes.browser.version}`, `* Viewport Size: ${window.innerWidth}x${window.innerHeight}`, `* Raw User Agent: ${uaRes.ua}`, ]; } if (options.additionalInfo) { environmentArr.push(...Object.entries(options.additionalInfo).map((v) => `* ${v[0]}: ${v[1]}`)); } environmentArr.push((options.lang === 'ja') ? '* 【自動入力済】追記は不要です' : '* [Auto-filled] No need to write additional information.'); } else { if (options.additionalInfo) { environmentArr.push(...Object.entries(options.additionalInfo).map((v) => `* ${v[0]}: ${v[1]}`)); } } return withQuery(`${options.repoUrl}/issues/new`, { template, environment: environmentArr.join('\n'), labels: 'maybe non-developer,bug?', }); } ================================================ FILE: assets/js/misc/index.ts ================================================ import type { NavItem } from '@nuxt/content'; import type { LocaleObject } from '@nuxtjs/i18n'; import { parseURL } from 'ufo'; /** * オブジェクトのパス文字列からオブジェクトの内部を参照 * @param o オブジェクト * @param s パス * @returns パスの先にあるもの */ export function resolveObjPath(o: Record, s: string): any { s = s.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties s = s.replace(/^\./, ''); // strip a leading dot var a = s.split('.'); for (var i = 0, n = a.length; i < n; ++i) { var k = a[i]; if (k in o) { o = o[k]; } else { return; } } return o; } /** * URLがドメイン内部かどうかを判別 * @param link 判別したいURL * @param base ローカルの基準となるドメイン */ export function isLocalPath(link: string, base?: string): boolean { let baseUrl; if (base) { baseUrl = base; } else { const runtimeConfig = useRuntimeConfig(); baseUrl = runtimeConfig.public.baseUrl; } const rootDomain = parseURL(base); const url = parseURL(link); return (!url.host || rootDomain.host === url.host); } export function sanitizeInternalPath(path: string): string { const runtimeConfig = useRuntimeConfig(); return path .replace(/^(\/((?!ja)[a-z]{2}))?\/blog\/(.+)/g, '/ja/blog/$3') .replace(new RegExp(`^(\/(${(runtimeConfig.public.locales as LocaleObject[]).map((l) => l.code).join('|')})\/?){2,}(.*)$`, 'g'), '$1$2'); } /** * ナビゲーションObjectを合致する条件まで深掘り * @param obj ナビゲーションObject * @param condition 深掘りを停止する条件 * @returns 深掘りしたナビゲーションObject */ export const findDeepObject = (obj: NavItem, condition: (v: NavItem) => boolean): NavItem | null => { if (condition(obj)) { return obj; } if (obj?.children && obj.children.length > 0) { for (let i = 0; i < obj.children.length; i++) { const result = findDeepObject(obj.children[i], condition); if (result) { return result; } } } return null; }; /** * Clipboardに値をコピー(TODO: 文字列以外も対応) */ export function copyText(val: string) { if (!import.meta.client) return; // 空div 生成 const tmp = document.createElement('div'); // 選択用のタグ生成 const pre = document.createElement('pre'); // 親要素のCSSで user-select: none だとコピーできないので書き換える pre.style.webkitUserSelect = 'auto'; pre.style.userSelect = 'auto'; tmp.appendChild(pre).textContent = val; // 要素を画面外へ const s = tmp.style; s.position = 'fixed'; s.right = '200%'; // body に追加 document.body.appendChild(tmp); // 要素を選択 document.getSelection()?.selectAllChildren(tmp); // クリップボードにコピー const result = document.execCommand('copy'); // 要素削除 document.body.removeChild(tmp); return result; } /** * Converts half-width Katakana characters to full-width Katakana characters. * @param str - The string to convert. * @returns The converted string with full-width Katakana characters. */ export function kanaHalfToFull(str: string): string { const kanaMap: Record = { 'ガ': 'ガ', 'ギ': 'ギ', 'グ': 'グ', 'ゲ': 'ゲ', 'ゴ': 'ゴ', 'ザ': 'ザ', 'ジ': 'ジ', 'ズ': 'ズ', 'ゼ': 'ゼ', 'ゾ': 'ゾ', 'ダ': 'ダ', 'ヂ': 'ヂ', 'ヅ': 'ヅ', 'デ': 'デ', 'ド': 'ド', 'バ': 'バ', 'ビ': 'ビ', 'ブ': 'ブ', 'ベ': 'ベ', 'ボ': 'ボ', 'パ': 'パ', 'ピ': 'ピ', 'プ': 'プ', 'ペ': 'ペ', 'ポ': 'ポ', 'ヴ': 'ヴ', 'ヷ': 'ヷ', 'ヺ': 'ヺ', 'ア': 'ア', 'イ': 'イ', 'ウ': 'ウ', 'エ': 'エ', 'オ': 'オ', 'カ': 'カ', 'キ': 'キ', 'ク': 'ク', 'ケ': 'ケ', 'コ': 'コ', 'サ': 'サ', 'シ': 'シ', 'ス': 'ス', 'セ': 'セ', 'ソ': 'ソ', 'タ': 'タ', 'チ': 'チ', 'ツ': 'ツ', 'テ': 'テ', 'ト': 'ト', 'ナ': 'ナ', 'ニ': 'ニ', 'ヌ': 'ヌ', 'ネ': 'ネ', 'ノ': 'ノ', 'ハ': 'ハ', 'ヒ': 'ヒ', 'フ': 'フ', 'ヘ': 'ヘ', 'ホ': 'ホ', 'マ': 'マ', 'ミ': 'ミ', 'ム': 'ム', 'メ': 'メ', 'モ': 'モ', 'ヤ': 'ヤ', 'ユ': 'ユ', 'ヨ': 'ヨ', 'ラ': 'ラ', 'リ': 'リ', 'ル': 'ル', 'レ': 'レ', 'ロ': 'ロ', 'ワ': 'ワ', 'ヲ': 'ヲ', 'ン': 'ン', 'ァ': 'ァ', 'ィ': 'ィ', 'ゥ': 'ゥ', 'ェ': 'ェ', 'ォ': 'ォ', 'ッ': 'ッ', 'ャ': 'ャ', 'ュ': 'ュ', 'ョ': 'ョ', '。': '。', '、': '、', 'ー': 'ー', '「': '「', '」': '」', '・': '・' }; var reg = new RegExp('(' + Object.keys(kanaMap).join('|') + ')', 'g'); return str.replace(reg, (m) => kanaMap[m]).replace(/゙/g, '゛').replace(/゚/g, '゜'); }; ================================================ FILE: assets/js/misc/uwu.ts ================================================ export function uwu(setLocalStorage = true, enableLog = true) { if (import.meta.client) { const params = new URLSearchParams(window.location.search); if (params.has('uwu') || params.has('kawaii') || window.localStorage.getItem('miHub_uwu') === 'true') { const uwuPreference = params.get('uwu') ?? params.get('kawaii'); if (uwuPreference === 'false') { if (setLocalStorage) window.localStorage.setItem('miHub_uwu', 'false'); return false; } else { if (setLocalStorage) window.localStorage.setItem('miHub_uwu', 'true'); if (enableLog) console.log('Kawaii mode is enabled! You can disable it by adding ?uwu=false or ?kawaii=false to the URL.'); return true; } } else { if (setLocalStorage) window.localStorage.setItem('miHub_uwu', 'false'); return false; } } else { return false; } } ================================================ FILE: assets/js/scroll-to/index.ts ================================================ export function scrollTo(qs: string) { if (import.meta.client) { document.querySelector(qs)?.scrollIntoView({ behavior: 'smooth', }); } } ================================================ FILE: assets/js/vFadeIn.ts ================================================ import type { Directive } from 'vue'; export const vFadeIn = { mounted: (src, binding, vn) => { if (window.location.search.includes('ss')) return; const name = binding.value || 'default'; src.classList.add(`__v_fadeIn_${name}_out`); src.children[0].style.transition = `all 0.5s ease`; function onIntersect(entries: IntersectionObserverEntry[]) { for (const entry of entries) { if (entry.isIntersecting) { entry.target.classList.add(`__v_fadeIn_${name}_in`); } else { entry.target.classList.remove(`__v_fadeIn_${name}_in`); } } } const observer = new IntersectionObserver(onIntersect, { root: null, rootMargin: '9999px 0px -200px 0px', threshold: 0, }); observer.observe(src); } } satisfies Directive; ================================================ FILE: assets/js/vTextUnderline.ts ================================================ import type { Directive } from 'vue'; export const vTextUnderline = { mounted: (src, binding, vn) => { if (window.location.search.includes('ss')) { src.classList.add(`__v_textUnderline`); src.classList.add(`__v_textUnderline_in`); return; } src.classList.add(`__v_textUnderline`); src.classList.add(`__v_textUnderline_out`); //src.children[0].style.transition = `all 0.5s ease`; function onIntersect(entries: IntersectionObserverEntry[]) { for (const entry of entries) { if (entry.isIntersecting) { entry.target.classList.add(`__v_textUnderline_in`); } else { entry.target.classList.remove(`__v_textUnderline_in`); } } } const observer = new IntersectionObserver(onIntersect, { root: null, rootMargin: '9999px 0px -300px 0px', threshold: 0, }); observer.observe(src); } } satisfies Directive; ================================================ FILE: components/about-us/TeamMember.vue ================================================ ================================================ FILE: components/brand-assets/ImgPreview.vue ================================================ ================================================ FILE: components/charts/CircGraph.vue ================================================ ================================================ FILE: components/content/AiModeB.vue ================================================ ================================================ FILE: components/content/ApiPermissions.vue ================================================ ================================================ FILE: components/content/Badge.vue ================================================ ================================================ FILE: components/content/Danger.vue ================================================ ================================================ FILE: components/content/Fukidashi.vue ================================================ ================================================ FILE: components/content/GDetails.vue ================================================ ================================================ FILE: components/content/MfmPreview.vue ================================================ ================================================ FILE: components/content/MiWebEmbed.vue ================================================ ================================================ FILE: components/content/MkIndex.vue ================================================ ================================================ FILE: components/content/ProseA.vue ================================================ ================================================ FILE: components/content/ProseImg.vue ================================================ ================================================ FILE: components/content/ProseTable.vue ================================================ ================================================ FILE: components/content/Tip.vue ================================================ ================================================ FILE: components/content/Warning.vue ================================================ ================================================ FILE: components/content/X__Blog__2023-12-19-mac202319__Figure1.vue ================================================ ================================================ FILE: components/content/X__Docs__mi-card__Calculator.vue ================================================ ================================================ FILE: components/content/X__Docs__mi-card__InteractiveView.vue ================================================ ================================================ FILE: components/docs/AsideNav.vue ================================================ ================================================ FILE: components/docs/PrevNext.vue ================================================ ================================================ FILE: components/docs/ReadersNav.vue ================================================ ================================================ FILE: components/docs/SteppedGuide.vue ================================================ ================================================ FILE: components/docs/TocLinks.vue ================================================ ================================================ FILE: components/g/AiChan.vue ================================================ ================================================ FILE: components/g/BsCopyButton.vue ================================================ ================================================ FILE: components/g/Button.vue ================================================ ================================================ FILE: components/g/Dots.vue ================================================ ================================================ FILE: components/g/Footer.vue ================================================ ================================================ FILE: components/g/Hero.vue ================================================ ================================================ FILE: components/g/LargeLinks.vue ================================================ ================================================ FILE: components/g/Links.vue ================================================ ================================================ FILE: components/g/LocalNav.vue ================================================ ================================================ FILE: components/g/Marquee.vue ================================================ ================================================ FILE: components/g/MisskeyGateway.vue ================================================ ================================================ FILE: components/g/Nav.vue ================================================ ================================================ FILE: components/g/NoScript.server.vue ================================================ ================================================ FILE: components/g/NuxtLink.vue ================================================ ================================================ FILE: components/g/SocialShare.vue ================================================ ================================================ FILE: components/index/GetStarted.vue ================================================ ================================================ FILE: components/index/Sponsors.vue ================================================ ================================================ FILE: components/index/desktop.vue ================================================ ================================================ FILE: components/index/hero/Bg.vue ================================================ ================================================ FILE: components/index/hero/Mi3d.vue ================================================ ================================================ FILE: components/index/hero/NodesAnim.vue ================================================ ================================================ FILE: components/index/hero/Particles.vue ================================================ ================================================ FILE: components/index/hero/calc.ts ================================================ /* ------------------------------------------ | rand:float - returns random float | | min:number - minimum value | max:number - maximum value | ease:function - easing function to apply to the random value | | Get a random float between two values, | with the option of easing bias. ------------------------------------------ */ export function rand(min, max?, ease?) { if(max === undefined) { max = min; min = 0; } let random = Math.random(); if(ease) { random = ease(Math.random(), 0, 1, 1); } return random * (max - min) + min; } /* ------------------------------------------ | randInt:integer - returns random integer | | min:number - minimum value | max:number - maximum value | ease:function - easing function to apply to the random value | | Get a random integer between two values, | with the option of easing bias. ------------------------------------------ */ export function randInt(min, max?, ease?) { if(max === undefined) { max = min; min = 0; } let random = Math.random(); if(ease) { random = ease(Math.random(), 0, 1, 1); } return Math.floor(Math.random() * (max - min + 1)) + min; } /* ------------------------------------------ | randArr:item - returns random iem from array | | arr:array - the array to randomly pull from | | Get a random item from an array. ------------------------------------------ */ export function randArr(arr) { return arr[Math.floor(Math.random() * arr.length)]; } /* ------------------------------------------ | map:number - returns a mapped value | | val:number - input value | inputMin:number - minimum of input range | inputMax:number - maximum of input range | outputMin:number - minimum of output range | outputMax:number - maximum of output range | | Get a mapped value from and input min/max | to an output min/max. ------------------------------------------ */ export function map(val, inputMin, inputMax, outputMin, outputMax) { return ((outputMax - outputMin) * ((val - inputMin) / (inputMax - inputMin))) + outputMin; } /* ------------------------------------------ | clamp:number - returns clamped value | | val:number - value to be clamped | min:number - minimum of clamped range | max:number - maximum of clamped range | | Clamp a value to a min/max range. ------------------------------------------ */ export function clamp(val, min, max) { return Math.max(Math.min(val, max), min); } export function lerp(current, target, mix) { return current + (target - current) * mix; } /* ------------------------------------------ | roundToUpperInterval:number - returns rounded up value | | value:number - value to be rounded | interval:number - interval | | Round up a value to the next highest interval. ------------------------------------------ */ export function roundToUpperInterval(value, interval) { if(value % interval === 0) { value += 0.0001; } return Math.ceil(value / interval) * interval; } /* ------------------------------------------ | roundDownToInterval:number - returns rounded down value | | value:number - value to be rounded | interval:number - interval | | Round down a value to the next lowest interval. ------------------------------------------ */ export function roundToLowerInterval(value, interval) { if(value % interval === 0) { value -= 0.0001; } return Math.floor(value / interval) * interval; } /* ------------------------------------------ | roundToNearestInterval:number - returns rounded value | | value:number - value to be rounded | interval:number - interval | | Round a value to the nearest interval. ------------------------------------------ */ export function roundToNearestInterval(value, interval) { return Math.round(value / interval) * interval; } /* ------------------------------------------ | intersectSphere:boolean - returns if intersecting or not | | a:object - sphere 1 with radius, x, y, and z | b:object - sphere 2 with radius, x, y, and z | | Check if two sphere are intersecting | in 3D space. ------------------------------------------ */ export function intersectSphere(a, b) { let distance = Math.sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) + (a.z - b.z) * (a.z - b.z) ); return distance < (a.radius + b.radius); } /* ------------------------------------------ | getIndexFromCoords:number - returns index | | x:number - x value (column) | y:number - y value (row) | w:number - width of grid | | Convert from grid coords to index. ------------------------------------------ */ export function getIndexFromCoords(x, y, w) { return x + (y * w); } /* ------------------------------------------ | getCoordsFromIndex:object - returns coords | | i:number - index | w:number - width of grid | | Convert from index to grid coords. ------------------------------------------ */ export function getCoordsFromIndex(i, w) { return { x: i % w, y: Math.floor(i / w) } } export function visibleHeightAtZDepth(depth, camera) { // https://discourse.threejs.org/t/functions-to-calculate-the-visible-width-height-at-a-given-z-depth-from-a-perspective-camera/269 let cameraOffset = camera.position.z; if ( depth < cameraOffset ) depth -= cameraOffset; else depth += cameraOffset; let vFOV = camera.fov * Math.PI / 180; return 2 * Math.tan( vFOV / 2 ) * Math.abs( depth ); } export function visibleWidthAtZDepth(depth, camera) { // https://discourse.threejs.org/t/functions-to-calculate-the-visible-width-height-at-a-given-z-depth-from-a-perspective-camera/269 let height = visibleHeightAtZDepth( depth, camera ); return height * camera.aspect; } ================================================ FILE: components/index/hero/ease.ts ================================================ /* ------------------------------------------ | inQuad:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inQuad. ------------------------------------------ */ export function inQuad(t, b, c, d) { return c*(t/=d)*t + b; } /* ------------------------------------------ | outQuad:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outQuad. ------------------------------------------ */ export function outQuad(t, b, c, d) { return -c *(t/=d)*(t-2) + b; } /* ------------------------------------------ | inOutQuad:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutQuad. ------------------------------------------ */ export function inOutQuad(t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t + b; return -c/2 * ((--t)*(t-2) - 1) + b; } /* ------------------------------------------ | inCubic:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inCubic. ------------------------------------------ */ export function inCubic(t, b, c, d) { return c*(t/=d)*t*t + b; } /* ------------------------------------------ | outCubic:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outCubic. ------------------------------------------ */ export function outCubic(t, b, c, d) { return c*((t=t/d-1)*t*t + 1) + b; } /* ------------------------------------------ | inOutCubic:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutCubic. ------------------------------------------ */ export function inOutCubic(t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t + b; return c/2*((t-=2)*t*t + 2) + b; } /* ------------------------------------------ | inQuart:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inQuart. ------------------------------------------ */ export function inQuart(t, b, c, d) { return c*(t/=d)*t*t*t + b; } /* ------------------------------------------ | outQuart:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outQuart. ------------------------------------------ */ export function outQuart(t, b, c, d) { return -c * ((t=t/d-1)*t*t*t - 1) + b; } /* ------------------------------------------ | inOutQuart:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutQuart. ------------------------------------------ */ export function inOutQuart(t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t + b; return -c/2 * ((t-=2)*t*t*t - 2) + b; } /* ------------------------------------------ | inQuint:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inQuint. ------------------------------------------ */ export function inQuint(t, b, c, d) { return c*(t/=d)*t*t*t*t + b; } /* ------------------------------------------ | outQuint:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outQuint. ------------------------------------------ */ export function outQuint(t, b, c, d) { return c*((t=t/d-1)*t*t*t*t + 1) + b; } /* ------------------------------------------ | inOutQuint:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutQuint. ------------------------------------------ */ export function inOutQuint(t, b, c, d) { if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; return c/2*((t-=2)*t*t*t*t + 2) + b; } /* ------------------------------------------ | inSine:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inSine. ------------------------------------------ */ export function inSine(t, b, c, d) { return -c * Math.cos(t/d * (Math.PI/2)) + c + b; } /* ------------------------------------------ | outSine:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outSine. ------------------------------------------ */ export function outSine(t, b, c, d) { return c * Math.sin(t/d * (Math.PI/2)) + b; } /* ------------------------------------------ | inOutSine:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutSine. ------------------------------------------ */ export function inOutSine(t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; } /* ------------------------------------------ | inExpo:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inExpo. ------------------------------------------ */ export function inExpo(t, b, c, d) { return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; } /* ------------------------------------------ | outExpo:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outExpo. ------------------------------------------ */ export function outExpo(t, b, c, d) { return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; } /* ------------------------------------------ | inOutExpo:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutExpo. ------------------------------------------ */ export function inOutExpo(t, b, c, d) { if (t==0) return b; if (t==d) return b+c; if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; } /* ------------------------------------------ | inCirc:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inCirc. ------------------------------------------ */ export function inCirc(t, b, c, d) { return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; } /* ------------------------------------------ | outCirc:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outCirc. ------------------------------------------ */ export function outCirc(t, b, c, d) { return c * Math.sqrt(1 - (t=t/d-1)*t) + b; } /* ------------------------------------------ | inOutCirc:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutCirc. ------------------------------------------ */ export function inOutCirc(t, b, c, d) { if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; } /* ------------------------------------------ | inElastic:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inElastic. ------------------------------------------ */ export function inElastic(t, b, c, d) { let s=1.70158;let p=0;let a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; let s=p/4; } else s = p/(2*Math.PI) * Math.asin (c/a); return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; } /* ------------------------------------------ | outElastic:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on outElastic. ------------------------------------------ */ export function outElastic(t, b, c, d) { let s=1.70158;let p=0;let a=c; if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; if (a < Math.abs(c)) { a=c; let s=p/4; } else s = p/(2*Math.PI) * Math.asin (c/a); return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; } /* ------------------------------------------ | inOutElastic:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | | Get an eased float value based on inOutElastic. ------------------------------------------ */ export function inOutElastic(t, b, c, d) { let s=1.70158;let p=0;let a=c; if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); if (a < Math.abs(c)) { a=c; let s=p/4; } else s = p/(2*Math.PI) * Math.asin (c/a); if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; } /* ------------------------------------------ | inBack:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | s:number - strength | | Get an eased float value based on inBack. ------------------------------------------ */ export function inBack(t, b, c, d, s) { if (s == undefined) s = 1.70158; return c*(t/=d)*t*((s+1)*t - s) + b; } /* ------------------------------------------ | outBack:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | s:number - strength | | Get an eased float value based on outBack. ------------------------------------------ */ export function outBack(t, b, c, d, s) { if (s == undefined) s = 1.70158; return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; } /* ------------------------------------------ | inOutBack:float - returns eased float value | | t:number - current time | b:number - beginning value | c:number - change in value | d:number - duration | s:number - strength | | Get an eased float value based on inOutBack. ------------------------------------------ */ export function inOutBack(t, b, c, d, s) { if (s == undefined) s = 1.70158; if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; } ================================================ FILE: components/index/hero/particles-worker.ts ================================================ import * as THREE from 'three'; import * as Calc from './calc'; import * as Ease from './ease'; function hexToInt(rrggbb: string): number { if (rrggbb.startsWith('#')) rrggbb = rrggbb.substr(1); return parseInt(rrggbb, 16); } class Ripple { private loader: Loader; private system: System; private array: Ripple[]; private group: THREE.Object3D; private sphere: THREE.Sphere; private strength: number; // 波の高さ private threshold: number; private growth: number; private life: number; private decay: number; private influence: THREE.Vector3; private geometry: THREE.TubeGeometry; private material: THREE.LineBasicMaterial; private mesh: THREE.Mesh; constructor(config, system) { this.system = system; this.loader = this.system.loader; this.array = config.array; this.group = config.group; this.sphere = new THREE.Sphere(new THREE.Vector3(config.x, config.y, config.z), 0); this.strength = config.strength ? config.strength : Calc.rand(7, 15); this.threshold = Calc.rand(10, 30); this.growth = Calc.rand(0.2, 0.5); this.life = 1; this.decay = Calc.rand(0.01, 0.02); this.influence = new THREE.Vector3(); const points: THREE.Vector3[] = []; const resolution = 64; for (let j = 0; j < (Math.PI * 2) + ((Math.PI) / resolution); j += (2 * Math.PI) / resolution) { points.push(new THREE.Vector3(Math.cos(j), Math.sin(j), 0)); } const path = new THREE.CatmullRomCurve3(points, true); this.geometry = new THREE.TubeGeometry(path, resolution, 0.01, 16); this.material = new THREE.MeshBasicMaterial({ color: config.color, opacity: 1, transparent: true, depthTest: false, }); //this.material.onBeforeRender = () => {}; this.mesh = new THREE.Mesh(this.geometry, this.material); this.mesh.rotation.x = Math.PI / 2; this.mesh.position.x = this.sphere.center.x; this.mesh.position.y = 0; this.mesh.position.z = this.sphere.center.z; this.group.add(this.mesh); } getInfluenceVector(vec) { this.influence.set(0, 0, 0); let distance = this.sphere.distanceToPoint(vec); if(distance <= this.threshold ) { let ease = Ease.inOutSine(this.threshold - distance, 0, 1, this.threshold); let power = (this.strength * ease * this.life); this.influence.addVectors(vec, this.sphere.center).multiplyScalar(power); } return this.influence; } update(i) { this.sphere.radius += (this.growth * this.life) * this.loader.deltaTimeNormal; this.life -= this.decay * this.loader.deltaTimeNormal; this.mesh.position.y = (1 - this.life) * -2; let newScale = 0.001 + this.sphere.radius; this.mesh.scale.set(newScale, newScale, newScale); this.mesh.material.opacity = this.life / 3; if(this.life <= 0) { this.destroy(i); } } destroy(i) { this.geometry.dispose(); this.material.dispose(); this.group.remove(this.mesh); this.array.splice(i, 1); } } class Particle { private loader: Loader; private system: System; private lerpFactor = 0.3; private dampFactor = 0.3; private group: THREE.Object3D; private x: number; private y: number; private z: number; private size: number; private color: number; private opacity: number; public base: THREE.Vector3; public velocity: THREE.Vector3; private geometry: THREE.SphereGeometry; private material: THREE.MeshBasicMaterial; private mesh: THREE.Mesh; constructor(config, system) { this.system = system; this.loader = this.system.loader; this.group = config.group; this.x = config.x; this.y = config.y; this.z = config.z; this.size = config.size; this.color = config.color; this.opacity = config.opacity; this.createMesh(); this.base = new THREE.Vector3(config.x, config.y, config.z); this.velocity = new THREE.Vector3(0, 0, 0); } createMesh() { this.geometry = this.system.sphereGeometry; this.material = new THREE.MeshBasicMaterial({ color: this.color, transparent: true, opacity: this.opacity, depthTest: false, precision: 'lowp' }); this.mesh = new THREE.Mesh(this.geometry, this.material); this.mesh.position.x = this.x; this.mesh.position.y = this.y; this.mesh.position.z = this.z; this.mesh.scale.set(this.size, this.size, this.size); this.group.add(this.mesh); } update() { const scale = 0.075 + (Math.abs(this.velocity.y) / 25) this.mesh.scale.set(scale, scale, scale); //const opacity = 0.15 + (Math.abs(this.velocity.y) / 1) //this.mesh.material.opacity = Calc.clamp(opacity, 0.15, 1); const opacity = 0 + (Math.abs(this.velocity.y) / 1) this.mesh.material.opacity = Calc.clamp(opacity, 0, 1); this.velocity.y += (this.base.y - this.mesh.position.y) * this.lerpFactor; this.velocity.multiplyScalar(this.dampFactor); this.mesh.position.add(this.velocity); } } class Drop { private loader: Loader; private system: System; private array: Drop[]; private group: THREE.Object3D; private x: number; private y: number; private z: number; private size: number; private color: number; private opacity: number; private strength: number; private yBase: number; private progress: number = 0; private rate: number = 0.01; private geometry: System['boxGeometry']; private material: THREE.MeshBasicMaterial; private mesh: THREE.Mesh; constructor(config, system) { this.system = system; this.loader = this.system.loader; this.array = config.array; this.group = config.group; this.x = config.x; this.y = config.y; this.z = config.z; this.size = config.size; this.color = config.color; this.opacity = config.opacity; this.strength = config.strength; this.progress = config.progress ?? 0; this.yBase = config.y; this.createMesh(); } createMesh() { this.geometry = this.system.boxGeometry; this.material = new THREE.MeshBasicMaterial({ color: this.color, transparent: true, opacity: this.opacity, depthTest: false, precision: 'lowp' }); this.mesh = new THREE.Mesh(this.geometry, this.material); this.mesh.position.x = this.x; this.mesh.position.y = this.y; this.mesh.position.z = this.z; this.mesh.scale.set(this.size, this.size, this.size); this.group.add(this.mesh); } update(i) { this.progress += this.rate * this.loader.deltaTimeNormal; this.mesh.position.y = this.yBase - Ease.inExpo(this.progress, 0, 1, 1) * this.yBase; this.mesh.scale.set(this.size, this.size + this.size * 16 * Ease.inExpo(this.progress, 0, 1, 1), this.size); this.mesh.material.opacity = Ease.inExpo(this.progress, 0, 1, 1); if(this.progress >= 1) { this.geometry.dispose(); this.material.dispose(); this.group.remove(this.mesh); this.array.splice(i, 1); this.system.createRipple(this.mesh.position.x, this.mesh.position.z, this.strength); } } } class System { public loader: Loader; private drops: Drop[] = []; private ripples: Ripple[] = []; private particles: Particle[] = []; public sphereGeometry: THREE.SphereGeometry; public boxGeometry: THREE.BoxGeometry; private center: THREE.Vector3; private particleGroup: THREE.Object3D; private size = 96; private cols = 32; private rows = 32; private tick: number = 0; private dropTick = 0; private dropTickMin = 18; private dropTickMax = 20; private particleColor: number; private rippleColor: number; private dropColor: number; constructor(loader, config: { particleColor: string; rippleColor: string; dropColor: string; }) { this.loader = loader; this.particleColor = hexToInt(config.particleColor); this.rippleColor = hexToInt(config.rippleColor); this.dropColor = hexToInt(config.dropColor); this.sphereGeometry = new THREE.SphereGeometry(1, 16, 16); this.boxGeometry = new THREE.BoxGeometry(1, 1, 1); this.center = new THREE.Vector3(); this.loader.camera.lookAt(this.center); this.particleGroup = new THREE.Object3D(); this.particleGroup.scale.set(1, 1, 1); this.loader.scene.add(this.particleGroup); for (let col = 0; col < this.cols; col++) { for (let row = 0; row < this.rows; row++) { let x = Calc.map(col, 0, this.cols - 1, -this.size / 2, this.size / 2); let y = 0; let z = Calc.map(row, 0, this.rows - 1, -this.size / 2, this.size / 2); this.particles.push(new Particle({ group: this.particleGroup, x: x, y: y, z: z, size: 0.01, color: this.particleColor, opacity: 0.01 }, this)); } } for (let i = 0; i < 5; i++) { this.createDrop(Math.random()); } } createDrop(progress = 0) { this.drops.push(new Drop({ array: this.drops, group: this.particleGroup, x: Calc.rand(-this.size / 2, this.size / 2), y: Calc.rand(30, 50), z: Calc.rand(-this.size / 2, this.size / 2), size: 0.15, color: this.dropColor, opacity: 0, progress }, this)); } updateDrops() { let i = this.drops.length; while(i--) { this.drops[i].update(i); } } createRipple(x, z, strength) { this.ripples.push(new Ripple({ array: this.ripples, group: this.particleGroup, x: x, y: -0.1, z: z, color: this.rippleColor, strength: strength }, this)); } updateRipples() { let i = this.ripples.length; while(i--) { this.ripples[i].update(i); } } update() { { let i = this.particles.length; while(i--) { this.particles[i].update(); } } if(this.tick >= this.dropTick) { this.createDrop(); this.dropTick = Calc.randInt(this.dropTickMin, this.dropTickMax); this.tick = 0; } this.updateDrops(); this.updateRipples(); { let i = this.particles.length; while(i--) { let j = this.ripples.length; while(j--) { let particle = this.particles[i]; let ripple = this.ripples[j]; let influence = ripple.getInfluenceVector(particle.base); influence.setX(0); influence.setZ(0); particle.velocity.add(influence); } } } this.particleGroup.rotation.x = Math.cos(this.loader.elapsedMilliseconds * 0.0005) * 0.1; this.particleGroup.rotation.y = Math.PI * 0.25 + Math.sin(this.loader.elapsedMilliseconds * 0.0005) * -0.2; this.tick += this.loader.deltaTimeNormal; } } class Loader { public timescale: number = 0.75; public camera: THREE.PerspectiveCamera; public clock: THREE.Clock; public deltaTimeSeconds: number; public deltaTimeMilliseconds: number; public deltaTimeNormal: number; public elapsedMilliseconds: number; public system: System; public scene: THREE.Scene; public renderer: THREE.WebGLRenderer; private diffTime: number; private raf: ReturnType; private dom: HTMLElement; constructor(container: HTMLElement, width, height) { this.dom = container; this.raf = null; this.setupTime(); this.setupScene(); this.setupCamera(); this.setupRenderer(); this.listen(); this.onResize(width, height); this.system = new System(this, { particleColor: '#86b300', dropColor: '#86b300', rippleColor: '#86b300', }); this.loop(); } setupTime() { this.clock = new THREE.Clock(); this.deltaTimeSeconds = this.clock.getDelta() * this.timescale; this.deltaTimeMilliseconds = this.deltaTimeSeconds * 1000; this.deltaTimeNormal = this.deltaTimeMilliseconds / (1000 / 60); this.elapsedMilliseconds = 0; } setupScene() { this.scene = new THREE.Scene(); } setupCamera() { this.camera = new THREE.PerspectiveCamera(70, 0, 0.0001, 10000); //this.camera.position.x = 0; //this.camera.position.y = 0; //this.camera.position.z = 20; this.camera.position.x = 0; this.camera.position.y = -30; this.camera.position.z = 0; } setupRenderer() { this.renderer = new THREE.WebGLRenderer({ canvas: this.dom, alpha: true, antialias: true }); } update() { this.deltaTimeSeconds = this.clock.getDelta(); if(this.diffTime) { this.deltaTimeSeconds -= this.diffTime; this.diffTime = 0; } this.deltaTimeSeconds *= this.timescale; this.deltaTimeMilliseconds = this.deltaTimeSeconds * 1000; this.deltaTimeNormal = this.deltaTimeMilliseconds / (1000 / 60); this.elapsedMilliseconds += this.deltaTimeMilliseconds; this.system.update(); } render() { this.renderer.render(this.scene, this.camera); } listen() { //window.addEventListener('resize', (e) => this.onResize(e)); } onResize(width, height) { this.camera.aspect = width / height; this.camera.updateProjectionMatrix(); //this.renderer.setPixelRatio(window.devicePixelRatio > 1 ? 2 : 1); this.renderer.setSize(width, height, false); } loop() { this.update(); this.render(); this.raf = requestAnimationFrame(() => this.loop()); } destroy() { cancelAnimationFrame(this.raf); } } onmessage = (event) => { new Loader(event.data.canvas, event.data.width, event.data.height); }; ================================================ FILE: components/index/mobile.vue ================================================ ================================================ FILE: components/misc/AiSign.vue ================================================ ================================================ FILE: components/mk/AnimBg.vue ================================================ ================================================ FILE: components/mk/CustomEmoji.vue ================================================ ================================================ FILE: components/mk/Google.vue ================================================ ================================================ FILE: components/mk/Loading.vue ================================================ ================================================ FILE: components/mk/Mention.vue ================================================ ================================================ FILE: components/mk/Mfm.ts ================================================ /* * SPDX-FileCopyrightText: syuilo and other misskey contributors * SPDX-License-Identifier: AGPL-3.0-only */ import { h } from 'vue'; import type { VNode } from 'vue'; import * as mfm from 'mfm-js'; import MkGoogle from '@/components/mk/Google.vue'; import MkSparkle from '@/components/mk/Sparkle.vue'; import MkTime from '@/components/mk/Time.vue'; import MkCustomEmoji from '@/components/mk/CustomEmoji.vue'; import MkMention from '@/components/mk/Mention.vue'; import NuxtLink from '@/components/g/NuxtLink.vue'; import ProseAVue from '@/components/content/ProseA.vue'; import ClockIco from 'bi/clock.svg'; const QUOTE_STYLE = ` display: block; margin: 8px; padding: 6px 0 6px 12px; color: currentColor; border-left: solid 3px currentColor; opacity: 0.7; `.split('\n').join(' '); function safeParseFloat(str: unknown): number | null { if (typeof str !== 'string' || str === '') return null; const num = parseFloat(str); if (isNaN(num)) return null; return num; } export default function(props: { text: string; plain?: boolean; nowrap?: boolean; isNote?: boolean; emojiUrls?: string[]; rootScale?: number; /** 表示の基準にするMisskeyサーバーのドメイン */ baseHost?: string; /** 差し込むカスタム絵文字(:key:と画像URL) */ customEmojis?: Record; }) { const isNote = props.isNote !== undefined ? props.isNote : true; if (props.text == null || props.text === '') return; const ast = (props.plain ? mfm.parseSimple : mfm.parse)(props.text); const validTime = (t: string | boolean | null | undefined) => { if (t == null || typeof t !== 'string') return null; return t.match(/^[0-9.]+s$/) ? t : null; }; const validColor = (c: string | boolean | null | undefined): string | null => { if (c == null || typeof c !== 'string') return null; return c.match(/^[0-9a-f]{3,6}$/i) ? c : null; }; const useAnim = true; /** * Gen Vue Elements from MFM AST * @param ast MFM AST * @param scale How times large the text is */ const genEl = (ast: mfm.MfmNode[], scale: number) => ast.map((token): VNode | string | (VNode | string)[] => { switch (token.type) { case 'text': { const text = token.props.text.replace(/(\r\n|\n|\r)/g, '\n'); if (!props.plain) { const res: (VNode | string)[] = []; for (const t of text.split('\n')) { res.push(h('br')); res.push(t); } res.shift(); return res; } else { return [text.replace(/\n/g, ' ')]; } } case 'bold': { return [h('b', genEl(token.children, scale))]; } case 'strike': { return [h('del', genEl(token.children, scale))]; } case 'italic': { return h('i', { style: 'font-style: oblique;', }, genEl(token.children, scale)); } case 'fn': { // TODO: CSSを文字列で組み立てていくと token.props.args.~~~ 経由でCSSインジェクションできるのでよしなにやる let style; switch (token.props.name) { case 'tada': { const speed = validTime(token.props.args.speed) ?? '1s'; style = 'font-size: 150%;' + (useAnim ? `animation: tada ${speed} linear infinite both;` : ''); break; } case 'jelly': { const speed = validTime(token.props.args.speed) ?? '1s'; style = (useAnim ? `animation: mfm-rubberBand ${speed} linear infinite both;` : ''); break; } case 'twitch': { const speed = validTime(token.props.args.speed) ?? '0.5s'; style = useAnim ? `animation: mfm-twitch ${speed} ease infinite;` : ''; break; } case 'shake': { const speed = validTime(token.props.args.speed) ?? '0.5s'; style = useAnim ? `animation: mfm-shake ${speed} ease infinite;` : ''; break; } case 'spin': { const direction = token.props.args.left ? 'reverse' : token.props.args.alternate ? 'alternate' : 'normal'; const anime = token.props.args.x ? 'mfm-spinX' : token.props.args.y ? 'mfm-spinY' : 'mfm-spin'; const speed = validTime(token.props.args.speed) ?? '1.5s'; style = useAnim ? `animation: ${anime} ${speed} linear infinite; animation-direction: ${direction};` : ''; break; } case 'jump': { const speed = validTime(token.props.args.speed) ?? '0.75s'; style = useAnim ? `animation: mfm-jump ${speed} linear infinite;` : ''; break; } case 'bounce': { const speed = validTime(token.props.args.speed) ?? '0.75s'; style = useAnim ? `animation: mfm-bounce ${speed} linear infinite; transform-origin: center bottom;` : ''; break; } case 'flip': { const transform = (token.props.args.h && token.props.args.v) ? 'scale(-1, -1)' : token.props.args.v ? 'scaleY(-1)' : 'scaleX(-1)'; style = `transform: ${transform};`; break; } case 'x2': { return h('span', { class: 'mfm-x2', }, genEl(token.children, scale * 2)); } case 'x3': { return h('span', { class: 'mfm-x3', }, genEl(token.children, scale * 3)); } case 'x4': { return h('span', { class: 'mfm-x4', }, genEl(token.children, scale * 4)); } case 'font': { const family = token.props.args.serif ? 'serif' : token.props.args.monospace ? 'monospace' : token.props.args.cursive ? 'cursive' : token.props.args.fantasy ? 'fantasy' : token.props.args.emoji ? 'emoji' : token.props.args.math ? 'math' : null; if (family) style = `font-family: ${family};`; break; } case 'blur': { return h('span', { class: '_mfm_blur_', }, genEl(token.children, scale)); } case 'rainbow': { const speed = validTime(token.props.args.speed) ?? '1s'; style = useAnim ? `animation: mfm-rainbow ${speed} linear infinite;` : ''; break; } case 'sparkle': { if (!useAnim) { return genEl(token.children, scale); } return h(MkSparkle, {}, genEl(token.children, scale)); } case 'rotate': { const degrees = safeParseFloat(token.props.args.deg ?? '90'); style = `transform: rotate(${degrees}deg); transform-origin: center center;`; break; } case 'position': { const x = safeParseFloat(token.props.args.x ?? '0'); const y = safeParseFloat(token.props.args.y ?? '0'); style = `transform: translateX(${x}em) translateY(${y}em);`; break; } case 'scale': { const x = Math.min(safeParseFloat(token.props.args.x ?? '1') ?? 1, 5); const y = Math.min(safeParseFloat(token.props.args.y ?? '1') ?? 1, 5); style = `transform: scale(${x}, ${y});`; scale = scale * Math.max(x, y); break; } case 'fg': { let color = validColor(token.props.args.color); if (color == null || !/^[0-9a-f]{3,6}$/i.test(color)) color = 'f00'; style = `color: #${color};`; break; } case 'bg': { let color = validColor(token.props.args.color); if (color == null || !/^[0-9a-f]{3,6}$/i.test(color)) color = 'f00'; style = `background-color: #${color};`; break; } case 'border': { let color = validColor(token.props.args.color); color = color ? `#${color}` : '#86b300'; let b_style = token.props.args.style; if (typeof b_style !== 'string' || !['hidden', 'dotted', 'dashed', 'solid', 'double', 'groove', 'ridge', 'inset', 'outset'] .includes(b_style) ) b_style = 'solid'; const width = safeParseFloat(token.props.args.width ?? '1'); const radius = safeParseFloat(token.props.args.radius ?? '0'); style = `border: ${width}px ${b_style} ${color}; border-radius: ${radius}px;${token.props.args.noclip ? '' : ' overflow: clip;'}`; break; } case 'ruby': { if (token.children.length === 1) { const child = token.children[0]; let text = child.type === 'text' ? child.props.text : ''; return h('ruby', {}, [text.split(' ')[0], h('rt', text.split(' ')[1])]); } else { const rt = token.children.at(-1)!; let text = rt.type === 'text' ? rt.props.text : ''; return h('ruby', {}, [...genEl(token.children.slice(0, token.children.length - 1), scale), h('rt', text.trim())]); } } case 'unixtime': { const child = token.children[0]; const unixtime = parseInt(child.type === 'text' ? child.props.text : ''); return h('span', { style: 'display: inline-block; font-size: 90%; border: solid 1px light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1)); border-radius: 999px; padding: 4px 10px 4px 6px;', }, [ h(ClockIco, { style: 'margin-right: 0.25em;', }), h(MkTime, { key: Math.random(), time: unixtime * 1000, mode: 'detail', }), ]); } } if (style == null) { return h('span', {}, ['$[', token.props.name, ' ', ...genEl(token.children, scale), ']']); } else { return h('span', { style: 'display: inline-block; ' + style, }, genEl(token.children, scale)); } } case 'small': { return [h('small', { style: 'opacity: 0.7;', }, genEl(token.children, scale))]; } case 'center': { return [h('div', { style: 'text-align:center;', }, genEl(token.children, scale))]; } case 'url': { return [h(ProseAVue, { key: Math.random(), href: token.props.url, target: '_blank', rel: 'nofollow noopener', }, token.props.url)]; } case 'link': { return [h(NuxtLink, { key: Math.random(), to: token.props.url, target: '_blank', rel: 'nofollow noopener', }, genEl(token.children, scale))]; } case 'mention': { //@ts-ignore return [h(MkMention, { key: Math.random(), host: (token.props.host) ?? props.baseHost, localHost: props.baseHost, username: token.props.username, })]; } case 'hashtag': { return [h(NuxtLink, { key: Math.random(), to: `https://${props.baseHost ?? 'misskey.io'}/tags/${encodeURIComponent(token.props.hashtag)}`, style: 'color:rgb(255, 145, 86);', }, `#${token.props.hashtag}`)]; } case 'quote': { if (!props.nowrap) { return [h('div', { style: QUOTE_STYLE, }, genEl(token.children, scale))]; } else { return [h('span', { style: QUOTE_STYLE, }, genEl(token.children, scale))]; } } case 'emojiCode': { if (props.customEmojis && props.customEmojis[token.props.name]) { return [h(MkCustomEmoji, { key: Math.random(), name: token.props.name, normal: props.plain, useOriginalSize: scale >= 2.5, url: props.customEmojis[token.props.name], })] } return [h(MkCustomEmoji, { key: Math.random(), name: token.props.name, normal: props.plain, host: props.baseHost, useOriginalSize: scale >= 2.5, })]; } case 'unicodeEmoji': { return [h('img', { style: 'display:inline;height:1.25em;vertical-align:-.25em;', src: `https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/${token.props.emoji.codePointAt(0)?.toString(16)}.svg`, })]; } case 'mathInline': { return [h('code', token.props.formula)]; } case 'mathBlock': { return [h('code', token.props.formula)]; } case 'inlineCode': { return [h('code', token.props.code)]; } case 'blockCode': { return [h('pre', { class: 'p-4 bg-neutral-200/50 rounded', }, h('code', token.props.code))]; } case 'search': { return [h(MkGoogle, { key: Math.random(), q: token.props.query, })]; } case 'plain': { return [h('span', genEl(token.children, scale))]; } default: { // eslint-disable-next-line @typescript-eslint/no-explicit-any console.error('unrecognized ast type:', (token as any).type); return []; } } }).flat(Infinity) as (VNode | string)[]; return h('span', { // https://codeday.me/jp/qa/20190424/690106.html style: props.nowrap ? 'white-space: pre; word-wrap: normal; overflow: hidden; text-overflow: ellipsis;' : 'white-space: pre-wrap;', }, genEl(ast, props.rootScale ?? 1)); } ================================================ FILE: components/mk/Sparkle.vue ================================================ ================================================ FILE: components/mk/Time.vue ================================================ ================================================ FILE: components/servers/Finder.vue ================================================ ================================================ FILE: components/servers/Item.vue ================================================ ================================================ FILE: components/servers/StatsViewer.vue ================================================ ================================================ FILE: components/tools/AsideNavSection.vue ================================================ ================================================ FILE: components/tools/mocks/MkNote.vue ================================================ ================================================ FILE: components/tools/mocks/MkProf.vue ================================================ ================================================ FILE: composables/useGAsyncData.ts ================================================ type KeysOf = Array; export function useGAsyncData = KeysOf, DefaultT = null>(...params: Parameters>): ReturnType> { if (!params[2]) { params[2] = {}; } params[2].getCachedData = (key) => useNuxtData(key).data.value ?? undefined; return useAsyncData(...params); } ================================================ FILE: composables/useGLocalPath.ts ================================================ import type { LocaleCodes } from '@/assets/data/locales'; import { localesConst, localePathRegex } from "@/assets/data/locales"; /** useLocalePathのラッパー関数。 */ export function useGLocalePath() { const localePath = useLocalePath(); return (path: string, locale?: LocaleCodes) => { const _path = localePath(path, locale); return localePathRegex.test(_path) ? _path : `/${localesConst[0].code}${_path}`; }; } ================================================ FILE: composables/useGSwitchLocalePath.ts ================================================ import type { LocaleCodes } from '@/assets/data/locales'; import { localesConst, localePathRegex } from "@/assets/data/locales"; /** useSwitchLocalePathのラッパー関数。 */ export function useGSwitchLocalePath() { const switchLocalePath = useSwitchLocalePath(); return (locale: LocaleCodes) => { const _path = switchLocalePath(locale); return localePathRegex.test(_path) ? _path : `/${localesConst[0].code}${_path}`; } } ================================================ FILE: composables/useScrollSpy.ts ================================================ /** * Scrollspy allows you to watch visible headings in a specific page. * Useful for table of contents live style updates. */ export const useScrollspy = (config?: IntersectionObserverInit) => { let observingElements: Element[] = []; const observer = ref(); const visibleHeadings = ref([]); const activeHeadings = ref([]); const mainHeading = ref(null); function observerCallback(entries: IntersectionObserverEntry[]) { entries.forEach((entry) => { const id = entry.target.id; if (entry.isIntersecting) { visibleHeadings.value.push(id); } else { visibleHeadings.value = visibleHeadings.value.filter((t) => t !== id); } }); mainHeading.value = entries.reduce((max, entry) => (entry.intersectionRatio > max.intersectionRatio ? entry : max), entries[0]).target.id; } function updateHeadings(headings: Element[]) { observingElements.forEach((el) => { observer.value?.unobserve(el); }); observingElements = headings; observingElements.forEach((heading) => { observer.value?.observe(heading); }); } watch(visibleHeadings, (val, oldVal) => { if (val.length === 0) { activeHeadings.value = oldVal } else { activeHeadings.value = val } }, { deep: true }) // Create intersection observer onBeforeMount(() => (observer.value = new IntersectionObserver(observerCallback, config))) // Destroy it onBeforeUnmount(() => observer.value?.disconnect()) return { visibleHeadings, activeHeadings, mainHeading, updateHeadings } } ================================================ FILE: content/.README.md ================================================ # **DO NOT edit locale files** except `ja-JP` directory. When you add files/text to the ja-JP directory (of misskey-dev/misskey-hub), it will automatically be applied to other language files. Translations added in ja-JP file should contain the original Japanese strings. ## 移行作業 - `.docs-legacy/`内にvuepress時代のファイルを格納 - `docs/`内にディレクトリ構造を作成中 ## 新規に作成したページ - `/2.for-users/2.onboarding/index.md` 以外 - `/4.for-developers/play/` 以下 - `/4.for-developers/api/index.md` を分割 ## APIリファレンスについて API リファレンスは移動する予定です(misskey-jsから自動生成) ## 新しくDocsを作成するかたへ Nuxtに変更したことに伴い、Canonical URLの統一のため、末尾にスラッシュが付くようになっています。 内部のリンクの切り分け処理が複雑になっているため、技術的なことがよくわかっていない場合や、自前でデバッグ環境を作成してリンクの検証ができない方は**絶対パスを使うことをおすすめします。** VuePressでは末尾が`.md`となるパス形式でしたが、Misskey-Hub-Nextではコレは許容されません。実際のWebサイト上でのパスを入力してください。 ただし、リンクは自動的に言語ごとのものに変換されますので、**マークダウン内で`/ja/`などの言語プレフィックスを付与しないようにしてください。** ## AiScriptハイライトについて Misskey Hubでは、AiScriptのシンタックスハイライトに対応しています。言語識別子は、以下のいずれかを使用できます: - `AiScript` - `aiscript` - `ais` - `is` [こちら](./ja/docs/4.for-developers/plugin/create-plugin.md)のソースを参考にしてください。 ## 独自コンポーネントについて Nuxt Contentは、内部的にはmarkdownの拡張言語であるMDCを採用しています。 MDC記法でのVueコンポーネントの書き方は、[こちら](https://content.nuxt.com/usage/markdown#vue-components)をご確認ください。 **(特に、コンポーネントをネストする際の記法に気を付けてください)** ### 【重要】コンポーネントブロックと他要素は1行開けてください Crowdin側の仕様により、連続する行は同じ翻訳テキストとして認識されてしまいます。 コンポーネント記法を使う際は **前後に1行空けるようにしてください。** ```md これは段落 :::tip これはtipコンポーネントの中身(上下1行空ける!) ::: これは次の段落 ``` ## 独自Frontmatterについて ### `date` (ブログのみ)公開時刻をオーバーライドできます。 ```yml date: 2023-11-11 ``` ### `thumbnail` (現状ブログのみ)サムネイル画像を設定できます。URLまたはサイトディレクトリの絶対パスを入力してください ```yml thumbnail: /img/blog/foo/bar.png ``` ### `maxTocDepth` (Docsのみ)もくじの見出しを遡る限度を指定できます。`

`タグまでにしたい場合は`2`を指定します。 ```yml maxTocDepth: 2 ``` ### `ignoreDirBasedNav` (Docsのみ)`true` にすると、前へ・次へボタンを、前後のページの階層に関係なく表示します。 ## `contact-faq`について お問い合わせページに掲載するFAQが項目ごとに別ファイルとして格納されます。質問文はfrontmatterの`question`に、回答文はMarkdownの本文に記述してください。 ```md --- question: "アカウントを削除してください(問いの部分)" --- なんとかしてください(答えは残りのMarkdown部分) ``` ================================================ FILE: content/blog/2021-09-11-hello-to-misskey-hub.md ================================================ --- date: 2021-09-11 description: 'Misskey初のオフィシャルサイト、Misskey Hubを開設しました。' --- # Say hello to Misskey Hub Misskey初のオフィシャルサイト、Misskey Hubを開設しました。 Misskey Hubでは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供していく予定です。 「Misskeyの全てがここにある」サイトを目指していきます🚀 ================================================ FILE: content/blog/2021-11-05-mac2021.md ================================================ --- date: 2021-11-05 description: '2021年も恒例のMisskey Advent Calendarが企画されています。' --- # Misskey Advent Calendar 2021 2021年も恒例のMisskey Advent Calendarが企画され、参加者が募集されています。 [Misskey Advent Calendar 2021](https://adventar.org/calendars/6273) 企画はゆずりょー氏です。 私syuiloも1日目にエントリーしています。皆さんも奮ってご参加ください。 なお、前回となる Misskey Advent Calendar 2020 は[こちら](https://adventar.org/calendars/5026)です。 ================================================ FILE: content/blog/2021-12-01-inside-misskey-hub.md ================================================ --- date: 2021-12-01 description: 'Misskey Advent Calendar 2021 1日目の記事です。Misskey Hubの実装について紹介します。' --- # インサイド Misskey Hub :::tip この記事は、[Misskey Advent Calendar 2021](https://adventar.org/calendars/6273) 1日目の記事です。 ::: こんにちはsyuiloです。いつもMisskeyを利用してくださってありがとうございます。開発の励みになります! 2021年は、misskey.ioのデータベースが破壊されて貴重なノートが多数失われるなどの心を痛めるインシデントもありましたが、Misskeyの開発は順調に進んでいます。また、RSS3がMisskeyのスポンサーになってくださったことや、Patreonでの支援が増えてきたこともあり、おそらく財政的にはMisskey史上最も余裕が出てきていると思います。なので今後もMisskeyの開発は滞りなく進められそうです。:iihanashi: さて現在、Misskeyの開発と並行して、Misskeyの公式ドキュメントサイトであるMisskey Hub(つまりあなたが今いるここ!!!)の開発も進めています。 なぜMisskey Hubを作ったかというと、色々ありますが主に - プロジェクトとしての公式サイトが無いのは不便 - Misskeyのドキュメントを見るためには実際に動いている何らかのインスタンスにアクセスしなければならない - 文字通りHubとなり、インスタンスを跨いで共有されるような情報(インスタンス一覧、プラグインなど)も管理したい - ドキュメントをレンダリングしたり検索したりする機能をMisskey本体に実装するのが面倒 といった理由です。 今回は、そのMisskey Hubの実装詳細について紹介しようと思うので、少しの間お付き合いください。多少専門的になるかもしれませんが、なるべく分かりやすくなるように心がけます。 Misskey Hubの実装について理解するためには、いくつかの前提知識が必要となるので、まずそれらの説明をします。ひとつめは静的サイトについて、ふたつめはSSGについてです。それでは始めましょう🚀 ## 静的サイト is 何 :::warning **性的サイト**と誤変換しやすいので注意 ::: こういった記事がメインのWebサイトは、一般的にはWordpressなどのソフトウェアを使って管理することが多いですが、Misskey Hubはそうではありません。\ Misskey Hubは、Misskey Hub内のMisskey Hub説明ページにもあるように、[vuepress](https://v2.vuepress.vuejs.org/)を使った**静的サイト**(Static site)です。 静的サイトとは、トートロジーっぽい表現になりますが**動的でないサイト**のことです。動的なサイトというのは、例えばユーザー登録が行えてユーザーがコンテンツを投稿できたり、コメントを残せたり、とにかく「ユーザーから何らかのインタラクションを行えて、それがそのサイトを見る他のユーザーにも反映される」ようなサイトのことです。より雑に言うと常に内容が変化するサイトのことです。究極的に雑に言うと動的サイトがワイワイしたサイトで静的サイトがシーンとしたサイトです。 もちろんMisskeyは動的サイトということになります。なぜかというと、例えばそこにはタイムラインがあって、訪れるたびにタイムラインの内容は変わりますし、タイムラインを見るユーザーによっても内容が変わります(フォローしているユーザーが異なるため)。 静的なサイトは逆に、そういったリッチなことは行わず、**予め用意したコンテンツをどのユーザーに対しても同じように表示するだけのサイト**です。Misskey Hubは(サイト更新を除けば)誰がいつ見ても同じ内容なので、静的サイトです。 :::tip 技術的な話になりますが、静的と言っても、静的なのは「サーバーから」送られてくる内容だけであって、JavaScriptを使ってブラウザ上で動的にページの内容を変えることは可能です。 例えばMisskey Hubでは、サイドバーに表示されるMisskeyや藍ちゃんの広告はページを訪れるたびにランダムで変わるようになっています。\ さらに言うと、静的サイト内に別の動的サイトを埋め込んで表示することも可能です。これを利用して、将来的にはそのページに対するMisskeyのコメントタイムラインをページに表示する、といったことも実装されるかもしれません。 ::: ### 静的サイトだと何が嬉しいのか ここで、静的サイトには動的サイトには無い、とても嬉しいメリットがあります。もったいぶるようですが、この記事の中でもおそらく一番重要なポイントです。刮目してください。それは... **サーバーを用意する必要がない**\ ということです。 もちろん静的といえどもウェブサイトなので、実際にはサーバーが存在しています。しかし、静的サイトは予め内容が決まっていて、どのユーザーが見ても内容は同じであることから、サイトを提供する際に動的サイトに比べて**サーバーの負荷がほとんどかからない**のに加えて、**全てのページ内容をキャッシュすることが可能**です。 サイトをキャッシュできると、**CDN**(Content Delivery Network)と呼ばれるインフラストラクチャ上にサイトのコンテンツを載せることができ、そもそも元のサーバーにリクエストが来る必要がなくなります。そう考えるとサーバーの負荷はゼロと言っても過言ではありません。 負荷がほとんどかからないことから、Misskeyや Misskey Hubがソースコードの管理に利用しているGitHubでは**静的サイトを提供するための環境を無料で開発者に提供しています(GitHub Pages)。** そのため、Misskey Hubを静的サイトとすることで、「サーバーを用意して、毎月料金を払って維持する」という必要がなくなります。しかも、GitHubの強力なインフラの上にサイトが構築されるので、DDoSといった障害の心配とも無縁です。 動的サイトを運営する際に発生するそのような諸々の心配から解放されるというのは非常に大きなメリットです。つまり、金銭面においても精神面においても、**ゼロコスト**でMisskey Hubを運用できます。 :::g-details{summary="さらに技術的な話(危険)"} ここまで言っておいてなんですが、先ほど言った > もちろんMisskeyは動的サイトということになります。 というのは **嘘** です。説明を簡単にするために、また理解してもらいやすくするために嘘をつきました。ここまで読んで混乱してしまった人は、このセクションをスキップしてなかったことにしてください。 実は、厳密に言うとMisskey(のWebクライアント)は**静的サイト**なんです。 どういうことかというと、Misskey Webは、全てJavaScriptで動いています。そしてそのJavaScriptは不変です。 MisskeyのWebサーバーは、その不変なJavaScriptを送り返すだけで、動的なHTMLをレンダリングしたりはしないので、Misskey Webは静的です。 なので、あなたがMisskey Webを開いた**瞬間**は、(CDNが設定されている場合)Misskeyサーバーにリクエストはひとつも来ません。 もちろんJavaScriptが動きだしたら、アカウント情報を取得したり、タイムラインを取得したりするのでリクエストは発生します。 静的なJavaScript上で動的なコンテンツが実現されているということです。 実際、インスタンスサーバーがトラブルなどで落ちていても、クライアントにはアクセスすることができますし、テーマの設定などサーバーに依存しない操作は普通に行うことができます。 ちなみに、こういう構成のことをIT界では**サーバーレス**と呼んだりするっぽいです。知らんけど。 ::: ## SSG is 何 ここまでは静的サイトとは何か、について話しました。ここからは、そんな静的サイトを開発するのに便利な**SSG**について紹介します。 おそらくほとんどの人は見慣れない言葉だと思いますが、SSGとは、**静的サイトジェネレーター**(Static Site Generator)の略で、その名の通り静的サイトを生成するソフトウェアです。 静的サイトを作るだけならば、HTMLやCSSを手で書いてアップロードするだけでも良いのですが、コンテンツの量が多くなってくると管理が大変になるのと、そもそもHTMLという非ヒューマンフレンドリーなマークアップでドキュメントを書きたくないというのがあります。 そこでSSGが登場します。SSGを利用することで、Markdownと呼ばれるより人間に書きやすいマークアップでドキュメントを記述できるようになるほか、特に何も書かなくても自動で良い感じ™のデザインでページを表示してくれたりします。さらに、人力では実装が難しいサイト内検索なども提供してくれます。 もちろん実際のサーバー(というよりブラウザ)はHTMLしか解釈できませんので、SSGはサーバーにファイルをアップロードする前に**コンパイル**という処理を行なって、MarkdownをHTMLに変換します。 SSGは特定のソフトウェアを指すものではなく、概念を表す言葉です。したがって、複数のSSG実装が存在します。Misskey Hubでは、前述のように vuepress というSSGを採用しています。 ## vuepress is 何 ここまではSSGについて話しました。ここからやっと、Misskey Hubの実装の話に入ることができます。 **vuepress**は、UIフレームワークにVueを採用したSSGです。Misskey Hubはvuepressのv2(2021年11月現在ベータ版)を使用しています。 Vueについては、vuepressがあまりそれを意識しないでも使える設計になっているためこの記事では割愛します。 Misskey HubがSSGにvuepressを採用した理由は、技術スタックがモダンでMisskeyのそれと一致していることや、使いやすさや拡張性で優れていると思ったためです。 さらに、他のSSGは何かしら欠点があったのに対し、vuepressにはそういった欠点は(SSGの中でもかなり新しい方であるため、まだ後述するプラグインやテーマが少ないというのを除けば)ありませんでした。 ただ、他のSSGを使い込んで吟味はしていないので、拡張性などに関しては比較ではありません。 ### テーマ Misskey Hubのデザインは、vuepress標準で用意されているテーマを少しMisskey風にアレンジしたものになっています。ゼロから実装するのは大変ですしメンテナンスするコストも発生してきますが、アレンジなので運用が楽です。もちろんダークモードにも対応しています。 Misskeyと同じく、vuepressも**CSS Variables**を使って簡単に配色を変更できるようになっています。 ### プラグイン vuepressはプラグイン機能があり、開発者が自由にvuepressを拡張できるようになっています。 プラグインを駆使することで、また時には自分でプラグインを作成することで、静的サイトながら動的サイトに見紛うようなリッチな機能を提供することができたりします。 Misskey Hubもプラグイン機能を使っていて、「関連するページ」「最近更新されたページ」といった独自の機能を持たせています。 「関連するページ」については、各ページで自身と関連するページを手動で指定できるようになっているほか、ページ中で使われたリンクを収集&自身にリンクしている他ページを収集して「関連するページ」にリストアップするようにしています。 また、「最近更新されたページ」についても、Misskey Hubオリジナルの実装で実現していて、コンパイル時に全てのページファイルを収集してそれぞれの更新日時を後述するGitで取得し、新しい順に並べ替え、ページとしてレンダリングするようにしています。 さらに、MFMを実際に書いて試せるプレイグラウンド機能や、APIリファレンスにおけるAPIコンソールなども今後実装予定です。 :::tip 「関連するページ」「最近更新されたページ」は我ながら便利機能だと思っているので、Misskey Hub以外のvuepressを採用したサイトでも使えるようにnpmで一般公開しようかとも考えています。 ::: ### 多言語対応(i18n) 多言語対応することは**i18n**(Internationalizationの略)と呼ばれます。vuepressには標準でi18n対応が組み込まれているので、Misskey Hubも簡単にi18nすることができました。 ### サイト内検索 vuepress標準の機能で、右上にあるやつです。各ページの見出しを対象にして検索されるようです。これをSSGの助けなしに実装するのは厳しいと思います。 ### 目次生成 自動で目次を生成してくれます。(ページ左) こんな感じでページ内に埋め込むこともできます: ### HMR **HMR**(Hot Module Replacementの略)は、開発中に使われる機能で、ブラウザをリロードすることなしにページ内容の変更を反映してくれます。エディタで編集し、保存するだけでリアルタイムでページに反映されるので、開発がとても快適になります。 ## 藍モード もちろん藍モードも搭載しています。藍モードを有効にすることで藍ちゃんをサイト上に召喚することが可能です。~~スマホだとそれなりに邪魔ですがそれも含めて~~お楽しみください。藍は地球を救う :AiModeB →→→[Live2D藍ちゃん創造神](https://misskey.io/@shinamu476)←←← ## ページ 各ページはMarkdown(MFMみたいなもの(いや本来はMFMが「Markdownのようなもの」という立ち位置だけれども))というマークアップ言語で書かれています。Markdownを使うことで、簡単に見出し、リンク、画像、表といった要素を表現できるほか、 :::tip こんな ::: :::warning 感じの ::: :::danger メッセージ ::: を表示したりできます。(厳密にはMarkdownの拡張構文) また、vuepressの機能により、各見出し(ヘッダ)にハッシュリンクが付くようになっています。 このページのMarkdownソースを見たい方は[こちら](https://raw.githubusercontent.com/misskey-dev/misskey-hub/main/src/blog/2021-12-01-inside-misskey-hub.md) 参考までに、同じ文章をMarkdownとHTMLとで書いた場合の比較を載せます。 ```md ## 静的サイト is 何 Misskey Hub内のMisskey Hub説明ページにもあるように、Misskey Hubは[vuepress](https://v2.vuepress.vuejs.org/)を使った**静的サイト**(Static site)です。 ``` ```html

静的サイト is 何

Misskey Hub内のMisskey Hub説明ページにもあるように、Misskey Hubはvuepressを使った静的サイト(Static site)です。

``` ## インスタンス一覧 「プラグイン」のセクションでも触れましたが、vuepressでは、Markdownで書かれたページ以外にも、プログラムで(コンパイル時に)生成するページを用意することができます。 「インスタンス一覧」ページもその一つで、予めインスタンス一覧の情報をJSONという形式で用意しておき、それを基にしてインスタンス一覧ページをレンダリングするようになっています。 各インスタンス紹介は、インスタンス側で用意されたプロフィールレンダリングページをiframeというHTMLの機能で埋め込んで表示するようになっています。したがって、一度Misskey Hubにインスタンスを登録してしまえば、インスタンスの名前、説明、バナー画像といった情報を更新した場合でもリアルタイムでインスタンス一覧に反映されます。 :::tip インスタンス一覧へ掲載するインスタンスを募集しています。お気軽にご連絡ください🤗 ::: ## 管理 Misskey HubはMisskeyと同じく、**GitHub**(Git)上で管理しています。 Gitで管理することで、全ての変更についての履歴が**リポジトリ**に保存され、簡単に過去の版を参照したり、変更を差し戻したりすることができます。 リポジトリに内容の変更(新規ページの作成も含む)を適用することは**コミット**と呼ばれます。 そのためMisskey Hub内の各Markdownページは、Wordpressなどとは違って、データベースなどではなくそのままファイルとして管理されます。 ## デプロイについて サイトの内容を実際のサーバーにアップロードし反映させることを**デプロイ**と呼びます。 Misskey Hubにおいては、GitHub ActionsというGitHubの機能を利用して、サイトの内容に変更を加えると(リポジトリにコミットを行うと)自動でコンパイル & GitHub Pagesデプロイが行われる仕組みになっています。 GitHub Pagesは前述した「静的サイトを提供してくれる機能」です。GitHubのインフラストラクチャ上で動くため、いちどデプロイしてしまえば、あとは何の心配もなくMisskey Hubが提供され続けます。 :::warning 「何の心配もなく」はちょっと言い過ぎたかもしれません。というのも、(強いていうと)ひとつだけ心配があって、それはドメインです。Misskey Hubはmisskey-hub.netというドメインで提供されていますが、これは私が用意したものです。そのため、もし万が一私がドメインの更新を忘れるとMisskey Hubに繋がらなくなりますが、そこは𝑇𝑟𝑢𝑠𝑡 𝑚𝑒 ::: 通常のWebサイトであれば、サーバーにFTPでファイルをアップロードしたり、サーバーにSSHで繋いでファイルをダウンロードしてきたりといった作業が必要になりますが、GitHub Pagesではそのような手間すら要りません。 デプロイを終えると、Misskey Hubがインターネット上に公開されてWebブラウザで見ることができるようになります。めでたし! ## さいごに Misskey Hubは、Misskeyと同じくオープンソースであり、貢献はいつでも歓迎しています。まだまだ不足しているドキュメントも多いので、ぜひドキュメント拡充にご協力お願いします。インスタンスを運営してきた上で得られたナレッジなどをアウトプットする場としてもMisskey Hubを利用していただけると幸いです。また、Misskey Hubもi18nしており、ドキュメントの翻訳も歓迎です。 この記事で、Misskey Hubの実装、ひいては静的サイトとは何か、SSGとは何かを何となくでも理解していただけたなら、また利用するだけではなかなか知ることがない開発の裏側について思いを馳せていただけたなら、幸いです。 SSGはMisskey Hubのようなドキュメントサイトだけでなく、ブログなどにも使えるので、皆さんもぜひ活用してみてください。 実際、この記事のようにMisskey Hubを開発ブログとしても使用しています。 多少知識は要りますが、ゼロコストでブログ運営できるのでチャレンジする価値はあるはずです。(無料でブログ運営できるサービスはあるけど、広告が付いてくる) さて、ここまで一気呵成に書き上げて:hinata_acid:になってきたので、今回はここら辺で終わりにします。お付き合いいただきありがとうございました。 この記事が参考になったり、面白かったりしたらぜひMisskeyでシェアお願いします!!! 静的サイトはいいぞ。vuepressはいいぞ。Misskey Hubに幸あれ🙏 :::g-details{summary="Webで記事を公開する際に必ず記述しなければならないと法令で定められている言葉"} > いかがでしたか? ::: --- もしMisskeyが少しでもあなたの生活を豊かにしていると感じたら、ぜひ開発に対して[Patreonで寄付](https://www.patreon.com/syuilo)することをご検討お願いします。喜びます。 ## P.S. 藍ちゃんと**ツーショット**撮ったので見て!!!! ![](https://s3.arkjp.net/misskey/c3e86103-2387-4c04-bf69-99173d857586.png) うぇへひひ ## P.S. (2) **ニラ**はいいぞ。 栄養があるし、加熱不要で調理も楽(ハサミで切って味噌に突っ込んでチンするだけで味噌汁できる) :::danger ただし加熱しないと風味が強すぎ、ちょっとしたワサビ食べてるみたいになるので多少訓練が必要 ::: ================================================ FILE: content/blog/2022-02-11-inside-mfm.md ================================================ --- date: 2022-02-11 description: 'MFMで使われている技術や考え方について紹介します。' --- # インサイド MFM こんにちは、まりはちです🚀 Misskey関係では主にMFM(Markup language For Misskey)やAiScript、MisskeyPagesの開発で関わっています。よろしくお願いします。 今回の記事では、MFMで使われている技術や考え方について紹介しようと思います。 少し専門的な内容を含むと思いますが、少々お付き合いください! ## MisskeyはどうやってMFMを認識する? MFMで書かれた文字列をそのまま表示するだけだと、**太字にする**などの効果を与えることはできません。なぜなら、MFMはそのままでは普通の文字列なのでどの部分を**太字**にすればいいのかをMisskeyが認識できないためです。 MisskeyがMFMで書かれた文字列の効果や構造を認識できるようにするためには、構文解析(パース)というステップが必要になります。 構文解析の「構文」とは、例えば**太字**などの記法のことで、MFM構文を含む文字列を解釈してMisskeyが認識できる形のデータに変換することを構文解析(パース)といいます。構文解析はMFMの解析や表示をする上で重要な技術となっています。 また、パースをするプログラムのことをパーサー(構文解析器)と呼びます。 ## MFMのパーサーはどのように動作するのか? MFMのパーサーは、1つのMFMの文字列を受け取り、それを解析することでMisskeyが認識できる形のデータに変換するプログラムです。 ``` [MFMの文字列] --(MFMパーサーのプログラム)--> [Misskeyが認識できる形のデータ] ``` ここでは、MFMのパーサーの動作について少し見てみることにします。 MFMパーサは、受け取った1つの文字列を、複数の部分として分割します。各部分は、**太字**などの効果が適用される部分と、効果が適用されない普通の文字列です。この各部分のことをノードと呼び、この全体のことをAST(抽象構文木)またはノードツリーと呼んでいます。 この部分に分けることこそがMFMのパーサーが行うもっとも重要な仕事です。先ほど説明した「Misskeyが認識できる形のデータに変換する」とは、この明確に部分分けされたASTを生成することを指していました🚀 ## おわりに いかがでしたか? MFMで使われている技術について、基本的な考え方の部分についてお話しました。 実際のMFMのパーサーはもう少し複雑なこともやっていますが、ベースにある考え方はここに書いたとおりです。 構文解析はいいぞ。🚀 ================================================ FILE: content/blog/2022-11-28-media-k-tai.md ================================================ --- description: 'Misskeyが「ケータイ Watch」にて取り上げられました' date: 2022-11-28 --- # メディアによる紹介: ケータイ Watch Misskeyを「ケータイ Watch」にて取り上げていただきました! [「次のTwitterはMastdonかMisskeyか!? Fediverse(フェディバース)な世界へ飛び込んでみる」](https://k-tai.watch.impress.co.jp/docs/column/minna/1458691.html) ================================================ FILE: content/blog/2023-02-08-contribute-to-earn.md ================================================ --- date: 2023-02-08 description: 'Misskey開発に貢献すると報奨金がもらえるキャンペーンを行います。 We offer campaigns you to recieve rewards for contributing to the development of Misskey.' --- # Contribute Misskey to Earn Misskey開発に貢献すると報奨金がもらえるキャンペーンを行います。 We offer campaigns you to recieve rewards for contributing to the development of Misskey. :::tip 条件や報奨金の額は、予告なく変更になる場合があります。 Conditions and reward amounts are subject to change without notice. これ以外にも貢献に応じて不定期に給付金を支給中 In addition to those, benefits are being paid at irregular intervals based on contributions. ::: :::warning 報奨金の原資はパトロンの皆様からの寄付で成り立っています。 Rewards come from donations from patrons. [**→ 寄付について / About Donations**](../docs/donate.html) ::: ## カバレッジ上げ / Increase Coverage Codecovのカバレッジを1%上げるごとに、次に挙げる報奨金を全て獲得できます: You will receive following rewards for every 1% increase of Codecov coverage: 1. 1500JPY by syuilo 2. 3500JPY by misskey.io (支払い方法は銀行振込かPayPal.me / By PayPal.me but the amount may vary for overseas transfers.) ## 型エラー潰し / Type Errors Buster TypeScriptで書かれたソースコードの型エラーを取り除くと、程度に応じて報奨金進呈 You will receive rewards according to the degree if you remove typing errors in source code written in TypeScript. ## ドキュメント整備 / Documentation Maintenance Misskey Hubのドキュメントを整備すると、程度に応じて報奨金進呈 You will receive rewards according to the degree if you maintain the documentation in Misskey Hub. ## 脆弱性の報告 / Report Vulnerability 脆弱性の報告で、次に挙げる報奨金を全て獲得できます: You will receive all of the following rewards if you report vulnerabilities to us: 1. 程度に応じて(しゅいろ) / According to the degree by syuilo 2. Critical is 10000JPY, High is 3000JPY by @ryotak@misskey.io Check the details: 3. Critical is 10000JPY, High is 3000JPY by @AureoleArk@misskey.io 脆弱性報告の方法 / How to report security issues: ## バックエンドのメモリリーク解消で2万円程度進呈 / Eliminate Memory Leaks in the Backend バックエンドのメモリリークを解消すると、2万円程度進呈します。 You will receive 20000JPY when you can eliminate memory leaks in the backend. ## フロントエンドのメモリリーク解消で2万円程度進呈 / Eliminate Memory Leaks in the Frontend フロントエンドのメモリリークを解消すると、2万円程度進呈します。 You will receive 20000JPY when you can eliminate memory leaks in the frontend. ================================================ FILE: content/blog/2023-02-13-gihyo.md ================================================ --- description: 'Misskeyプロジェクトリーダーのsyuiloによる、Misskeyの技術についての連載がgihyo.jpにて開始しました' date: 2023-02-13 --- # NEWS: gihyo.jpでのMisskeyについての連載がスタート Misskeyプロジェクトリーダーのsyuiloによる、Misskeyの技術についての連載が株式会社技術評論社が運営するWebメディア[gihyo.jp](https://gihyo.jp/)にて開始しました。 「Misskey & Webテクノロジー最前線」と題し、Misskeyで使われている最新のWeb技術などについて解説をしていく予定です。 Web技術者向けの記事になりますが、興味がある方はぜひご覧ください。 第一回: [https://gihyo.jp/article/2023/02/misskey-01](https://gihyo.jp/article/2023/02/misskey-01) 記事一覧: [https://gihyo.jp/list/group/Misskey-Web%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E6%9C%80%E5%89%8D%E7%B7%9A](https://gihyo.jp/list/group/Misskey-Web%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E6%9C%80%E5%89%8D%E7%B7%9A) ================================================ FILE: content/blog/2023-02-13-media-k-tai.md ================================================ --- description: 'Misskeyが「ケータイ Watch」にて取り上げられました(2回目)' date: 2023-02-13 --- # メディアによる紹介: ケータイ Watch Misskeyを「ケータイ Watch」にて取り上げていただきました!(2回目) [「『次のTwitter』を探しているなら、より心の機微が絵文字で伝わる、高機能な短文型SNS『Misskey』へようこそ」](https://k-tai.watch.impress.co.jp/docs/column/minna/1474357.html) 以前: [「話題の分散SNS『Misskey』が居心地いい 行儀悪くて笑えるあのころのインターネットが帰ってきた ユーザー爆増中」](https://www.itmedia.co.jp/news/articles/2303/03/news185.html) ================================================ FILE: content/blog/2023-03-04-media-itmedia.md ================================================ --- description: 'Misskeyが「ITmedia NEWS」にて取り上げられました' date: 2023-03-04 --- # メディアによる紹介: ITmedia NEWS Misskeyを「ITmedia NEWS」にて取り上げていただきました! [「話題の分散SNS『Misskey』が居心地いい 行儀悪くて笑えるあのころのインターネットが帰ってきた ユーザー爆増中」](https://www.itmedia.co.jp/news/articles/2303/03/news185.html) ================================================ FILE: content/blog/2023-03-22-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の3月の記事が公開されました' date: 2023-03-22 --- # 「Misskey & Webテクノロジー最前線」3月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の3月の記事が公開されました! [「MisskeyにおけるNest.jsを使ったDI」](https://gihyo.jp/article/2023/03/misskey-02?summary) ================================================ FILE: content/blog/2023-04-08-media-nikkei-linux.md ================================================ --- description: 'Misskeyが「日経Linux 2023年5月号」にて取り上げられました' date: 2023-04-08 --- # メディアによる紹介: 日経Linux Misskeyを「日経Linux 2023年5月号」にて取り上げていただきました! [日経Linux2023年5月号](https://info.nikkeibp.co.jp/media/LIN/atcl/mag/032900074/) ================================================ FILE: content/blog/2023-05-15-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の5月の記事が公開されました' date: 2023-05-15 --- # 「Misskey & Webテクノロジー最前線」5月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の5月の記事が公開されました! [「VuePressを用いた静的サイト生成入門」](https://gihyo.jp/article/2023/05/misskey-03?summary) ================================================ FILE: content/blog/2023-06-14-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の6月の記事が公開されました' date: 2023-06-14 --- # 「Misskey & Webテクノロジー最前線」6月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の6月の記事が公開されました! [「Bullmqを使ったジョブキューの実装」](https://gihyo.jp/article/2023/06/misskey-04?summary) ================================================ FILE: content/blog/2023-07-01-interview.md ================================================ --- description: 'Nikkei AsiaによるMisskeyプロジェクトリーダー syuiloへのインタビューが公開されました' date: 2023-07-01 --- # 被インタビュー: Nikkei Asia 日本経済新聞社が運営する英文メディア[Nikkei Asia](https://asia.nikkei.com/)からのMisskeyプロジェクトリーダー syuiloへのインタビュー記事が公開されました。 [「'Post-Twitter' decentralized social media struggles for way forward」](https://asia.nikkei.com/Business/Technology/Post-Twitter-decentralized-social-media-struggles-for-way-forward) ================================================ FILE: content/blog/2023-07-10-interview.md ================================================ --- description: 'レバテックLABによるMisskeyプロジェクトリーダー syuiloへのインタビューが公開されました' date: 2023-07-10 --- # 被インタビュー: レバテックLAB レバテック社が運営するWebメディア[レバテックLAB](https://levtech.jp/media/)からのMisskeyプロジェクトリーダー syuiloへのインタビュー記事が公開されました。 [「『楽しんでほしい』ピュアな思いがMisskeyを生んだ。異様な熱狂を放つSNSの今までとこれから」](https://levtech.jp/media/article/interview/detail_268/) ================================================ FILE: content/blog/2023-07-12-trademark.md ================================================ --- description: '「Misskey」の商標登録が認められました' date: 2023-07-12 --- # NEWS: 「Misskey」の商標登録が認められました 2023年7月12日、「Misskey」が日本において商標登録されました!(第6716601号) Misskey®®®®®®®®®®® ================================================ FILE: content/blog/2023-07-14-skeb.md ================================================ --- description: '株式会社スケブよりMisskeyプロジェクトに対しての支援をいただきました' date: 2023-07-14 --- # New partner: Skeb 株式会社スケブ様よりMisskeyプロジェクトに対しての開発資金提供をいただきました! Skeb (スケブ)は、短文で手軽に作品を有償でリクエストできるサービスです。 [https://skeb.jp/](https://skeb.jp/) ================================================ FILE: content/blog/2023-07-14-xserver.md ================================================ --- description: 'XServer VPSにてMisskeyのアプリイメージが利用可能になりました' date: 2023-07-14 --- # NEWS: XServer VPSでMisskeyが利用可能に VPSホスティングサービス、[XServer VPS](https://vps.xserver.ne.jp/)にてMisskeyのアプリイメージが利用可能になりました! ================================================ FILE: content/blog/2023-07-16-media-nikkei.md ================================================ --- description: 'Misskeyが「日本経済新聞」にて取り上げられました' date: 2023-07-16 --- # メディアによる紹介: 日本経済新聞 Misskeyを「日本経済新聞」にて取り上げていただきました! なんと池上彰氏のコメントまで掲載されています。 [「Twitterにさよなら SNSの自治求めミスキーに移民」](https://www.nikkei.com/article/DGXZQOCB034P20T00C23A7000000/) ================================================ FILE: content/blog/2023-07-18-shindanmaker.md ================================================ --- description: '診断メーカーにてMisskeyとの連携が可能に' date: 2023-07-18 --- # NEWS: 診断メーカーにてMisskeyとの連携が可能に オリジナルの診断の作成・共有サービス、[診断メーカー](https://shindanmaker.com/)にてMisskeyとの連携が可能になりました! [「Misskey、Mastodonのアカウントで診断メーカーにログインすることができるようになりました」](https://shindanmaker.com/articles/G9OBV7W23MlDpAvy) ================================================ FILE: content/blog/2023-07-19-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の7月の記事が公開されました' date: 2023-07-19 --- # 「Misskey & Webテクノロジー最前線」7月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の7月の記事が公開されました! [「Misskeyのパフォーマンス改善の取り組み⁠⁠・2023年7月」](https://gihyo.jp/article/2023/07/misskey-05?summary) ================================================ FILE: content/blog/2023-08-08-misskeyhq.md ================================================ --- description: 'Misskey最大サーバーmisskey.ioが法人化しました。' date: 2023-08-08 --- # NEWS: misskey.ioが株式会社MisskeyHQとして法人化 Fediverseにおいて最大のMisskeyサーバー、[misskey.io](https://misskey.io/)が**株式会社MisskeyHQ**(代表取締役CEO: 村上さん=misskey.io管理人)として法人化しました。 MisskeyHQには、Misskeyプロジェクトリーダーであるsyuiloも取締役として参加します。 Misskeyプロジェクトは、MisskeyHQと協力してMisskeyを発展させていきます! ================================================ FILE: content/blog/2023-08-30-conoha.md ================================================ --- description: 'ConoHa VPSにてMisskeyのアプリイメージが利用可能になりました' date: 2023-08-30 --- # NEWS: ConoHa VPSでMisskeyが利用可能に VPSホスティングサービス、[ConoHa VPS](https://www.conoha.jp/vps)にてMisskeyのアプリイメージが利用可能になりました! [「【リリース】\[VPS\]『Misskeyテンプレートイメージ』提供開始」](https://www.conoha.jp/vps/news/?ap=2015053119) ================================================ FILE: content/blog/2023-09-04-media-nlab.md ================================================ --- description: 'Misskeyが「ねとらぼ」にて取り上げられました' date: 2023-09-04 --- # メディアによる紹介: ねとらぼ Misskeyを「ねとらぼ調査隊」にて取り上げていただきました! 使用しているTwitter代替サービスを投票で選ぶという企画で、おかげさまでMisskeyは2位という結果になりました! [「Twitter(X)に代わるSNS」人気ランキングTOP25!](https://nlab.itmedia.co.jp/research/articles/1771561/) ================================================ FILE: content/blog/2023-09-07-hatenablog.md ================================================ --- description: 'はてなブログがMisskeyへの記事シェアに対応' date: 2023-09-07 --- # NEWS: はてなブログがMisskeyへの記事シェアに対応 ブログ作成サービス、[「はてなブログ」](https://hatenablog.com/)が、記事にMastodonとMisskeyのシェアボタンを追加できるようになったことを発表しました。 [「はてなブログの記事にMastodonとMisskeyのシェアボタンを追加できるようにしました」](https://staff.hatenablog.com/entry/2023/09/07/183300) ================================================ FILE: content/blog/2023-09-09-interview.md ================================================ --- description: 'Real SoundによるMisskeyプロジェクトリーダー syuiloおよびMisskey最大サーバー管理人 村上さんへのインタビューが公開されました' date: 2023-09-09 --- # 被インタビュー: Real Sound Webメディア[Real Sound](https://realsound.jp/)からのMisskeyプロジェクトリーダー syuiloおよびMisskey最大サーバー管理人 村上さんへのインタビュー記事が公開されました。 [「目指すのは『オタク向けmixi』『平成のインターネット』……? ユーザー爆増の純日本産SNS『Misskey』開発・運営インタビュー」](https://realsound.jp/tech/2023/09/post-1422348.html) ================================================ FILE: content/blog/2023-09-11-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の9月の記事が公開されました' date: 2023-09-11 --- # 「Misskey & Webテクノロジー最前線」9月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の9月の記事が公開されました! [「MisskeyにおけるVueのComposition APIの活用」](https://gihyo.jp/article/2023/09/misskey-06?summary) ================================================ FILE: content/blog/2023-09-12-sakuravps.md ================================================ --- description: 'VPSサービス、さくらのVPSは25日、スタートアップスクリプトに「Misskey」を追加したことを発表しました。' date: 2023-09-12 --- # NEWS: さくらのVPSにMisskeyのスタートアップスクリプトが追加 VPSサービス、[さくらのVPS](https://vps.sakura.ad.jp/)は25日、スタートアップスクリプトに「Misskey」を追加したことを発表しました。 [「スタートアップスクリプト『Misskey』を追加しました」](https://vps.sakura.ad.jp/news/vps-ss-misskey/) ================================================ FILE: content/blog/2023-09-24-release.md ================================================ --- description: 'Misskey v2023.9.0がリリースされました' date: 2023-09-24 --- # NEW RELEASE: v2023.9.0 2023年9月24日、様々な新機能、機能強化、パフォーマンス向上、バグ修正、セキュリティ強化を含むMisskey v2023.9.0がリリースされました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2023-10-10-release.md ================================================ --- description: 'Misskey v2023.10.0がリリースされました' date: 2023-10-10 --- # NEW RELEASE: v2023.10.0 2023年10月10日、タイムラインの大幅なパフォーマンス改善を含むMisskey v2023.10.0がリリースされました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2023-10-24-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の10月の記事が公開されました' date: 2023-10-24 --- # 「Misskey & Webテクノロジー最前線」10月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の10月の記事が公開されました! [「MisskeyのUI設計」](https://gihyo.jp/article/2023/10/misskey-07) ================================================ FILE: content/blog/2023-10-27-xserver.md ================================================ --- description: 'エックスサーバー株式会社よりMisskeyプロジェクトに対しての支援をいただきました' date: 2023-10-27 --- # New partner: XSERVER Misskeyプロジェクトは2023年10月27日、レンタルサーバー、VPSなどのインターネット関連事業を手がける[エックスサーバー株式会社](https://www.xserver.co.jp/)様より、スポンサーとしてプロジェクトに対して支援をいただけることを発表します。 今回のプレスリリースにあたりコメントをいただいています。 > このたび、エックスサーバー株式会社は「Misskey」の開発を支援させていただくこととなりました。 > > 注目度の高い国産オープンソースソフトウェア(OSS)の支援が行えることを大変嬉しく考えております。 > > 開発環境の提供や開発資金の援助を通じて、「Misskey」の開発・運営をサポートし、 > さらに、弊社運営のVPSサービス『XServer VPS』のインフラサービスとしての、利便性の向上へも取り組んでまいります。 以下はMisskeyプロジェクトリーダーしゅいろによるコメントです。(一部抜粋) > この度、エックスサーバー様からMisskeyの開発プロジェクトに対し、継続的な支援をしていただけることになりました。 > MisskeyはTwitter(現X)の買収など一連の出来事の中でいわゆる「Twitter代替サービス」としても注目されはじめ、一層人気が高まっています。 > しかしMisskeyは企業が開発・運営するソフトウェア・サービスというわけではなく、有志の限られた数のメンバーによって開発されているオープンソースソフトウェア(OSS)です。 > そのため今回エックスサーバー様に声をかけていただき、支援をいただけることになったのはとてもありがたく、今後よりMisskeyの開発を加速させていけるものと考えています。 [以前お知らせしたとおり](/blog/2023-07-14-xserver/)、XServer VPSではすでにMisskeyのアプリイメージが利用可能になっていて、簡単にMisskeyサーバーを作成することが可能です。 [XServer VPS](https://vps.xserver.ne.jp/) [エックスサーバー](https://www.xserver.co.jp/) プロジェクトとして改めて感謝を申し上げます。 --- Misskeyはフリーのオープンソースソフトウェアで、開発資金は皆様からの寄付に頼っています。今後も開発を続けられるよう、ぜひ[プロジェクトへの支援](/docs/donate/)をご検討ください。 ================================================ FILE: content/blog/2023-11-05-mac2023.md ================================================ --- description: '2023年も恒例のMisskey Advent Calendarが企画されています。' date: 2023-11-05 --- # Misskey Advent Calendar 2023 2023年も恒例のMisskey Advent Calendarが企画され、参加者が募集されています。 [Misskey Advent Calendar 2023](https://adventar.org/calendars/8742) 企画はゆずりょー氏です。 皆さん奮ってご参加ください! ================================================ FILE: content/blog/2023-11-05-release.md ================================================ --- description: 'Misskey v2023.11.0がリリースされました' date: 2023-11-05 --- # NEW RELEASE: v2023.11.0 2023年11月5日、様々な新機能、パフォーマンス改善、バグ修正を含むMisskey v2023.11.0がリリースされました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2023-11-14-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の11月の記事が公開されました' date: 2023-11-14 --- # 「Misskey & Webテクノロジー最前線」11月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、MisskeyプロジェクトリーダーのsyuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の11月の記事が公開されました! [「Misskeyのパフォーマンス改善の取り組み⁠⁠⁠⁠・2023年11月」](https://gihyo.jp/article/2023/11/misskey-08) ================================================ FILE: content/blog/2023-11-17-release.md ================================================ --- description: 'Misskey v2023.11.1がリリースされました' date: 2023-11-17 --- # NEW RELEASE: v2023.11.1 2023年11月17日、Misskey v2023.11.1がリリースされました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2023-12-01-2023recap.md ================================================ --- description: '今年Misskeyで起こったこと・自分が取り組んだことや来年取り組む予定のことを紹介します' date: 2023-12-01 --- # Misskey 2023 recap :::tip これは[Misskey Advent Calendar 2023](https://adventar.org/calendars/8742)一日目の記事です。 ::: こんにちは、しゅいろです。2023年も残すところあと1ヶ月となりました。 振り返ると、2023年はMisskeyが大きく成長した年でした。そして、来年2024年はMisskeyは10周年になります!! 個人的な趣味で始めたプロジェクトが10年続き、自分のライフワークになるとは夢にも思っていませんでした。 ここまで開発を続けられてきたのはひとえに皆様の応援・ご支援のおかげです。本当にありがとうございます。 この記事では今年Misskeyで起こったこと・自分が取り組んだことや来年取り組む予定のことを紹介します。 なお、gihyo.jpで行っているMisskey連載の方では2023年のMisskeyの開発に関するまとめを12月分の記事で公開予定です。興味がありましたらそちらも合わせてご覧ください。 では早速書いていきます! ## Misskey Play まずはMisskey本体の話から。 Misskey Playは1月16日リリースのMisskey v13で登場した機能で、従来の動的なMisskey Pagesをより柔軟な形に昇華させたものになります。 この一年間で様々なPlayが作られていて、中には自分が想定もしていなかったようなハイクオリティな作品もあり驚かされています。 ### モチベーション 従来のPagesはグラフィカルなUIで簡単に動的なコンテンツが作成できる反面、できることが限られていました。そこで、完全なプログラミングを行えるようにすることで最高の自由度を持つコンテンツ作成プラットフォームを提供したいと考えるようになり、Playが生まれました。 最高の自由度と言っても、例えばユーザーの書いたJavaScriptをそのまま走らせるような実装ではもちろんセキュリティ上の問題があるので、安全なサンドボックス環境でプログラムを実行する必要があります。 そのために、AiScriptというJavaScript上で動作するスクリプト言語を作成して、Playはそのホストとなるような実装にしてセキュリティを担保しました。 このAiScriptは汎用的な言語なので、Playだけでなく、プラグインの実装などにも用いられています。 ### 今後 例えば画像を描画できるようにするなど、できることをもっと増やしたいと考えています。 また、v2023.11.0で任意のデータをサーバーサイドに保存可能なレジストリAPIが開放されたので、それを活用したPlayが出てくることも期待しています。 ## アイコンデコレーション サーバー側で用意されたデコレーション画像をアイコンに重ねて着飾ることができる機能で、個人的にお気に入りの機能です(みんなかわいいため)。 まだ機能がベータ版の段階からサーバーごとに創意工夫がされ、特色のあるデコレーションが作られており、デコレーションの一覧を眺めているだけでサーバーの雰囲気を掴むことができます。 さらに、デコレーションでユーザーの個性をより表現することができ、コミュニティの活性化にも繋がると感じています。 デコレーションはロールごとに使用可能なものを設定できるようになっており、運用方法によってはサーバー運営者のマネタイズにも役立つと期待しています。 ![](/img/blog/2023-12-01-2023recap/decorations.png) ▲自分が用意したデコレーション13種 ### 今後 デコレーションをひとつだけでなく、複数重ね掛けできるようにする予定です。これにより、サングラスを掛けながら頭にみかんを乗せたり、怒りながら愛情を振りまいたりなどの芸当が可能になります。 また、位置を微調整できるようにしたり、デコレーションの種類が多い場合の表示を改善するといった、細かなQoM(Quality of Misskeying)を向上させる改修も予定しています。 サーバー間の連合も予定しています。 ## オンボーディングの強化 Misskeyのユーザー層が拡大してきているので、ドキュメントやチュートリアルを充実させてMisskeyに慣れてもらう、いわゆるオンボーディングを強化する必要性が高まってきています。 そのため、今年は以下のような改修を行いました。 ### 実績 実績機能もv13から追加されたものです。実績を実装したかったモチベーションとしては、単に楽しいというのもありますが、実績をアンロックするために今までよりMisskeyの様々な機能を触る機会が増えることによる、オンボーディングの促進という面が大きいです。 実際、今まで開いたこともなかった「Misskeyについて」ページを実績のために開いて触ってみる、というのは多く観測しています。 また、獲得した実績は他のユーザーに公開されるので、その人がどれくらいMisskeyを使っているか、というのを知るためのひとつの指標にもなります。 なお、実績はお察しのようにCookie Clickerからインスピレーションを受けたものが多くあります。 ### アカウント初期設定ウィザードおよびチュートリアル これもオンボーディングの一環で、アカウント作成時にウィザードを表示し基本的な設定を行えるようになったのと(v13.12.0)、設定後にMisskeyの基本的な概念や操作を一通り学べるチュートリアルを表示できるようになりました(v2023.11.0)。 チュートリアルでは実際のコンポーネントが使われ、インタラクティブにMisskeyの操作を学ぶことができるようになっています。 ![](/img/blog/2023-12-01-2023recap/tutorial.png) ### 今後 来年も引き続きオンボーディングの強化に取り組んでいく予定です。 例えば、ドキュメントやUI内の説明を充実させたり、タイムラインや投稿以外のチュートリアルを追加したり、実装を計画しているログインボーナス受け取りの際に「今日のヒント」等と称してMisskeyにおけるTipsを表示させたりを考えています。 またオンボーディングとは少し違いますが、一週間に一度、その週の活動実績(受け取ったリアクション数やノートが閲覧された回数、増えたフォロワーなど)をメールで受け取れるようにすることで、「あーこの前そんなサービス登録したな、なんかフォロワー増えてるし開いてみるか」といったユーザーストーリーが発生し、ユーザーの定着率向上を狙う機能も構想中です。 ## モデレーション機能の強化 Misskeyのユーザー数が増えているため、モデレーションに関する機能も強化する必要性が高まってきていました。 そのため今年は以下のような改修を行い、サーバー運営の負担を軽減できるようにしました。 ### ロール機能 ユーザーごとに、ロールという予め設定した属性を付与することのできる機能です。 ロール機能の実装の必要性は当初半信半疑(従来の「モデレーターか否か」という単純なフラグだけで十分ではないかと考えていました)でしたが、いざ実装してみると、Misskeyサーバーの運用の幅が大きく広がり、一部の運営者からは革命と評される機能になりました。 ロール機能を使用することで権限を細かくコントロールできるようになり、コンディショナルロールを作成すればアサインを自動化できるなど、柔軟な運用が可能になりました。 また、ロールはバッジとして表示することも可能で、サーバーの支援者特典としても活用が可能になっています。 ### お知らせ刷新 お知らせの表示方法にバナーやダイアログを追加したほか、ユーザー個別のお知らせを作成できるようになりました。 ### モデレーションログ モデレーターの行った様々な操作をログとして記録・表示できる管理者用機能です。 操作の前後の差分表示機能もあり、以前の状態に差し戻すことも容易になっています。 操作の種類や操作者をフィルタリングして表示することも可能です。 ### 今後 2024年もモデレーション機能の拡充に引き続き取り組んでいきます。 検討中の課題にGDPR対応があり、実現は簡単ではありませんが日本以外の国でも安心してサーバーの運営が行えるようにしたいと思っています。 ## パフォーマンスの改善 今年は様々なMisskeyサーバーでユーザー数が急増したことに伴い、より少ないコストでサーバーを稼働させることができるようMisskeyのパフォーマンス向上に重点的に取り組みました。 自分の中で印象に残っていて、かつパフォーマンス改善へのインパクトも大きかったものとしてはFTT(Fanout Timeline Technology)の実装が挙げられます。 これはX(Twitter)でも昔から採用されているタイムラインの実装方法(アーキテクチャ)で、投稿作成時の負荷が高くなる代わりに、タイムライン読み込み時のパフォーマンスを大幅に向上させることができるものです。 ![](/img/blog/2023-12-01-2023recap/ftt.png) 以前よりMisskeyでもこのアーキテクチャへの変更は検討されてきていましたが、投稿時の負荷が高まることへの懸念や実装の難しさなどがありなかなか実現には至っていませんでした。 しかし今年に入りアーキテクチャ変更の必要性が以前にも増して高まってきたのと、自分の技術力が向上(Redisの知見)してきたこともあり、ついに重い腰を上げ実装を行った次第です。 結果としては成功で、実際に以前は「フォローしているユーザーが少ないアカウントでホームタイムラインの読み込みを行う場合」や「メンバーの少ないユーザーリストのタイムラインを読み込む場合」といったシチュエーションでは負荷が高くタイムラインの表示までしばらく時間がかかることがありましたが、FTTが有効になっているサーバーではそのようなシチュエーションでも瞬時にタイムラインが表示されるようになりました。 FTTも含め、パフォーマンス改善の取り組みについての詳細は以下で解説しています。 - [「Misskeyのパフォーマンス改善の取り組み⁠⁠・2023年7月」](https://gihyo.jp/article/2023/07/misskey-05) - [「Misskeyのパフォーマンス改善の取り組み⁠⁠⁠⁠・2023年11月」](https://gihyo.jp/article/2023/11/misskey-08) ### 今後 もちろん2024年も引き続きパフォーマンスの改善に取り組んでいきます! 例えば、クエリの最適化、No WebSocketモード、Node.jsからより速いプラットフォームに移行することなども検討しています。 さらに、おそらく2024年内に、Misskey Webで利用しているフレームワークであるVueの大きなアップデート(Vue Vapor)があると予想され、その暁にはMisskey Webをより軽量化できると考えています。 ## 安定性向上 今年は規模の大きなサーバーが増え、Misskeyのソフトウェアとしての信頼性が以前より求めらるようになったことから、以下のような取り組みも行いました。 - リリースサイクルを見直し、大きな機能の追加や改修は短くとも1ヶ月間隔でしか行わないようにした - ベータテストの期間を長めに設けて、不具合や改善点の洗い出しを行いやすくした - リリース時に複数の開発者にレビューしてもらう機会を設けた 結果、今年は去年に比べて「アップデート直後に問題が発生する」といった事案がかなり減ったと感じています。 ### 今後 来年もこうした取り組みは続けていきたいと思います。 リリースサイクルについて「大きな機能の追加や改修は短くとも1ヶ月間隔でしか行わない」と説明しましたが、この安定志向をさらに推し進め、「偶数月(もしくは奇数月)でしか機能追加をリリースしない=短くとも2ヶ月間隔」というサイクルにすることも検討しています。 また、テストが不足していることも課題になっているのでそちらについても進めていきたいです。 ## リファクタリング 今年は大きなリファクタリング(Misskeyのソースコードの整理)も行ったので、今後の機能追加や改修が行いやすくなっています。 詳しくはgihyo.jpの連載をご覧ください。 ## Misskey Hub Next 現在MisskeyプロジェクトのオフィシャルサイトであるMisskey Hubの刷新作業を行っており、VuePressからNuxt.jsに書き直され、よりモダンで使いやすいデザインに改修するとともに、コンテンツの拡充を行っています。 ![](/img/blog/2023-12-01-2023recap/misskey-hub-next.png) 一例として、MFMプレイグラウンドや何かと必要になるAIDコンバーター、テーマ・プラグインストア(予定)、シェア中継機能(予定)などがあります。 また、ローカリゼーションをGitHubリポジトリに直接PRする方式から、Misskey本体と同じくCrowdinを利用する方式に改められました。これによって、より簡単にドキュメントの翻訳に貢献していただくことが可能になっています。 Misskey Hub Nextを主導してくださっているかっこかり氏に感謝申し上げます。 ### 今後 早いうちにドキュメントを充実させ、現行のMisskey Hubのリプレースを行う予定です。 ## Misskey開発についての連載がスタート お伝えしているように、今年の2月に技術評論社様からお声がけいただき、Misskeyの技術についての連載をWebメディアgihyo.jpにて始めることとなりました。 仰々しくも「Misskey & Webテクノロジー最前線」と題し、Misskeyで使われている最新のWeb技術などについて解説をしていくものになっています。 https://gihyo.jp/list/group/Misskey-Web%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E6%9C%80%E5%89%8D%E7%B7%9A ありがたいことに、解説が平易で分かりやすいとの評価をいただいていて、2024年も引き続き記事の公開を行っていく予定です! ## misskey.io法人化 以前もニュースでお伝えしましたが、Misskey最大手サーバー misskey.io が今年ついに株式会社MisskeyHQ(代表取締役: 村上さん)として法人化し、私も取締役に就任しました。 misskey.ioのアクティブユーザー数は1月時点で1日平均500人前後でしたが、記事執筆時点(12月)では平均約28,000人まで増加(56倍)していて、ものすごい成長スピードとなっています。 ![](/img/blog/2023-12-01-2023recap/io-chart.png) ▲ioユーザー数のチャート misskey.ioはもともとmisskey.xyzという名前で、自分で運営を行っていました。今は村上さんはじめとするmisskey.io運営チームにバトンタッチしていますが、それでも自分の始めたサービスがここまで大きくなったというのは感慨深いです。 モデレーションやインフラ整備、障害対応など、自分一人では到底そのような運営はできません。運営チームの方々に感謝申し上げます。 来年もさらなる成長は間違いありませんので、misskey.io運営に携われることを嬉しく思います。 ## スポンサー 以前もニュースでお伝えしましたが、今年はMisskey開発への支援も大幅に増え、XServer様、Skeb様からの支援もいただきました。 Misskeyは収入源を寄付にのみ頼っているため、こうした支援をいただけるのはとてもありがたいです。 ご期待に沿えるよう来年もより活発な開発を続けていきます! ## 財政状況の改善 上述したように企業からの支援や、利用者の皆様からの寄付が今年に入り大幅に増えたこともあり、プロジェクトとして財政状況に余裕が生まれました。 いただいた資金はMisskeyに貢献してくださった開発者の方々への報奨金としても活用されました。 ### 今後 財政状況が改善したとはいえ、他の開発者への分配や、今後アプリ開発をしていくという点で見るとまだまだ資金は不足しています。 皆様からの寄付だけに頼るのも限界があると思うので、プロジェクトとしてマネタイズを行う方法を模索していきたいと思います。 ## Misskeyの商標登録に成功 2023年7月12日、「Misskey」が日本において商標登録されました。 Misskey®®®®®®®®®®® ## メディアで取り上げられる ありがたいことに、今年はMisskeyをメディアで取り上げていただく機会がとても多かったです。 - [「次のTwitterはMastdonかMisskeyか!? Fediverse(フェディバース)な世界へ飛び込んでみる」](https://k-tai.watch.impress.co.jp/docs/column/minna/1458691.html) - [「『次のTwitter』を探しているなら、より心の機微が絵文字で伝わる、高機能な短文型SNS『Misskey』へようこそ」](https://k-tai.watch.impress.co.jp/docs/column/minna/1474357.html) - [「話題の分散SNS『Misskey』が居心地いい 行儀悪くて笑えるあのころのインターネットが帰ってきた ユーザー爆増中」](https://www.itmedia.co.jp/news/articles/2303/03/news185.html) - [日経Linux2023年5月号](https://info.nikkeibp.co.jp/media/LIN/atcl/mag/032900074/) - [「'Post-Twitter' decentralized social media struggles for way forward」](https://asia.nikkei.com/Business/Technology/Post-Twitter-decentralized-social-media-struggles-for-way-forward) - [「『楽しんでほしい』ピュアな思いがMisskeyを生んだ。異様な熱狂を放つSNSの今までとこれから」](https://levtech.jp/media/article/interview/detail_268/) - [「Twitterにさよなら SNSの自治求めミスキーに移民」](https://www.nikkei.com/article/DGXZQOCB034P20T00C23A7000000/) - [「Twitter(X)に代わるSNS」人気ランキングTOP25!](https://nlab.itmedia.co.jp/research/articles/1771561/) - [「目指すのは『オタク向けmixi』『平成のインターネット』……? ユーザー爆増の純日本産SNS『Misskey』開発・運営インタビュー」](https://realsound.jp/tech/2023/09/post-1422348.html) ## ファンアート 今年は素敵なイラストをたくさん描いていただきました。 あまりの多さに更新が遅れ気味ですが、こちらにまとめてあります。 https://xn--931a.moe/ ## misskey.io合同誌 れおねこ氏主導で、misskey.io合同誌が企画されました。 メロンブックスでは予約ランキングで二位になるなど、注目度もかなり高いようです。 高いバイタリティでプロジェクトを主導されたれおねこ氏、寄稿された方々、購入された方々に対し私からも感謝申し上げます。ありがとうございます! ## Misskey Developer Conference (MiDC) 第一回は神奈川県川崎市で、第二回は東京都渋谷区でMisskey Developer Conference (MiDC) 2023(開発者オフ会)が開催されました。 ![](/img/blog/2023-12-01-2023recap/midc-shibuya.webp) ▲第二回の様子 ## その他の今後の予定 以下のような予定があります。 - ログインボーナス実装 - チャットUI実装 - ギャラリー機能の改修 - 3D空間内で皆と遊べる機能(Misskey Roomの発展形) - Misskey Gamesの復活 - Misskey リバーシ - Misskey 麻雀 - ネイティブクライアント開発 - テスト拡充 - 等 大雑把なロードマップは[こちらにあります。](https://github.com/misskey-dev/misskey/blob/develop/ROADMAP.md) ## 自分の話 ![](/img/blog/2023-12-01-2023recap/mugitya.webp) - 家が物流倉庫になった - Amazonの欲しいものリストに麦茶を65535個希望とかで入れていたら大量に届いて大変なことになりました - 飲みきれないという意味での大変ではなく、置き場所に困る(床が抜けそう)という意味での大変 - 配達員の方からは、おそらく自分は麦茶の人として認識されている - 本記事執筆時点では(他の開発者に配ったということもあり)ほぼすべて消費しました。送ってくださった皆様ありがとうございました - 皆さんはどうせそんなに贈られることはないだろうと高をくくって65535個希望とかに設定しないようにしましょう - Cities: Skylines 2はいいぞ - でも激重だしバグが多い - 暖房としても活用できる - Factorio: Space Age楽しみ - 多分動くと思うからリリースしようぜ - レンズ沼にはまった - たすけて ## まとめのまとめ 紹介は以上になりますが、これらは2023年にMisskeyで起こったことのほんの一部で、紹介しきれなかったことはまだまだたくさんあります。 振り返ると、2023年はMisskeyが大きく発展した年であることに間違いないです。 ユーザーも去年とは比べ物にならないほど増え、多くの人にMisskeyを楽しんでいただけていることを嬉しく思います。 改めてになりますが、ここまでMisskeyが成長できたのは以下の皆様のおかげです。 - Misskeyの開発を経済的に支援してくださった方々 - Misskeyの開発に貢献してくださった方々 - ベータ版をテストし、リリースの安定性向上に貢献してくださった方々 - サードパーティアプリを開発し、快適なMisskey体験を提供してくださった方々 - ファンアートを制作して、Misskeyのコミュニティを盛り上げてくださった方々 - 応援の言葉やリアクションをしてくださった方々 - そのほかすべての利用者の方々 「方々」がゲシュタルト崩壊してきました。皆様本当にありがとうございました。 そして来年もMisskeyを発展させていきますので何卒よろしくお願いいたします!! :::tip Misskeyの今のコードネーム(v13~)は「nasubi」です。今年の初め、コードネームは今後野菜で統一していこうと思い、一番手は「一富士二鷹三茄子」とも言われ縁起の良い🍆を選びました。そして言葉通り縁起の良い年になりました。 ::: それでは(ちょっと早いですが)、Merry Christmas and Happy New Year! ![](/img/blog/2023-12-01-2023recap/2024.jpg) --- Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2023-12-03-inside-misskey-hub-next.md ================================================ --- description: Misskey Hubが新しくなります!新しいMisskey Hubの機能やこだわり、今後のアップデートをご紹介。 date: 2023-12-03 --- # インサイド Misskey Hub Next :::tip この記事は、[Misskey Alt Advent Calendar 2023](https://adventar.org/calendars/8658) 3日目の記事です。 ::: ![](/img/og/misskey-hub-screenshot-d.png) こんにちは!Misskey 開発メンバーのかっこかりと申します。[Misskey.ioで某公立高校の部活動広報アカウント](https://misskey.io/@natureofmad_)の運営に参加したりもしています。 先日[しゅいろママからも発表](/blog/2023-12-01-2023recap/#misskey-hub-next)がありましたように、このたび、Misskeyプロジェクト公式サイト「Misskey Hub」の全面リニューアルを行うことになりました!今回、私が開発主担として、いまご覧いただいているこのサイトを制作しております。そこで、今日はこの新Misskey Hubの**機能・頑張った点・今後のアップデート**についてご紹介していきます! ## リニューアル後の構成 現行のMisskey Hubは[VuePress](https://v2.vuepress.vuejs.org/)をベースに作成されています。これは、ドキュメントを用意さえすればサイトの部分はある程度よしなにやってくれるというものです。 しかし、もともとのMisskey Hubの計画上、ドキュメント以外のページもかなり必要になるということで、ドキュメント生成に特化したフレームワークではなく、より拡張性が高く、汎用的な[Nuxt](https://nuxt.com/)をフレームワークとして採用しました。 :::warning VuePressよりは、今はどちらかというと[VitePress](https://vitepress.dev/)のほうがメジャーな感じがします。 ::: :::g-details{summary="詳しい技術スタックはこちら"} ### フレームワーク - [Nuxt](https://nuxt.com/) - [Tailwind CSS](https://tailwindcss.com/) - [Bootstrap](https://getbootstrap.com/) (※フォーム・ボタンのみ使用) #### Nuxt Modules - [Nuxt Content](https://content.nuxt.com/) - [Nuxt i18n](https://i18n.nuxtjs.org/) - [Nuxt Color Mode](https://color-mode.nuxtjs.org/) ### その他 - [Bootstrap Icons](https://icons.getbootstrap.com/) - [ufo](https://github.com/unjs/ufo) - URLのパースなどができるライブラリ。超便利 - [AiScript VSCode](https://github.com/aiscript-dev/aiscript-vscode) - AiScriptのコードハイライトに使用 ### 各種サービス - [Vercel](https://vercel.com/) - [Crowdin](https://crowdin.com/project/misskey-hub) ::: ## Nuxtとは? [Nuxt](https://nuxt.com)は、Vue.jsを使ったWebアプリケーションフレームワークです。[静的サイト](/blog/2021-12-01-inside-misskey-hub/#静的サイト-is-何)の作成に使うための[SSG (Static Site Generator) ](/blog/2021-12-01-inside-misskey-hub/#ssg-is-何)の他に、Nuxt自体がサーバー本体となって動作するSSR (Server Side Rendering)、さらにSSGとSSRのいいとこ取りをしたISR (Incremental Static Regeneration) があり、それらを**サイトのディレクトリごとに切り替えて**使うことができます。 ・・・まとめて言うと、NuxtとはWeb制作に使える**とても万能なツール**だということで大丈夫です。 そして、今回のMisskey Hub Nextでは、ドキュメントページとブログページに**ISR**を、それ以外のページに**SSG**を適用しています。略称多くてこんがらがりそう。 :::tip プロジェクト名に`Next`と入っているのでReactフレームワークの[Next.js](https://nextjs.org/)のほうを思い浮かべたかもしれませんが、**罠です。** Nuxtで作ってあります。 ::: ## ISRとは? [SSG](/blog/2021-12-01-inside-misskey-hub/#ssg-is-何)では、サイトの生成時にまとめてすべてのページを書き出してしまう必要があります。しかし、Misskey Hubには大量のドキュメントとブログページ、さらには翻訳版ページもあります。それらをすべて前もって生成すると、**とんでもなく時間がかかってしまいます。** ![ビルド時間: 27分49秒](https://media.misskeyusercontent.com/io/b7b8180f-302e-4e4d-a1a4-ad60d3985051.png) そこで登場するのがISRです。ISR (Incremental Static Regeneration) を使用すると、サイトの書き出しのタイミングではページの生成は行わず、**最初にそのページに訪問されたときにページの生成を行います。** これを、特にページ数の多い[ドキュメントページ](/docs/)と[ブログページ](/blog/)に適用したことで、実に**13倍**も高速な生成が可能となりました。 ![ビルド時間: 1分32秒](https://media.misskeyusercontent.com/io/298919ff-fb33-4fa7-8a5c-cc3c89f65c58.webp) ## デザイン デザインに関しては、現行Misskey Hubのデザインをベースに、主に以下の項目を重視してリニューアルを行いました。 - ページを見つける導線の改善 - スマホでの操作感の改善 - ドキュメント更新にかかる手間の改善 ### ページを見つける導線の改善 現行のMisskey Hubでは、ドキュメントページの一覧などがなく、パッと見てどこに何があるのかがわかりにくい状態でした。 ![](/img/blog/2023-12-03-inside-misskey-hub-next/1.png) そこで、Misskey Hub Nextでは、ドキュメントページをディレクトリ構造から抜本的に見直しました。利用者別にページ階層を分けたほか、各セクションに見出しページを設けられるようにしました。 [ドキュメントのトップページ](/docs/)もかなり整理されたかと思います。 ![](/img/blog/2023-12-03-inside-misskey-hub-next/2.png) また、同様にドキュメントページのデザインも変更しました。左側には各ページが階層で表示され、右側には現在のページのもくじが表示されます。 ![](/img/blog/2023-12-03-inside-misskey-hub-next/3.png) ### スマホでの操作感の改善 現行のMisskey Hubでは、モバイルナビゲーションが肥大化し、見にくくなってしまっていたほか、一部では文字が背景と重なって見えにくい部分もありました。 また、スクロールの際にアニメーションがもたついて背景がカクカクする・・・といった問題も起きていました。 そこで、Misskey Hub Nextではスマホ表示でのデザインを改善し、一部ではスマホ専用のUIを設けて対応しました。上で紹介したドキュメントページの各種UIも、スマホの小さい画面でもアクセスできるように配置してあります。 ### ドキュメント更新にかかる手間の改善 現行のMisskey Hubでは、ドキュメントは翻訳版も含めてすべてGithub上で管理されており、Githubを使ったことのない人にとって、ドキュメントの更新のハードルは高いものでした。 そこで、Misskey Hub Nextでは、翻訳の管理を外部サービス(Crowdin)で行えるように設計。技術的な知識不要で、翻訳に参加できるようになりました。 依然として新しいドキュメントの追加にはGithubが必要になってしまいますが、コレも今後どうにかしたいなぁ・・・と検討中です。Githubを使える方は、ドキュメントの拡充に引き続きご協力お願いします🙏 :::tip{label='お知らせ'} 現在、翻訳にご協力いただける方を募集中です! We are looking for translators for this site! [![](/img/blog/2023-12-03-inside-misskey-hub-next/5.png)](https://crowdin.com/project/misskey-hub) [翻訳サイト](https://crowdin.com/project/misskey-hub)をご覧頂いた上で、リストに既にある言語へ翻訳する場合は、そのままログインして作業を開始できます。 リストにない言語でも、[ご連絡](https://misskey.io/@kakkokari_gtyih)いただければ言語を追加します。 Misskeyをより多くの人に広めるために、ぜひご協力お願いします🙏 ::: :::g-details{summary="【マニアック】フォントのはなし"} Misskey Hub Nextでは、フォントの改善も行いました。 現行のMisskey Hubで使われているフォント(Kosugi Maru)は、英字が歪で、英単語や英文になると読みにくくなっていました。また、日本語の漢字部分が中国語とバッティングして不自然に見えてしまうという問題もありました。 そこで、Misskey Hub Nextでは、英字に欧文フォントを採用し、各種言語にはそれぞれの国ごとにフォントを切り替えるようにしました。 ### フォント一覧 #### 欧文フォント - [Capriola](https://fonts.google.com/specimen/Capriola) (キャッチコピーやタイトルに使用) - [Nunito](https://fonts.google.com/specimen/Nunito) (本文に使用) #### 日本語 - [源柔ゴシックX](http://jikasei.me/font/genjyuu/) #### 韓国語 - [Pretendard](https://cactus.tistory.com/306) #### 中国語 - [Noto Sans Traditional Chinese](https://fonts.google.com/specimen/Noto+Sans+TC) - [Noto Sans Simplified Chinese](https://fonts.google.com/specimen/Noto+Sans+SC) ::: ## 機能紹介 ここからは、Misskey Hub Nextに搭載された機能をご紹介します! ### Misskeyサーバー一覧 Misskeyの[サーバー一覧](/servers/)を、[Misskeyをはじめよう(joinmisskey)](https://join.misskey.page/)のシステムを使用して大幅に改良しました! ![](/img/blog/2023-12-03-inside-misskey-hub-next/6.png) これにより、基本的には**サーバーを追加するのに特別な作業や申請は必要なくなり、新しく見つかったサーバーは自動的に追加されるようになりました!** :::tip なので近日中にjoinmisskeyはMisskey Hubに統合されるかも…? ::: ### 【新機能】ツール集 Misskey関連のさまざまな便利ツールを提供するページ「[ツール集](/tools/)」を新たに開発しました! ![](/img/blog/2023-12-03-inside-misskey-hub-next/7.png) 現在 - MFMお試しコーナー - aid/aidx変換ツール をご利用いただけますが、今後も随時拡充していく予定です💪 :::tip [MFMお試しコーナー](/tools/mfm-playground/)の再現精度は割と高いのでMFMアートづくりにもおすすめです ::: ### 【新機能】AiScriptに対応 Misskey Hub上で、AiScriptをハイライト表示することができるようになりました!プラグインの作り方やAiScript入門なども、Misskey Hub上で書けるようになるかも…! ```AiScript for (let i, 100) { <: if (i % 15 == 0) "FizzBuzz" elif (i % 3 == 0) "Fizz" elif (i % 5 == 0) "Buzz" else i } ``` ### 藍 :::fukidashi{chara="doya_ai" charaName="藍"} Misskey Hub Nextでは、わたし・藍も色々なところにいます! ほら、こんなところにも! ![](https://media.misskeyusercontent.com/io/7f980e50-bbd8-4527-b9f7-f6f97564956a.png) ほかにも色々なところに隠れているので、ぜひ探してみてくださいね♪ ::: さらに、いにしえのミスキストや、現行Misskey Hubのヘビーユーザーしか知らないであろう、知る人ぞ知る機能・**藍モード**も移植しました! え?何が起きるのかって? まあまあ、ものは試しです。やってみてください↓ :AiModeB [制作:しなむ 様](https://misskey.io/@shinamu476) ## 今後実装する予定の機能 ※以下はすべて「予定」です。いつ実装されるかわかりませんし、そもそも実装されないかもしれません。 ### APIエンドポイント ドキュメント こちらは、現在[株式会社MisskeyHQ (村上さん)](https://misskey.io/notes/9l0i92bvr1)と連携しながら、ドキュメントの拡充に取り組んでいます。もう少しお待ち下さい🙏 :::tip ドキュメントの拡充にご協力いただける方は、[こちら](https://misskey.io/notes/9l0i92bvr1)をご覧のうえ、ぜひご参加ください! ::: ### シェアボタン中継機能 MisskeyへWebページをシェアする機能を、Misskey Hubを中継して行えるようにする予定です([Misskey Share](https://misskeyshare.link/) や [DonShare](https://donshare.net/)にあたる機能を実装します)! これにより、サーバーごとの投稿処理などの複雑な実装なしで、ウェブサイトにMisskeyへのシェアボタンを埋め込めるようになります🎉 ### プラグイン・テーマストア Misskey v2023.11.0から、外部サイトを介してプラグイン・テーマをインストールすることが可能になりました。これを利用して、Misskey Hub上でプラグインやテーマを公開できる仕組みを構築予定です! ## まとめ このように、Misskey Hubは様々な部分で改善・追加を行い、パワーアップします!現在鋭意開発中で、**近いうちに現行のMisskey Hubを置き換えてリニューアルを行う予定です。** それまでの間、Misskey Hub Next は現在のURL(`misskey-hub-next.vercel.app`)でご覧いただけます。ぜひ色々なページをご覧いただき、ご意見やご感想をお寄せください。 それでは、新しいMisskey Hubの正式リリースを楽しみにお待ちください♪ ================================================ FILE: content/blog/2023-12-12-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の12月の記事が公開されました' date: 2023-12-12 --- # 「Misskey & Webテクノロジー最前線」12月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の12月の記事が公開されました! [「2023年Misskey開発まとめ」](https://gihyo.jp/article/2023/11/misskey-09) ================================================ FILE: content/blog/2023-12-19-mac202319.md ================================================ --- date: 2023-12-19 --- # Deep dive on the linkage between Misskey and Vue.js :::tip これは [Misskey Advent Calendar 2023](https://adventar.org/calendars/8742) 19 日目の記事です. ::: こんにちは, コアチームメンバーの [acid-chicken](https://github.com/acid-chicken) です. Misskey の開発には nighthike v4 あたりから参加しており, 現在は本業の傍ら, 余暇にリファクタリングやコードレビューなどをやっていることが多いです. Misskey では [2018 年からフロントエンドの UI フレームワークに Vue.js を採用し](https://github.com/misskey-dev/misskey/pull/1116)ており, メジャーアップデートのマイグレーションなどを経て, 現在も継続して使用しています. 今回は, Misskey のフロントエンド構造について, Vue.js の機能との接点を中心に深掘りしていきます. :::tip 大まかな解説は既に syuilo 連載[「Misskey & Webテクノロジー最前線」9月](/blog/2023-09-11-gihyo)などで触れられています. 一方で, 本記事では連載で触れないような, 細かい部分に焦点を絞った話題を扱うため, もしかすると読んでいてつまらない内容になっているかもしれません. 予めご了承ください. ::: ## Misskey のフロントエンド構造 現在 (nasubi 開始時点) の Misskey は, 以下のようなレイヤー構造の構成によってフロントエンドを描画しています.
::X__Blog__2023-12-19-mac202319__Figure1 ::
Misskey のフロントエンド構造
コードベースでは, 図における上部のレイヤーと下部のレイヤーが分かれており, (少なくとも便宜上は) 前者をフロントエンド, 後者をバックエンドと呼んでいます. ビルド時に, フロントエンドは Vite によってバンドルされ, その成果物はバックエンドのアセットとして配置されます. バックエンドは, ユーザーエージェント (多くの場合, Web ブラウザ) からのリクエストに対して適切な HTML を構築し, それにアセットを参照させることで, フロントエンドを描画します. フロントエンドにおいては, 参照するサードパーティライブラリを必要最低限に抑えることで, コードベースをより統一的な管理下に置き, Misskey の開発指針やデザインテーマが実効性を伴いやすくなっています. 結果, フロントエンドは Vue.js ランタイム, 数百からなるコンポーネントと, ルーター (nirax) やストア (pizzax) といったアプリケーションを管理するためのシステム, そしていくつかの内製 (browser-image-resizer, buraha, etc.) および外製 (Chart.js, PhotoSwipe, etc.) サードパーティライブラリの組み合わせで構成されています. Vite が生成する Misskey のフロントエンドアセットは, 全体を合計すると, Blotli 圧縮後のサイズでおよそ 1.4 MB にのぼります. このサイズが小さくなるよう努めることは, アプリケーションを提供するうえで重要な要素です. - JavaScript や CSS の成果物サイズが小さくなると, ユーザーエージェントがそれらを解析し, 実行する際のコストが削減されます. - 特に, JavaScript は多くの場合, Web ブラウザのメインスレッドで解析および実行されるため, 同程度のバイナリサイズで構成される画像ファイルなどと比較して処理にかかる負荷が非常に高く, その負荷を削減することは重要です. - また, JavaScript や CSS の成果物サイズが小さいということは, 多くの場合, それがシンプルであることを意味します. シンプルなコードは, 多くの場合, 軽快でパフォーマンスが高いといえます. つまり, コードサイズの削減は, パフォーマンスの観点からみても理にかなっています. - フロントエンドアセットのサイズが小さくなると, 当然ながら, ユーザーエージェントにそれらを配信する際の通信量が削減されます. - 高速通信技術が発展した現代においても, ユーザーが常にその恩恵を享受できる環境にあるとは限りません. 人と人のコミュニケーションを確立するアプリケーションとして, 不安定な通信環境においても, 快適性を可能な限り向上させるよう努めることは重要です. - アセットのサイズが小さくなると, より多くのアセットを CDN のキャッシュに蓄積させることができます. その結果, アセットのキャッシュヒット率が向上するので, ユーザーエージェントがアセットの取得に要する時間は, 削減されたアセットのバイナリサイズ分以上に短縮されることが期待できます. - 例えば, 多くのサーバーが利用している Cloudflare では, 同一ドメイン上でドライブファイルなどを配信すると, エッジキャッシュのバジェットがそれらと取り合いになります. これによってキャッシュヒット率の低下を招くと, 逆に Misskey の通信コストが非線形に増加する可能性を見積もれます. 先にも述べたように, フロントエンドのコードベースはその多くを数多の Vue.js コンポーネントで占めているわけですから, Vue.js を効率的に活用することは, フロントエンドのアセットサイズ削減に直結し, ひいてはユーザー体験の向上につながるといえます. ## Misskey における Vue.js の使用方法 Vue.js は, 世界で最も人気のある UI フレームワークの一つです. 人気とは, 一朝一夕に獲得できるものではありません. Vue.js にはモダンフレームワークなりの歴史があり, そして, 多種多様なフロントエンドの需要に応えるために, 様々な機能を提供して成長してきました. もっとも, ここまで読み進めている方の多くは, そんなことは百も承知かもしれませんが, とにもかくにも, Vue.js の使い方は様々な形態があり, ユースケースに合わせて適切な使い方を選択することが重要です. とはいえ, その内の SFC を使用するか否か (使用しています) や, TypeScript を使用するか否か (使用しています), および Composition API を使用するか否か (使用しています) については, 先述の syuilo 連載[「Misskey & Webテクノロジー最前線」9月](/blog/2023-09-11-gihyo)以上に掘り下げることが多くないので, ここでは割愛します. 代わりに, コンポーネントのスタイル連繫について見ていきましょう. Rich Web UI を謳う Misskey は, 個々のコンポーネントに細かくスタイルをつけています. 先述の通り, Misskey には数百のコンポーネントがありますから, スタイルデータはそれなりの量があります. そのため, スタイルがどのように管理され, 配信されるかは, 配信戦略において重要な要素の一つになります. さて, HTML で Web ブラウザにスタイルを提供する方法は, 大まかに分けて 3 つあります.
```html
Hello, world!
```
スタイル属性
```html
Hello, world!
```
スタイル要素
```html
Hello, world!
``` ```css .red { color: red; } ```
スタイルシート
このうち, 最後のスタイルシートによるスタイル連繫は, コンポーネントのロジック部分とスタイル部分が分離されることで, それぞれのライフタイムの長寿化を期待することができるため, プロダクションにおいては望ましい形式といえます. スタイルシートのスタイルルールは, セレクタを記述して, 条件に合致する要素にスタイルを適用するよう Web ブラウザに指示します. セレクタは大局的なものから局所的なものまで多種多様な指定が可能ですが, コンポーネントのパーツに細かくスタイルをつけていくという状況においては, そのほとんどは局所的かつ単純なものになります. なお, 再利用性を担保してなるべくシンプルにセレクタを記述する方法は, 単一のクラス名を指定するのが, もっともパフォーマンスが高いとされています. この理由をきちんと説明するには, Web ブラウザの実装の話などが大きく絡むので, ここでは割愛します. Misskey と Vue.js に話を戻すと, SFC にはスタイルシートを直接記述できる機能が備わっています. この機能を使用して SFC にスタイルを直接記述すると, vue/compiler-sfc によってスタイルシートが抽出され, @vitejs/plugin-vue によって仮想モジュールとして Vite に参照されるようになり, 最終的に Vite がそれらをバンドルします. このおかげで, 成果物として適切な様態で CSS が配信されることを保証しながら, 一方で開発体験としてはコンポーネントごとに関心を寄せてスタイルを記述できるようになります. さて, 個々のコンポーネントが自由にスタイルを記述し, それを統合した場合, 実際にはそれらのルールが意図せず他のコンポーネントに影響を及ぼしたりする問題が予想されます. SFC の機能には, この問題を避けるため, スタイルをコンポーネントのスコープに閉じ込めるよう指示できるものがあります. スコープ付き CSS は, ビルド時にコンポーネント毎に一意の識別子を生成し, コンポーネント内の要素にそれを属性として割り当て, スタイルシートのセレクタにも書き足すことで, ユーザーのコード変更なしにスタイルをスコープに分離することができます. SFC のタグに属性を足すだけでドロップインに使用できる手軽さから, 多くの Vue.js ユーザーに使用され, Misskey もかつて主方針として使用していました. しかしその実, [スコープは完全ではなく](https://github.com/vuejs/vue-loader/issues/957), また, セレクタが肥大化してしまう問題も孕んでいました. より踏み入った代替策として, SFC では CSS モジュールを使用することができます. これは, ビルド時にセレクタのクラス名を機械的に再構成し, そのバインドを JavaScript で参照できるようにするものです. コンポーネントにおけるテンプレート内のクラス名は直接指定ではなくバインドされるフィールドへの識別子に置き換える必要があるので, コンポーネントのリファクタリングが必要ですが, スタイル連繋における課題点は概ね払拭されます. 現在の Misskey では, ほとんどのコンポーネントが CSS モジュールを使用しています. ## CSS モジュール注入の最適化 Misskey が CSS モジュールを使うようになった後のある日, syuilo は言いました. :::fukidashi{chara="syuilo" charaName="しゅいろ"} えー、CSS Modulesってminifyしてくれにゃいんだ ![](https://s3.arkjp.net/misskey/1b008643-4932-40d8-980b-fe3da75db856.png) ::: — https://misskey.io/notes/9fd9w06qah このノートには, CSS モジュールのクラス名バインド用マップが成果物に丸々含まれていることを憂う気持ちが込められています. 例えば, 次のような SFC があったとします.
```vue ```
赤色で挨拶文を表示するコンポーネント
このコンポーネントは次のように変換されて欲しいです.
```jsx export const HelloWorld = defineComponent({ setup() { return () => jsx( // 実際にはより具象的なコードになる
Hello, world!
); }, }); ``` ```css .r3a9t { color: red; } ```
理想的な変換後のイメージ
しかし, 実際には, 次のように変換されてしまいます.
```jsx export const HelloWorld = defineComponent({ setup() { return (_ctx) => jsx( // 実際にはより具象的なコードになる
Hello, world!
); }, }); HelloWorld.__cssModules = { $style: { redColoredText: "r3a9t", }, }; ``` ```css .r3a9t { color: red; } ```
実際の変換後のイメージ
このようなことになってしまうのは, バインドの参照を常に静的に置換できるとは限らないためです. 例えば, $style.redColoredText のような参照は静的に置換できても, $style\[color + "ColoredText"\] のような参照はビルド時に color の値が定まるとは保証できないので, 静的に置換できません. また, Vue.js の Composition API では, useCssModule() を呼び出すことで, バインド用のマップ全体を取得することを許容しています. このような経緯で, 成果物にマップがそのまま含まれているのです. 逆に, それらの機能を一切使わないのであれば, 完全にそれらは無駄になっているといえます. 完全に無駄なものは安全に除去できるはずです. そこで, Misskey では, $style 配下を識別子のメンバーアクセスによる参照のみを認めるルールで運用することを前提に, 静的置換を行う Rollup プラグインを開発および使用することで, 成果物からマップを除去するようにしました. これにより, バンドルサイズの 3% 程度の削減につながりました. :::tip 詳細は [#10923](https://github.com/misskey-dev/misskey/issues/10923) を参照してください. ::: ## 今後の展望 現在まだ取り組まれていない最適化として, ルーティングの静的化を検討しています. 記事の最初の方に提示した図を見ると Router がレイヤーの中でも上部にあることがわかります. そのため, Page Components の読み込みはページが読み込まれてしばらくしてから始まります. しかし, どのルートがどのページを表示するかはビルド時にほぼ決定できると言って差し支えありません. この情報を静的に管理してバックエンドに連繫することで, バックエンドはより早いタイミングでユーザーエージェントに必要なアセットを知らせることができるので, ユーザー体験の向上を見積もることができます. ここで, SFC の機能を利用して, ```vue name: note path: /notes/:noteId ``` といったようにページコンポーネントに直接ルーティング情報を記述できれば, ビルドの際ルーティング情報を抽出して静的に集約でき, ついでに path props も同一ファイル内で管理でき, 保守性の向上にもつながります. あくまでも構想かつ一例にすぎませんが, このようにコンパイラの機能を使用するなどして, Misskey の開発では今後も表層的な枠組みに囚われず, 野心的に様々なものを活用し, より良いユーザー体験に貢献できるよう努めていきたいと思っています. ================================================ FILE: content/blog/2023-12-23-release.md ================================================ --- description: 'Misskey v2023.12.0がリリースされました' date: 2023-12-23 --- # NEW RELEASE: v2023.12.0 2023年12月23日、Misskey v2023.12.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-02-16-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年2月の記事が公開されました' date: 2024-02-16 --- # 「Misskey & Webテクノロジー最前線」2024年2月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年2月の記事が公開されました! [「Misskey Games バブルゲーム編」](https://gihyo.jp/article/2024/02/misskey-10) ================================================ FILE: content/blog/2024-02-17-release.md ================================================ --- description: 'Misskey v2024.2.0がリリースされました' date: 2024-02-17 --- # NEW RELEASE: v2024.2.0 2024年2月17日、Misskey v2024.2.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-02-27-wp-cocoon-share.md ================================================ --- description: '日本で人気を博しているWordPressテーマ「Cocoon」に、Misskey Hubを利用したMisskeyシェアボタンが追加されました!' date: 2024-02-27 --- # NEWS: WordPressテーマ「Cocoon」にMisskeyシェアボタンが追加 オープンソースCMS「WordPress」で使用できる、「[わいひら](https://twitter.com/MrYhira)」さんが開発しているテーマ「[Cocoon](https://wp-cocoon.com/)」のv2.7.1が公開され、[Misskey Hub 共有フォーム中継サービス](/docs/for-users/features/share-form/)を利用したMisskeyシェアボタンが追加されました! これにより、Cocoonを利用しているブログやWebサイトに、Misskeyにノートするためのボタンを簡単に追加することができるようになります。 同アップデートでは、併せてMastodonにシェアするためのボタンや、Blueskyアカウントをフォローするためのボタンなども追加されています。アップデートの詳細は「[Cocoon 2.7.1公開。シェア・フォローアイコンにMastodonやMisskey等を追加。背景アイコン機能を追加](https://wp-cocoon.com/2-7-1/)」をご覧ください! ================================================ FILE: content/blog/2024-03-01-release.md ================================================ --- description: 'Misskey v2024.3.0がリリースされました' date: 2024-03-01 --- # NEW RELEASE: v2024.3.0 2024年3月1日、Misskey v2024.3.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-03-26-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年3月の記事が公開されました' date: 2024-03-26 --- # 「Misskey & Webテクノロジー最前線」2024年3月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年3月の記事が公開されました! [「Misskey チャートエンジン」](https://gihyo.jp/article/2024/03/misskey-11) ================================================ FILE: content/blog/2024-04-11-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年4月の記事が公開されました' date: 2024-04-11 --- # 「Misskey & Webテクノロジー最前線」2024年4月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年4月の記事が公開されました! [「Vue Vaporモード近況」](https://gihyo.jp/article/2024/04/misskey-12) ================================================ FILE: content/blog/2024-05-31-release.md ================================================ --- description: 'Misskey v2024.5.0がリリースされました' date: 2024-05-31 --- # NEW RELEASE: v2024.5.0 Misskey Projectは2024年5月31日、Misskey v2024.5.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-06-04-pepabo.md ================================================ --- description: 'Misskey ProjectはGMOペパボ株式会社様との提携を開始しました' date: 2024-06-04 --- # New partner: GMOペパボ Misskey Projectは、ハンドメイドマーケット「minne」などのインターネット関連事業を手がける[GMOペパボ株式会社](https://pepabo.com/)様より、スポンサーとしてプロジェクトに対して支援をいただけることを発表します。 今回の発表にあたりコメントをいただいています。 > GMOペパボは「人類のアウトプットを増やす」というミッションのもと、個人から法人まで幅広い表現活動を支援するサービスを多数提供しています。 > この度、GMOペパボは「Misskey」のスポンサーとなり、「Misskey」の持続的な成長、発展および安定化を支援してまいります。 > また、GMOペパボやサービスを取り巻くステークホルダーにアウトプットの場を提供するべく、「Misskey」を活用したコミュニティを提供していきます。 [GMOペパボ株式会社](https://pepabo.com/) プロジェクトとして、改めて感謝申し上げます。 --- Misskeyはフリーのオープンソースソフトウェアで、開発資金は皆様からの寄付に頼っています。今後も開発を続けられるよう、ぜひ[プロジェクトへの支援](/docs/donate/)をご検討ください。 ================================================ FILE: content/blog/2024-06-11-historical-materials.md ================================================ --- description: 'Misskey歴史資料館を公開' date: 2024-06-11 --- # NEWS: Misskey歴史資料館を公開! 皆様のご愛顧のおかげで、今年でMisskeyは10周年になります。 10周年を記念して、Misskey考古学者の方などからご提供いただいた、歴史的価値の高い当時の様子が分かる貴重なスクショを一挙公開いたします。 [Misskey歴史資料館](/about-us/history/) お楽しみください! ================================================ FILE: content/blog/2024-06-11-mi-card.md ================================================ --- description: '「MisskeyIDカード」発表!' date: 2024-06-11 --- # NEWS: 「MisskeyIDカード」発表! Misskeyご支援者の方の特典として、金属製「MisskeyIDカード」の製作を行いたいと少なくとも5年以上前から公言していましたが、今年でMisskeyが10周年を迎えるということもあり、ついに製作を開始しました。 本日より交付申請受付を開始しています。(発送は7月~8月頃開始を予定しています) [詳細はこちら](/docs/mi-card/)をご確認ください。 --- Misskeyはフリーのオープンソースソフトウェアで、開発資金は皆様からの寄付に頼っています。今後も開発を続けられるよう、ぜひ[プロジェクトへの支援](/docs/donate/)をご検討ください。 ================================================ FILE: content/blog/2024-06-17-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年6月の記事が公開されました' date: 2024-06-17 --- # 「Misskey & Webテクノロジー最前線」2024年6月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年6月の記事が公開されました! [「Sentryで始めるエラートラッキング」](https://gihyo.jp/article/2024/06/misskey-13) ================================================ FILE: content/blog/2024-07-19-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年7月の記事が公開されました' date: 2024-07-19 --- # 「Misskey & Webテクノロジー最前線」2024年7月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年7月の記事が公開されました! [「model-viewerを使って3Dモデルをノーコードで表示」](https://gihyo.jp/article/2024/07/misskey-14) ================================================ FILE: content/blog/2024-07-31-release.md ================================================ --- description: 'Misskey v2024.7.0がリリースされました' date: 2024-07-31 --- # NEW RELEASE: v2024.7.0 Misskey Projectは2024年7月31日、Misskey v2024.7.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-08-18-release.md ================================================ --- description: 'Misskey v2024.8.0がリリースされました' date: 2024-08-18 --- # NEW RELEASE: v2024.8.0 Misskey Projectは2024年8月18日、Misskey v2024.8.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-08-19-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年8月の記事が公開されました' date: 2024-08-19 --- # 「Misskey & Webテクノロジー最前線」2024年8月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年8月の記事が公開されました! [「BunはNodeより速いのか? Misskeyで検証」](https://gihyo.jp/article/2024/08/misskey-15) ================================================ FILE: content/blog/2024-09-20-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年9月の記事が公開されました' date: 2024-09-20 --- # 「Misskey & Webテクノロジー最前線」2024年9月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年9月の記事が公開されました! [「BlurHashでプレースホルダに彩りを」](https://gihyo.jp/article/2024/09/misskey-16) ================================================ FILE: content/blog/2024-09-29-release.md ================================================ --- description: 'Misskey v2024.9.0がリリースされました' date: 2024-09-29 --- # NEW RELEASE: v2024.9.0 Misskey Projectは2024年9月29日、Misskey v2024.9.0をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-10-09-release.md ================================================ --- description: 'Misskey v2024.10.0がリリースされました' date: 2024-10-09 --- # NEW RELEASE: v2024.10.0 2024年10月9日、Misskey v2024.10.0がリリースされました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-10-15-release.md ================================================ --- description: 'Misskey v2024.10.1がリリースされました' date: 2024-10-15 --- # NEW RELEASE: v2024.10.1 2024年10月15日、Misskey v2024.10.1がリリースされました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-10-28-10kstars.md ================================================ --- description: 'MisskeyのGitHubリポジトリのStar数が10,000を達成' date: 2024-10-28 --- # NEWS: MisskeyのGitHubリポジトリのStar数が10,000を達成 https://github.com/misskey-dev/misskey/stargazers 🙏🙏🙏 ================================================ FILE: content/blog/2024-11-10-mac2024.md ================================================ --- description: '2024年も恒例のMisskey Advent Calendarが企画されています。' date: 2024-11-10 --- # Misskey Advent Calendar 2024 2024年も恒例のMisskey Advent Calendarが企画され、参加者が募集されています。 [Misskey Advent Calendar 2024](https://adventar.org/calendars/10208) 企画はゆずりょー氏です。 皆さん奮ってご参加ください! ================================================ FILE: content/blog/2024-11-13-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年11月の記事が公開されました' date: 2024-11-13 --- # 「Misskey & Webテクノロジー最前線」2024年11月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年11月の記事が公開されました! [「リアクションを効率化するRBT、レンダリングを軽量化するcontent-visibility」](https://gihyo.jp/article/2024/11/misskey-17) ================================================ FILE: content/blog/2024-11-22-release.md ================================================ --- description: Misskey v2024.11.0 がリリースされました! date: 2024-11-22 --- # NEW RELEASE: v2024.11.0 Misskey Projectは2024年11月22日、Misskey v2024.11.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 :::warning 今回のリリースには多数のセキュリティ修正が含まれています。 ::: 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2024-12-20-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2024年12月の記事が公開されました' date: 2024-12-20 --- # 「Misskey & Webテクノロジー最前線」2024年12月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2024年12月の記事が公開されました! [「2024年のMisskey開発まとめ」](https://gihyo.jp/article/2024/12/misskey-18) ================================================ FILE: content/blog/2024-12-31-2024recap.md ================================================ --- description: '今年Misskeyで起こったこと・自分が取り組んだことや来年取り組む予定のことを紹介します' date: 2024-12-31 --- # Misskey 2024 recap おはこんばんちは、Misskey Projectのしゅいろです。 2024年も残りわずかとなりました。 今年もMisskeyへのご支援ありがとうございました! この記事ではMisskeyの2024年のトピックを振り返ります。 :::tip 技術的なトピックは[「2024年のMisskey開発まとめ」](https://gihyo.jp/article/2024/12/misskey-18)で紹介していますので、ご興味がありましたらぜひ併せてご覧ください! ::: ## 10周年! Misskeyは2014年から開発を始めたので、今年は10周年でした。 10周年を記念して[過去のMisskeyのスクショを見られるページ](/ja/about-us/history/)も公開しました。 ここまで開発を続けられたのは、ひとえに皆様のサポートのおかげです。 Misskey Projectを代表して、改めてお礼申し上げます🙏 ありがとうございます🙏🙏 ## 開発 開発で印象に残ったトピックもいくつかあります。 ### 埋め込み機能 今年は要望の多かったMisskeyの外部Webサイトへの埋め込み機能が実装されました。 埋め込みはセキュリティの考慮事項が多いため、(予想通り)設計と実装には苦労が伴いましたが、最終的には満足できるものが作れました。 ### アカウントのロックダウン機能 過去の投稿をまとめて非公開にできる機能で、簡易的に黒歴史を葬りたい時などに重宝します。 ちなみにXで同様の操作をしようとすると、APIの制限により事実上有料かつかなりの時間がかかるかつスパムと誤判定されることによるアカウント凍結のリスクがあるので、ロックダウン機能はMisskeyのアドバンテージのひとつかなと思います。 ### パフォーマンスの改善 サーバーサイドは、昨年はFTTの実装を行いましたが、今年は「RBT」の実装でパフォーマンス向上を図りました。 クライアントについてもパフォーマンス向上に努め、「タイムラインを遡っているとだんだん重くなってくる」といった問題が大幅に改善しました。(Misskey v2024.10.1~) パフォーマンス改善についての詳細は[「リアクションを効率化するRBT⁠⁠、レンダリングを軽量化するcontent-visibility」](https://gihyo.jp/article/2024/11/misskey-17?summary)で解説しています。 ### BubbleGame 世が大スイカゲーム時代のときに開発されました。 実装自体は簡単でしたが、ゲームバランスの調整が難しかったです。 実装についての詳細は[「Misskey Games バブルゲーム編」](https://gihyo.jp/article/2024/02/misskey-10?summary)で解説しています。 ## MisskeyIDカードの製作 今年は以前から作りたいと思っていた[Misskeyカード](/ja/docs/mi-card/)の製作に着手しました。 業者にデータを入稿するというのは初めての経験でしたが、設計通りに仕上がったので良かったです。 今まで自分の創作は主にデジタルでしたが、今回はカードという物理的なものだったので新鮮でした。 実際に受け取られた方からはとても好評をいただき、作った甲斐があったと嬉しく思います。 まだ在庫はありますので、ぜひお手元にお迎えください! 今後も支援者特典のグッズの開発は行っていきたいです。 ## リポジトリのStar数が10,000に到達 おかげさまで、MisskeyのGitHubリポジトリのStar数が1万を超えました🎉 ![image](https://gist.github.com/user-attachments/assets/1d7829ff-a751-4f91-a5b2-da3f4d653c00) ## Miヶ丘 自分が昔、ある公園からの景色を撮影した写真をmisskey.ioのバナー画像に使っていたことから、撮影場所が「Miヶ丘」として親しまれるようになりました。 Miヶ丘自体は以前より話題とはなっていましたが、今年は特に注目度が高くなった印象があります。 [ニュータウンを紹介するYouTubeチャンネルともコラボ](https://www.youtube.com/watch?v=iDGdTtoKsf4)させていただき、Miヶ丘が取り上げられたほか、Miヶ丘見学オフ会も盛んでした。 :::warning 訪れる際は、閑静な住宅街であることを弁え、近隣の迷惑とならないようご注意ください。 ::: ## 麦茶 今年も麦茶をたくさんいただきました! 昨年の経験を活かし、希望する麦茶の数を常識的な量に制限することで、床が抜けることなく1年を終えることができました。 麦茶をはじめ、ギフトを送ってくださった皆様ありがとうございました!! ## おわりに 今年はMisskeyの利用が広がったこともあり、堅実な開発が多かったと思います。 昨年からの「安定性向上」の取り組みも引き続き行うことができました。 そして、来年も取り組みたいことはたくさんあります。 さらなるパフォーマンス改善はもちろん、Misskey麻雀や、チャットUIなども実装したいです。 Misskey Roomの復活も考えています。 2025年も引き続き頑張りますので、ご支援・応援いただければ幸いです! それでは、よいお年を! ![](/img/blog/2024-12-31-2024recap/2024-2025.jpg) ================================================ FILE: content/blog/2025-01-28-release.md ================================================ --- description: Misskey v2025.1.0 がリリースされました! date: 2025-01-28 --- # NEW RELEASE: v2025.1.0 Misskey Projectは2025年1月28日、Misskey v2025.1.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 :::warning 今回のリリースではコンフィグのデータ構造に変更が加えられており、そのままの設定ではMisskeyが起動しない可能性があります。アップデートを実施する前に必ずリリースノートを確認し、必要に応じてコンフィグを編集してください。 ::: 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-02-05-release.md ================================================ --- description: Misskey v2025.2.0 がリリースされました! date: 2025-02-05 --- # NEW RELEASE: v2025.2.0 Misskey Projectは2025年2月5日、Misskey v2025.2.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 :::warning 今回のリリースにはセキュリティ修正が含まれています。 ::: 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-02-27-release.md ================================================ --- description: Misskey v2025.2.1 がリリースされました! date: 2025-02-27 --- # NEW RELEASE: v2025.2.1 Misskey Projectは2025年2月27日、Misskey v2025.2.1 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-03-06-release.md ================================================ --- description: Misskey v2025.3.0 がリリースされました! date: 2025-03-06 --- # NEW RELEASE: v2025.3.0 Misskey Projectは2025年3月6日、Misskey v2025.3.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-03-09-release.md ================================================ --- description: Misskey v2025.3.1 がリリースされました! date: 2025-03-09 --- # NEW RELEASE: v2025.3.1 Misskey Projectは2025年3月9日、Misskey v2025.3.1 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-03-17-xfolio.md ================================================ --- description: 'Misskey ProjectはXfolio(株式会社Booklive)との提携を開始しました' date: 2025-03-17 --- # New partner: Xfolio Misskey Projectはこの度、クリエイター向けのポートフォリオサービス「[Xfolio](https://xfolio.jp/)(クロスフォリオ)」を手掛ける[株式会社BookLive](https://www.booklive.co.jp/)様より、スポンサーとしてご支援いただけることを発表します。 また、Xfolio運営のMisskeyサーバー「[Xissmie](https://xissmie.xfolio.jp/)(キスミー)」のサービスが本日開始されることを弊プロジェクトからもお知らせいたします。 XissmieはMisskeyベースのSNSで、Xfolioで作成したポートフォリオへのタイムラインの埋め込みや、作品の同時投稿といったXfolioとの連携機能が追加されています。 XissmieにはMisskey Projectとして技術支援を行っており、培った技術はMisskeyにも還元されています。 - [株式会社BookLive](https://www.booklive.co.jp/) - [Xfolio](https://xfolio.jp/) - [Xissmie](https://xissmie.xfolio.jp/) プロジェクトとして、改めて感謝申し上げます。 ※ XissmieはXfolio様のサービスであり、Misskey Projectが運営しているものではありません。Xissmieに関するお問い合わせは、直接Xfolio様にお願いいたします。 --- Misskeyはフリーのオープンソースソフトウェアで、開発資金は皆様からの寄付に頼っています。今後も開発を続けられるよう、ぜひ[プロジェクトへの支援](/docs/donate/)をご検討ください。 ================================================ FILE: content/blog/2025-04-09-release.md ================================================ --- description: Misskey v2025.4.0 がリリースされました! date: 2025-04-09 --- # NEW RELEASE: v2025.4.0 Misskey Projectは2025年4月9日、Misskey v2025.4.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-04-22-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2025年4月の記事が公開されました' date: 2025-04-22 --- # 「Misskey & Webテクノロジー最前線」2025年4月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2025年4月の記事が公開されました! [「CSS Variablesはここまで進化した」](https://gihyo.jp/article/2025/04/misskey-19) ================================================ FILE: content/blog/2025-04-30-release.md ================================================ --- description: Misskey v2025.4.1 がリリースされました! date: 2025-04-30 --- # NEW RELEASE: v2025.4.1 Misskey Projectは2025年4月30日、Misskey v2025.4.1 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-05-07-release.md ================================================ --- description: Misskey v2025.5.0 がリリースされました! date: 2025-05-07 --- # NEW RELEASE: v2025.5.0 Misskey Projectは2025年5月7日、Misskey v2025.5.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-05-31-release.md ================================================ --- description: Misskey v2025.5.1 がリリースされました! date: 2025-05-31 --- # NEW RELEASE: v2025.5.1 Misskey Projectは2025年5月31日、Misskey v2025.5.1 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-06-02-release.md ================================================ --- description: Misskey v2025.6.0 がリリースされました! date: 2025-06-02 --- # NEW RELEASE: v2025.6.0 Misskey Projectは2025年6月2日、Misskey v2025.6.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-06-16-release.md ================================================ --- description: Misskey v2025.6.3 がリリースされました! date: 2025-06-16 --- # NEW RELEASE: v2025.6.3 Misskey Projectは2025年6月16日、Misskey v2025.6.3 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-07-18-release.md ================================================ --- description: Misskey v2025.7.0 がリリースされました! date: 2025-07-18 --- # NEW RELEASE: v2025.7.0 Misskey Projectは2025年7月18日、Misskey v2025.7.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-08-31-release.md ================================================ --- description: Misskey v2025.8.0 がリリースされました! date: 2025-08-31 --- # NEW RELEASE: v2025.8.0 Misskey Projectは2025年8月31日、Misskey v2025.8.0 をリリースしました! 今回のリリースでは、バグ修正やUIの改善などに加え、以下のような新機能・仕様変更を実施し、より快適にご利用いただけるようになりました。 ## ノートの連動削除を無効化 ![ノートの連動削除無効化イメージ](/img/blog/2025-08-31-release/cascade.png) ノートを削除した際に、そのノートに連動して削除される関連ノート(リプライやリノートなど)を削除しないようになりました。例えば、リプライのついているノートを削除しても、そのリプライは消えずに残ります。また、リノートされたノートや引用ノートを削除しても、それらは消えずに残ります(削除されたノート自身は「削除されたノート」として表示されるようになります)。 ## Remote Notes Cleaning™ 機能の追加 定期的に古いリモートの投稿を削除する機能が実装されました。これにより、サーバーのデータベースの肥大化を防ぐことができます。 ## AiScriptをv1.1.0に更新 Misskeyのクライアントで使用できるプログラミング言語「AiScript」をv0.19.0からv1.1.0に更新しました。言語仕様に破壊的変更が含まれているため、既存のAiScriptコードの更新が必要になる可能性があります。なお、バージョン指定(`///@0.19.x` のようなコメント)があるPlayで0.x系が指定されている場合は、互換モードとしてv0.19.0が使用されます。プラグインではこのフォールバックは行われません。 ## セーフモード プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、特定の動作を行うことでこれらを無効にして起動できます。起動方法についてはリリースノートをご覧ください。 ## その他の主な変更点 - コントロールパネルの設定項目を検索できるようになりました。 - Unicode 15.1 および 16.0 に含まれている絵文字に対応しました。 - サーバー管理のためのCLIツールを追加しました。 --- 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-09-08-release.md ================================================ --- description: Misskey v2025.9.0 がリリースされました! date: 2025-09-08 --- # NEW RELEASE: v2025.9.0 Misskey Projectは2025年9月8日、Misskey v2025.9.0 をリリースしました! 今回のリリースでは、バグ修正やUIの挙動改善などが含まれています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-10-06-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2025年10月の記事が公開されました' date: 2025-10-07 --- # 「Misskey & Webテクノロジー最前線」2025年10月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2025年10月の記事が公開されました! [「ブラウザ上でお手軽動画圧縮」](https://gihyo.jp/article/2025/10/misskey-20) ================================================ FILE: content/blog/2025-10-08-release.md ================================================ --- description: Misskey v2025.10.0 がリリースされました! date: 2025-10-08 --- # NEW RELEASE: v2025.10.0 Misskey Projectは2025年10月8日、Misskey v2025.10.0 をリリースしました! 今回のリリースでは、バグ修正や多数のUIの改善などに加え、新機能の追加が含まれています。 ## 予約投稿 Misskeyで投稿の予約ができるようになりました。ノートボタン横の「…」メニューから「予約投稿」を選択し、投稿日時を指定することで予約が可能です。ロールポリシーにより、各ユーザーごとの予約投稿の上限数を設定することもできます。 ## アカウントの二次元コード ![アカウントの二次元コード](/img/blog/2025-10-08-release/2dcode.png) Misskeyアカウントの二次元コードを生成したり、読み取ったりすることができる機能を実装しました。リアルでの交流会などでMisskeyアカウントを共有するなど、さまざまなシチュエーションで便利にご活用いただけます。 ## 動画のエンコード ![動画のエンコード](/img/blog/2025-10-08-release/video-encode.png) Misskeyに動画をアップロードする際に、ブラウザ内で動画のエンコード処理を行ってからアップロードするようになりました。これによりアップロード後の動画ファイルサイズの削減が可能になるほか、動画ファイル形式の互換性が向上することが期待されます。 ## 画像エフェクトの強化 ![画像エフェクト](/img/blog/2025-10-08-release/image-effect.png) 新たな画像エフェクトとして、「塗りつぶし」「ぼかし」「モザイク」が追加され、「集中線」エフェクトの挙動を改善しました。 --- 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-10-24-release.md ================================================ --- description: Misskey v2025.10.1 がリリースされました! date: 2025-10-24 --- # NEW RELEASE: v2025.10.1 Misskey Projectは2025年10月24日、Misskey v2025.10.1 をリリースしました! 今回のリリースでは、ウォーターマーク機能の画像配置が正しく動作しない問題を含め、多くのバグ修正を実施しています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-10-27-release.md ================================================ --- description: Misskey v2025.10.2 がリリースされました! date: 2025-10-27 --- # NEW RELEASE: v2025.10.2 Misskey Projectは2025年10月27日、Misskey v2025.10.2 をリリースしました! 今回のリリースでは、いくつかのバグ修正を実施しています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-11-01-mac2025.md ================================================ --- description: '2025年も恒例のMisskey Advent Calendarが企画されています。' date: 2025-11-01 --- # Misskey Advent Calendar 2025 2025年も恒例のMisskey Advent Calendarが企画され、参加者が募集されています。 [Misskey Advent Calendar 2025](https://adventar.org/calendars/11291) 企画はゆずりょー氏です。 皆さん奮ってご参加ください! ================================================ FILE: content/blog/2025-11-16-release.md ================================================ --- description: Misskey v2025.11.0 がリリースされました! date: 2025-11-16 --- # NEW RELEASE: v2025.11.0 Misskey Projectは2025年11月16日、Misskey v2025.11.0 をリリースしました! 今回のリリースでは、バグ修正や軽微なUIの改善などに加え、新機能の追加が含まれています。 ## チャンネルミュート ![チャンネルミュート](/img/blog/2025-11-16-release/channel-mute.png) 特定のチャンネルの投稿がタイムラインに表示されないようにするための「チャンネルミュート」機能が追加されました。ミュートしたいチャンネルのページを開き、右上のスピーカーアイコンをクリックすることでミュートが可能です。 ## 画像フレーム ![画像フレーム](/img/blog/2025-11-16-release/image-frame.png) Misskey内臓の画像加工機能として、新たに「フレーム」機能が追加されました。画像にタイトルやキャプションを追加したり、画像にEXIF情報が含まれている場合はそれをもとに動的にカメラのモデルや撮影日時などの情報を追加したりすることができます。 ## その他の主な変更点 - 「自動でもっと見る」(無限スクロール)がほとんどの箇所で復活しました。 - 投稿フォームの使い方をウォークスルー形式で確認するチュートリアルが追加されました。 --- 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-11-28-release.md ================================================ --- description: Misskey v2025.11.1 がリリースされました! date: 2025-11-28 --- # NEW RELEASE: v2025.11.1 Misskey Projectは2025年11月28日、Misskey v2025.11.1 をリリースしました! 今回のリリースでは、バックエンドのメモリ使用量削減のための内部的な改善や、多数のバグ修正などが含まれています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-12-02-announce.md ================================================ --- description: Misskeyを騙るアカウントの注意喚起 date: 2025-12-02 --- # Misskeyを騙るアカウントにご注意ください SNSなどで、「Misskey公式」「Misskey運営」「Misskeyサポート」などを名乗るアカウントが確認されています。 「Misskey運営」「Misskeyサポート」といった組織はそもそも存在していない他、 Misskey(Misskey Project)は2025年12月現在、いかなるSNS上でも「公式アカウント」の運用は行なっていません。 また、今後そのようなアカウントを作成する予定もありません(もし作成する場合は当サイト上でお知らせします)。 皆様におかれましては、なりすましアカウントには十分ご注意ください。 ================================================ FILE: content/blog/2025-12-06-release.md ================================================ --- description: Misskey v2025.12.0 がリリースされました! date: 2025-12-06 --- # NEW RELEASE: v2025.12.0 Misskey Projectは2025年12月6日、Misskey v2025.12.0 をリリースしました! 今回のリリースでは、バックエンドのメモリ使用量の削減を含むパフォーマンスの改善のための多くの内部的な改善や、セキュリティの関する修正を含むバグ修正を実施しています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-12-14-release.md ================================================ --- description: Misskey v2025.12.1 がリリースされました! date: 2025-12-14 --- # NEW RELEASE: v2025.12.1 Misskey Projectは2025年12月14日、Misskey v2025.12.1 をリリースしました! 今回のリリースでは、いくつかのバグ修正を実施しています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2025-12-15-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2025年12月の記事が公開されました' date: 2025-12-15 --- # 「Misskey & Webテクノロジー最前線」2025年12月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2025年12月の記事が公開されました! [「2025年のMisskey開発ハイライト」](https://gihyo.jp/article/2025/12/misskey-21) ================================================ FILE: content/blog/2025-12-20-2025recap.md ================================================ --- description: '2025年のMisskeyまとめ' date: 2025-12-20 --- # Misskey 2025 recap こんにちは、Misskey Projectのしゅいろです。 今年もMisskeyの開発を応援いただきありがとうございました! 本記事では2025年のMisskeyをまとめます。 :::tip リリースノートに載らないような、内部的な改善については [「2025年のMisskey開発ハイライト」](https://gihyo.jp/article/2025/12/misskey-21) で紹介していますので、興味のある方は併せてご覧ください。 ::: ## 2025年の新機能ハイライト 様々な改良や新機能の実装が行われていますが、特に大きなトピックをピックアップして紹介します。 ### 設定の検索 実装: v2025.3.1~ 設定が検索できるようになり、目的の設定を簡単に見つけられるようになりました。 ![](/img/blog/2025-recap/search-settings.png) ### 強化されたプラグイン管理システム 実装: v2025.4.0~ プラグインのログが見れるようになったり、ホットリロードが可能になるなどしました。 ![](/img/blog/2025-recap/plugins.webp) ### 刷新された設定管理システム 実装: v2025.4.0~ 自動バックアップやデバイス間同期を有効にできるようになったり、設定項目ごとにアカウント固有の設定値に上書きできるようになるなどしました。 ![](/img/blog/2025-recap/preference.png) ### ダイレクトメッセージ 実装: v2025.4.0~ 古のMisskeyに存在したDM機能が復活しました。 ノートの公開範囲を設定する方法と比べてより便利に、直感的なUIでやりとりを行えます。 DMを受け付ける相手の設定や、グループでのメッセージにも対応しています。 ![](/img/blog/2025-recap/dm1.png) ![](/img/blog/2025-recap/dm2.png) ### デッキUIの強化 実装: v2025.4.0~ メニュー位置を変えたり、カラム間のマージンを変えたり、壁紙を設定できるようになるなど、自由度がさらに向上しました。 ![](/img/blog/2025-recap/deck.webp) ### ジョブキュー管理ツール 実装: v2025.4.1~ 従来のbull-boardに代わるジョブキューの管理ツールが実装され、セキュリティが向上したほか利便性が向上しました。 ![](/img/blog/2025-recap/jobqueue.png) ### サーバー初期設定ウィザード 実装: v2025.5.1~ サーバー作成時にウィザードが表示され、用途に合わせて最適な設定が簡単に行えるようになりました。 ![](/img/blog/2025-recap/server-setup-wizard.png) ### No Websocketモード 実装: v2025.5.1~ リアルタイム更新を無効にするオプションが利用可能になりました WebSocketに制限のあるサーバーや、通信が不安定な時に便利です。 ### サーバー内のコンテンツの公開設定 実装: v2025.5.1~ サーバー内のコンテンツの閲覧にログイン必須にできるようになりました。 ### 絵文字ミュート 実装: v2025.5.1~ 苦手な絵文字などを非表示にできます。 ### アップロードUIの強化 実装: v2025.5.1~ アップロードダイアログが実装され、失敗した際の再送なども便利に行えるようになりました。 投稿フォーム内では同等の機能が直接利用可能です。 ![](/img/blog/2025-recap/uploader1.png) ![](/img/blog/2025-recap/uploader2.png) ### ウォーターマーク 実装: v2025.6.1~ Misskey Web上で、画像ファイルのアップロード時にウォーターマークやクレジット表記などを焼き入れられるようになりました。 ![](/img/blog/2025-recap/watermark.png) ### 画像加工 実装: v2025.6.1~ Misskey Web上で、画像ファイルのアップロード時に様々なエフェクトを適用できるようになりました。 ![](/img/blog/2025-recap/effect.png) ### ノートの下書き 実装: v2025.7.0~ 書きかけの内容をサーバーに保存し、あとからデバイスを跨いで復元することが可能になりました。 ![](/img/blog/2025-recap/draft1.png) ![](/img/blog/2025-recap/draft2.png) ### クリップ内ノートやPlayの検索 実装: v2025.7.0~ クリップ内でノート検索を行ったり、Playを検索できるようになりました。 ### ノートを削除した際、関連するノートが同時に削除されないように 実装: v2025.8.0~ 今まではノートが削除されるとそれに関連したノート(引用やリプライ)も消えていましたが、それらが消えないようになりました。 ### 定期的に古いリモートの投稿を削除できるように 実装: v2025.8.0~ 定期的に古いリモートの投稿をクリーンアップして、データベースのストレージやメモリ使用量の増加を抑えられるようになりました。 ### 予約投稿 実装: v2025.10.0~ 予め用意した内容で指定した日時に投稿を行えるようになりました。 ![](/img/blog/2025-recap/scheduled-post1.png) ![](/img/blog/2025-recap/scheduled-post2.png) ### アカウントのQRコード 実装: v2025.10.0~ Misskey Web上でアカウントのQRコードを表示したり読み取ることができるようになりました。 ![](/img/blog/2025-recap/qr.png) ### 動画の再エンコード&圧縮 実装: v2025.10.0~ Misskey Web上で、動画ファイルをアップロード前に圧縮・再エンコードできるようになりました。 サーバーのストレージを節約したり、再生の互換性の問題を回避できます。 ### 画像のマスキング 実装: v2025.10.0~ Misskey Web上で、画像ファイルの隠したい部分をアップロード前にマスキングできるようになりました。 ![](/img/blog/2025-recap/mask.png) ### チャンネルミュート 実装: v2025.11.0~ 苦手なチャンネルのミュートが可能になりました。 ### EXIFフレーム 実装: v2025.11.0~ Misskey Web上で、画像ファイルのアップロード時にメタデータを読み取ってフレームとしてレンダリングできるようになりました。 ![](/img/blog/2025-recap/frame.png) ### UIの説明の強化 実装: v2025.11.0~ 初めて投稿フォームを開いた際、分かりやすいUIの説明が表示されるようになりました。 デッキUIの説明の強化もまもなくリリースされます。 ![](/img/blog/2025-recap/ui-tour.png) ## おわりに より便利に使える機能の開発だけでなく、サーバーの運営を低コスト化し、サステナビリティを向上させる取り組みも行っています。 2026年も引き続き頑張りますので、ご支援・応援いただければ幸いです。 よいお年を! ================================================ FILE: content/blog/2025-12-22-release.md ================================================ --- description: Misskey v2025.12.2 がリリースされました! date: 2025-12-22 --- # NEW RELEASE: v2025.12.2 Misskey Projectは2025年12月22日、Misskey v2025.12.2 をリリースしました! 今回のリリースでは、いくつかのバグ修正やコンフィグのデフォルト値の緩和を実施しています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2026-01-26-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2026年1月の記事が公開されました' date: 2026-01-26 --- # 「Misskey & Webテクノロジー最前線」2026年1月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2026年1月の記事が公開されました! [「主要ブラウザに対応してほしい!2026最新Web技術25選」](https://gihyo.jp/article/2026/01/misskey-22) ================================================ FILE: content/blog/2026-03-05-release.md ================================================ --- description: Misskey v2026.3.0 がリリースされました! date: 2026-03-05 --- # NEW RELEASE: v2026.3.0 Misskey Projectは2026年3月5日、Misskey v2026.3.0 をリリースしました! 今回のリリースでは、バグ修正や軽微なUIの改善などに加え、新機能の追加が含まれています。 ## 「もうすぐ誕生日のユーザー」ウィジェット ![もうすぐ誕生日のユーザーウィジェット](/img/blog/2026-03-05-release/bdwidget.png) 「今日誕生日のユーザー」ウィジェットが、「もうすぐ誕生日のユーザー」ウィジェットに改名してパワーアップしました!これにより、当日だけでなく、誕生日が迫るフォロー中のユーザーを表示することができるようになっています。 ## ウィジェットの設定画面を改善 ![ウィジェットの設定画面](/img/blog/2026-03-05-release/widget-config.png) ウィジェットの個別設定画面を再設計し、より使いやすくなりました。実際にウィジェットの見た目を確認しながら、ウィジェットの設定を変更できるようになっています。 さらに、ウィジェットの設定項目全てを多言語対応しました!これで、何の項目を変更したらどのような変化が起こるのか、よりわかりやすくなっています。 ## 画面幅が広いときにメディアを横並びで表示できるようにするオプション ![メディアの横並び表示オプション](/img/blog/2026-03-05-release/imghzt.png) PCなど、画面幅が広い端末でノートを閲覧する際に、メディアの一覧領域を小さくしてよりたくさんのノートを一画面で閲覧できるようにするためのオプションを追加しました。 ## OAuthのClient DiscoveryにおいてJSON形式のクライアントメタデータをサポート Misskeyでは、IndieAuth規格に適合するOAuth機能を提供しています。この際に行われるクライアントの登録(Client Discovery)において、IndieWeb Living Standard 11 July 2024で定義されているJSONドキュメント形式に対応しました。従来の実装(12 February 2022版・HTML Microformat形式)も引き続きサポートされていますので、この変更に際して何か特別な対応を行う必要はありません。 ## その他の主な変更点 - 画像にかけるエフェクトのうち、塗りつぶし・モザイク・ぼかしエフェクトを修正しました。 - 2月29日を誕生日に設定している場合、うるう年以外は3月1日を誕生日として扱うように修正しました。 - ノートの詳細表示でリアクションが全件表示されない問題を修正しました。 --- 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2026-03-09-release.md ================================================ --- description: Misskey v2026.3.1 がリリースされました! date: 2026-03-09 --- # NEW RELEASE: v2026.3.1 Misskey Projectは2026年3月9日、Misskey v2026.3.1 をリリースしました! **今回のアップデートでは重大な脆弱性を修正しています。可及的速やかにアップデートしてください。** 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2026-03-10-gihyo.md ================================================ --- description: '「Misskey & Webテクノロジー最前線」の2026年3月の記事が公開されました' date: 2026-03-10 --- # 「Misskey & Webテクノロジー最前線」2026年3月 Webメディア[gihyo.jp](https://gihyo.jp/)にて行われている、Misskeyプロジェクトリーダー syuiloによるMisskeyの技術についての連載「Misskey & Webテクノロジー最前線」の2026年3月の記事が公開されました! [「予測三角形を用いたネストしたメニューのUX向上」](https://gihyo.jp/article/2026/03/misskey-23) ================================================ FILE: content/blog/2026-03-31-release.md ================================================ --- description: Misskey v2026.3.2 がリリースされました! date: 2026-03-31 --- # NEW RELEASE: v2026.3.2 Misskey Projectは2026年3月31日、Misskey v2026.3.2 をリリースしました! 今回のリリースでは、いくつかのバグ修正や軽微な改善を実施しています。 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2026-05-02-release.md ================================================ --- description: Misskey v2026.5.0 がリリースされました! date: 2026-05-02 --- # NEW RELEASE: v2026.5.0 Misskey Projectは2026年5月2日、Misskey v2026.5.0 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/blog/2026-05-06-release.md ================================================ --- description: Misskey v2026.5.1 がリリースされました! date: 2026-05-06 --- # NEW RELEASE: v2026.5.1 Misskey Projectは2026年5月6日、Misskey v2026.5.1 をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! ================================================ FILE: content/ca/contact-faq/0.cannot-create-account.md ================================================ --- question: アカウントが作成できません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ca/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: アカウントにログインできません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ca/contact-faq/2.delete-account.md ================================================ --- question: アカウントを削除したい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ca/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 〇〇のサーバー上にあるコンテンツを削除してほしい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** 自サーバー・他サーバーのコンテンツのモデレーションについては、各サーバーのルールに則って行われますので、当該コンテンツの送信元サーバーの管理者に連絡するか、当該ユーザーやサーバーをブロックして自己防衛するなどして対応してください。 ================================================ FILE: content/ca/contact-faq/4.copyright-infringement.md ================================================ --- question: 著作権侵害を見つけた --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ca/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/ca/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/ca/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskeyについてのドキュメントです。' --- # Misskeyについて Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## 歴史 開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にActivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 :::tip Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 ::: 誰でも開発に参加することができ、現在でも活発に開発が続いています。 [Misskey歴史資料館](/about-us/history/) ## 分散型とは何か? 分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 :::tip 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) ::: ## 開発に参加する、プロジェクトを支援する Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 ### 議論に参加する 新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上で行われます。 ### テキストを翻訳する Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) ### 感想を投稿する 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 ### ミスキストを増やす ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 ### 寄付をする [こちらをご覧ください](/docs/donate/) ## よくある質問 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 ### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 ### 誰が運営していますか? Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、サーバーの情報ページで確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 ### どのサーバーを選べばいいですか? [サーバー一覧が公開されています。](/servers/) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 Misskeyサーバーの作成には、専用のサービスを使う方法や、半自動で環境を構築する方法などがあります(もちろん手動でサーバーを構築することも可能です)。詳細については[こちら](/docs/for-admin/install/guides/)をご覧ください。 ### どのような技術を使用していますか? Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 - サーバーサイド: Node.js - データベース: PostgreSQL、Redis - UIフレームワーク: Vue.js - プログラミング言語: TypeScript また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 ### Mastodonのフォークですか? いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](/docs/for-users/resources/apps/)をご覧ください。 ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 :::tip PWAの設定方法については[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ::: ### Misskeyのロゴ、アイコンはどこで入手できますか? [こちら](/brand-assets/) ### 時折目にする猫耳の可愛い女の子は? :::fukidashi{chara="doya_ai" charaName="藍"} わたしについては[このホームページ](https://xn--931a.moe/)をご覧ください! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! ::: ================================================ FILE: content/ca/docs/2.for-users/1.index.md ================================================ # ユーザー向けガイド このセクションでは、Misskeyを初めて利用する方はもちろん、すでに利用されている方にも役立つ一般的な機能についてご紹介しています。 ================================================ FILE: content/ca/docs/2.for-users/2.onboarding/0.index.md ================================================ # Misskeyをはじめよう ここでは、Misskeyでの活動を始めるチュートリアルを掲載しています。 おもに、 - 分散型プラットフォームの注意点 - サーバーとは?サーバーの選び方は? - 登録の手順 - 最低限の基礎知識 などについて解説していますので、この通りに進めることで、とりあえずMisskeyを使い始めることができると思います。 それでは、早速始めましょう!(「次へ」を押して進んでください。) ================================================ FILE: content/ca/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Misskeyサーバーにアカウントを作成する前の基本的な注意事項です。' --- # 基本的な注意事項 Misskeyを使ったサービスを利用するにあたり、いくつか注意が必要な点があります。 - 分散型のため、一度アップロードしたデータは削除したとしても他の全てのサーバーから削除されることは保証されません。(ただし、これはインターネット全般に言えることでもあります。) - 非公開で行った投稿でも、相手のサーバーがそれを同じように非公開として扱うかは保証されません。個人情報、機密情報を投稿する際は十分注意してください。(ただし、これはインターネット全般に言えることでもあります。) - Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ノートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。 - アカウントの削除は負荷の高い処理であるため、長い時間がかかることがあります。アップロードしたデータが多いケースではアカウントの削除が不可能なこともあります。 - サーバーによっては、広告収入により運営費を賄っていることがあります。また、アドブロッカーは広告とは全く関係のないコンテンツや機能を誤ってブロックすることがよくあり、クライアントの動作に支障をきたし、正常にMisskeyを使用できなくなるおそれがあります。そのため、Misskeyではアドブロッカーやそれに類する機能はオフにしてご利用ください。 これらをご理解いただいたうえで、楽しくサービスをご利用ください。 ================================================ FILE: content/ca/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskeyサーバーへのユーザー登録や、基本的な操作について解説しています。" --- # Misskeyサーバーをさがす Misskeyはソフトウェアおよびそのプロジェクトです。 インターネットに公開されている、Misskeyを動かしているサーバーのことを**サーバー**と呼びます。 Misskeyを利用するには、どこかのサーバーにアカウントを作成し、そのサーバーを利用します。 [サーバー一覧](/servers/)から、好きなサーバーを選ぶことができます。 :::tip どのサーバーを選んでも、他のサーバーのユーザーとやり取りすることができます。 :::g-details{summary='詳細'} Misskeyには連合機能が備わっています。 連合機能によって、別のサーバーのユーザーであっても、同じサーバーのユーザーと同じようにフォローやリアクション、Renoteなどができるようになっています。 Misskeyが搭載している連合機能はActivityPubというオープンな共通規格に基づいていて、MastodonやPleromaといったほかのソフトウェアとも互換性があります。 ::: ::: ## サーバーの選び方 ### サーバーのテーマ サーバーによっては、例えば「特定のこと、ものが好き」といったテーマが決まっている場合があります。 自分にあったテーマのサーバーを探すのもおすすめです。 :::tip サーバーの一覧は[こちら](/servers/)からご覧いただけます。 ::: ================================================ FILE: content/ca/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # サーバーに登録する 登録するサーバーが決まったら、さっそくアカウントを作成しましょう。 :::tip ここでは、Misskey.ioを例にとって紹介していますが、他のサーバーでも登録方法はおおむね同じです。 ただし、入力事項はサーバーによって異なることがあります。詳しくは、サーバー管理者にお問い合わせください。 ::: ## 登録する まずは、トップページから「**このサーバーに登録する**」ボタンを探し、クリックします。 ![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png) 次に、画面の指示に従い、規約の確認や必要事項の記入を進めてください。 主に記入すべき事項は、以下の通りです。 - 招待コード(登録が招待制の場合のみ。お持ちでない場合は登録できません。) - ユーザー名(**後から変更はできません。一度退会すると同じユーザー名を取得することはできません。**) - メールアドレス(必要ないサーバーもあります) - パスワード ![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png) 必要事項の記入が終わると、メールアドレスを登録するサーバーの場合、確認メールが届きますので、速やかにメール内のリンクをクリックしてください。 ![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png) 以上で、Misskey サーバーへの登録が完了しました! これであなたも[ミスキスト](../resources/glossary/#ミスキスト)!楽しいコミュニケーションをお楽しみください。 ================================================ FILE: content/ca/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskeyの基礎知識 アカウントを作成したあなたにとりあえず知っておいてほしいことをまとめました! ## ノート Misskeyへの投稿は、「ノート」と呼ばれます。Twitterなどの一般的なSNSに比べたくさんの機能がありますので、初めての投稿を行う前に必ず確認して、上手に投稿しましょう! :::tip 詳細は、「[ノート](/docs/for-users/features/note/)」をご覧ください。 ::: ## タイムライン Misskeyは、複数のタイムラインを持っています。名前だけでは少々わかりにくいかと思いますので、それぞれがどのような働きをするのかを知っておきましょう。 :::tip 詳細は、「[タイムライン](/docs/for-users/features/timeline/)」をご覧ください。 ::: ## その他 その他にも、Misskeyには、使って楽しい機能が盛りだくさん!すべての機能に関する説明は[こちら](/docs/for-users/features/)に記載されていますので、ぜひご覧ください! ================================================ FILE: content/ca/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Misskeyの大きな特徴である、多彩な機能について解説しています。" --- # さまざまな機能 Misskeyの大きな特徴は、ほかのマイクロブログシステムには見られない多彩な機能にあります。ここでは、それらについて解説していきます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/ads.md ================================================ # 広告 Misskeyではサーバーによる広告をタイムラインなどに表示できる機能があります。 広告の右上に表示されるアイコンをクリックすることで、当該の広告の表示頻度を下げることができます。 :::tip 広告の総数が少ない場合は、表示頻度を下げた後も連続で表示される可能性があります。 ::: ## 広告の設定(管理者) サーバーのコントロールパネルから広告の追加、編集、削除を行えます。 広告には任意の画像、遷移先URL、形状、表示割合を設定できます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/antenna.md ================================================ # アンテナ アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/charts.md ================================================ # チャート Misskeyはサーバーの様々なデータソースに対するチャートを生成し表示する機能を備えています。 チャートを利用することで、サーバーの利用状況や連合の状況、各ユーザーのアクティビティなどを視覚的に把握することができます。 サーバーのチャートはサーバー情報ページから表示することができます。 以下は各チャートとその各項目の説明です。 ## 連合チャート 連合しているサーバーについてのチャートです。 ### Pub アクティビティを配送しているサーバーの数。 言い換えると、自サーバーのユーザーをフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Sub アクティビティを受信しているサーバーの数。 言い換えると、自サーバーのユーザーがフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Received アクティビティを送ってきたサーバーの数。 ### Delivered アクティビティを配送したサーバーの数。 ### Stalled アクティビティを配送する際、エラーになったサーバーの数。 ## アクティブユーザー数チャート 自サーバーのユーザーの利用状況についてのチャートです。 ### Read & Write 閲覧と書き込みを行ったユーザーの数。 ### Read 閲覧を行ったユーザーの数。 ### Write 書き込みを行ったユーザーの数。 ### < Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間未満であるユーザーの数。 ### < Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月未満であるユーザーの数。 ### < Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年未満であるユーザーの数。 ### > Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間以上前であるユーザーの数。 ### > Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月以上前であるユーザーの数。 ### > Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年以上前であるユーザーの数。 ================================================ FILE: content/ca/docs/2.for-users/3.features/clip.md ================================================ # クリップ クリップは、複数のノートをまとめることができる機能です。自分のノート・他者のノートは問いません。 クリップは複数作ることができ、それぞれに名前や説明を設定して管理することが可能です。また、クリップを他のユーザーに公開するかどうかも選択することができます。 クリップを作るには、[クリップ管理ページ](x-mi-web://my/clips)から「追加」をクリックします。 クリップにノートを追加するには、対象のノートのメニューから「クリップ」をクリックし、追加先のクリップを選択します。 ================================================ FILE: content/ca/docs/2.for-users/3.features/custom-emoji.md ================================================ # カスタム絵文字 カスタム絵文字は、サーバーで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 サーバーにどのようなカスタム絵文字が用意されているかは、Misskey Webの **サーバー情報** にある [**カスタム絵文字**](x-mi-web://about#emojis) にアクセスすると見ることができます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/deck.md ================================================ # デッキ デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 なお、メインカラムを追加しておくと、ノートやプロフィールをページで表示した際、メインカラムに内容が表示されます。 ## カラムの追加 デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 ## カラムの移動 カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 ## カラムの水平分割 カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 ## カラムの設定 カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 ## デッキの設定 デッキに関する設定は、[settings/deck](x-mi-web://settings/deck)で行えます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/ca/docs/2.for-users/3.features/drive.md ================================================ # ドライブ ドライブは、Misskey上でファイルを管理できる機能です。 :::tip 技術的に言うと、Misskeyのシステム上、すべてのファイルが一元管理されており、それをユーザーにも公開したインターフェイスがドライブと捉えることができます。 ::: Misskey Webの[ドライブページ](x-mi-web://my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 :::warning 現時点で、ドライブからファイルを削除すると、そのファイルが添付された **すべてのコンテンツ(ノート、ページなど)** も同時に消えます。 ::: ## センシティブ (NSFW) センシティブまたはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 センシティブフラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 ================================================ FILE: content/ca/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/favorite.md ================================================ # お気に入り [ノート](./note)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](x-mi-web://my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 ================================================ FILE: content/ca/docs/2.for-users/3.features/follow.md ================================================ # フォロー ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/hashtag.md ================================================ # ハッシュタグ ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。 世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、当時のTwitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。 ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp [msg]?"](/img/docs/for-users/features/hashtag/1.ja.png) FediverseでのハッシュタグはXやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。 ================================================ FILE: content/ca/docs/2.for-users/3.features/mention.md ================================================ # メンション アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFMは、Misskeyの様々な場所で使用できる専用のマークアップ言語です。' --- # MFM MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。 :::tip 実際にMFMをお試しいただける[MFMお試しコーナー](/tools/mfm-playground/)ができました! ::: ## MFMが使用可能な場所の例 - ノート本文 - CW注釈 - ユーザーの名前 - ユーザーの自己紹介 ## 構文 ### メンション アットマーク + ユーザー名で、特定のユーザーを示すことができます。 :::tip メンションについての詳細は[こちら](./mention.md)を参照してください。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### ハッシュタグ ナンバーサイン + タグで、ハッシュタグを示すことができます。 :::tip ハッシュタグについての詳細は[こちら](./hashtag.md)を参照してください。 ::: ``` #misskey ``` ### URL URLを示すことができます。 ``` https://example.com ``` ### リンク 文章の特定の範囲を、URLに紐づけることができます。 ``` [example link](https://example.com) ``` :::tip リンクテキストの前に`?`をつけると、リンクプレビューを非表示にすることができます。 ``` ?[example link](https://example.com) ``` ::: ### カスタム絵文字 コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。 :::tip カスタム絵文字についての詳細は[こちら](./custom-emoji.md)を参照してください。 ::: ``` :misskey: ``` ### 太字 文字を太く表示して強調することができます。 ``` **太字** ``` ### 目立たなくする 内容を小さく・薄く表示させることができます。 ``` MisskeyでFediverseの世界が広がります ``` ### 引用 内容が引用であることを示すことができます。 ``` > MisskeyでFediverseの世界が広がります ``` ### 中央寄せ 内容を中央寄せで表示させることができます。 ```
MisskeyでFediverseの世界が広がります
``` ### よみがな(ルビ) 内容によみがなを付けることができます。 ``` $[ruby Misskey ミスキー] ``` ### コード(インライン) プログラムなどのコードをインラインでシンタックスハイライトします。 ``` `<: "Hello, world!"` ``` ### コード(ブロック) 複数行のプログラムなどのコードをブロックでシンタックスハイライトします。 プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### 反転 内容を上下または左右に反転させます。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### フォント 内容のフォントを指定することができます。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### ぼかし 内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 検索 検索ボックスを表示できます。 ``` misskey 検索 ``` ### 文字色・背景色 文字色と背景色を変更することができます。 3,4,6桁のカラーコードで色を表現します。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 枠線 内容を枠線で囲むことができます。様々なスタイルを指定することができます。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度変更 指定した角度で回転させます。 ``` $[rotate.deg=30 misskey] ``` ### 位置変更 位置をずらすことができます。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 拡大 文字を引き延ばして表示します。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### アニメーション(びよんびよん) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### アニメーション(じゃーん) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### アニメーション(ジャンプ) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### アニメーション(バウンド) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### アニメーション(回転) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### アニメーション(ぶるぶる) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### アニメーション(ブレ) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### レインボー ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### キラキラ ``` $[sparkle 🍮] ``` ### プレーン 内側の構文を全て無効にします。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 開発者向け情報 MFMのパーサーや描画の実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js用コンポーネント - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlinパーサー実装 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dartパーサー実装 - [mfm](https://pub.dev/packages/mfm) - Flutter用描画ウィジェット ================================================ FILE: content/ca/docs/2.for-users/3.features/mute-and-block.md ================================================ # ミュートとブロック 好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 :::tip ミュートとブロックは併用できます。 ::: :::warning 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。 ::: Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 ## ミュート ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) - そのユーザーからの通知 - メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - など Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 :::tip ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 ::: ## リノートをミュート ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## ブロック ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - フォローする - ユーザーリストに追加する - 返信する、Renoteする - リアクションする、アンケートに投票する - メッセージを送信する - など また、 - ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 - ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 :::warning ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。 ::: :::warning 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。 ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/note.md ================================================ # ノート ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## ノートを作成する Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## リノート 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## 公開範囲 ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### フォロワー 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### 指名 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 ### 公開範囲の比較
パブリックホームフォロワー指名
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## 新規投稿の通知 ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/ca/docs/2.for-users/3.features/online-status.md ================================================ # オンラインステータス ユーザーの**オンラインステータス**は、そのユーザーのMisskey利用の状態を表すものです。 オンラインステータスは、ユーザーページなどでユーザーアイコンの隅にインジケーターとして表示されます。
状態 説明
🟢緑 オンライン 今まさにMisskeyを使用していると考えられる状態
🟡黄 アクティブ 今は退席しているものの、Misskeyの利用自体は行われている状態
🔴赤 オフライン Misskeyを利用していないと考えられる状態
⚫灰 不明 ステータスを非公開にしている、もしくはリモートユーザー等でステータスが不明の状態
オンラインステータスは自動的に変わり、手動で設定することは出来ません。 設定により、オンラインステータスを非公開にすることができます。 :::warning ユーザーのサジェストなど、一部の機能においてはオンラインステータスを元に処理される場合があるため、ステータスを非公開にすると他のユーザーから見つけにくくなることがあります。 ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/pages.md ================================================ # ページ Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## ページ設定 ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### タイトル このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### ページURL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### フォント **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### アイキャッチ画像 **アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。 ## コンテンツ ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。 - セクション - テキスト - 画像 - ノート埋め込み ### セクション タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。 ### テキスト テキスト本文を入力します。MFMやカスタム絵文字を使用できます。 ### 画像 画像を表示します。ドライブより画像を設定します。 ### ノート埋め込み ノート ID を入れる事で、そのノートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。 ================================================ FILE: content/ca/docs/2.for-users/3.features/plugin.md ================================================ # プラグイン Misskey Webにはプラグイン機能があり、ユーザーがMisskey Webの機能を拡張することができます。 プラグインの作成方法については[こちらのドキュメント](../../for-developers/plugin/create-plugin)を参照してください。 ================================================ FILE: content/ca/docs/2.for-users/3.features/poll.md ================================================ # アンケート アンケートは、他の人からの意見を簡単に聞くことができる機能です。 ## アンケートをノートに添付する アンケートは、[ノート](/docs/for-users/features/note)に添付する形で投稿することができます。ノートにアンケートを添付するには、投稿フォームの下部にある「アンケート」ボタンを選択します。 ## 選択肢を増やす アンケートには、選択肢を10個まで作ることができます。選択肢の入力欄は、「追加」ボタンを押すことで追加することができます。 追加しすぎてしまった入力欄は、入力欄の横の☓ボタンを押すことで削除することができます。 :::warning いずれかの入力欄が空白だった場合、そのアンケートが添付されたノートは投稿できません。 ::: ## 複数回答を可能にする 「複数回答可」スイッチをオンにすると、アンケートに回答する人が複数の選択肢に投票できるようになります。 ## アンケートの期限を設定する アンケートには、終了する期限を、日時指定か経過指定のいずれかで設定することができます。 設定するには、「期限」の欄から「日時指定」もしくは「経過指定」をクリックします。 一度設定した期限を取り消す場合には、「期限」の欄から「無期限」を選択します。 ## アンケートに投票する アンケートが添付されたノートがタイムラインに流れてきたときは、アンケートに投票してみましょう。 アンケートに投票するには、各選択肢をクリックします。アンケートを投稿したユーザーが複数回答可に設定していない場合は、その時点でのアンケートの結果が表示されます。 アンケートを投稿したユーザーが複数回答可に設定していた場合、他の選択肢にも投票することができます。この場合、結果は自動では表示されません。 複数回答の設定に関わらず、自動でアンケートの結果が表示されなかったり、投票前に結果を見たい時は、選択肢の下にある「結果を見る」をクリックしてアンケートの結果を表示することができます。 未投票のアンケートの結果を見たあと、もう一度隠すときは「投票する」をクリックします。 :::tip 未投票アンケートには、結果を表示した状態でも投票できます。 ::: 投票をすると、自分の投票した選択肢に✔がつきます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/reaction.md ================================================ # リアクション 他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 Misskey Webでリアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji.md)も使用できます。 ## リアクションピッカーのカスタマイズ Misskey Webでは、ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 ## リモート投稿へのリアクションについて リアクションはMisskeyオリジナルの機能であるため、リモートサーバーがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 ## リモートからのリアクションについて リモートから「Like」アクティビティを受信したとき、Misskeyでは「❤」のリアクションとして解釈されます。 ## 自分のリアクション一覧を見る Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。 設定から、このリアクション一覧を公開するようにすることもできます。 ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/ca/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/share-form.md ================================================ # 共有フォーム Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## クエリパラメータ :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ------- | ---------------------------------------------------------------------------- | | `title` | タイトル。本文の先頭に[ … ]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。 | 名前 | 説明 | | ---------- | ----------------------------- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ----------- | ------------------------------- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | --------- | -------------------------------------- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/silence.md ================================================ # サイレンス サイレンスは、アカウントに設定される状態のひとつです。 アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、指名のノートは引き続き投稿可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 ================================================ FILE: content/ca/docs/2.for-users/3.features/theme.md ================================================ # テーマ テーマを設定して、Misskeyクライアントの見た目を変更できます。 ## テーマの設定 [設定 > テーマ](x-mi-web://settings/theme) ## テーマを作成する テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... テーマの一意なID。UUIDをおすすめします。 - `name` ... テーマ名 - `author` ... テーマの作者 - `desc` ... テーマの説明(オプション) - `base` ... 明るいテーマか、暗いテーマか - `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - テーマはここで設定されたベーステーマを継承します。 - `props` ... テーマのスタイル定義。これから説明します。 ### テーマのスタイル定義 `props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[\_light.json5][_light.json5]で、`dark`なら[\_dark.json5][_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### バリューで使える構文 - 16進数で表された色 - 例: `#00ff00` - `rgb(r, g, b)`形式で表された色 - 例: `rgb(0, 255, 0)` - `rgba(r, g, b, a)`形式で表された透明度を含む色 - 例: `rgba(0, 255, 0, 0.5)` - 他のキーの値の参照 - `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - 例: `@panel` - 定数(後述)の参照 - `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - 例: `$main` - 関数(後述) - `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/ca/docs/2.for-users/3.features/thread-mute.md ================================================ # スレッドミュート :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/ca/docs/2.for-users/3.features/timeline.md ================================================ # タイムライン タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## 比較
ソース 公開範囲 タイムライン
ホーム ローカル ソーシャル グローバル
ローカル(フォロー) 公開
ホーム
フォロワー
リモート(フォロー) 公開
ホーム
フォロワー
ローカル(未フォロー) 公開
ホーム
フォロワー
リモート(未フォロー) 公開
================================================ FILE: content/ca/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow 自分が誰かをフォローした際に発生します。 ### followed 自分が誰かからフォローされた際に発生します。 ### unfollow 自分が誰かをフォロー解除した際に発生します。 ### note 自分がノートを投稿した際に発生します。 ### reply 自分のノートに返信された際に発生します。 ### renote 自分のノートがRenoteされた際に発生します。 ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/ca/docs/2.for-users/3.features/widgets.md ================================================ # ウィジェット ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## 利用可能なウィジェット一覧 - プロフィール - サーバー情報 - 付箋 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するッフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/ca/docs/2.for-users/3.features/word-mute.md ================================================ # ワードミュート ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ワードミュートは、[設定 > ミュートとブロック](x-mi-web://settings/mute-block)から設定できます。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/ca/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/ca/docs/2.for-users/4.resources/_dir.yml ================================================ title: "その他のリソース" description: "機能面以外の知識や、困ったときの対処法を紹介しています。" ================================================ FILE: content/ca/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/ca/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/ca/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskeyに関する用語集です。' --- # 用語集 Misskeyに関する用語集です。 ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー todo ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/ca/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hubについて Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。 「Misskeyの全てがここにある」を目指しています。 Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub) :::tip Misskey HubはNuxtを使ってビルドされた静的サイトです。 ::: ## Misskey Hubに貢献する ドキュメントの追加や、翻訳など歓迎です。 ================================================ FILE: content/ca/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/ca/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/ca/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/ca/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/ca/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/ca/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/ca/docs/2.for-users/_dir.yml ================================================ title: "Misskeyユーザー向け" ================================================ FILE: content/ca/docs/3.for-admin/_dir.yml ================================================ title: "サーバー運営者向け" description: "サーバーの作成方法や、運営に際してのお役立ち情報を公開中。" ================================================ FILE: content/ca/docs/3.for-admin/features/1.index.md ================================================ --- description: "サーバー管理者向けの機能の説明です。" --- # サーバーの機能 Misskeyではサーバー運営に役立つ様々な機能が提供されています。 ================================================ FILE: content/ca/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/ca/docs/3.for-admin/features/announcement.md ================================================ # お知らせ お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。 お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。 :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/ca/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/ca/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/ca/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/ca/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/ca/docs/3.for-admin/features/role.md ================================================ # ロール ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## ベースロール 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ## 権限 ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/ca/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/ca/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskeyのインストールと保守" description: "Misskeyのインストール方法や、その後の保守作業に役立つ情報を掲載しています。" ================================================ FILE: content/ca/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Misskeyサーバーの作成方法についての案内です。' --- # Misskeyサーバーの作成 Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## XServer SNSでインストール XServer SNSでは、サービスを申し込むだけでMisskeyのサーバーが自動で作成されます。 サーバーの管理やメンテナンスも運営元が対応してくれるので、難しい知識不要でサーバー運用が可能です。 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## インストール方法一覧 ================================================ FILE: content/ca/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/ca/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskeyを簡単にインストールするためのシェルスクリプトができました! いくつかの質問に答えるだけで、UbuntuサーバーへMisskeyを簡単にインストールできます! また、アップデートスクリプトもあります。 [v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md) ## 準備するもの 1. ドメイン 2. Ubuntuがインストールされたサーバー 3. Cloudflareアカウント(推奨) :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。 ## Cloudflareの設定 Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. インストールをはじめる SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. アップデートする アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 主にディレクトリを覚えておくのに使用します。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 実行されているコンテナとイメージの番号を保存しています。 コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/ca/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'このガイドはDockerを使ったMisskeyセットアップ方法を説明します。' --- # Docker Composeを使ったMisskey構築 このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::tip{label='前提条件'} - DockerおよびDocker Composeがインストールされていること。 ::: ## リポジトリの取得 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 設定 下記コマンドで、各種設定ファイルのサンプルをコピーします。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` `default.yml`と`docker.env`をファイル内の説明に従って編集してください。 また、必要に応じて、`compose.yml`を編集します。(ポートを変更したい場合など) ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh sudo docker compose up -d ``` GLHF✨ ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 ## cliコマンドを実行する方法 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/ca/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 [TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/ca/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'このガイドではMisskeyのインストール・セットアップ方法について解説します。' --- # Misskeyを手動で構築する このガイドではMisskeyのインストール・セットアップ方法について解説します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: :::tip{label='前提条件'} #### 以下のソフトウェアがインストール・設定されていること - **[Node.js](https://nodejs.org/en/)** (v22.15.0 以降の v22 系 または v24.10.0 以降の v24 系) - **[pnpm](https://pnpm.io/)** (v10.16.0以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 ::: ## ユーザーの作成 Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskeyのインストール ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 設定 設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。 ```sh cp .config/example.yml .config/default.yml ``` `default.yml` をファイル内の指示に従って編集します。 ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` エディタで開き、以下のコードを貼り付けて保存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskeyサービスの起動 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 アップデートが終わり次第、Misskeyプロセスを再起動してください。 ```sh sudo systemctl restart misskey ``` :::tip ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/ca/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudflareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/ca/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskeyの保守・トラブルシューティング" description: "Misskeyサーバーの運営には定期的なメンテナンスが不可欠。役立つ情報や困ったときの対処法をご紹介します。" ================================================ FILE: content/ca/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/ca/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/ca/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/ca/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/ca/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/ca/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!** [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/ca/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "モデレーション上のお役立ち情報" description: "実際にサーバーを運営するにあたり役立つ情報についてまとめています。" ================================================ FILE: content/ca/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/ca/docs/4.for-developers/_dir.yml ================================================ title: "開発者向け" description: "プラグイン・Play開発者や、APIを利用した外部アプリケーションの開発者向けリソース。" ================================================ FILE: content/ca/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/) Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:` Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:` [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:` [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、[Misskey Play](./plugin/create-play/)、Scratchpadで使用できます。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Ui:`とついた部分を参照して下さい。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str` 返り値: `str` Misskey内の全てのAiScript環境で使用できます。 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any` 返り値: `null` [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 コンソールに文字列を出力します。 `<:`構文も同様の働きをします。 ================================================ FILE: content/ca/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\ ::: ================================================ FILE: content/ca/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/ca/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/ca/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # チャンネル一覧 ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/index.md ================================================ # チャンネル一覧 ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/ca/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/ca/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/ca/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/ca/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/ca/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/ca/docs/4.for-developers/bot/1.index.md ================================================ # Botの作成 [Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 ## 関連リソース - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/ca/docs/4.for-developers/plugin/_dir.yml ================================================ title: "プラグイン・Playの作成" description: "プラグインやPlayを作成する方法・各種リファレンスを公開中。" ================================================ FILE: content/ca/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/ca/docs/4.for-developers/plugin/create-plugin.md ================================================ # プラグインの作成 Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/ca/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/ca/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/ca/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # リリースノート Misskeyのリリースノートを掲載しています。 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/ca/docs/6.donate.md ================================================ # プロジェクトへの寄付 :::tip 法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/) ::: Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(サーバーによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。以下の方法で受け付けています。(本ページの内容をよくお読みになったうえでご寄付をお願いします) - 継続支援 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 単発支援 - (おすすめ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 仮想通貨: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazonの欲しいものリスト](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 高額の寄付(例えば3万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。 ::: :::tip 額に応じて以下の返礼を用意しています。 - 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与 - 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載 - 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載 - 20,000円以上: ↑ + [MisskeyIDプレートの交付](/docs/mi-card/) ::: :::warning いかなる場合(何らかの理由で返礼を受け取れなかった等も含む)も、返金を行うことはできません。ご了承の上、ご寄付をお願いいたします。 ::: :::warning **バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて `@syuilo@misskey.io` までお申し付けください。** (メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります。どうしても連絡がつかない場合はMisskey Projectお問い合わせフォームよりご連絡ください) ::: また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 ================================================ FILE: content/ca/docs/7.become-a-sponsor.md ================================================ # スポンサーについて :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Misskey Projectはスポンサーを募集しています。 スポンサーになると、MisskeyやMisskey Hubへの会社ロゴ掲載や、技術サポートを受けることができます。 [詳細はこちらからお問い合わせください。](/contact/) ================================================ FILE: content/ca/docs/8.mi-card.md ================================================ # MisskeyIDプレート Misskey Projectへのご支援特典として、物理的な「MisskeyIDプレート」をご用意しています! **MisskeyIDプレートは、シリアルナンバーが刻印されたあなただけの金属製IDプレートです。** ずっしりと重厚な金属製プレートに精密な加工を施し、ステータス性の高いメタルプレートに仕上げました。 しゅいろによって表面、裏面ともに丁寧にデザインされています。一生モノとしてぜひお手元でお楽しみください! 実物の動画は[こちら](https://www.youtube.com/shorts/AdzzwxEa-WE) (照明の関係で金色にも見えますが実際は銀色です) ## プレート仕様 - 寸法: 54.0mm x 85.6mm - 質量: 約34g - 素材: 1.0mm厚鏡面仕上げステンレス鋼 - 加工: 鏡面加工(表面部)、エッチング加工(表面その他)、シルク印刷(ロゴ部)、レーザー刻印(ナンバリング部) - 意匠: しゅいろによるデザイン / シリアルナンバー、バーコード、二次元コード、藍ちゃんサイン刻印付き オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(無料) ### 3Dで見る ::X__Docs__mi-card__InteractiveView :: ※裏面のデザインは省略されています。モデルは実物を正確に再現するものではありません。 ## 交付対象 **累計の支援金額が2万円以上の方に1枚進呈させていただきます。** :::g-details{summary='2枚以上ご希望の場合'} 2枚以上ご希望の場合は、3万円ごとに1枚追加で進呈いたします。 追加で受け取り可能な枚数は、支援額から2万円を引いた額を3万円で割った数になります。 例えば、支援額の合計が5万円以上で合計2枚、8万円以上で合計3枚、というような計算になります。 合計で何枚受け取り可能かを計算できます: ::X__Docs__mi-card__Calculator :: なお、在庫状況によっては、ご希望の枚数をご用意することが叶わない場合があります。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: USドルでの支援は、いつ支援かにかかわらず 1USD = 150JPY 換算といたします。その他の通貨の場合の扱いについてはご相談ください。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 なお現在、大変申し訳ございませんが配送の都合上、**交付は日本国内に居住されている方のみ対象とさせていただいています。** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** 各Misskeyサーバーへの支援はこちらの特典の対象となりませんのでご注意ください。 [Misskey Projectへの支援はこちらから](/docs/donate/) ::: :::tip 累計支援額の計算には支援方法、期間は問いません。 例えば、2023年にPayPalで5000円の支援をいただき、2024年にFanboxで12000円、Amazonの欲しいものリストで3000円分のギフトを頂いたようなケースでも、5000 + 12000 + 3000 = 20000 となり受け取りの権利があります。 ::: ## 申請方法 お手数ですが以下のフォームから申請を行ってください。(Googleアカウントが必要です) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 配送は日本郵便にて行います。**送料は無料です。** - 発送時は追跡番号をメールにてご連絡いたします。 - 土日も配達されます。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。お手元に到着時、万が一損傷などありましたら日本郵便へお問い合わせお願いします。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 また、配送方法のご指定は承れません。 ::: ## 注意事項 - 仕様は予告なく変更することがあります。 - シリアルナンバーは選択いただけません。 - 細かなキズが製造上少なからず発生しますがご容赦ください。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 予告なく配布を一時停止または終了することがあります。 - 予告なく交付基準額を変更することがあります。 - 紛失・破損・盗難等された場合に再発行はできませんので大切に保管してください。 - 転売・譲渡はご遠慮いただけますと幸いです。 ================================================ FILE: content/ca/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/cn/contact-faq/0.cannot-create-account.md ================================================ --- question: 无法创建帐户 --- \*\*您找错了咨询对象,请确认正确的联系方式。 本网站是由本组织“Misskey Project”所开发的开源软件“Misskey”的官方网站。 如果按照上述步骤仍无法完成注册,或者对于上述步骤中未提及的项目(如服务器的独立定制)有疑问,又或者在注册时有任何不明白的地方,请联系您所使用服务器的运营者。 (需要注意的是,有些人会将使用 Misskey 的网络服务(Misskey 服务器)直接简称为“Misskey”。)) Misskey Project 仅免费提供软件的基本源代码,不提供或运营任何使用 Misskey 或其衍生软件的服务器或服务。 此外,我们也无权管辖或参与这些服务。 因此,关于特定服务的咨询,**即使通过本网站的表单联系我们,我们也无法处理。** ================================================ FILE: content/cn/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: 无法登录到您的帐户 --- \*\*您找错了咨询对象,请确认正确的联系方式。 本网站是由本组织“Misskey Project”所开发的开源软件“Misskey”的官方网站。 “Misskey”是一款用于创建社交网络(SNS)的免费软件,它本身并非一项网络服务。 (需要注意的是,有些人会将使用 Misskey 的网络服务(Misskey 服务器)直接简称为“Misskey”。) Misskey Project 仅免费提供软件的基本源代码,不提供或运营任何使用 Misskey 或其衍生软件的服务器或服务。 如果您无法登录您的帐户,可能是服务器或您的帐户存在问题,请联系您的服务器运营商。 因此,关于特定服务的咨询,\*\*即使通过本网站的表单联系我们,我们也无法处理。 ================================================ FILE: content/cn/contact-faq/2.delete-account.md ================================================ --- question: 想要注销账号 --- \*\*您找错了咨询对象,请确认正确的联系方式。 本网站是由本组织“Misskey Project”所开发的开源软件“Misskey”的官方网站。 如果您在上面指南中不知道如何注销帐号,或者是按照步骤操作也无法注销帐号,那么请与您的服务器的管理员联系。 (需要注意的是,有些人会将使用 Misskey 的网络服务(Misskey 服务器)直接简称为“Misskey”。) Misskey Project 仅免费提供软件的基本源代码,不提供或运营任何使用 Misskey 或其衍生软件的服务器或服务。 此外,我们也无权管辖或参与这些服务。 因此,关于特定服务的咨询,**即使通过本网站的表单联系我们,我们也无法处理。** ================================================ FILE: content/cn/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 我希望能够删除某个服务器上的内容 --- 另外,由于 Misskey Project 并不提供任何 Misskey 服务器或者服务,**就算使用下面的表单发送咨询也不会对此问题做出回复。** 本网站是由本组织“Misskey Project”所开发的开源软件“Misskey”的官方网站。 “Misskey”是一款用于创建社交网络(SNS)的免费软件,它本身并非一项网络服务。 (需要注意的是,有些人会将使用 Misskey 的网络服务(Misskey 服务器)直接简称为“Misskey”。)) Misskey Project 仅免费提供软件的基本源代码,不提供或运营任何使用 Misskey 或其衍生软件的服务器或服务。 此外,我们也无权管辖或参与这些服务。 因此,关于特定服务的咨询,**即使通过本网站的表单联系我们,我们也无法处理。** 对你所在服务器和其他服务器上的资料进行审核是根据每个服务器的规则进行的,因此请与内容源服务器的管理员联系,或通过拉黑用户或服务器来保护自己。 ================================================ FILE: content/cn/contact-faq/4.copyright-infringement.md ================================================ --- question: 发现侵犯版权的行为 --- **您找错了咨询对象,请确认正确的联系方式。** 本网站是由本组织“Misskey Project”所开发的开源软件“Misskey”的官方网站。 因此,有关 Misskey 服务器侵权的的问题,请联系相关服务器的运营商。 (需要注意的是,有些人会将使用 Misskey 的网络服务(Misskey 服务器)直接简称为“Misskey”。) Misskey Project 仅免费提供软件的基本源代码,不提供或运营任何使用 Misskey 或其衍生软件的服务器或服务。 此外,我们也无权管辖或参与这些服务。 因此,关于特定服务的咨询,**即使通过本网站的表单联系我们,我们也无法处理。** ================================================ FILE: content/cn/contact-faq/5.client-not-working.md ================================================ --- question: Misskey目前无法正常运行。 --- 首先,请查看“[故障排除](/docs/for-users/resources/troubleshooting/)”页面,了解浏览器常见问题的解决方法。需要检查的项目包括: - 您是否尝试过**删除自定义CSS或插件**以进行测试? - 您是否已经**重新登录**并确认过问题仍然存在? - 您是否还在使用旧版本的操作系统或浏览器? - 您是否已经等待一段时间后再次尝试访问? - 您是否已经确认过URL是否正确? - 您是否已经尝试清除浏览器缓存和Cookie? 如果问题仍然无法解决,请首先联系服务器管理员。 如果您被告知向Misskey Project报告问题,请使用以下表格以外的开发平台,即[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)来提交错误报告。 即使您通过以下联系方式提交了问题报告,我们可能也无法立即做出回应。请务必在[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)上发布。 ================================================ FILE: content/cn/contact-faq/6.mention-spam.md ================================================ --- question: 收到了冒充 Misskey 或服务器支持的账号发来的消息。 --- **Misskey Project 绝不会发送此类消息。这很可能是垃圾信息,请首先联系您所用服务器的管理员。** 如果您收到冒充 Misskey、Misskey Project 或特定服务器支持窗口的账号发来的消息,内容诸如“您的账户已被停用,需要处理”并附有陌生网站的链接,或指示您对该提及(mention)进行回应等,**这极有可能是垃圾信息。** 如果您遇到此类消息,请首先联系您所用服务器的管理员。**请注意,点击笔记内的链接或对其进行回复,可能会让您卷入意想不到的麻烦。** (Misskey Project 仅免费提供软件的基本源代码,不提供或运营任何使用 Misskey 或其衍生软件的服务器或服务。此外,我们也无权管辖或参与这些服务,因此请向**您所用服务器的管理员**咨询。Misskey Project 无法处理。) ================================================ FILE: content/cn/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: '这是一份介绍Misskey的文档。' --- # 关于Misskey Misskey是一个开源的分布式微博客平台项目。 开发工作于2014年由syuilo在日本开始进行。 它的特点是功能丰富,包括“网盘”、“回应”等,以及拥有一个高度可定制的用户界面。 ## 历史 在最初开发时,Misskey的主要功能是网络布告板(BBS),但随着用户开始发布短消息,增加了时间轴功能,使得消息能够按时间顺序排列并流动,后来该功能变得更受欢迎,并逐渐成为开发的主要重心。 最初它也并不是一个去中心化的服务,但是通过在2018年实现ActivityPub协议,这使Misskey实现了去中心化,并受到了更多人的认可和使用,一直延续至今。 :::tip Misskey这个名称,来自开发者syuilo当时正在热衷于听的艺术家May'n的歌曲《Brain Diver》的歌词。 ::: 自那以后,任何人都能参与开发Misskey了,直到现在,平台的开发工作仍然在积极进行当中。 [Misskey 历史档案馆](/about-us/history/) ## 什么是去中心化? 所谓去中心化,也称分布式,是指允许社区中多个分散的服务器互相进行通信(联邦,Federation)以交换信息的网络平台。那些只有单一服务器,或者有多个服务器但它们只会单独运行的网络平台则被称为中心化结构(集中式),例如X(原Twitter)、Facebook等大多数现行的网络平台都属于中心化结构。 去中心化的好处在于,用户可以根据自己对其运营者或主题的喜好,自行选择服务器加入。用户也可以搭建自己的服务器。得益于联邦架构,不管用户加入哪一个服务器,都可以访问相同的社区内容。 ## 始终开源 Misskey 一直是并将永远是开源的。开源指的是软件源代码(程序)被公开。有时也包括定义可以对源代码进行修正和再配布的情况。Misskey 的所有源代码都遵循 [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) 这个开源协议公开,任何人都可以自由浏览、使用、修改、改变和再分发。开源软件可以让人自由修改,确保不含有有害处理等各种优点,任何人都可以参与开发。要实现上述的分布式结构,开源软件是必不可少的元素。再举例说明,Twitter 和 Facebook 等大多数服务都不是开源的。 :::tip 从技术上讲,Misskey 的源代码由 Git 管理,软件源托管在 [GitHub](https://github.com/misskey-dev) 上。 ::: ## 参与开发、支持项目 如果你喜欢Misskey,请支持这个项目。如下所述的许多方法都可以为本项目做出贡献。不需要开发技能,任何人都可以以自己的方式参与并支持Misskey。我们期待你的加入。 ### 增加功能或修复错误 如果你有软件工程技能,你可以以编辑源代码的形式为该项目做出贡献。 参与贡献的指南在[这里](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)。 ### 加入讨论 你也可以通过表达你对新功能或现有功能的意见,或报告漏洞来做出贡献。 这样的讨论可以在[GitHub](https://github.com/misskey-dev)或[论坛](https://forum.misskey.io/)等进行。 ### 翻译文本 Misskey 支持多种语言(i18n-国际化的缩写)。原语言大多为日语,但志愿者们正在将其翻译成其他语言。 你也可以通过参与翻译过程为Misskey做出贡献。 Misskey使用[Crowdin](https://crowdin.com/project/misskey)来管理翻译。 ### 发表你的想法 除了回报漏洞,也请你分享关于Misskey的优点和乐趣的积极意见。这是对开发的鼓励,也是对项目间接但积极的贡献。 ### 增加 Misskist 的数量 Misskeyist 是使用 Misskey 的人。 如果你通过向你的朋友和熟人介绍Misskey,Misskeyist 的数量就会增加,发展的动力也会增加。 ### 捐助我们 [请看这里](/docs/donate/) ## 常见问题 ### 本项目旨在实现什么目标? 强行地说的话,Misskey 旨在成为一个被广泛使用的平台。与其他项目不同的是,Misskey 的开发不是基于某种特定思想(例如反中央集权)或者愿景,我开发这一项目的想法非常简单。相反,我认为这导致了不受特定方向束缚的灵活性的产生。 ### 它是由什么公司开发的吗? 不是。Misskey 是个人开发的,非商业性质的,与任何特定公司无关。 开发成员基本上都是志愿者。 在某些情况下,开发是由某些公司赞助的,但即使在那种情况下,仍然主要是由个人组成的社区进行开发。 ### 谁在运营它? Misskey 是去中心化的,所以每个服务器都有不同的运营者。因此,并不是由特定个人或企业来运营全部的 Misskey。 此外,由于开发团队也不负责运营,因此有关运营的联系事宜,请联系您的服务器管理员。 您可以在服务器信息页面上确认服务器的管理员。 如果您自己搭建服务器,那么您就会成为管理员。 ### 我应该选择哪个服务器? 服务器列表已经公开。由于不同的服务器可能会有不同的社区主题(例如特定的事物或喜好等),因此你可以选择适合自己的主题服务器。此外,还需要考虑服务器的规模、用户群、国家和语言、运营者是否可信等方面。请注意,Misskey 没有官方服务器,当然,你可以选择自己创建一个服务器。 通常,无论你选择哪个服务器,你基本上都可以与其他所有服务器的用户连接。 ### 如何建立一个自己的服务器? 创建感谢您有兴趣创建 Misskey 服务器。 创建 Misskey 服务器可以通过使用专用服务或半自动构建环境来完成(当然,也可以手动构建服务器)。有关详细信息,请参阅 [此处](/docs/for-admin/install/guides/)。 ### 它使用什么技术? 随着开发的进行,在技术上 Misskey 发生了很大的变化。开发之初的技术方案是 MySQL + PHP + jQuery,现在变成如下的样子: - 服务器端:Node.js - 数据库:PostgreSQL、Redis - 前端 UI 框架:Vue.js - 开发语言:TypeScript 我们还开发了一些来自 Misskey 的自有技术,例如 MFM 和 AiScript。 ### 它是 Mastodon 的一个分支吗? 不是。Misskey 完全独立于 Mastodon 和其他项目。开发方面,Misskey 其实已经发展了很长时间。然而,直到 Mastodon 出现后, Misskey 才变得去中心化。 但是,除了都实现了被称为 ActivityPub 的相同分发协议外,它们并没有特别的关联。 ### 有iOS、Android应用程序吗? 目前还没有官方的原生 Android/iOS 应用程序,但有一些第三方应用。 更多信息,请参阅 [此处](/docs/for-users/resources/apps/)。 只是,由于第三方应用程序对功能的支持总是会有所滞后,所以除非有特别的偏好与需求,否则建议使用官方的 Web 客户端。另外,Misskey 的 Web 客户端支持 PWA,因此也可以像原生应用程序一样运行。 :::tip [PWA的设置方法](/docs/for-users/stepped-guides/how-to-use-pwa/) ::: ### 我在哪里可以得到 Misskey 的标志和图标? [在这里](/brand-assets/) ### 时不时可以看到的可爱猫耳女孩是谁? :::fukidashi{chara="doya_ai" charaName="藍"} 想了解我,请访问[这个网站](https://xn--931a.moe/)! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} 这是 Misskey 的守护神小蓝。小蓝超可爱的! ::: ================================================ FILE: content/cn/docs/2.for-users/1.index.md ================================================ # 面向用户的指南 本节介绍了Misskey的一般功能,不仅对初次使用Misskey的人有用,对已经使用Misskey的人也很有用。 ================================================ FILE: content/cn/docs/2.for-users/2.onboarding/0.index.md ================================================ # 开始使用 Misskey 在这里您将找到 Misskey 入门教程。 主要是: - 去中心化平台的注意事项 - 什么是服务器?如何选择服务器 - 怎么注册? - 最基本的互联网知识 遵循以上说明,你就可以开始使用 Misskey 了。 那么事不宜迟,让我们尽快开始吧!(请点击「下一页」继续) ================================================ FILE: content/cn/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: '这是在 Misskey 服务器上创建账户前的基本注意事项。' --- # 基本注意事项 在使用提供 Misskey 服务的实例时,有必要注意几个要点。 - 由于其去中心化的属性,一旦上传数据,删除数据并不能保证会从所有其他服务器上删除。(然而,对整个互联网来说也是如此。) - 即使发布的帖子不是公开的,也不能保证对方服务器会以同样的方式将其视为非公开信息。发布个人信息、机密信息时请格外谨慎。(然而,对整个互联网来说也是如此。) - Misskey 搭载的「网盘」功能并不是一般意义上的云存储。这个功能主要是为了管理和重复使用上传的文件。 **无论是否曾将文件附加到帖子中,任何知道 URL 的人都可以访问上传的数据。** 对于包含机密信息的数据请使用专用的服务来交换。 - 由于删除账号是一个性能损耗较大的处理,这可能需要一段比较长的时间。如果上传的数据量很大,可能会出现无法删除账户的情况。 - 有些服务器可能会通过广告收入来支付运营成本。此外,广告拦截器往往会错误地拦截与广告无关的内容和功能,这可能会干扰客户端的操作,使 Misskey 无法被正常使用。因此,请在使用 Misskey 时关闭广告拦截器或类似功能的工具。 请确保您理解了这些内容,并享受服务吧。 ================================================ FILE: content/cn/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskey 用户的注册与基本操作" --- # 挑选 Misskey 服务器 Misskey 是一个软件和项目。 在网络上公开运行 Misskey 软件的服务器被称为**服务器**。 要使用 Misskey,您只需要在某个服务器上创建一个帐户,然后开始使用。 可以从 [服务器列表](/servers/) 里面挑选自己喜欢的服务器。 :::tip 无论您选择哪种服务器,您都可以与其他服务器上的用户交流。 :::g-details{summary='详细'} Misskey 可以和联邦宇宙通信。 通过联合功能,不同服务器间的用户可以如同在同一个服务器上一样互相关注、添加回应、转进行转帖等等。 Misskey 的联合功能基于 ActivityPub 的开放通用标准,并与 Mastodon 和 Pleroma 等其他软件兼容。 ::: ::: ## 服务器挑选指南 ### 服务器主题 每个服务器都有特定的主题,例「共同喜欢着某些事情」。 推荐选择一个适合你自己主题的服务器。 :::tip 可以从 [服务器列表](/servers/) 里面挑选适合自己的服务器。 ::: ================================================ FILE: content/cn/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # 注册 既然决定好服务器了,那么马上来注册账户吧。 :::tip 这里以 Misskey.io 为例,其他服务器的注册方法大体相同。 但是,输入的信息可能会根据服务器而有所不同。具体请联系服务器的管理员。 ::: ## 开始注册 首先,在首页找到「**在本服务器上注册**」按钮,并点击。 ![在本服务器上注册按钮](/img/docs/for-users/onboarding/join-server/1.ja.png) 接下来,遵循画面指示,确认使用条款填写必要信息。 主要填写的信息如下: - 邀请码(仅限需要邀请的服务器。如果没有的话就无法注册。) - 用户名 (**之后无法更改。注销账号之后将无法使用相同的用户名。**) - 邮箱(也有不需要的服务器) - 密码 ![填写必要信息](/img/docs/for-users/onboarding/join-server/2.ja.png) 在填写完所需信息后,若输入了邮箱地址,将会收到一份确认邮件。请尽快点击邮件内的链接。 ![确认邮件](/img/docs/for-users/onboarding/join-server/3.ja.png) 以上,Misskey 服务器的注册就大功告成了! 现在你也是个 [misskist](../resources/glossary/#ミスキスト)!享受这一切吧。 ================================================ FILE: content/cn/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskey 基础知识 注册完帐号之后需要注意的事项 ## 帖子 在 Misskey 中发布的内容被称为「帖子」。与 Twitter 等一般的 SNS 相比拥有更多功能,在第一次发帖前请务必确认。 :::tip 具体请查看「[帖子](/docs/for-users/features/note/)」。 ::: ## 时间线 Misskey 有多条时间线。光看名字可能有点难以理解,所以一起来了解一下每一个的作用。 :::tip 具体请查看「[时间线](/docs/for-users/features/timeline/)」。 ::: ## 其他 Misskey 还有各式各样的丰富功能!所有功能的说明都写在[这里](/docs/for-users/features/) ,请务必看看! ================================================ FILE: content/cn/docs/2.for-users/3.features/1.index.md ================================================ --- description: "对 Misskey 拥有各种功能这一大特征进行解说。" --- # 各种功能 Misskey的最大特征是拥有其他微博系统所无法看到的丰富多彩的功能。在这里将对其进行解说。 ================================================ FILE: content/cn/docs/2.for-users/3.features/ads.md ================================================ # 广告 Misskey具有将服务器上的广告在时间线上显示的功能。 点击广告右上角的图标可以降低该广告的显示频率。 :::tip 如果广告总数过少,即使降低了显示频率,也有可能继续显示。 ::: ## 设置广告(管理者) 你可以从服务器的控制面板添加、编辑和删除广告。 广告可以设置任意图像、Url、形状和显示比例。 ================================================ FILE: content/cn/docs/2.for-users/3.features/antenna.md ================================================ # 天线 天线可以自由设定条件,自动收集匹配的笔记。 如果刚发表的帖子符合某个已存在天线的筛选规则,此帖子会被实时添加到此天线的时间线内。 ================================================ FILE: content/cn/docs/2.for-users/3.features/charts.md ================================================ # 图表 Misskey具有生成和显示服务器的各种数据源的图表的功能。 利用图表,可以直观地掌握服务器的使用状况、联合的状况、各用户的活动等。 服务器的图表可以从服务器信息页面显示。 以下是各图表及其各项目的说明。 ## 联合图表 这是关于联合服务器的图表。 ### Pub 正在发送活动的服务器的数量。 换句话说,表示关注了本服务器用户的远程用户所属的服务器的唯一计数。 ### Sub 正在接收活动的服务器的数量。 换句话说,表示本服务器用户关注的远程用户所属的服务器的唯一计数。 ### Received 发送了活动的服务器数量。 ### 发送活动的服务器数量。 ### 发送活动时发生错误的服务器的数量。 ## 活跃用户数图表 这是关于本服务器用户使用状况的图表。 ### Read & Write 阅览和发帖的用户数量。 ### Read 进行过阅览的用户数量。 ### Write 进行过发帖的用户数量。 ### < Week 在浏览过的用户中,账户创建时间不满一周的用户数量。 ### <月 在浏览过的用户中,账户创建时间不满一个月的用户数量。 ### <年 在浏览过的用户中,账户创建时间不满一年的用户数量。 ### > 周 在浏览过的用户中,账户创建时间超过一周的用户数量。 ### > 月 在浏览过的用户中,账户创建时间超过一月的用户数量。 ### > 年 在浏览过的用户中,账户创建时间超过一年的用户数量。 ================================================ FILE: content/cn/docs/2.for-users/3.features/clip.md ================================================ # 便签 便签功能可以将多个帖子合并在一起。自己的帖子还是他人的帖子都可以。 可以创建多个便签,并为每个便签设置名称和说明以便管理。此外,还可以选择是否将便签公开给其他用户。 要制作便签,从[便签管理页面](x-mi-web://my/clips)点击「添加」。 想要将帖子添加到便签时,从目标帖子的菜单中点击「便签」,选择要添加的便签。 ================================================ FILE: content/cn/docs/2.for-users/3.features/custom-emoji.md ================================================ # 自定义表情符号 自定义表情符号可以将服务器提供的图像当作表情符号来使用。 自定义表情符号可用于帖子、反应、聊天、自我介绍、姓名等。 要在这些位置使用自定义表情符号,请按表情符号选择器按钮(如果可用)或输入「:」以显示表情符号建议。 如果在文本中找到`:foo:`形式的字符串,`foo`将被解释为自定义表情符号名称,并在显示时替换为相应的自定义表情符号。 要查看服务器上有哪些自定义表情符号,请访问 Misskey Web 上的 **服务器信息** 下的 [**自定义表情符号**](x-mi-web://about#emojis)。 ================================================ FILE: content/cn/docs/2.for-users/3.features/deck.md ================================================ # Deck Deck 是可用的 UI 之一。通过将多个被称为「列」的视图并排显示,可以构建定制性高、信息量大的 UI。 另外,如果添加了主列,则在显示帖子或者个人资料时,内容会显示在主列中。 ## 追加列 可以右键单击 Deck 背景并选择「添加列」以添加任何列。 ## 移动列 可以通过拖动与其他列调换位置,也可以从列菜单(在列标题右键)移动位置。 ## 水平分割列 列不仅可以左右显示,也可以上下并排显示。 打开列菜单,选择「向左重折叠」,当前列就会移动到左侧列的下方。 如果要取消上下分割,则在列菜单中选择「向右弹出」。 ## 设定列 在列菜单中选择「编辑」可以编辑列设置。可以改变列名及宽度。 ## Deck 的设定 关于 Deck 的设置,可以在 [settings/deck](x-mi-web://settings/deck) 进行。 ================================================ FILE: content/cn/docs/2.for-users/3.features/dev-mode.md ================================================ # 开发者模式 [设置>其他>开发者](x-mi-web://settings/other) 设置的开发者模式,现在,开发人员可以直接从菜单中复制帖子和菜单的ID。 ================================================ FILE: content/cn/docs/2.for-users/3.features/drive.md ================================================ # 网盘 网盘是 Misskey 上可以管理文件的功能。 :::tip 从技术上来说,Misskey 系统上的所有文件都是统一管理的,向用户公开的接口就可以看作是网盘。 ::: 可以从 Misskey Web 的[网盘页面](x-mi-web://my/drive)内上传任意文件。此外,设置的头像图片或在帖子中附加的文件等,也全都会被上传到网盘中。 :::tip 可以通过角色设置可上传的文件类型,默认情况下可以上传文本、JSON、图片、视频和音频文件。 ::: 往网盘内上传的文件可以随时下载。此外,在创建帖子时,通过选择「从网盘中」,还可以多次使用这些文件。 您可以在网盘内创建文件夹,以整理和存储多个文件。 :::warning 目前,如果您从网盘中删除文件,那么 **所有附加了该文件的内容(如帖子、页面等)** 也将同时被删除。 ::: ## 敏感内容(NSFW) 敏感内容或NSFW(Not Safe For Work) 是一个可以设置在网盘文件上的标签。 设置了敏感内容标签的文件在显示时,如果没有浏览者的操作,将不会直接显示出来。 这个标签的目的是为了防止例如在职场或公共场合浏览时可能被认为不适宜的图像突然显示出来。 这个标签不仅可以手动切换开启或关闭,有时也会根据管理员的判断来设置。 ================================================ FILE: content/cn/docs/2.for-users/3.features/embed.md ================================================ # 嵌入网站 可以将 Misskey 服务器上的帖子或者是时间线嵌入到网页内。 另外,还可以依据所嵌入的网页灵活地自定义外观。 在此将说明嵌入内容及如何嵌入。 :::warning 此功能仅在 Misskey v2024.9.0 以后的版本中可用。 ::: :::tip 虽然支持显示 MFM 或者自定义表情符号等,但根据目标页面的表示方法,有可能会发生布局崩坏。 ::: ## 使用生成器生成嵌入代码 下面列出的所有嵌入代码和自定义都可以使用 Misskey Web 的内置嵌入代码生成器轻松完成。 基本上,建议使用这种方法。 ![嵌入代码生成器](/img/docs/for-users/features/embed/generator.png) ## 嵌入单个帖子 ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 可在源服务器上嵌入单个的(远程服务器上的的不能使用其他服务器嵌入)。代码如下: ```html ``` 需要替换的部分如下: - ``: Misskey 服务器的主机名 - ``: 要嵌入的帖子的 ID - ``: 随机字符串(如果使用 embed.js ,则为必填项。如果同一页面中有多个嵌入代码,请确保它们不重复) ## 嵌入用户的帖子列表 ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: 可以嵌入用户公开的帖子列表(公开/主页)。代码如下: ```html ``` 需要替换的部分如下: - ``: Misskey 服务器的主机名 - ``: 要嵌入的用户的 ID(不是以 @ 开头的用户名) - ``: 随机字符串(如果使用 embed.js ,则为必填项。如果同一页面中有多个嵌入代码,请确保它们不重复) ## 嵌入收藏的帖子列表 ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 可以嵌入公开收藏的帖子列表。代码如下: ```html ``` 需要替换的部分如下: - ``: Misskey 服务器的主机名 - ``: 要嵌入的收藏夹的 ID - ``: 随机字符串(如果使用 embed.js ,则为必填项。如果同一页面中有多个嵌入代码,请确保它们不重复) ## 嵌入带有特定标签的帖子列表 ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 可以嵌入带有特定标签的帖子列表。代码如下: ```html ``` 需要替换的部分如下: - ``: Misskey 服务器的主机名 - ``: 标签名称(不包含`#`) - ``: 随机字符串(如果使用 embed.js ,则为必填项。如果同一页面中有多个嵌入代码,请确保它们不重复) ## 自定义参数 通过在 URL 参数中指定特定值,可以自定义嵌入内容的外观。
参数名 可设定的值 说明
maxHeight 0以上的值 指定嵌入内容的最大高度(px)如果内容超出指定高度,则会在内部启用滚动功能。
指定为0时,嵌入元素的高度会根据内部内容的高度自动调整(不推荐)
如果未指定,默认值为700
此功能不适用于单个帖子嵌入。
colorMode
  • light
  • dark
强制将颜色模式设置为亮色或暗色。
如果未指定,则会与设备的暗色模式同步。
border
  • true
  • false
是否为外框添加边框。未指定时默认为true
rounded
  • true
  • false
是否将角设置为圆角。未指定时默认为true
showHeader
  • true
  • false
是否显示顶部的标题栏。未指定时默认为true
在嵌入单个帖子时,此功能无效。
:::g-details{summary="maxHeight=0 的使用方式"} 通常不推荐将`maxHeight`设置为`0`,但在某些特殊用途下(例如,希望将滚动容器放在嵌入网站的外部,而不是 iframe 内部)可能会有用。示例如下: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/favorite.md ================================================ # 收藏 这是一个可以将[笔记](./note)添加到您的收藏夹中的功能。 您可以在 [收藏夹页面](x-mi-web://my/favorites)上列出已注册为收藏夹的笔记。 对方不会收到您已将笔记添加到收藏夹的通知,只有您自己可以查看您的收藏夹。 要将笔记收藏到收藏夹,请按菜单中的 "收藏"。如果要取消收藏,请按菜单中的 "取消收藏"。 ================================================ FILE: content/cn/docs/2.for-users/3.features/follow.md ================================================ # 关注 当您关注某人时,您将开始在您的时间线上看到他们的帖子。但是,它不包括对其他用户的回复。 要关注用户,请单击用户页面上的「关注」按钮。 要关注用户,请点击用户页面上的“关注”按钮。要取消关注用户,请再次单击取消关注。 如果关注是审批制的,或者关注的是外部服务器上的用户,点击关注按钮后,将会显示“处理中”。当关注被批准后,客户端会收到通知。 ## 被关注时的通知 :::tip 此功能可在搭载 Misskey v2024.9.0 或更高版本的服务器上使用(对于远程用户,双方的服务器都必须是 v2024.9.0 或更高版本)。 这是一个 Beta 版功能。 ::: 您可以设置一个当您被关注时显示给对方的一条简短消息。如果将关注设置为审批制,该消息会在批准关注请求时显示。 此外,在您被关注期间,您的个人资料中也会显示这条消息。 :::warning 被关注消息并非用于传递机密信息,请勿包含任何您不希望公开的信息。 ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/hashtag.md ================================================ # 标签 主题标签是允许您为帖子添加可搜索标签的功能之一。 世界上第一个标签 #barcamp 是在 [2007年8月24日上午4:25](https://twitter.com/chrismessina/status/223115412?lang=en)由 Chris Messina [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)发明的。这个 “使用符号`#`来简化搜索 ”的想法后来被改名为 “hashtag”--一个由英语单词 “hash ”和 “tag ”组合而成的新词,“hash ”的意思是 “散列”,“tag ”的意思是 “标记”--并被当时的 Twitter 公司正式采用。顺便提一下,克里斯-梅西纳选择 `#` 是因为它与以 `#` 开头的 IRC 频道名有关联。 Chris Messina 的第一条带标签的推文的截图:「您对使用 # 表示有何看法。 As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png) Fediverse 上的标签与 X 和 Instagram 等集中式服务上的标签略有不同。例如,在 Fediverse 上查找某个帖子可能比较困难,因为有时很难搜索到全文,但如果某个帖子带有标签,则可以通过跟随标签很容易地找到该帖子。联合服务器中也有一些服务,比如一种名为 "Hashtag Relay "的服务,只需在帖子上添加一个标签,该标签就会自动将你的帖子发送到各个网站,而标签在这些网站中具有一定的权重。 ================================================ FILE: content/cn/docs/2.for-users/3.features/mention.md ================================================ # 提及 在帖子中添加"@"符号及用户名,即可创建提及目标用户的动态。被提及用户将收到该帖子的通知。 ================================================ FILE: content/cn/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM 是一种专用的标记语言,可以在 Misskey 的各个地方使用。' --- # MFM MFM,全称为 Markup language For Misskey,是可以在 Misskey 的各个地方使用的专用标记语言。某些语法与 Markdown 和 HTML 兼容。 :::tip 可以用来实际尝试 MFM 的 [MFM 试用角](/tools/mfm-playground/)现已推出! ::: ## 可以使用 MFM 的地方 - 帖子正文 - CW 注释 - 用户名 - 用户自我介绍 ## 语法 ### 提及 可以使用 @+用户名 来指示特定用户。 :::tip 关于提及的详情请看[这里](./mention.md)。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### 标签 可以使用 # + 文字来表示话题标签。 关于标签的详情请看[这里](./hashtag.md)。 ::: ``` #misskey ``` ### URL 可以显示 URL。 ``` https://example.com ``` ### 链接 可以将部分文字和 URL 关联起来。 ``` [example link](https://example.com) ``` :::tip 在文字前加上`?`可以不显示连接预览。 ``` ?[example link](https://example.com) ``` ::: ### 自定义表情符号 用冒号将自定义表情符号名围起来,可以显示自定义表情符号。 :::tip 关于自定义表情符号的详情请看[这里](./custom-emoji.md)。 ::: ``` :misskey: ``` ### 粗体 可以将文字显示为粗体来表示强调。 ``` **粗体** ``` ### 缩小 可以使内容文字变小、变淡。 ``` 通过 Misskey 扩展联邦宇宙的世界 ``` ### 引用 可以用来表示引用的内容。 ``` > 通过 Misskey 扩展联邦宇宙的世界 ``` ### 居中 可以将内容居中显示。 ```
通过 Misskey 扩展联邦宇宙的世界
``` ### 注音标示(Ruby) 可以为文字添加注音。 ``` $[ruby Misskey ミスキー] ``` ### 代码(内嵌) 将文字中的程序代码语法高亮显示。 ``` `<: "Hello, world!"` ``` ### 代码(块) 语法高亮显示整块程序代码。 通过 ID 指定编程语言会应用该语言的语法高亮。可以指定以下语言: - [Shiki支持的语言(200+)](https://shiki.style/languages) - AiScript:通过指定 `aiscript`、`ais`或`is`来使用。 ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### 翻转 将内容上下或左右翻转。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### 字体 可以设置内容所使用的字体。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### 模糊 可以使内容模糊。将指针移到上面就可以清晰看见。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 搜索 可以显示搜索框。 ``` misskey 検索 ``` ### 文字色・背景色 可以更改文字色与背景色。 颜色使用 3、4 或 6 位颜色代码表示。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 边框 可以将内容用边框围起来。还可以指定各种格式。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 更改角度 旋转指定的角度。 ``` $[rotate.deg=30 misskey] ``` ### 更改位置 可以移动位置。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 放大 通过拉伸显示文本。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### 动画(果冻) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### 动画(锵锵) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### 动画(跳动) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### 动画(弹性) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### 动画(旋转) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### 动画(摇晃) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### 动画(颤抖) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### 彩虹 ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### 闪光 ``` $[sparkle 🍮] ``` ### 简化 禁用内部全部语法。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 面向开发者的信息 MFM 的解析器实现和绘图作为库发布,可以轻松地将 MFM 嵌入到客户端中。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScript 的解析器实现 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js 用组件 - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlin 解析器实现 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dart 解析器实现 - [mfm](https://pub.dev/packages/mfm) - Flutter 用绘图小工具 ================================================ FILE: content/cn/docs/2.for-users/3.features/mute-and-block.md ================================================ # 隐藏和屏蔽 如果您对某些用户不感兴趣,可以通过"隐藏"功能隐藏他们的动态。若需要更彻底的隔离,您也可以选择"屏蔽"该用户。屏蔽后,对方不仅无法查看您的内容,也无法与您进行任何互动。需要注意的是,隐藏操作不会被对方察觉,但屏蔽操作会明确告知对方已被屏蔽。具体选择哪种方式,请您根据自身情况决定。 :::tip 隐藏和屏蔽功能可以同时使用。 ::: :::warning 如果遇到违反使用条款的恶意用户,建议您考虑向平台管理员提交举报。 ::: 在Misskey Web版中,您可以通过 设置 > 隐藏与屏蔽 查看您已隐藏或屏蔽的用户列表。 ## 隐藏 将用户隐藏将阻止有关该用户的以下内容出现在 Misskey 上: - 您的时间线和帖子搜索结果中的用户帖子(以及对这些帖子的回复和重新注释) - 来自该用户的通知 - 消息历史记录列表中与该用户的消息历史记录 - 等等 要在 Misskey Web 上将用户隐藏,请打开该用户的用户页面上的菜单,然后按“隐藏”按钮。 :::tip 其他人不会收到您已将其隐藏的通知,并且他们也无法知道自己已被隐藏。 ::: ## 屏蔽转帖 如果用户重新注释了大量注释,您可以仅从时间线中删除该用户的重新注释。用户的常规笔记不会受到影响。 ## 屏蔽 屏蔽用户将阻止他们查看您的内容或对您采取任何其他行动,例如: - 关注 - 添加到用户列表 - - 在民意调查中做出反应并投票 - 发送消息 - 等等 并且 - 如果用户在您屏蔽时已经关注您,则他们将被取消关注。 - 如果在您屏蔽某个用户时,该用户已将您列入其用户列表中,那么您将从该列表中删除。 要在 Misskey Web 上屏蔽用户,请打开用户的用户页面上的菜单,然后单击“屏蔽”按钮。 :::warning 对方不会收到您已屏蔽他们的通知,但他们将间接知道自己已被屏蔽,因为他们将不再能够执行上面列出的操作,例如关注您。 ::: :::warning 其他人将无法看到您的内容,但如果他们切换帐户或注销,您就可以查看。请仅将其视为一个简单的补充工具。 ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/note.md ================================================ # 贴子 贴子是Miskey上发布的内容,包括文字、文件、投票等,是 Misskey 的核心概念。而创建帖子的操作则称为"发帖"。 :::tip 贴子这个名字来自英文单字 note,意思是「简短的记录」。 ::: 发布贴子之后,贴子将被加入[时间轴](./timeline),自己的[关注者](./follow)与服务器的用户可以看到。 您可以对贴子做出[反应](./reaction)。当然,你也可以回复和引用。 将贴子加到[我的最爱](./favorite),您可以轻松的在以后查阅他们 ## 发布贴子 若要在 Misskey Web 上发布贴子,请按下屏幕上的铅笔按钮以开启投稿页面。通过在投稿页面中输入内容并按下「发布」按钮来建立贴子。 您可以将图像或视频等任何文件或[投票](./poll) 附加到贴子中。另外,文本中可以使用[MFM](./mfm),还可以包含[提及](./mention)和[标签](./hashtag)。 此外,您还可以修改内容警告和公开范围等设定(详细信息将在后面解释)。 :::tip 使用 Misskey Web,如果您的电脑剪贴簿上有图像,您可以通过将图像粘贴到窗口的文本框中来添加图像。 ::: :::tip 您亦可在投稿页面按下<0>Ctrl + Enter来发布帖文。 ::: ## 转发 引用现有贴子或将该贴子作为新贴子分享以及由此创建的贴子的行为称为转发。 当您想与您的追随者分享你最喜欢的某个使用者的贴子时,或者当您想要重新分享自己过去的贴子时,请使用此功能。 您可以无限次地重复相同的贴子,但请注意不要连续使用太多次,因为这可能会造成他人的困扰。 :::warning 可见性为 「仅关注」或 「指定用户」的贴子无法被转发。 ::: 若要在 Misskey Web 上删除转发,请按转发时间显示旁边的「...」,然后选择「取消转发」。 ## 內容警告(CW) 内容警告 Content Warning的缩写,是一种无需阅读者额外操作即可隐藏笔记内容的功能。它主要用于隐藏冗长的内容或防止剧透。 若要在 Misskey Web 上设定内容警告,请按下表单上的「隐藏内容」按钮(眼睛图示)。然后将出现一个新的文本框,您可以在其中写提示内容。 ## 公开范围 对于每个贴文,您可以设定公开范围。 若要在 Misskey Web 中设定公开范围,请按下表单上 「贴子 」按钮左侧的地球图示。 可以使用以下几种公开范围: ### 公开 除了向所有人公开贴文外,贴文还会显示在服务器上的所有时间轴(首页时间轴、本地时间轴、社交时间轴和公开时间轴)。 :::warning 当账户处于[禁言](./silence)状态时,无法使用此可见性。 ::: ### 首页 笔记会向所有人公开,但不会出现在非关注者的本地时间线、社交时间线和全局时间线上。 ### 关注者 笔记仅对自己的关注者公开。会发送到所有关注者的时间线上。 ### 指定用户 笔记仅对指定的用户公开。会发送到指定用户的所有时间线上。 :::tip 在 v2025.7.0 版本之前,它被称为“私信”(ダイレクト)。 ::: ### “仅本地”选项 启用此选项后,笔记将不再同步(联邦)到远程服务器。 ### 公开范围比较
公开首页关注者指定用户
关注者的LTL/STL/GTL
未关注者的LTL/STL/GTL
## 置顶 将笔记置顶后,可以使其始终显示在您的个人主页上。 要在 Misskey Web 中置顶笔记,请打开该笔记的菜单,然后选择“置顶”。 :::tip 也可以同时置顶多条笔记。 ::: ## 新帖通知 当用户发布新笔记时,您可以收到通知。请打开用户主页,点击关注按钮旁的详细按钮,然后点击“新帖通知”来启用此功能。 ================================================ FILE: content/cn/docs/2.for-users/3.features/online-status.md ================================================ # 在线状态 用户的**在线状态**表示该用户使用 Misskey 的状态,**在线状态**会在用户页面等处的用户图标角落以指示器的形式显示。
颜色 状态 解释
🟢绿 在线 当前可能在使用 Misskey
🟡黄 活动 暂时离开了,但 Misskey 仍在使用状态
🔴红 离线 没有在使用 Misskey 的状态
⚫灰 未知 状态为**隐藏**,或者在远程用户等状态不明的情况下
您的在线状态会自动更改,无法手动设置,但可以通过设置将您的在线状态设置为**隐藏**。 :::warning 部分功能(如用户建议)可能基于您的在线状态,因此将您的状态设置为隐藏可能会使其他用户更难找到您。 ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/pages.md ================================================ # 页面 Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## 页面设置 ページに関する項目を設定します。次の項目を入力できます。 - 标题 - ページの要約 - 页面URL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### タイトル このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### ページURL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### フォント **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### アイキャッチ画像 **アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。 ## コンテンツ ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。 - セクション - テキスト - 画像 - ノート埋め込み ### セクション タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。 ### テキスト テキスト本文を入力します。MFMやカスタム絵文字を使用できます。 ### 画像 画像を表示します。ドライブより画像を設定します。 ### ノート埋め込み ノート ID を入れる事で、そのノートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。 ================================================ FILE: content/cn/docs/2.for-users/3.features/plugin.md ================================================ # 插件 Misskey Web 具备插件功能,用户可以借此扩展 Misskey Web 的功能。 关于插件的创建方法,请参阅[此文档](../../for-developers/plugin/create-plugin)。 ================================================ FILE: content/cn/docs/2.for-users/3.features/poll.md ================================================ # 投票 投票是一项可以轻松听取他人意见的功能。 ## 将投票添加到笔记中 投票可以通过附加在[笔记](/docs/for-users/features/note)中的形式发布。要将投票添加到笔记中,请点击投稿表单下部的“投票”按钮。 ## 增加选项 一个投票最多可以创建10个选项。通过点击“添加”按钮,可以增加新的选项输入框。 如果添加了过多的输入框,可以点击输入框旁的 ☓ 按钮将其删除。 :::warning 如果任何一个选项输入框为空,则无法发布附带了该投票的笔记。 ::: ## 允许多选 打开“允许多选”开关后,参与投票的用户就可以为多个选项投票。 ## 设置投票截止时间 可以为投票设置截止时间,可以通过指定具体日期时间,或指定时长来设置。 要进行设置,请在“截止时间”栏中点击“指定日期时间”或“指定时长”。 若要取消已设置的截止时间,请在“截止时间”栏中选择“无期限”。 ## 为投票投票 当带有投票的笔记出现在时间线上时,就来试着投个票吧。 要为投票投票,请点击相应的选项。如果发布投票的用户未设置为允许多选,投票后将立即显示投票结果。 如果发布投票的用户设置了允许多选,您也可以为其他选项投票。这种情况下,结果不会自动显示。 无论是否允许多选,如果结果没有自动显示,或者您想在投票前查看结果,都可以点击选项下方的“查看结果”来显示投票结果。 在查看未投票的投票结果后,若想再次隐藏结果,请点击“去投票”。 :::tip 即使处于显示结果的状态,您也依然可以为未参与的投票进行投票。 ::: 投票后,您所投票的选项会显示一个 ✔ 标记。 ================================================ FILE: content/cn/docs/2.for-users/3.features/reaction.md ================================================ # 反应 这是一项可以通过添加表情符号,轻松向他人笔记传达您反应的功能。 在 Misskey Web 中进行反应时,请点击笔记上的 + 图标以显示选择器,然后选择一个表情符号。 反应也可以使用[自定义表情符号](./custom-emoji.md)。 ## 自定义反应选择器 在 Misskey Web 中,您可以根据自己的喜好自定义选择器中显示的表情符号。 该设置可在“设置” > “反应”中进行。 ## 关于对远程帖子的反应 由于反应是 Misskey 的原创功能,因此除非远程服务器也是 Misskey,否则在大多数情况下,该活动会以“点赞(Like)”的形式发送。通常,“点赞”会被实现为“收藏”功能。 ## 关于来自远程的反应 当从远程服务器接收到“点赞”活动时,Misskey 会将其解读为“❤”反应。 ## 查看自己的反应列表 在 Misskey Web 中,您可以通过打开个人主页的“反应”标签页,查看自己进行过的所有反应列表。 您也可以在设置中,将此反应列表设为公开。 ## 接受反应的类型 在发布笔记时,您可以限制该笔记所接受的反应类型。 - 全部:允许所有反应 - **全部(远程仅点赞)**:允许来自自己服务器的所有反应,但来自其他服务器的所有反应都将作为点赞(❤)被接受 - **仅非敏感**:允许所有反应,但来自自己服务器的反应将无法使用被标记为“敏感”的自定义表情符号 - **仅非敏感(远程仅点赞)**:来自自己服务器的反应将无法使用被标记为“敏感”的自定义表情符号,且来自其他服务器的所有反应都将作为点赞(❤)被接受 - **仅点赞**:无法进行点赞(❤)以外的反应 请注意,此处指定的反应接受规则仅在您自己的服务器上有效。例如,如果一篇笔记的反应接受规则被设置为“仅点赞”,那么在其他服务器上查看时,该笔记上可能仍然带有表情符号反应。 ================================================ FILE: content/cn/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/share-form.md ================================================ # 共有フォーム Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## クエリパラメータ :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ------- | ---------------------------------------------------------------------------- | | `title` | タイトル。本文の先頭に[ … ]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 | 名前 | 説明 | | ---------- | ----------------------------- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ----------- | ------------------------------- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | --------- | -------------------------------------- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 \ こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/silence.md ================================================ # 禁言 禁言 (Silence)是您的账户状态之一。 如果您的帐户进入禁言状态,您将无法将您的笔记设为公开。 首页、关注和私信仍然可用,因此即使您被禁言,您的关注者或直接访问您的个人资料页面,仍然可以查看您的帖子,但您的帖子不会发送至 GTL(联合时间线)或 LTL(本地时间线)。 账户的禁言状态由服务器管理员更改 ================================================ FILE: content/cn/docs/2.for-users/3.features/theme.md ================================================ # 主题 通过主题设置,自定义 Misskey 客户端界面风格。 ## 主题设置 设置 > 主题(x-mi-web://settings/theme) ## 创作主题 主题代码为JSON5格式的主题对象,其结构示例如下。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... 主题的唯一ID。推荐使用UUID。 - `name` ... 主题名称 - `author` ... 主题作者 - `desc` ... 主题描述(可选) - `base` ... 明亮主题、深色主题 - 将`light`设置为明亮主题,`dark`设置为深色主题。 - 主题将继承此处设置的基础主题。 - `props` ... 主题样式定义。下面将说明。 ### 主题样式定义 `props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[\\_light.json5][_light.json5]で、`dark`なら[\\_dark.json5][_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### 值字段语法 - 十六进制颜色值 - 例: `#00ff00` - `rgb(r, g, b)`格式颜色值 - 例: `rgb(0, 255, 0)` - `rgba(r, g, b, a)`格式颜色值(含透明度) - 例: `rgba(0, 255, 0, 0.5)` - 引用其他键值 - `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - 例: `@panel` - 定数(後述)の参照 - `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - 例: `$main` - 関数(後述) - `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/cn/docs/2.for-users/3.features/thread-mute.md ================================================ # スレッドミュート :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/cn/docs/2.for-users/3.features/timeline.md ================================================ # タイムライン タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## 比較
ソース 公開範囲 タイムライン
ホーム ローカル ソーシャル グローバル
ローカル(フォロー) 公開
ホーム
フォロワー
リモート(フォロー) 公開
ホーム
フォロワー
ローカル(未フォロー) 公開
ホーム
フォロワー
リモート(未フォロー) 公開
================================================ FILE: content/cn/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow 自分が誰かをフォローした際に発生します。 ### followed 自分が誰かからフォローされた際に発生します。 ### unfollow 自分が誰かをフォロー解除した際に発生します。 ### note 自分がノートを投稿した際に発生します。 ### reply 自分のノートに返信された際に発生します。 ### renote 自分のノートがRenoteされた際に発生します。 ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/cn/docs/2.for-users/3.features/widgets.md ================================================ # ウィジェット ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## 利用可能なウィジェット一覧 - プロフィール - サーバー情報 - 付箋 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するッフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/cn/docs/2.for-users/3.features/word-mute.md ================================================ # 屏蔽关键词 ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 词屏蔽可以在[设置 > 隐藏与屏蔽](x-mi-web://settings/mute-block)中进行配置。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/cn/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '当出现问题时,请首先查看这里。' --- # 疑难解答 :::tip 另请参阅 [常见问题解答](./faq.md) ::: 当出现问题时,请先查看此处。 如果您没有看到任何项目,或者您尝试了这些步骤但问题仍然存在,请联系您的服务器管理员。请 [提交bug](../../about-misskey/#加入讨论)。 ## 客户端无法启动 在大多数情况下,由于您的浏览器或操作系统版本过时。 请将您的浏览器和操作系统版本更新到最新版本,然后重试。 这种情况很少见,如果它仍然没有启动,可能是由于缓存。清除浏览器的缓存,然后重试。 ## 无法加载该页面 如果客户端已启动,但您收到无法加载页面的错误,请检查网络是否有问题。此外,请检查服务器是否已关闭。 这种情况很少见,但可能是由缓存引起的。清除浏览器的缓存,然后重试。 如果仍有问题,请与服务器管理员联系,因为这可能是服务器问题。 ## 客户端加载慢 检查您的网络运营商是否有中断和计划维护,检查您的网络速度和网络设置,检查服务器端是否有任何故障或维护,然后尝试或检查以下设置: 1. 设置 Misskey Web 菜单 从菜单中打开 “设置”,打开「常规设置」,然后尝试以下设置: - 启用**外观**中的「减少UI动画」 - 禁用**外观**中的「对话框使用模糊效果」 - 启用**外观**中的「使用系统默认字体」 - 将**外观**中的「表情符号的样式」改为**原生** 请尝试以下设置,但会使某些 Misskey 功能不起作用。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2. Web 浏览器设置 - 在 Web 浏览器的设置中启用**硬件加速** - 检查 Web 浏览器的附加组件和扩展设置或关闭其功能 - 检查 Web 浏览器的其他设置 3.その他 - 检查 PC 或智能手机的系统设置 ## Misskey Web 的 UI 显示有误(例如背景是透明的) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 清除 “client's” 缓存。不要清除 “browser” 缓存。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey Web UI 上有未翻译的部分。 在大多数情况下,这不是故障,因为这是由于缺乏对 Misskey Web 的 UI 的及时翻译。在翻译完成之前,我很抱歉,但请耐心等待。 如果您有兴趣[参与翻译 Misskey](../../about-misskey/#翻译文本),那再好不过了。 ================================================ FILE: content/cn/docs/2.for-users/4.resources/_dir.yml ================================================ title: "其它资源" description: "介绍非功能知识和如何处理问题" ================================================ FILE: content/cn/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/cn/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/cn/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskeyに関する用語集です。' --- # 用語集 Misskeyに関する用語集です。 ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー todo ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/cn/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hubについて Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。 「Misskeyの全てがここにある」を目指しています。 Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub) :::tip Misskey HubはNuxtを使ってビルドされた静的サイトです。 ::: ## Misskey Hubに貢献する ドキュメントの追加や、翻訳など歓迎です。 ================================================ FILE: content/cn/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/cn/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/cn/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/cn/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/cn/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/cn/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/cn/docs/2.for-users/_dir.yml ================================================ title: "面向 Misskey 的用户" ================================================ FILE: content/cn/docs/3.for-admin/_dir.yml ================================================ title: "面向服务器管理员" description: "提供有关如何创建和运行服务器相关的信息。" ================================================ FILE: content/cn/docs/3.for-admin/features/1.index.md ================================================ --- description: "为服务器管理员提供的功能说明。" --- # 服务器的功能 Misskey 提供一系列的功能來帮助您运行自己的服务器。 ================================================ FILE: content/cn/docs/3.for-admin/features/abuse-report.md ================================================ # 举报 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/cn/docs/3.for-admin/features/announcement.md ================================================ # 公告 公告是 Misskey 提供的服务器功能之一。 通过公告功能,用户可以发布服务器范围内的公告,也可以从服务器发送信息给单一用户。 :::warning 大量的活动通知会增加用户(尤其是新用户)的确认过程,并且会降低用户体验。在这种情况下,您可以考虑以下选择: - 新增公告时启用【仅限现有的用户】选项 - 新增公告时启用【不发送通知】选项 - 将已到期的公告封存 ::: ## 展示样式 你可以选择下列类型的公告显示格式 - 公告将发布在公告列表页面。 - **横幅**… 除了出现在公告列表页面外,它们还会以横幅的形式展示在客户端界面的顶部。 - **对话框**… 除了展示在公告清单页面外,它还会在客户端启动时以对话框的形式展示。 - 同时存在 2 个或以上的对话框公告极有可能对用户体验产生负面的影响,建议谨慎使用。 ## 新增公告 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/cn/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/cn/docs/3.for-admin/features/federation.md ================================================ # 联合模式 Misskey 作为分布式平台,默认支持通过 ActivityPub 协议实现的全部服务器联合,但可以根据服务器的运营方针,可以选择对联合进行限制或者完全禁用联合功能。 :::tip 服务器联合默认已启用,因此通常(在使用联合情况下)无需进行配置。 ::: ## 设置方法 通过[控制面板 > 常规设置](x-mi-web://admin/settings)中的「联合」进行设置。 ### 全部 与所有服务器(不包括被屏蔽的服务器等)联合。默认设置。 ### 指定主机名 仅与特定服务器进行联合(白名单)。在“允许联合的服务器”中,输入允许联合的服务器的域名,以换行分隔。 ### 无 不与其他服务器进行联合。部分联合相关的设置画面或项目将被省略。 ================================================ FILE: content/cn/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTT 是 Misskey 提供的服务器功能之一。 启用后可以显著提高检索不同时间线时的性能,并减少对数据库的负荷。主要依赖缓存,会导致 Redis 的内存占用增加。如果你的服务器可用内存不足或运行不稳定,请及时停用它。 你可以在 [控制面板 -> 性能] (x-mi-web://admin/performance)选项里面设置。 ## 回退到数据库 - 如果启用,将在时间线在未被 Redis 缓存命中的时候,将会进行回退处理,向数据库发出额外的查询请求来读取时间线。 - 停用后可以通过不执行回退操作进一步减少服务器数据库查询压力,但会限制可检索的时间线范围。 ## 时间轴 FTT 兼容性 - 首页时间线 - 本地时间线 - 社交时间线 - 用户列表时间线 ================================================ FILE: content/cn/docs/3.for-admin/features/managing-emojis.md ================================================ # 管理自定义表情符号 :::warning 该文件正在施工注意有可能包含过时信息 ::: 管理员和具有自定义表情符号管理权限的角色用户可以从设置中访问自定义表情符号页面的子菜单进行管理。默认情况下会显示当前本地安装的表情符号列表。刚开始这个列表是空的,但可以通过多种方式添加自定义表情符号。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 导入单个的表情符号 カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 表情符号可以通过勾选搜索字段下方的框来进行批量编辑。 启用此功能后,点击表情符号将不会打开编辑对话框,而是直接选择该表情符号。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/cn/docs/3.for-admin/features/role.md ================================================ # 角色 角色是可以分配给用户的属性,允许您显示徽章并通过策略设置调整用户的权限。 可以手动或根据指定条件自动为用户分配角色。 也可以为一个用户分配多个角色。 ## 基本角色 您可以通过配置基本角色来设置默认适用于所有用户的策略。 基本角色可以在控制面板下的「角色 → 基本角色」下進行设定。 ## 指派的类型 指派方式可选择手动或条件指派。 - **手动**... 手动分配和取消指派使用者。(手动角色) - 还可以为角色设定指派的期限。 - **有条件的** ... 您可以为角色设定条件,满足条件的使用者将会自动包含在内。(条件角色) :::warning 与手动角色相比,条件角色有以下限制: - 无法手动指派或是取消指派。 - 无法检索制定条件角色中包含的使用者清单。 ::: ## 权限 您可以为角色选择以下基本权限: - **普通用户** ... 没有特殊权限。 - **监察员** 可以执行基本的审核操作 - **管理员**... 可以修改所有服务器设定。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/cn/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/cn/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskey 安装和维护" description: "提供了如何安装 Misskey 的信息,并帮助您进行后续维护。" ================================================ FILE: content/cn/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: '有关自行搭建 Missky 服务器的相关指南。' --- # 搭建 Misskey 服务器 如果你不愿意使用 Misskey 的公共服务器,可以选择自行搭建。服务器搭建的方法有以下几种,你可以选择用你喜欢的方式来搭建服务器,点击下面的链接以查看详细的方法。 :::danger 请注意,一旦你准备好的域名或主机名在 Misskey 服务器上投入使用,请不要更改它!否则将会造成联邦宇宙的混乱。 ::: :::warning 如果您修改了 Misskey 的源代码(包含 Fork),由于授权的因素,您会有义务公开修改的部分代码。有关详细信息,请参阅 [此处](/docs/for-admin/install/resources/forking/)。 ::: ## 在 Xserver VPS 上搭建服务器(仅限日本用户) [Xserver VPS](https://vps.xserver.ne.jp/) 提供了标准的 Misskey 服务器软件镜像,可以帮助你轻松地搭建 Misskey 服务器。 详细信息请参阅 [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) 详情请查阅[这里](https://sns.xserver.ne.jp/misskey.php) ## 安装方法一览 ================================================ FILE: content/cn/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: '利用第三方提供的服务,可以简单地创建Misskey实例。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/cn/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey 安装 shell 脚本 v3.0.0 我们现在有一个 shell 脚本来轻松安装 Misskey! 只需几个步骤,您就可以轻松地在您的 Ubuntu 服务器上安装 Misskey (v12)! 还有一个更新脚本 [单击此处查看 v12](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\ [**英文版**](./README.en.md) ## 准备工作 1. 域名 2. Ubuntu系统服务器 3. Cloudflare 帐户(推荐) :::danger 请勿使用已启动的服务器的域主机名重新创建数据库! ::: 您可以尝试使用Let's Encrypt进行身份验证的次数很少,因此在开始安装之前,请仔细检查服务器的网络和DNS设置 ## Cloudflare 配置 如果您使用的是 Cloudflare,请确保在开始安装之前设置您的 Cloudflare 域名 \ 应用名称服务器最多可能需要72个小时 另外,在配置 nginx 和 Cloudflare 时,在 Cloudflare 设置页面上 - 设置 DNS - 在 SSL/TLS 设置中,将加密模式设置为“完全” ## 操作 ### 1. 链接SSH服务器终端 通过 SSH 连接到服务器 \ (如果您是通过桌面端服务器,请打开 shell进行链接) ### 2. 构建所需环境 将所有软件包更新并重新启动 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. 开始安装 重新连接您的 SSH 并开始安装 Misskey 在安装之前强烈建议阅读[Tips](#tips) ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` 将 example.com 替换为您自己的域名 ### 4. 更新服务 官方提供了一个用于更新的脚本 アップデートスクリプトは、環境のアップデートは行いません。\ CHANGELOG(日语)以及[GitHub 上的发布列表(英语)](https://github.com/joinmisskey/bash-install/releases)请参阅以执行适当的迁移操作 首先,下载更新脚本 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` 当您需要进行更新更新时,请执行该脚本 ```sh sudo bash update.sh ``` - 在 systemd 环境内,您可以选择性地更新和重新启动系统`-r` - 在 Docker 环境中,您可以在参数中指定更新的仓库名称:标签名称 ## 已验证可部署的环境 ### Oracle Cloud Infrastructure 本程序在Oracle Cloud Infrastructure的Always Free服务提供的以下两种计算规格中均可正常运行: - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] 请确保使用iptables进行配置。 ## 欢迎提交问题&拉取请求 如果在上述环境中无法运行,可能存在错误。请在记录安装时指定的条件后,通过 GitHub 的 Issue 功能告知我们。 虽然我们可能难以提供上述环境以外的支持,但如果您详细说明情况,我们将尽力协助解决。 欢迎提出功能提案。 # 小贴士 关于安装方式的选择方法和规格等。 ## Systemd 还是 Docker? 从 v1 开始,安装方法支持选择 systemd 和 Docker。 即使使用 Docker,也仅通过 Docker 运行 Misskey,而 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を使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 \ host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 \ アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 \ 主にディレクトリを覚えておくのに使用します。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 \ コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 \ (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 \ たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 \ 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/cn/docs/3.for-admin/install/guides/docker.md ================================================ --- description: '本教程说明了使用Docker安装Misskey的方法。' --- # 使用 Docker Compose 构建 Misskey 这份指南将介绍如何使用 Docker Compose 设置 Misskey。 :::danger 一旦完成设置请勿更改使用的服务器域名和主机名,不要重新创建数据库! ::: :::tip{label='前提条件'} - 已安装了 Docker 和 Docker Compose。 ::: ## 拉取docker库 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 设置 使用以下命令,拉取各种配置文件的示例文件。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` 请按照文件中的说明根据自身情况编辑 default.yml 和 docker.env 文件内容。 同时再次根据需要编辑 docker-compose.yml 。(比如你要更换端口) ## 构建镜像与初始化数据库 使用以下命令进行 Misskey 的构建和数据库初始化。这可能需要一些时间。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 运行Misskey 辛苦了。您可以使用以下命令启动 Misskey。 ```sh sudo docker compose up -d ``` 大功告成,祝武运昌盛! GLHF✨ ## 更新Misskey的方法 :::warning 在更新时,请务必确认Misskey[更新通知](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md),以提前了解变更内容以及可能需要进行的额外工作(通常情况下并不需要)。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` 由于更新内容和数据库规模的不同,处理时间可能会有所不同。 ## 如何执行cli命令 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/cn/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 [TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/cn/docs/3.for-admin/install/guides/manual.md ================================================ --- description: '本指南介绍如何安裝和配置 Misskey。' --- # 手动搭建 Misskey 本指南介绍如何安裝和配置 Misskey。 :::danger 请勿使用已启动的服务器的域主机名重新创建数据库! ::: :::tip{label='前提条件'} #### 必须安装并配置以下软件: - **[Node.js](https://nodejs.org/en/)** (20.4.x以上) - **[PostgreSQL](https://www.postgresql.org/)** (15以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** 如果您使用 Debian/Ubuntu,最好安装 `build-essential` 软件包。 ::: ## 创建用户 Misskey 不能以 root 身份执行,因此建议创建一个用户。 Debian: ```sh adduser --disabled-password --disabled-login misskey ``` ## 安装 Misskey ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 设置 请复制范例中的 `.config/example.yml`,并重命名为 `default.yml`。 ```sh cp .config/example.yml .config/default.yml ``` 请根据文件中的提示编辑 `default.yml`。 ## 构建镜像与初始化数据库 使用以下命令进行 Misskey 的构建和数据库初始化。这可能需要一些时间。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 运行 您做到了!您可以使用以下命令启动 Misskey。 ```sh NODE_ENV=production pnpm run start ``` 大功告成,祝武运昌盛! GLHF✨ ::::g-details{summary="使用 systemd 进行管理"} 创建 systemd 配置文件 `/etc/systemd/system/misskey.service` 在编辑器中打开它,粘贴以下代码并保存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning 如果需要在 CentOS 中使用低于 1024 的端口号使用 Misskey, 必须修改成 `ExecStart=/usr/bin/sudo /usr/bin/npm start` ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` 搭建 Misskey 服务器 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## 更新Misskey的方法 :::warning 在更新时,请务必确认Misskey[更新通知](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md),以提前了解变更内容以及可能需要进行的额外工作(通常情况下并不需要)。 ::: 拉取 master,安裝、构建和迁移数据库: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` 由于更新内容和数据库规模的不同,处理时间可能会有所不同。 更新完成后,請重启 Misskey 服务。 ```sh sudo systemctl restart misskey ``` :::tip 如果您在构建或启动过程中遇到错误,请尝试以下命令: - `pnpm run clean` 或 `pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/cn/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https\://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. https\://dash.cloudflare.com/profile/api-tokens にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar\@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/cn/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskey 维护和故障排除" description: "定期维护对于 Misskey 服务器的运行至关重要。我们将为您提供有用的信息,并在您遇到困难时采取行动。" ================================================ FILE: content/cn/docs/3.for-admin/install/resources/cdn.md ================================================ # CDN设定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip 更新Misskey时不需要清理缓存 ::: ================================================ FILE: content/cn/docs/3.for-admin/install/resources/forking.md ================================================ # 关于分支和定制 Misskey 的说明 Misskey 采用的 GNU Affero General Public License v3.0(AGPL-3.0)要求,对 Misskey 源代码的任何修改都必须公开。 Misskey v2024.2.0及更高版本实现了简化此许可证合规性的功能。在这里,我们将向您展示如何设置它。 :::warning 当然,即使您基于早期版本,您也必须采取措施来符合许可证。 ::: ## 如果你继续使用Misskey 如果您只使用内置功能而不对Misskey的代码库进行任何更改,那么您不需要做任何特别的事情。 ## 如果您对Misskey代码进行了一些更改,然后在GitHub上发布更改后的版本。 如果您想对Misskey的代码进行任何更改,并在GitHub或其他地方发布更改后的版本,请确保以下几点: - 发布存储库(不限制访问) 好吧,让我们快速设置一下。 1. 构建修改过的Misskey版本,并在生产环境中运行。 2. 在使用Admin帐户登录的情况下,打开[管理画面](x-mi-web://admin/settings) 控制面板。 3. 在“存储库URL”字段中,输入Misskey存储库的URL。 ## 如果你对Misskey代码做了一些更改,但你不能在GitHub上发布修改后的版本 即使在这种情况下,您仍然需要确保源代码可以直接从Misskey的接口访问。Misskey v2024.2.0和更高版本实现了在构建时自动将源代码打包到归档文件中的功能。 :::tip 请注意,仅在被要求时披露源代码的做法被认为不足以履行许可证。\*\* 如果您不使用Misskey内置的源代码提供功能,请确保您可以通过Misskey Web的接口直接访问当前运行的Misskey版本的源代码链接。 ::: 好吧,让我们快速设置一下。 1. 打开Misskey的配置文件(默认为`.config/default.yml`) 2. 将 `publishTarballInsteadOfProvideRepositoryUrl` 设置为`true`(只需删除配置文件中指定的注释部分即可)。 3. 构建Misskey(这将生成源代码tarball)。 4. 打开生成的归档文件,并检查令牌等敏感信息是否包含在分发的源代码中。\*\* 5. 如果其中包含敏感信息,请确保编辑`scripts/tarball.mjs`以排除这些信息 :::warning 源代码的归档文件生成是在构建时完成的。如果您对`scripts/tarball.mjs`进行了更改,请确保再次构建 ::: ================================================ FILE: content/cn/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/cn/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # 如何使用 GitHub Actions推送到 Docker Hub [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に\ GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 GitHub Action 描述了一个将推送到 Docker Hub 的工作流
在原始存储库中,当发布时 `latest`,< release name > 标签将被推送到 Docker Hub
* Docker Hub 可能有一个类似 < 分支名称> 的标签,但它不是自动推送的。 在 Fork 目标上运行此工作流将失败。 下面,我们将描述如何让 Fork 目标推送到您的 Docker Hub 存储库中。 ## 如何配置为推送到您的 Docker Hub 存储库。 1. 在 Docker Hub 中创建一个仓库 2. 将工作流文件中的 [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) 替换为您创建的存储库 3. 在 GitHub 上创建加密的 secret \ 您需要创建 `DOCKER_USERNAME` 和 `DOCKER_PASSWORD`,分别是 Docker Hub 用户和密码。 ## push的方法 通过上述设置,它将在发布时自动推送到 Docker Hub \ 具体来说,当您使用 GitHub 发布功能发布时 ,`latest`、`< 版本名称>` 将被推送到 Docker Hub 您也可以在 GitHub 上手动推送 \ 要执行此操作,请从 Actions => Publish Docker image => Run workflow 中选择分支来运行工作流。 \ 但是,在这种情况下创建的标签将是`` ================================================ FILE: content/cn/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/cn/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/cn/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "关于 审查 的有关资料" description: "提供了一些有用的信息来帮助实际运行服务器。" ================================================ FILE: content/cn/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # 禁用 LTL/STL/GTL Misskey 允许您禁用 LTL/STL/GTL。如果需要启用/禁用,请在实例控制面板中进行设置。 LTL和STL可以让用户查看服务器上所有用户的帖子,因此对于新用户来说,无需寻找感兴趣的用户,更容易发现他们感兴趣的帖子。然而,这也有一些缺点,比如可能会减少用户对关注功能的使用,或者让用户更容易看到不适当的内容,甚至可能因为类似聊天室的氛围而产生内圈感,反而让新用户更难加入。 :::warning 禁用后可能会让用户感到困惑,并且在短期内可能会导致用户数量减少。因此,建议在禁用之前仔慎重虑其影响,并提前进行说明,以便让用户有足够的时间适应。 ::: 此外,管理员/版主不受这些时间线禁用状态的影响,他们仍然可以继续使用这些时间线。 ================================================ FILE: content/cn/docs/4.for-developers/_dir.yml ================================================ title: "面向开发者" description: "为 插件/Play 开发人员 和 使用 API 的外部应用程序 开发人员 提供的资源。" ================================================ FILE: content/cn/docs/4.for-developers/aiscript.md ================================================ # AiScript是Misskey所使用的脚本语言。 - [插件](./plugin/create-plugin/) - [小工具](/docs/for-users/features/widgets/) - 按钮 - AiScript 控制台 - AiScript App - [Misskey Play](./plugin/create-play/) - AiScript 控制台 :::tip AiScript的实现是一个独立于Misskey的存储库,并且[以开源形式发布](https://github.com/aiscript-dev/aiscript)。 ::: ## 用法 可以使用标准AiScript语法和内置函数。 :::tip 文件可在[此处查阅](https://aiscript-dev.github.io/) 可用的AiScript版本可能会因Misskey体版本而异。要检查版本,请在Scratchpad上运行`<: Core:v`。 ::: 除此之外,还提供了三组专用于Misskey的内置常量和函数。 ### 前缀: `Mk:` 它是一组常数函数,可以在 Misskey 中的所有 AiScript 环境中使用。 有关更多信息,请参见[AiScript Misskey扩展API参考](./plugin/plugin-api-reference/)中标有`Mk:`的部分。 ### 插件 API 前缀: `Plugin:` [Plugin](./plugin/)一起使用的固定函数组。 有关更多信息,请参见[AiScript Misskey扩展API参考](./plugin/plugin-api-reference/)中带有`Plugin:`的部分。 ### 前缀: `Ui:`\ 可以在[小工具](/docs/for-users/features/widgets/)(AiScript App)、Misskey Play、Scratchpad 内使用。 文档尚未完成,但是网上有志愿者发布的解说笔记。 ### 标准 I/O 在AiScript标准中定义的“readline”和“print”函数(以及“<:”语法)的内部实现是由Misskey提供的。 #### readline(message) `message`: `str`\ 返回值: `str`\ 它可以在Misskey中的所有AiScript环境中使用。 \ 显示弹出窗口,提示您输入字符串。 #### print(message) `message`: `any`\ 返回值: `null`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScript控制台),可与Scratchpad一起使用。 \ 将字符串打印到控制台。 \ `<:`也做同样的工作。 ================================================ FILE: content/cn/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\\ ::: ================================================ FILE: content/cn/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。在它可用之前,可以通过访问所有Misskey服务器上的[`/api-doc` 查看接口文档](x-mi-web://api-doc)或者查阅 [Misskey 源代码](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints) また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/cn/docs/4.for-developers/api/libraries.md ================================================ --- description: '与 Misskey API 相关的 仓库列表' --- # 与 Misskey API 相关的 仓库列表 ## - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## - ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## - - - ## - ## - ## - ## - ================================================ FILE: content/cn/docs/4.for-developers/api/permission.md ================================================ --- description: '应用程序需要的权限' --- # 权限列表 :::tip 此页面是从[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)自动生成的,因此文档或翻译可能不完整。 ::: ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # 频道列表 ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 这是一个提供基本信息的频道。 ## 参数 无 ## 事件 ### `notification` 收到通知时触发。 ### `mention` 当有人提到你时触发。 ### `reply` 收到回复时触发。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/cn/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/cn/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/cn/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/cn/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/cn/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/cn/docs/4.for-developers/bot/1.index.md ================================================ # 创建机器人(Bot) 您可以使用[Misskey API](/docs/for-developers/api/)来开发Bot - [syuilo/ai](https://github.com/syuilo/ai) ... 由 Typescript 编写的 Node.js Bot 创建机器人时,我们强烈建议您在个人资料设置中启用Bot机器人标志。 ## 资源 - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/cn/docs/4.for-developers/plugin/_dir.yml ================================================ title: "创建 插件/Play" description: "创建插件/Play的参考示例现已发布。" ================================================ FILE: content/cn/docs/4.for-developers/plugin/create-play.md ================================================ # 创建 Play Play 是一种使用 AiScript 组装独特 Ui 的功能,用户可以创建迷你应用程序或游戏。制作的 Play 可以在 Misskey 服务器上公开,任何人都可以玩你制作的 Play。 ## Play 可以用 AiScript 创建。 ## 应用开发接口(API) Misskey Web 为插件公开了API,您可以通过使用这些 API 来扩展客户端的功能。 您可以在 [AiScript Misskey扩展API](./plugin-api-reference/) 参考。 ================================================ FILE: content/cn/docs/4.for-developers/plugin/create-plugin.md ================================================ # 插件开发 Misskey Web 客户端的插件功能将允许您扩展客户端并添加各种功能。\ 本文档介绍如何创建插件 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## 插件是指使用 AiScript 编写的脚本。 ## 元数据 插件必须使用AiScript的元数据嵌入功能将插件的元数据定义为默认值。示例: ```AiScript /// @ 0.12.4 ### { name: "插件名" version: "4.2.1" author: "作者" description: "描述" } ``` 元数据属性(metadata property): ### 插件名称 ### 插件作者 ### 插件版本具体规范详见:https://semver.org/lang/zh-CN/ ### 插件说明 ### 插件要求的权限。需要在发送Misskey API请求时使用。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### 插件配置文件。键值Key支持下列属性: #### 设置值类型选择一项:string number boolean #### 设置 向用户显示的名称 #### 设置描述 #### 默认值 ## Misskey Web 为插件公开了API,您可以通过使用这些 API 来扩展客户端的功能。 您可以在 [AiScript Misskey扩展API](./plugin-api-reference/) 参考。 ## 发布插件 在v2023.11.0或更高版本中,只需单击一下即可直接从您的网站安装插件。 如果您提供插件安装功能,则需要在您的网站上实现此 API。详细见 [发布你的网站](../publish-on-your-website.md) 。 ================================================ FILE: content/cn/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey 扩展 API 参考 在这里将介绍有关 Misskey 独自扩展的 AiScript API。 :::tip 标准的AiScript API可以在 [这里](https://aiscript-dev.github.io/guides/get-started.html) 找到 ::: ## 全局常量 ### `USER_ID` 当前用户的 ID ### `USER_NAME` 当前用户的姓名 ### `USER_USERNAME` 当前用户的用户名(`@`之后的部分。例如: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` 自定义表情符号的数组。数组内容为如下对象 ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` Misskey Web 当前设置的显示语言以 RFC4646 兼容的格式(如`zh-CN`)表示 ### `SERVER_URL` 当前服务器的 URL。例如:`https://www.example.com` ## 全局函数 ### `Mk:dialog(title, text, type)` 显示一个普通对话框。type 可以设置为以下类型。\ `info` `success` `warning` `error` `question`\ 默认为 `info` 。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 显示含确认的对话框。type可以为以下类型:\ `info` `success` `warning` `error` `question`\ 默认为 `question` 。\ 如果用户选择“OK”,则返回true`;如果用户选择“Cancel”,则返回false`。 ```AiScript let response = Mk:confirm( '是否要继续操作?' '此操作不可反悔,你确定?!' 'warning' ) if (response) { // 按下OK } else { // 按下取消 } ``` ### `Mk:api(endpoint, params, token?)` 通过Misskey API发送请求。在第一个参数中传入终端名称,在第二个参数中传入参数对象。 也可以在第三个参数中添加 token。使用插件时,当元数据块内指定了 `permissions` 时,如果未指定第三个参数,则使用此 `permissions` 所带的 token。 :::tip permission 一览请看[这里](/docs/for-developers/api/permission/) ::: ```AiScript ### { name: "插件名", version: "4.2.1", author: "作者名", description: "说明信息", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 使用任何名称保留任何值。被保存的值在 AiScript 上下文结束后仍会保留,且可以通过 Mk:load 读取。 ### `Mk:load(key)` 读取使用 Mk:save 保存的指定名称的值。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## 插件专用 ### `Plugin:register_post_form_action(title, fn)` 将操作添加到发布表单。第一个参数是操作名称,第二个参数是选择操作时的回调函数。\ 回调函数在第一个参数中传递帖子表单对象中的`text`和`cw`,在第二个参数中传递用于重写它们的函数。 ```AiScript Plugin:register_post_form_action('菜单中显示的项目名称', @(note, rewrite) { // 对笔记进行一些更改。 rewrite('text', `{note.text}{Str:lf}#标签`) }) ``` ### `Plugin:register_note_action(title, fn)` 将项目添加到帖子菜单。在第一个参数中传递字段名称,在第二个参数中传递字段被选中时的回调函数。\ 回调函数将目标注释对象传递给第一个参数。 ```AiScript Plugin:register_note_action('菜单中显示的项目名称', @(note) { Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` 将项目添加到用户菜单。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ 回调函数将目标用户对象传递给第一个参数。 ```AiScript Plugin:register_user_action('菜单中显示的项目名称', @(user) { // 利用用户信息做点什么 Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` 重写 UI 中显示的注释信息。\ 回调函数将目标注释对象传递给第一个参数。\ 注释将被回调函数的返回值覆写。\ 如果返回null\`,则隐藏该注释。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // 改写笔记本的内容 note.text = note.text.replace('林檎', '香蕉') // 如果返回null,则隐藏 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` 在提交笔记时覆写笔记信息。\ 回调函数将目标注释对象传递给第一个参数。\ 注释将被回调函数的返回值覆写。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // 改写笔记本的内容 note.text = note.text.replace('林檎', '香蕉') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` 在浏览页面(Page)时更改页面(Page)信息。\ 回调函数将目标Page对象作为第一个参数传递。\ 回调函数的返回值将覆写页面。 ```AiScript Plugin:register_note_post_interruptor(@(page) { // 更改页面的内容(省略) return page }) ``` ### `Plugin:open_url(url)` 在浏览器的新选项卡中打开传递给第一个参数的URL。 ### `Plugin:config` 存储插件设置的对象。该值是通过插件定义的配置中设置的键值来传入的。 ## Play 专用常量 ### `THIS_ID` Play 的 ID ### `THIS_URL` Play 的 URL ## UI 控制函数(可在 Play 和 AiScript App小部件中使用) ### `Ui:root` UI 的 根节点 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` 覆写UI的根元素的语法糖。 ```AiScript ``` ### `Ui:get(id)` 您可以获取带有ID的组件并对其进行操作 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## 组件函数(可在 Play 和 AiScript App小部件中使用) 对于下面的元素,可以在初始化时指定组件的id作为第二个参数,如“Ui:C:xxx(props id)”(在下面的参考中省略了所有内容)。指定的id可以通过'Ui:get(id)'函数取得,可以通过'update'函数直接变更组件的内容(详细内容请参照'Ui:get(id)'的参考)。 ### 应用布局 #### `Ui:C:container` 可格式化的边框(容器),如宽度、颜色等 ```AiScript Ui:C:container({ children: [ // 您希望放入容器中的组件数组 Ui:C:text({text: "A"}) ] align: 'center' // 布局 left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // 字体 serif,sans-serif,monospace borderWidth: 1 // 边框宽度 borderColor: '#f00' // 边框颜色 padding: 1 // 外边距 rounded: false // 圆角 hidden: false // 是否隐藏 }) // 和javascript DOM css语法大致相同 ``` #### `Ui:C:folder` 手风琴(Accordion)元素(用户可以打开和关闭的容器) ```AiScript Ui:C:folder({ children: [ // 要包含在容器中的组件数组 Ui:C:text({text: "A"}) ] title: "タイトル" // 文件夹打开和关闭部分的标题 opened: true // 默认是否打开 }) ``` ### 文本 #### `Ui:C:text` 纯文本 ```AiScript Ui:C:text({ text: "内容" size: 1 // 文字大小 bold: false // 是否加粗 color: '#000' // 色 font: 'monospace' // 字体风格 serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` 富文本 (MFM) ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字大小 bold: false //是否加粗 color: '#000' // 色 font: 'monospace' // 字体风格 serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] 的MFM语法处理程序 <: `{id} clicked` } }) ``` ### 表单 #### `Ui:C:button` 按钮 ```AiScript Ui:C:button({ text: "ボタン" // 按钮上显示的文本 onClick: @() { //点击事件 } primary: false // 要颜色吗? rounded: false // 要圆角吗? disabled: false // 要禁用吗? }) ``` #### `Ui:C:buttons` 按钮(横向) ```AiScript ``` #### `Ui:C:switch` ```AiScript ``` #### `Ui:C:textInput` 单行文本输入 ```AiScript Ui:C:textInput({ onInput: @(text) { // 进入时的事件。更改为第一个参数后的值 } default: "デフォルト" // 缺省值 label: "ラベル" // 输入栏中的文本 caption: "キャプション" / 显示在输入栏下方的辅助文本 }) ``` #### `Ui:C:numberInput` 单行数字输入 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 进入时的事件。更改为第一个参数后的值 } default: "デフォルト" // 缺省值 label: "ラベル" // 输入栏中的文本 caption: "キャプション" / 显示在输入栏下方的辅助文本 }) ``` #### `Ui:C:textarea` 多行文本输入 ```AiScript Ui:C:textarea({ onInput: @(text) { // 进入时的事件。更改为第一个参数后的值 } default: "デフォルト" // 缺省值 label: "ラベル" // 输入栏中的文本 caption: "キャプション" / 显示在输入栏下方的辅助文本 }) ``` #### `Ui:C:select` 从多个值中选择一个格式 ```AiScript Ui:C:select({ items: [ // 选择列表。text是要显示的文本,value是在更改事件中传递的值 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 更改时的事件。将更改为第一个参数后的value } default: "v1" // 缺省值 label: "ラベル" // 输入栏中的文本 caption: "キャプション" // 显示在输入栏下方的辅助文本 }) ``` ### 发布帖子 #### `Ui:C:postForm` 直接在 Play 中嵌入帖子表单 ```AiScript Ui:C:postForm({ form: { cw: "CW 帖子" // 指定CW时的“摘要”文本 text: "投稿内容" // 帖子表单默认字符串 // 以下内容可以在Misskey v2024.5.0或更高版本中指定: visibility: "home" // 默认帖子的发布范围(如果未指定,则为public) localOnly: false // 默认情况下是否无联邦(如果未指定,则为false) } }) ``` #### `Ui:C:postFormButton` 用于调用帖子表单的特殊按钮 ```AiScript Ui:C:postFormButton({ text: "投稿!" // 按钮上显示的文本 primary: false // 你想给它颜色吗? rounded: false // 你想要圆角吗? form: { cw: "CW 帖子" // 指定CW时的“摘要”文本 text: "投稿内容" // 帖子表单默认字符串 // 以下内容可以在Misskey v2024.5.0或更高版本中指定: visibility: "home" // 默认帖子的发布范围(如果未指定,则为public) localOnly: false // 默认情况下是否无联邦(如果未指定,则为false) } }) ``` ================================================ FILE: content/cn/docs/4.for-developers/publish-on-your-website.md ================================================ # 发布插件与主题 在 Misskey v2023.11.0 及更高版本里,可以直接从您的网站内直接安装各种追加资源。特别是对于那些正在制作大量插件和主题的人,或者那些想创建插件分发网站的人来说,这是一个非常有用的功能。 ## 支持外部安装的资源 - [插件](./plugin/create-plugin/) ... - [主题](../for-users/features/theme/) ... ## 运作方式 在安装时,为了防止 Misskey Web 接收到被意外篡改,分发站点和 Misskey 都会计算哈希值,并在 Misskey 中进行对照。 如果哈希值不匹配,则无法安装资源。 ## 实现方式 ### 分发页面端 在「安装」按钮上创建包含以下 URL 的链接 ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: 替换为用户服务器的主机。主机通常允许用户输入。 - `{API_URL}`: 替换为资源分发 API(后面会讲到)的 URL。不能使用相对路径 - `{HASH}`: 将其替换为要分发的资源的 SHA-512 哈希。\*\* 资源中的换行符应统一为LF。\*\* ### 用于资源分发的API端 请从上面 `{API_URL}` 中指定的端点返回以下JSON对象。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 请参阅上面的“支持外部安装的资源”中的代码并输入。 - `data`: 以 \*\* 字符串形式\*\* 输入资源代码 - 在这种情况下,换行符应该是 **LF**。 ================================================ FILE: content/cn/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # 发布日志 Misske的版本更新记录。 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/cn/docs/6.donate.md ================================================ # 为项目捐款 :::tip 如果你想作为一个公司来支持(赞助)项目,请点击[这里。](/docs/become-a-sponsor/) ::: 由于 Miskey 并不面向企业,使用是免费的,因此我们唯一的收入就是各位的捐款。(服务器可能会经由广告获得收入,但这是服务器运营者的收入,而不是直接给开发者的) 捐赠将使我们能够继续开发并为该项目做出贡献。我们接受以下的捐款方式。(请仔细阅读本页的内容后再捐赠) - 连续捐款 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 单次捐款 - (推荐)Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 虚拟货币:`0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazon 愿望单](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 如果是大额捐赠(例如一次性捐款 3 万日元以上),通过 PayPal 等方式将会有高额手续费。请考虑使用 Kyash,又或者联系我来获取银行账户信息。 ::: :::tip 我们准备了以下与金额相对应的回赠。 - 1000 日元以上:所使用的 misskey.io 账户旁增加 mi 徽章 - 3000 日元以上:↑ + 在关于 Misskey 里记载名字 - 10000 日元以上:↑ + 在关于 Misskey 里记载名字和任意头像 - 20000 日元以上: ↑ + [寄送 Misskey ID 卡](/docs/mi-card/) ::: :::warning 不论何种情况(包括由于某些原因无法接受回赠)均无法退款。感谢您的理解。 ::: :::warning **因徽章授予和关于里的记载并非自动进行,所以需要的人请把捐赠信息发送给`@syuilo@misskey.io`提交申请。** (可能会有没看到消息的时候。如果没有回信,请多发几次。另外可能收不到 misskey.io 以外的服务器的提及。实在联系不上的情况下请通过 Misskey Project 的联系方式来联络) ::: 此外服务器的运营者也基本上没有收入。服务器的运营成本也很高,也请考虑向运营者捐款。 虽然与开发没有直接关系,但 Misskey 是一个依赖于服务器的项目,保持服务器运营与开发同样重要。 ================================================ FILE: content/cn/docs/7.become-a-sponsor.md ================================================ # 关于赞助商 :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Misskey项目正在寻找赞助商。 作为赞助商,您可以在Misskey和Misskey Hub上展示您的公司徽标,并获得技术支持。 [请在这里与我们联系以获取更多信息。](/contact/) ================================================ FILE: content/cn/docs/8.mi-card.md ================================================ # Misskey ID 卡 作为支持 Misskey 项目的一项福利,我们将发行一张实体的「Misskey ID 卡」! **Misskey ID 卡是一个序列号和所有者关联的,只属于你的高强度金属卡。** 对沉重金属板进行了精密的加工以显示出高规格。 由 syuilo 精心设计的正反面。请把它当作一辈子的东西来享受吧! 实物视频[在这里](https://www.youtube.com/shorts/AdzzwxEa-WE) (由于光线的原因,它看起来像金色,但实际上它是银色的。) ## プレート仕様 - 大小: 54.0mm x 85.6mm - 重量: 约34g - 材质: 1.0mm厚镜面不锈钢 - 加工:镜面(表面部分)、蚀刻(表面其他部分)、丝印(标识部分)、激光刻印(编号部分) - 设计:由 syuilo 设计,附有序列号、条形码、QR码、小蓝签名刻印 オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(免费) ### 以 3D 形式观看 ::X__Docs__mi-card__InteractiveView :: \*省略了背面的设计。模型并不能精确再现实物。 ## 发放对象 **将向累计支援金额超过 2 万日元的人赠送一张。** :::g-details{summary='2枚以上ご希望の場合'} 如果想要两张以上,每 3 万日元追加一张。 可领取的追加数量是从总支援金额内减去 2 万日元之后除以 3 万日元所得到的数字。 例如,支援金额合计为 5 万日元一共可获得 2 张,8 万日元以上一共 3 张,以此类推。 可以计算一共能获得多少张: ::X__Docs__mi-card__Calculator :: 另外,根据库存状况,可能会出现无法提供所希望的数量的情况。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: 以美金支援的情况,无论何时都以 1 USD = 150 JPY 为基准进行换算。用其它货币进行支援的情况请和我们联系。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 现在由于配送问题,**发放对象仅限于日本国内居住的用户。** :::warning \*\*当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。并不是对各 Misskey 服务器支援的福利。 [在此支援 Misskey Project](/docs/donate/) ::: :::tip 累计金额的计算不分支援方法与期限。 例如,2023 年用 PayPal 支援了 5000 日元,随后在 2024 年通过 Fanbox 支援了 12000 日元,在 Amazon 的心愿单发送了价值 3000 日元的礼物的话,一共有 5000 + 12000 + 3000 = 20000 日元的额度。 ::: ## 申请方法 请使用下面的表单进行申请。(需要 Google 账户) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 使用日本邮政进行配送。**无需配送费** - 发件时物流单号将通过邮件发送。 - 周末也可配送。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。收到货时万一出现了损伤,麻烦请联系日本邮政。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 另外,无法指定配送方法。 ::: ## 注意事项 - 可能会在没有通知的情况下更改样式。 - 无法选择序列号。 - 卡上可能会有轻微的划痕。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 可能会在没有通知的情况下暂停发送或者结束发送。 - 可能会在没有通知的情况下更改发送的基准额度。 - 若有丢失、损坏、被盗的情况无法为您重新寄一份,请慎重保管。 - 请不要转卖或转让。 ================================================ FILE: content/cn/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/de/contact-faq/0.cannot-create-account.md ================================================ --- question: Es kann kein Account erstellt werden --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 Wenn es nicht nach dem obigen Verfahren funktioniert können, oder für Elemente (Originalanpassung durch den Server), die nicht im obigen Verfahren enthalten sind, Fragen zur Registrierung bitte an den Serverbetreiber. (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/de/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: Wir können dich nicht bei deinem Konto anmelden --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 Sollte der Login nicht funktionieren, wende dich an den Administrator deines Servers. そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/de/contact-faq/2.delete-account.md ================================================ --- question: Ich möchte mein Konto schließen --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 Sollte es mit dem Löschen des Account weiterhin Probleme geben, so wende dich bitte an deinen Server-Administrator. (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/de/contact-faq/3.server-wide-content-mod.md ================================================ --- question: Ich habe eine Löschanfrage. --- Bitte beachten Sie, dass das Misskey-Projekt keine Misskey-Server-Dienste anbietet. Daher können wir keine Anfragen über das untenstehende Formular\*\* beantworten.\*\* 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** Die Moderation von Inhalten auf eigenen oder anderen Servern erfolgt gemäß den Regeln des jeweiligen Servers. Du solltest dich daher schützen, indem du den Administrator des Servers kontaktierst, der den Inhalt gesendet hat, oder den betreffenden Benutzer/Server blockieren. ================================================ FILE: content/de/contact-faq/4.copyright-infringement.md ================================================ --- question: Ich habe eine Urheberrechtsverletzung gefunden --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 Wenn es Bedenken hinsichtlich einer Urheberrechtsverletzung auf einem Misskey-Server gibt, wenden Sie sich daher bitte an den Betreiber dieses Servers. (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/de/contact-faq/5.client-not-working.md ================================================ --- question: Misskey funktioniert nicht richtig --- Schau' zuerst in die [Fehlerbehebung](/docs/for-users/resources/troubleshooting/), um Lösungen für häufige Browserprobleme zu finden. Zu den zu überprüfenden Dingen gehören: - \*\*Wurde versucht, benutzerdefinierte CSS oder Plugins zu entfernen? - \*\* Wurde ein erneutes Aus- & Einloggen versucht? - \*\*Sind die aktuellen Browser-Updates installiert? - \*\*Wurde es nach einiger Zeit erneut Versucht? - \*\* Ist die URL richtig? - \*\*Wurde der Cache, sowie Cookies geleert? Wenn das Problem dadurch nicht behoben wird, wende dich zunächst an deinen Serveradministrator. Wenn du augefordert wirst, einen Fehler an das Misskey-Projekt zu melden, melden Sie ihn bitte an die Entwicklungsplattform [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose) statt an das untenstehende Formular. Bitte beachten Sie, dass wir auf Fehlerberichte, die über das unten stehende Anfrageformular übermittelt werden, nicht sofort antworten können.Poste es auf [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose). ================================================ FILE: content/de/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/de/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskey Dokumentation' --- # Über Misskey Misskey ist ein Open-Source-Projekt für eine dezentrale Microblogging-Plattform. Die Entwicklung begann 2014 in Japan durch syuilo. Es verfügt über zahlreiche Funktionen wie Drive und Reactions sowie eine äußerst anpassbare Benutzeroberfläche. ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## Geschichte Als der Dienst entwickelt wurde, war er in erster Linie ein Schwarzes Brett. Als jedoch eine Timeline hinzugefügt wurde, bei der die Nutzer chronoligische Kurznachrichten posten konnten, wurde diese Funktion immer beliebter und es entwickelte sich allmählich zum Hauptbestandteil des Dienstes. Ursprünglich war das Projekt nicht dezentralisiert. 2018 wurde das ActivityPub eingeführt, wodurch der Dienst bekannter wurde und von mehr Menschen genutzt wurde. :::tip Der Name Misskey kommt aus dem Text des Liedes "Brain Diver" des Künstlers May'n, was syuilo zu dieser Zeit gerne hörte. ::: Jeder kann sich an der Entwicklung beteiligen und die Entwicklung läuft weiterhin. [Geschichtsmuseum Misskey](/about-us/history/) ## Was bedeutet eigendlich "Dezentralisiert"? "verteilt" oder auch "dezentralisiert" bedeutet einfach gesagt, dass mehrere Server miteinander kommunizieren können, die verschiedenen Personen gehören. Sie "förderieren" (stellen sich) zusammen und dadurch entsteht ein unabhäniges Netz. Fällt ein Server mal aus irgendwelchen Gründen aus oder ist nichmehr erreichbar, so kann man über eine andere Instanz wieder mit den Leuten zusammenkommen.Wenn es nur einen einzigen Server gibt, oder wenn es mehrere Server gibt, die aber unabhängig voneinander sind, spricht man von einem zentralisierten Dienst, was bei den meisten Diensten wie Twitter und Facebook der Fall ist. Der Vorteil eines dezentralen Dienstes ist, dass Sie den Server mit dem Betreiber und dem Thema wählen können, das Ihnen am besten gefällt.Du kannst eine eigene Instanz erstellenund hast schon von Anfang an die gleiche Community wie die anderen Instanzen auch. Das hat vorallem den Vorteil nicht immer wieder die Instanz-Betreiber zu fragen, ob man mit Ihnen Förderieren darf. ## Wir sind Open-Source Misskey ist und bleibt Open-Source.Das Bedeutet, dass jeder in den Quellcode reinschauen darf und dieser veröffentlicht wird.Das beinhaltet auch, dass der Quellcode verändert und weitergegeben werden darf. Der gesamte Quellcode von Misskey ist [veröffentlicht](https://github.com/misskey-dev) unter der Open-Source-Lizenz [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) und darf von jedermann eingesehen, verwendet, modifiziert, verändert und weitergegeben werden. Offener Quellcode hat eine Reihe von Vorteilen, wie z. B. die Möglichkeit, ihn nach Belieben zu ändern, zu überprüfen, dass er keine schädlichen Prozesse enthält, und jedem die Möglichkeit zu geben, sich an seiner Entwicklung zu beteiligen. Die Quelloffenheit ist auch ein wesentliches Element für den oben beschriebenen dezentralen Ansatz. Um noch einmal zu zitieren: Die meisten profitablen Dienste wie Twitter und Facebook sind nicht quelloffen. :::tip Technisch wird der Quellcode von Misskey mit Git verwaltet und das Repository wird auf [GitHub(https://github.com/misskey-dev) gehostet. ::: ## Beteiligung an der Entwicklung, Unterstützung Wenn dir Misskey gefällt, dann unterstütze uns gerne.Es gibt viele Möglichkeiten uns zu Unterstützen.In gewisser Weise sind keine Entwicklungskenntnisse erforderlich, so dass jeder mitmachen und einen Beitrag leisten kann.Wir freuen uns, wenn auch du ein Teil von Misskey wirst. ### Neue Features hinzufügen oder Bugs bekämpfen Softwaretechnische, können zum Projekt beitragen, indem Sie am Quellcode Mitwirken. Eine Anleitung zum Mitmachen finden Sie [hier](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). ### Mitreden Sag deine Meinung oder gebe Feedback, Inspiration und Anstöße zur aktuellen Entwicklung. Solche Diskussionen finden auf [GitHub](https://github.com/misskey-dev) statt. ### Übersetze Misskey ist in einer Vielzahl von Sprachen verfügbar (i18n genannt - kurz für Internationalisierung).Die Originalsprache ist grundsätzlich Japanisch, aber sie wird von Freiwilligen in andere Sprachen übersetzt. Deine Sprache ist nicht dabei oder nur noch teilweise Übersetzt? Misskey nutzt einen Dienst namens Crowdin, um die Übersetzungen zu verwalten.[Zum Übersetzungsteam](]\(https://crowdin.com/project/misskey\)) ### Schreibe deine Gedanken auf und teile sie mit Sag uns was dir am meisten Spaß macht und welche Funktionen du nicht missen magst.Es mag nach einer Kleinigkeit wirken, doch wirkt sich auch positive Rückmeldung auf die Entwicklung aus. Also schreie es in die Welt hinaus. ### Sei ein Misskist Ein Misskist ist jemand, der Misskey verwendet. Wenn Sie Misskey Ihren Bekannten vorstellen und davon erzählen, steigt die Zahl der Misskisten und unsere Motivation zur Weiterentwicklung wird steigen. ### Spende Mehr zu unseren Spendemöglichkeiten findest du [hier](/docs/donate/). ## FAQ - Häufig gestellte Fragen ### Was soll mit diesem Projekt erreicht werden? Wenn überhaupt, dann soll es eine universelle Plattform sein, die weithin genutzt wird, wenn auch nur vage. Im Gegensatz zu anderen Projekten wird Misskey nicht auf der Grundlage einer Ideologie (z. B. gegen die Zentralisierung) oder Vision entwickelt und ist in dieser Hinsicht flach. Wir glauben, dass dies wiederum zu einer Flexibilität führt, die nicht an eine bestimmte Richtung gebunden ist. ### Wird Misskey von Firmen entwickelt? Nein.Die Entwicklung von Misskey erfolgt privat und ist nicht kommerziell, es sind also keine bestimmten Unternehmen beteiligt. Die Mitglieder der Entwicklungsgruppe sind grundsätzlich Freiwillige. In einigen Fällen wird die Entwicklung von Unternehmen gesponsert, aber auch in diesen Fällen wird die Entwicklung hauptsächlich von der Gemeinschaft der Einzelpersonen durchgeführt. ### Wer leitet Misskey? Misskey ist dezentralisiert, d.h. jeder Server hat einen anderen Betreiber.Daher wird nicht alles an Misskey von einer bestimmten Person oder Firma betrieben. Da Misskey nicht vom Entwicklungsteam betrieben wird, sollte jeder Kontakt bezüglich des Betriebs mit dem Betreiber des Servers aufgenommen werden. Der Betreiber des Servers kann auf der Informationsseite des Servers gefunden werden. Solltest du eine eigene Instanz mit "Misskey" haben, dann bist du der Betreiber. ### Welchen Server soll ich nehmen? [Eine Liste von Servern ist hier verfügbar.](/servers/)Manche Server haben ein festgelegtes Community-Thema (Vorlieben für bestimmte Dinge usw.). Wenn es also einen Server mit einem Thema gibt, das dir zusagt, ist es möglicherweise eine gute Idee, diesen auszuwählen. Weitere Überlegungen betreffen die Servergröße, die Benutzerbasis, das Land und die Sprache sowie die Vertrauenswürdigkeit des Betreibers. Bitte beachte, dass es keine offiziellen Misskey-Server gibt!Es besteht auch die Möglichkeit, selbst einen neuen Server zu erstellen. Unabhängig, für welchen Server sich entscheiden wurde, können sich User auf allen Servern verbinden. ### Wie erstelle ich einen eigenen Misskey-Server? Schön das du dich für einen eigenen Server Interessierst. Die Erstellung eines Misskey-Servers kann mit Hilfe eines speziellen Dienstes oder durch halbautomatische Erstellung der Umgebung erfolgen (natürlich ist es auch möglich, den Server manuell zu erstellen).Mehr Details dazu erhälst du [hier](/docs/for-admin/install/guides/). ### Welche Technologie wird verwendet? Die von Misskey verwendete Technologie hat sich im Laufe der Entwicklung stark verändert.Am Anfang, bestand Misskey nur aus MySQL + PHP + jQuery, aber jetzt sind noch folgende Sprachen dazugekommen: - Serverseitig: Node.js - Datenbank: PostgreSQL, Redis - UI-Framework: Vue.js - Programiersprache: Typescript MFM und AiScript sind eigens, für Misskey, erstellte Programmiersprachen, voll cool. ### Ist Misskey ein Fork von Mastodon? Nein, tatsächlich nicht.Mastodon und Misskey sind zwei unterschiedliche Projekte, wobei es Misskey schon eine Weile länger gibt.Allerdings wurde erst nach der Einführung von Mastodon dezentralisiert. Es gibt keine besondere Verbindung zwischen den beiden, außer dass sie das gleiche ActivityPub-Protokoll für die Dezentralisierung implementieren und damit miteinander kommunizieren können. ### Gibt es eine iOS/Android oder F-Droid App? Offiziell werden keine nativen Anwendungen für solche Betriebssysteme entwickelt, aber es gibt mehrere Anwendungen von Drittanbietern. Weitere Informationen findest du [hier](/docs/for-users/resources/apps/). Da Apps von Drittanbietern jedoch zwangsläufig bei der Unterstützung von Funktionen hinterherhinken, empfehlen wir die Verwendung des offiziellen Webclients, wenn du nicht besonders wählerisch bist. Außerdem unterstützt der Misskey-Webclient PWA, sodass er wie eine native App ausgeführt werden kann (Desktop/Android). :::tip Informationen über die Einrichtung einer PWA gibt es [hier](/docs/for-users/stepped-guides/how-to-use-pwa/). ::: ### Wo kann ich Misskey-Logos und -Symbole erhalten? Unter [Brand-Assets](/brand-assets/) solltest du alles finden, was du diesbezüglich suchst. ### Was ist mit den süßen kleinen Mädchen mit Katzenohren, die man manchmal sieht? :::fukidashi{chara="doya_ai" charaName="藍"} Weitere Informationen über mich findest du auf [dieser Website](https://xn--931a.moe/),nya~ ! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Ich bin der Schutzengel von Misskey, Ai."アイチャンカワイイヤッター!" ::: ================================================ FILE: content/de/docs/2.for-users/1.index.md ================================================ # Leitfaden In diesem Abschnitt werden allgemeine Funktionen vorgestellt, die sowohl für neue Nutzer von Misskey als auch für bestehende nützlich sind. ================================================ FILE: content/de/docs/2.for-users/2.onboarding/0.index.md ================================================ # Erste Schritte mit Misskey Hier findest du alle Tutorials, die den Einstieg in Misskey erleichtern können. Hauptsächlich: - dezentralisierte Plattform - Was ist ein Server?Wie wähle ich einen Server? - Registrierung - Grundlagen Der Leitfaden ist so erstellt, das alle Nutzer mit diesem Arbeiten können. Lass uns Anfangen !( Drücke "weiter" um Fortzufahren. ) ================================================ FILE: content/de/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Hier sind einige grundlegende Vorsichtsmaßnahmen, die getroffen werden sollten, bevor ein Konto auf dem Misskey-Server erstellt wird.' --- # Grundlegende Hinweise Bei der Nutzung von Diensten, die Misskey verwenden, müssen einige Dinge beachtet werden. - Aufgrund der Dezentralisierung besteht keine Garantie dafür, dass einmal hochgeladene Daten auch dann von allen anderen Servern vollständig gelöscht werden.(Aber das gilt für das Internet im Allgemeinen.). - Wenn ein Beitrag als privat markiert wird, besteht keine Garantie, dass der andere Server ihn auch in gleicher Weise als privat behandeln.Persönliche oder vertrauliche Inhalte von dir oder Dritten sollten immer mit dem höchsten Respekt behandelt werden, handel damit bitte nicht fahrlässig.(Auch das gilt für das gesamte Internet im Allgemeinen.) - Die „Drive“-Funktion von Misskey ist kein typischer Cloud-Speicherdienst.Diese Funktion dient der Verwaltung und Wiederverwendung hochgeladener Dateien. **Auf die hochgeladenen Daten kann jeder zugreifen, der über die URL verfügt, unabhängig davon, ob Sie sie jemals an eine Notiz angehängt haben oder nicht.** Bitte verwende für den Datenaustausch, einschließlich vertraulicher Informationen, einen dedizierten, seperaten Dienst. - Das Löschen eines Kontos ist ein rechenintensiver Prozess und kann lange dauern.Sollte dem User eine große Datenmenge zugeordnet sein, kann das Konto möglicherweise nicht gelöscht werden. - Einige Server nutzen zur Deckung der Kosten Werbebanner oder sind auf andere Werbezwecke angewießen.Darüber hinaus blockieren Werbeblocker häufig fälschlicherweise Inhalte und Funktionen, die überhaupt nichts mit Werbung zu tun haben, was die Funktion des Clients beeinträchtigen und die ordnungsgemäße Nutzung von Misskey verhindern kann.Schalte am besten alle Werbeblocker für Misskey aus und packe den Server in die entsprechende Whitelist um eine möglichst reibungslose Verbindung zu sichern. Bitte handel entsprechend unter dieser Geschäftsbedingung, um Misskey für alle nutzbar zu halten. ================================================ FILE: content/de/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Hier wird die Registrierung als Benutzer auf dem Misskey-Server sowie die grundlegenden Vorgänge erläutert." --- # Einen Misskey-Server finden Misskey ist eine Software und unser Gemeinschafts-Projekt. Der Server, auf dem Misskey ausgeführt wird und der öffentlich im Internet verfügbar ist, wird als **Server** bezeichnet. Um Misskey zu verwenden, erstelle irgendwo auf einem Server ein Konto. Bevorzugte Server aus der [Serverliste](/servers/) auswählen. :::tip Unabhängig welcher Server verwendet wird, können alle User untereinander kommunizieren :::g-details{summary='Zusammenfassung'} Misskey verfügt über ein Förderiertes Netwerk. Dank der Föderationsfunktion können User auf verschiedenen Servern auf die gleiche Weise folgen, reagieren, Anmerkungen machen usw. wie User auf demselben Server. Die Föderationsfunktionalität von Misskey basiert auf einem offenen gemeinsamen Standard namens ActivityPub und ist mit anderer Software wie Mastodon und Pleroma kompatibel. ::: ::: ## Wie wähle ich einen Server? ### Serverthemen Je nach Server kann es feste Themen geben, wie zum Beispiel „Gefällt mir für bestimmte Dinge“. Es wird außerdem empfohlen, nach einem Server mit dem passenden Thema zu suchen. :::tip Liste der Server [hier](/servers/) sehen. ::: ================================================ FILE: content/de/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # Bei dieser Instanz registrieren Nachdem sich für ein Server entschieden wurde, ist es nun Zeit sich zu Registrieren. :::tip Hier verwenden wir Misskey.io als Beispiel, aber der Registrierungsprozess ist für andere Server im Allgemeinen derselbe. Die Eingabe kann jedoch je nach Server variieren.Weitere Information findest du bei dem Server-Anbieter. ::: ## Registrieren Suche zunächst nach dem **Bei dem Server registrieren**-Button. ![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png) Folge anschließend die Anweisungen auf dem Bildschirm und prüfe die Allgemeinen Geschäftsbedingungen (AGB) und gebe alle erforderlichen Informationen ein. Die wichtigsten Informationen: - Einladungscode (falls dieser Server den Status _nur auf Einladung_ hat) - Benutzername ( \*\* Dieserkann später nicht mehr verändert werden.\*\*) - E-Mail-Adresse (nicht für alle Server notwendig) - Passwort ![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png) Du erhälst eine Bestätigungsnachrit an dein Postfach, bitte prüfe ebenfalls deinen Spam-Ordner. ![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png) Das war alles, nun kannst du endlich losstarten. Jetzt bist du auch ein [Missquist](../resources/glossary/#misskist)!Auf gute Gespräche. ================================================ FILE: content/de/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskey Grundlagen Wenn gerade ein neues Konto erstellt wurde, erfährst du hier, wie es weitergeht. ## Notizen Beiträge auf Misskey werden "Notizen" genannt.Es verfügt über viel mehr Funktionen als herkömmliche soziale Netzwerke wie Twitter. Versuche es direkt, bevor du deinen ersten Beitrag verfasst, überleg dir was Gutes. Katzen zum Beispiel gehen immer! :::tip Weitere Informationen bekommst du hier unter [Note](/docs/for-users/features/note/). ::: ## Chronik Misskey verfügt über verschiedene Chroniken.Allein die Namen können etwas verwirrend sein, deshalb schauen wir uns einmal an, was jeder einzelne bewirkt. :::tip Weitere Informationen finden Sie unter [Timeline](/docs/for-users/features/timeline/). ::: ## Features Misskeys verfügt über vielerlei Features.Eine Beschreibung aller Funktionen gibt [hier](/docs/for-users/features/). Schauen es mal an! ================================================ FILE: content/de/docs/2.for-users/3.features/1.index.md ================================================ --- description: "In diesem Abschnitt werden die wichtigsten Merkmale von Misskey und die Vielfalt der Funktionen beschrieben." --- # Verschiedene Funktionen Ein wesentliches Merkmal von Misskey ist die Funktionsvielfalt, die in anderen Microblogging-Systemen nicht zu finden ist.Dieser Abschnitt erklärt sie. ================================================ FILE: content/de/docs/2.for-users/3.features/ads.md ================================================ # Werbung/AD Misskey verfügt über eine Funktion, mit der servergenerierte Werbung auf der Timeline usw. anzeigen können. Ddie Häufigkeit einer Anzeige kann reduziert werden, indem auf das Symbol in der oberen rechten Ecke der Anzeige geklickt wird. :::tip Wenn die Gesamtzahl der Anzeigen gering ist, wird möglicherweise auch nach einer Verringerung der Häufigkeit weiterhin die gleiche Anzahl angezeigt. ::: ## Anzeigeneinstellungen (Administrator) Im Server-Kontrollfeld können weitere Ansichten nach belieben hinzugefügt, bearbeitet oder gelöscht werden. Hierbei ist es egal, ob es sich um ein Bild, eine URL oder eine Form handelt ================================================ FILE: content/de/docs/2.for-users/3.features/antenna.md ================================================ # Antennen Antenna ist eine Funktion, mit der Bedingungen frei festlegt werden können und automatisch Notizen sammeln, die diesen Bedingungen entsprechen. Sobald eine Antenne mit festgelegten Bedingungen erstellt wurde und eine Notiz gepostet wird, die den Bedingungen entspricht, wird die Notiz in Echtzeit zur Timeline der Antenne hinzugefügt. ================================================ FILE: content/de/docs/2.for-users/3.features/charts.md ================================================ # Diagramme Misskey kann Diagramme für verschiedene Datenquellen auf dem Server erstellen und anzeigen. Mithilfe von Diagrammen kann die Serverauslastung, den Föderationsstatus und die Aktivität jedes Benutzers visuell erfasst werden. Serverdiagramme können auf der Serverinformationsseite eingesehen werden. Nachfolgend eine Beschreibung jeder Tabelle und ihrer einzelnen Elemente. ## Förderationskarte Tabelle über die förderierten Server. ### Pub Anzahl der Server, die die Aktivität liefern. Es handelt sich hierbei um die eindeutige Anzahl von Servern, die zu Förderierten-Nutzern gehören, die Nutzern auf dem eigenen Server folgen. ### Sub Anzahl der Server, die Aktivität erhalten. Sie stellt die eindeutige Anzahl von Servern dar, die Förderierten-Nutzern gehören, gefolgt von Nutzer auf dem eigenen Server. ### Empfangen Anzahl der Server, die Aktivität gesendet haben. ### Zugestellt Anzahl der Server, die die Aktivität geliefert haben. ### Geschlossen Anzahl der Server, die bei der Zustellung einer Aktivität gescheitert sind. ## Aktive Benutzer Anzahl der eigenen Nutzer im Server ### Lesen & Schreiben Anzahl der Nutzer, die im Server anschauen und schreiben. ### Lesen Anzahl der Nutzer, die einen Beitrag angesehen haben. ### Schreiben Anzahl der Nutzer, die einen Beitrag erstellt haben. ### < Woche Anzahl der Nutzer, die ein Konto erstellt haben, dessen Erstellungsdatum und -zeit weniger als eine Woche beträgt. ### < Monat Anzahl der Nutzer, die ein Konto erstellt haben, dessen Erstellungsdatum und -zeit weniger als einen Monat beträgt. ### < Jahr Anzahl der Nutzer, die ein Konto erstellt haben, dessen Erstellungsdatum und -zeit weniger als eine Jahr beträgt. ### > Woche Anzahl der Nutzer, die ein Konto erstellt haben, dessen Erstellungsdatum und -zeit mehr als eine Woche beträgt. ### > Monat Anzahl der Nutzer, die ein Konto erstellt haben, dessen Erstellungsdatum und -zeit mehr als einen Monat beträgt. ### > Jahr Anzahl der Nutzer, die ein Konto erstellt haben, dessen Erstellungsdatum und -zeit mehr als ein Jahr beträgt. ================================================ FILE: content/de/docs/2.for-users/3.features/clip.md ================================================ # Clip Clip ist eine Funktion, mit der mehrere Noten zusammengefasst werden können.Dabei spielt es keine Rolle, ob es sich um eigene Notizen oder die eines anderen handelt. Es können mehrere Clips erstellt und verwaltet werden, indem ein Name und eine Beschreibung für jeden Clip festlegt wird.Es kann ebenfalls auch angegeben werden, ob der Clip für andere einsehbar ist. Um einen Clip zu erstellen, gehe zur [Clipverwaltungsseite] (x-mi-web://my/clips) und klicke „Hinzufügen“. Um einem Clip Notizen hinzuzufügen, klicke im Menü der Zielnotiz auf „Clip“ und wähle den Clip aus, dem du in die Notizen hinzufügen möchtest. ================================================ FILE: content/de/docs/2.for-users/3.features/custom-emoji.md ================================================ # Benutzerdefinierte Emojis Benutzerdefinierte Emojis sind instanzenspezifische Bilder, die dort wie Emojis verwendet werden können. Sie können in Notizen, Reaktionen, Chats, Profilbeschreibungen, Benutzernamen und an anderen Orten verwendet werden. Um ein benutzerdefiniertes Emoji an einem solchen Ort zu verwenden, drücke den Knopf, um die Emoji-Auswahl zu öffnen (falls vorhanden), oder gib ein `:` ein, um Emoji-Vorschläge anzeigen zu lassen. Wird eine Zeichenkette des Formats :foo: innerhalb eines Textes gefunden, so wird foo als Name eines benutzerdefinierten Emojis interpretiert und mit dem dazugehörigen Bild ersetzt. Welche benutzerdefinierten Emojis auf dem Server verfügbar sind, kann unter [**Benutzerdefinierte Emojis**](x-mi-web://about#emojis) unter **Serverinformationen** auf Misskey Web angesehen werden. ================================================ FILE: content/de/docs/2.for-users/3.features/deck.md ================================================ # Deck Deck ist eines der in Misskey verwendbaren Benutzeroberflächen.Durch die Aneinanderreihung sogenannter "Spalten" wird ein hoher Anpassungsgrad sowie das Anzeigen vieler Informationen auf einmal ermöglicht. Beachte, dass wenn eine Hauptspalte hinzugefügt wird, der Inhalt in der Hauptspalte angezeigt wird, wenn Notizen und Profile auf einer Seite angezeigt werden. ## Spalten hinzufügen Um eine Spalte hinzuzufügen, klicke auf den Hintergrund des Decks und drücke "Spalte hinzufügen". ## Spalten verschieben Spalten können entweder durch Drag-and-Drop oder durch Anpassung der Spaltenoptionen (aufgerufen durch Rechtsklick auf den Spaltenkopf) individueller Spalten verschoben werden. ## Horizontale Ausrichtung von Spalten Spalten können nicht nur horizontal, sondern auch vertikal angeordnet werden. Durch Auswahl von "Auf linke Seite stapeln" im Spaltenmenü einer Spalte wird diese unter die Spalte links von sich selbst verschoben. Um dies aufzuheben, drücke "Nach rechts vom Stapel nehmen" im Spaltenmenü einer vertikal angeordneten Spalte. ## Spalteneinstellungen Um eine Spalte zu bearbeiten, drücke "Bearbeiten" in dessen Spaltenmenü.Der Name einer Spalte sowie dessen Breite können verändert werden. ## Deck-Einstellungen Deckbezogene Einstellungen können unter [settings/deck](x-mi-web://settings/deck) vorgenommen werden. ================================================ FILE: content/de/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/de/docs/2.for-users/3.features/drive.md ================================================ # Drive Drive ist eine Funktion, mit der Dateien auf Misskey verwaltet werden können. :::tip Technisch gesehen werden alle Dateien zentral auf dem Misskey-System verwaltet, das man sich wie ein Laufwerk mit einer Schnittstelle vorstellen kann, die auch für die Nutzer offen ist. ::: Es kann jede Datei von der [Laufwerksseite](x-mi-web://my/drive) auf Misskey Web sowie alle Bilder, die als Avatar eingestellt wurde, und Dateien, die an Ihre Notizen angehängt sind, auf das Laufwerk hochladen. :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: Auf das Laufwerk hochgeladene Dateien können jederzeit heruntergeladen werden, oder die Dateien können beim Erstellen von Notizen durch „Anhängen von Dateien vom Laufwerk“ wiederverwendet werden. Ebenfalls können Ordner erstellt werden, um die Bilder im Dive zu sortieren. :::warning ACHTUNG: Sollte eine Datei im Dive gelöscht werden, so werden auch die Notizen verschwinden, die mit der Datei verlinkt worden sind. ::: ## Sensible-Inhalte (NSFW) Sensible oder NSFW (Not safe for work) ist ein Kennzeichen, das für Dateien auf dem Laufwerk gesetzt werden kann. Dateien mit der Kennzeichnung „sensibel“ sind ohne Zutun des Users nicht sichtbar, wenn sie angezeigt werden. Diese Markierung kann z. B. für Bilder gesetzt werden, die am Arbeitsplatz oder an öffentlichen Orten nicht als geeignet angesehen werden, um zu verhindern, dass solche Bilder plötzlich angezeigt werden und der Chef nachfrägt, was man sich denn da gerade anschaut... Diese Kennzeichnung kann selbst oder durch einen Moderator gesetzt werden. ================================================ FILE: content/de/docs/2.for-users/3.features/embed.md ================================================ # Einbetten von Inhalten Du kannst Notizen und Zeitleisten vom Misskey-Server in deine Website einbinden, sowie flexibel an das Design deiner Website anpassen. In diesem Abschnitt wird erläutert welche Inhalte eingebettet werden kann und wie das funktioniert. :::warning Diese Funktion ist ab Misskey v2024.9.0 verfügbar. ::: :::tip Es unterstützt auch MFM und benutzerdefinierte Emojis, aber das Layout kann je nach Darstellung, die Einbettungsseite im Design verändern. ::: ## Codes Generieren Alle im Folgenden beschriebenen Einbettungscodes und ihre Anpassung können leicht mit dem integrierten Einbettungscode-Generator von Misskey Web erstellt werden. Wir empfehlen grundsätzlich, diesen zu verwenden. ![Generator für eingebetteten Code](/img/docs/for-users/features/embed/generator.png) ## Einbetten einer einzelnen Notiz ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: Eine einzelne Notiz kann auf dem Heimserver eingebettet werden (Notizen auf einem förderierten Server können nicht über einen anderen Server eingebettet werden).Dein Code sollte jetzt so aussehen: ```html ``` Jede dieser Angaben wird durch folgende ersetzt: - ``: Hostname des Misskey Servers - ``: ID der Notiz - ``: Zufällige Zeichenfolge (erforderlich, wenn embed.js verwendet wird.Bitte stelle sicher, dass sich die Einbettungscodes auf derselben Seite nicht überschneiden, wenn es mehrere gibt ## Einfügen einer Liste an User-Notizen ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: Eine Liste der öffentlichen Notizen der Benutzer (öffentliches Zuhause) kann eingebettet werden.Dein Code sollte jetzt so aussehen: ```html ``` Jede dieser Angaben wird durch folgende ersetzt: - ``: Hostname des Misskey Servers - ``: ID des einzubettenden Benutzers (nicht der mit „@“ beginnende Benutzername) - ``: Zufällige Zeichenfolge (erforderlich, wenn embed.js verwendet wird.Bitte stelle sicher, dass sich die Einbettungscodes auf derselben Seite nicht überschneiden, wenn es mehrere gibt) ## Liste der Notizen in einen Clip einbetten ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: Du kannst eine Liste von Notizen für Clips einbinden, deren Veröffentlichungsbereich öffentlich istDein Code sollte jetzt so aussehen: ```html ``` Jede dieser Angaben wird durch folgende ersetzt: - ``: Hostname des Misskey Servers - ``: ID des Clips, der eingebettet werden soll - ``: Zufällige Zeichenfolge (erforderlich, wenn embed.js verwendet wird.Bitte stelle sicher, dass sich die Einbettungscodes auf derselben Seite nicht überschneiden, wenn es mehrere gibt) ## Einbettung von Hashtags in die Notizliste ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: Du kannst eine Liste von Notizen mit einem bestimmten Hashtag einbindenDein Code sollte jetzt so aussehen: ```html ``` Jede dieser Angaben wird durch folgende ersetzt: - ``: Hostname des Misskey Servers - ``: Hashtag-Name (ohne `#`) - ``: Zufällige Zeichenfolge (erforderlich, wenn embed.js verwendet wird.Bitte stelle sicher, dass sich die Einbettungscodes auf derselben Seite nicht überschneiden, wenn es mehrere gibt) ## Parameter für die individuelle Anpassung Das Aussehen der Einbettung kann durch die Angabe bestimmter Werte für den URL-Parameter angepasst werden.
Name des Parameters Werte, die festgelegt werden können Beschreibung
maxHeight Wert ≥ 0 Gibt die maximale Höhe (px) der Einbettung an.Falls sie länger wird, kannst du innerhalb des Bereichs scrollen.
Wenn 0 angegeben wird, wird die Höhe des eingebetteten Elements automatisch erweitert, um der internen Höhe zu entsprechen (nicht empfohlen) .
Wenn nicht anders angegeben, beträgt der Wert 700.
Funktioniert nicht bei der Einbettung einer einzelnen Notiz.
colorMode
  • light
  • dark
Den Farbmodus auf Hell oder Dunkel erzwingen.
Synchronisiert sich mit dem Dunkelmodus des Geräts, wenn nicht anders angegeben.
border
  • true
  • false
Fragt, ob ein Rahmen um den äußeren Rand hinzugefügt wird.Standardmäßig auf true
rounded
  • true
  • false
Fragt, ob die Ecken abgerundet werden sollen.Standardmäßig auf true
showHeader
  • true
  • false
Fragt, ob der obere Header angezeigt wird.Standardmäßig true.
Funktioniert nicht bei der Einbettung einer einzelnen Notiz.
:::g-details{summary="maxHeight=0 の使い道"} Es wird grundsätzlich nicht empfohlen, `maxHeight` auf `0` zu setzen. Für spezielle Anwendungen, wie z.B. wenn der Scroll-Container nicht im iframe, sondern auf der eingebetteten Website bereitgestellt werden soll, kann dies jedoch nützlich sein.Nachfolgend sind Beispiele aufgeführt: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/de/docs/2.for-users/3.features/favorite.md ================================================ # Favoriten [Notizen](./note) können durch die Favoriten-Funktion gesichert werden, um sie zum Beispiel später nochmal anzusehen bzw. finden zu können Sie können Ihre favorisierten Notizen auf Ihrer [Favoritenseite](x-mi-web://my/favorites) einsehen. Notizersteller erhalten keine Benachrichtigung, sollte der Beitrag favorisiert werden. Um eine Notiz als Favorit zu speichern, drücke im Notizen-Menü auf „Favoriten“.Zum aufheben, drücke im Notizen-Menü auf "Aufhebung der Favorisierung" (dieser befindet sich auf der gleichen Höhe, nach Favorisierung). ================================================ FILE: content/de/docs/2.for-users/3.features/follow.md ================================================ # Follower Folgst du einem Benutzer, so werden dessen Beiträge auf deiner Chronik angezeigt.Antworten dieses Benutzers auf Beiträge Anderer werden jedoch nicht angezeigt. Um einem Benutzer zu folgen, drücke den "Folgen"-Knopf auf dessen Profil. ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。Um einem Benutzer nicht mehr zu folgen, drücke den selben Knopf erneut. フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/de/docs/2.for-users/3.features/hashtag.md ================================================ # Hashtag (#) Hashtags sind eine der Funktionen, die es den Nutzern ermöglichen, Beiträge mit durchsuchbaren Tags zu versehen. Der erste Hashtag der Welt - #barcamp - wurde von Chris Messina [@chrismessina@](https://twitter.com/chrismessina/status/223115412?lang=en) am [24. August 2007, 4:25 Uhr](https://twitter.com/chrismessina/status/223115412?lang=en) erfunden. mastodon.xyz](https://mastodon.xyz/@chrismessina)Die Idee, „das Pfundzeichen" `#` zu verwenden, um die Suche zu erleichtern“, wurde später in „Hashtag“ umbenannt - eine Wortschöpfung aus den englischen Wörtern „hash“ für „hacken“ und „tag“ für „markieren“ - und von der damaligen Firma Twitter offiziell übernommen.Chris Messina hat übrigens `#` gewählt, weil es eine Assoziation mit IRC-Kanalnamen ist, die mit `#` beginnen. ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp [msg]?"](/img/docs/for-users/features/hashtag/1.ja.png) Die Hashtags auf Fediverse unterscheiden sich kaum von denen auf zentralisierten Diensten wie X und Instagram.Es kann schwierig sein, einen bestimmten Beitrag auf Fediverse zu finden, da es manchmal schwierig ist, den gesamten Text zu durchsuchen. Wenn ein Beitrag jedoch mit einem Hashtag versehen ist, kann der Beitrag leicht gefunden werden, indem man dem Hashtag folgt.Es gibt auch Dienste im Vereinigten Königreich, wie z. B. den Dienst "Hashtag Relay", der einen Beitrag automatisch an verschiedene Websites weiterleitet, indem er ihn einfach mit einem Hashtag versieht, sofern dieser dort eine Relevanz hat. ================================================ FILE: content/de/docs/2.for-users/3.features/mention.md ================================================ # Erwähnung アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/de/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM ist eine spezielle Markup-Sprache, die in verschiedenen Teilen von Misskey verwendet werden kann.' --- # MFM MFM steht für "Markup language For Misskey" und ist eine spezielle Auszeichnungssprache, die an verschiedenen Stellen in Misskey verwendet werden kann.Einige Syntaxen sind mit Markdown und HTML kompatibel. :::tip Es wurde eine [MFM-Demo] (/tools/mfm-playground/) eingerichtet, in der MFM ausprobiert werden kann! ::: ## Beispiele für Orte, an denen MFM eingesetzt werden kann - Notizen - CW (Inhaltswarnung) - Benutzername - Darstellung im Profil ## Syntax ### Erwähnung Mit At-Zeichen und Benutzername kann ein individueller Nutzer angegeben werden. Weitere Informationen über Erwähnungen, gibt es [hier](./mention.md). ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### Hashtag (#) Mit einer Raute und Text kann ein Hashtag angegeben werden. Weitere Informationen zu Hashtags gibt es [hier](./hashtag.md). ::: ``` #misskey ``` ### URL URL können wie folgt angegeben werden: ``` https://example.com ``` ### Verlinken Zeigt spezifische Textabschnitte als URL an. ``` [example link](https://example.com) ``` :::tip Um die Linkvorschau auszublenden, füge "?" ein: ``` ?[example link](https://example.com) ``` ::: ### Benutzerdefinierte Emojis Durch das Umschließen von Emoji-Namen durch Doppelpunkte können benutzerdefinierte Emojis angezeigt werden. :::tip Weitere Informationen zu Emoji's findest du [hier](./custom-emoji.md). ::: ``` :misskey: ``` ### Fett Zeichen zur Betonung dicker erscheinen lassen. ``` **Beispiel** ``` <0> ### Klein Inhalt klein und dünn erscheinen lassen. ``` Misskey erweitert die Welt des Fediverse ``` ### Zitat Inhalt als Zitat anzeigen. ``` > Misskey erweitert die Welt des Fediverse ``` Misskey erweitert die Welt des Fediverse ### Zentrieren Inhalt zentriert anzeigen. ``` Misskey erweitert die Welt des Fediverse ``` ### Yomigana (Ruby) Der Inhalt kann mit einem Yomigana beschriftet werden. ``` $[ruby Misskey ミスキー] ``` ### Code (Eingebettet) Syntax-Hervorhebung für (Programm-)Code eingebettet anzeigen. ``` `<: "Hallo Welt!"` ``` ### Code (Block) Syntax-Hervorhebung für mehrzeiligen (Programm-)Code als Block anzeigen. Über die ID kann eine Programmiersprache festgelegt werden. Hierbei wird ebenfalls der Syntax hervorgehoben.Folgende Sprachen können eingestellt werden: - [Von Shiki unterstützte Sprachen (200+)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### Spiegeln Inhalt horizontal oder vertikal gespiegelt anzeigen. ``` $[flip Misskey und Fediverse] $[flip.v Misskey und Fediverse] $[flip.h,v Misskey und Fediverse] ``` ### Schriftart Setzt die Schriftart des Inhaltes fest. ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### Blur Der Inhalt erscheint unscharfDer Maus-Zeiger ist deutlich zu sehen, wenn man ihn oben auflegt. ``` $[blur Misskey erweitert die Welt des Fediverse] ``` ### Suchen Das Suchfeld kann angezeigt werden. ``` misskey search ``` ### Text- und Hintergrundfarben Text- und Hintergrundfarben können geändert werden. Die Farben werden durch 3-, 4- und 6-stellige Farbcodes dargestellt. ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### Rahmen Der Inhalt kann eingerahmt werden.Verschiedene Stile können angegeben werden. ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### Drehen Dreht den Inhalt um einen angegebenen Winkel. ``` $[rotate.deg=30 misskey] ``` ### Lage ändern Die Position kann verschoben werden. ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### Skalierung Skaliert den Text. ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### Animation (Dehnen) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### Animation (Tada) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### Animation (Sprung) ``` $[jelly 🍮] $[jump.speed=5s 🍮] ``` ### Animation (Federn) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### Animation (Rotieren) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### Animation (Zittern) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### Animation (Zucken) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### Regenbogen ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### Funkeln ``` $[sparkle 🍮] ``` ### Klartext Deaktiviert jegliche MFM-Syntax, die sich innerhalb dieses MFM-Effekts befindet. ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## Entwicklerinformationen MFM-Parser und Rendering-Implementierungen werden als Bibliotheken veröffentlicht, so dass MFM leicht in Clients eingebettet werden kann. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScript-Parser - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js-Komponente - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlin-Parser - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dart-Parser - [mfm](https://pub.dev/packages/mfm) - Flutter-Parser ================================================ FILE: content/de/docs/2.for-users/3.features/mute-and-block.md ================================================ # Stummschalten/Blocken Wenn einen Nutzer nicht gewollt ist, kann dieser unsichtbar gemacht werden, indem er stummgeschalten wird. Als noch wirkungsvollere Maßnahme können Nutzer auch blockieren, so dass er eigene Inhalte nicht sehen und nicht mit Ihnen interagieren kann. Die andere Person wird nicht wissen, dass sie stummgeschaltet wurde, aber sie wird unter Umständen wissen, dass sie blockiert wurde.Diese Entscheidung liegt beim jeweiligen Nutzer selbst. :::tip Stummschalten und Sperren können zusammen verwendet werden. ::: :::warning Eine Methode, gegen Nutzer vorzugehen, die sich nicht an die Serverregeln hält, wäre sich mit dem Betreiber des Servers auseinanderzusetzten. ::: Unter Misskey Web kann die Liste unter Einstellungen>Stummschalten und Sperren aufgerufen werden. ## Stummschaltung Sobald du einen Benutzer stummschaltest, werden die folgenden Arten von mit diesem Benutzer verbundenen Beiträge von Misskey nicht mehr angezeigt: - Beiträge dieses Nutzers in Chroniken sowie Suchergebnissen (inklusive Renotes und Antworten auf diese) - Benachrichtigungen von diesem Benutzer - Chatverläufe mit diesem Benutzer in der Liste aller Chatverläufe - usw. Um einen Benutzer in Misskey Web stumm zu schalten, öffne das Menü auf der Benutzerseite des Zielbenutzers und drücke die Schaltfläche „Stumm“. :::tip Der stummgeschaltete Benutzer erhält hierüber keine Benachrichtung, und erhält darüber, ob er von einem anderen Benutzer Stummgeschaltet ist, auch keine Informationen. ::: ## Renotes stummschalten Nur die Notizen des Benutzers können von der Timeline ausgeschlossen werden, z. B. wenn der Benutzer eine große Anzahl von Notizen hat, die er neu notieren muss.Die normalen Notizen des Benutzers sind davon nicht betroffen. ## Sperren Das Sperren macht eigene Inhalte ggü. dem Nutzer unsichtbar und verhindert unter anderem folgendes: - Folgen - Zur Benutzerliste hinzufügen - Antwort, Renote - Reagieren, in Umfragen abstimmen - Eine Nachricht senden - usw. Zusätzlich, - wenn der Nutzer bereits Folgt, wird der Status "Follower" entzogen. - wenn der Nutzer bereits eine Nutzerliste mit deinem Account hat, so wird diese aus der Liste entfernt. Um einen Benutzer in Misskey Web zu sperren, öffne das Menü auf der Benutzerseite des Zielbenutzers und drücke die Schaltfläche „Sperren“. :::warning Der Nutzer wird bei einer Sperrung nicht benachrichtigt, erfährt aber, dass er dir nicht mehr folgen kann. ::: :::warning Die Sperrung greift nicht im "abgemeldeten Modus", sowie bei einem etwaigen 2.-Account.Die Sperrung dient zur einfachen und ergänzenden Maßnahme und sollte auch nur als solche angesehen werden. ::: ================================================ FILE: content/de/docs/2.for-users/3.features/note.md ================================================ # Notiz Das Zentrale Konzept hinter Misskey, sind die Notizen. Hierbei werden wie z.B. Texte, Dateien, Umfragen, usw. veröffentlicht.Das Erstellen einer Notiz wird ebenfalls als Notiz benannt. :::tip Der Name Notiz leitet sich von dem englischen Wort Note ab, was so viel wie „kurze Aufzeichnung“ bedeutet. ::: Wenn eine Notiz erstellt wird, wird sie zur [Timeline](./timeline) hinzugefügt und ist für [Follower](./follow) und User auf dem Server sichtbar. Die Notiz kann mit [Reaktionen](./reaction) versehen werden.Hierbei sind auch das Antworten oder das Zitieren der Notiz möglich. Notizen können auch als [favorit](./favorite) hinterlegt werden, um sie so später wiederfinden zu können, um z.B. vor deinen Freunden angeben zu können. ## Notizen schreiben oder löschen Um eine Notiz in Misskey Web zu erstellen, drücke auf die Schaltfläche mit dem Bleistiftsymbol auf dem Bildschirm, um das Erstellungsfenster zu öffnen.Eine Notiz wird erstellt, indem der Inhalt in das Erstellungsfenster eingegeben und die Schaltfläche [Notiz] gedrückt wird. Die Notiz kann eine beliebige Datei enthalten, z. B. ein Bild oder ein Video, oder eine [Umfrage](./poll) kann an die Notiz angehängt werden.Darüber hinaus können [MFM](./mfm) im Text verwendet werden, [Erwähnungen](./mention), sowie [hashtags](./hashtag) eingefügt werden. Es können auch andere Einstellungen wie Inhaltswarnungen und Publikationsbereich festgelegt werden (Mehr dazu weiter unten). :::tip Misskey Web ermöglicht, Bilddaten aus der Zwischenablage hochzuladen und in die Drive zu speichern. Damit können jederzeit Bilder für eine Notiz hochgeladen werden. ::: :::tip Auf Misskey Web kann man über die Tastatur auch posten. Einfach <0>Strg + Enter in der Notizerstellung drücken. ::: ## Erneutes Zitieren Das Zitieren oder Teilen einer bestehenden Notiz als neue Notiz oder einer auf diese Weise erstellten Notiz wird als „erneutes Zitieren“ bezeichnet. Dies wird verwendet, wenn Sie eine Lieblingsnotiz eines Nutzers, dem du folgst, mit deinen Followern teilen möchtes, oder wenn du eine Notiz aus der Vergangenheit neue Aufmerksamkeit geben möchtest. Es kann jederzeit und beliebig viel erneut Zitiert werden, beachte hierbei aber auch das es als unangemessen empfunden werden kann, eine Nachricht zu oft hervorzustellen. :::warning Notizen, die nur lokal oder nur in der Heim-Instanz veröffentlicht worden sind. Können nicht rezitiert werden. ::: Um in Misskey Web ein erneutes Zitat zu enfernen, klicke auf den Beitrag die drei Punkte „...“ neben der Zeitanzeige und wähle „Renote entfernen“. ## Inhaltswarnung oder auch CW Eine Funktion, mit der der Inhalt einer Notiz für alle ausgeblendet werden kann.Sie kann vor allem verwendet werden, um längere Inhalte auszublenden oder um Spoiler zu verhindern. Um eine CW auf Misskey Web einzurichten, klicke auf die Schaltfläche „Inhalt ausblenden“ (Augensymbol).Daraufhin wird ein neuer Eingabebereich angezeigt, in der eine Zusammenfassung des Inhalts eingegeben werden kann. ## Sichtbarkeit Für jede Notiz kann festgelegt werden, in welchem Umfang die Notiz veröffentlicht werden soll. Um den Veröffentlichungsbereich in Misskey Web einzustellen, klicke auf das Symbol links neben der Schaltfläche „Notizen“ im Eingabebereich. Es gibt die folgenden Arten von Veröffentlichungsbereichen. ### Öffentlich Die Notiz ist nicht nur für alle öffentlich, sondern durchläuft auch alle Zeitleisten auf dem Server (Home-Zeitleiste, lokale Zeitleiste, soziale Zeitleiste und globale Zeitleiste). :::warning Dieser öffentliche Bereich ist nicht verfügbar, wenn sich das Konto im Status [stumm](./silence) befindet. ::: ### Home Die Notiz ist für alle öffentlich, wird aber nicht in lokale, soziale oder globale Timelines übertragen, mit Ausnahme für Follower. ### Follower Macht Notizen nur für eigene Follower zugänglich.Es wird an alle Timelines der Follower weitergeleitet. ### Direktnachrichten Die Notiz ist nur für den/die angegebenen Benutzer zugänglich.Sie fließt in die Timeline des angegebenen Benutzers. :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### Option - „nur lokal“ Wenn diese Option aktiviert ist, wird die Notiz nicht an das Fediverse übertragen und bleibt in der Heiminstanz. ### Vergleich des Veröffentlichungsumfangs
ÖffentlichHomeFollower指名
Follower LTL/STL/GTL
Nicht-Follower LTL/STL/GTL
## An die Profilseite pinnen Das Anheften einer Notiz ermöglicht es, diese jederzeit auf im Account sichtbar zu halten. Um eine Notiz in Misskey Web anzuheften, öffne das Menü der Notiz und wähle „Anheften“. :::tip Es ist auch möglich, mehrere Noten gleichzeitig zu pinnen. ::: ## Benachrichtigung über neue Beiträge Es können Benachrichtigungen verschickt werden, wenn ein Benutzer eine neue Notiz einstellt.Öffne die Benutzerseite, wähle die Schaltfläche „Details“ neben der Schaltfläche ‚Folgen‘ aus und klicke auf „Über Beiträge benachrichtigen“, um sie zu aktivieren. ================================================ FILE: content/de/docs/2.for-users/3.features/online-status.md ================================================ # Onlinestatus Der **Onlinestatus** eines Benutzers ist ein Hinweis auf die Misskey-Nutzung durch den Benutzer. Der Online-Status wird als Indikator in der Ecke des Benutzersymbols angezeigt, z.B. auf der Benutzerseite.
Farben Status Beschreibung
🟢 Grün Online Der Nutzer ist aktiv aus Misskey unterwegs.
🟡 Gelb Abwesend Misskey läuft im Hintergrund, der Nutzer ist aber mit etwas anderem Beschäftigt
🔴 Rot Offline Der Nutzer hat aktuell keine Misskey Instanz offen
⚫ schwarz Unsichtbar Der Nutzer hat seinen Status verdeckt.
Der Online-Status ändert sich automatisch und kann manuell eingestellt werden. Der Online-Status kann durch Konfiguration Unsichtbar gemacht werden. :::warning Einige Funktionen, wie z. B. Benutzervorschläge, können auf der Grundlage des Online-Status verarbeitet werden. Wenn der Status privat gehalten wird, kann es für andere Benutzer schwieriger sein, dich zu finden. ::: ================================================ FILE: content/de/docs/2.for-users/3.features/pages.md ================================================ # Seiten Abseits von Notizen, können Seiten erstellt werden.V13 sind für statische Seiten bestimmt. :::warning Ab v13 kann Misskey Play anstelle der dynamischen Seitenerstellung durch Seiten verwendet werden. ::: ## Seiteneinstellungen Mit der Seite verknüpfte Inhalte einstellen.Die folgenden Felder können eingegeben werden: - Titel - Zusammenfassung - Seiten-URL - Zentrieren - Schriftart - Seitentitel, wenn angeheftet ausblenden - Vorschaubild entfernen ### Titel Gebe den Titel dieser Seite ein.Der Titel wird in einer Liste angezeigt. ### Zusammenfassung Geben Sie eine kurze Beschreibung an.Die Zusammenfassung wird in einer Liste angezeigt. ### Seiten-URL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### Zentrieren Wenn diese Option aktiviert ist, wird die Anzeige zentriert. ### Schriftart Wähle **serif** und/oder **sans serif**. ### Seitentitel wenn angeheftet ausblenden Blendet den Titel aus, wenn er gepinnt ist. ### Vorschaubild festlegen **Aufsehenerregendes Bild einstellen** Es ist möglich, die Vorschau, z. B. in einer Listenansicht anzuzeigen. ## Inhalte Der Seiteninhalt kann bearbeitet werden.Seiten können durch Kombination eines oder mehrerer der folgenden Blöcke erstellt werden. - Abschnitt - Text - Bild - Eingebettete Notiz ### Abschnitt Wird ein Titel festgelegt, so wird dieser als Überschrift behandelt.Es können ebenfalls zusätzlich Blöcke plaziert werden. ### Text Gebe hier Text ein.MFM und benutzerdefinierte Emojis können verwendet werden. ### Bild Zeigt ein Bild an.Lade die Daten via "Drive" hoch um diese in Misskey verwenden zu können. ### Eingebettete Notiz Eingebettete Notizen sind mit einer Notiz-ID gekennzeichnet, diese kann gesucht werden.Sollte ein anderer Server eingebettet werden, so ist dessen URL einzutragen. ================================================ FILE: content/de/docs/2.for-users/3.features/plugin.md ================================================ # Plugins Misskey Web verfügt über eine Plug-in-Funktion, mit der Nutzer die Funktionalität von Misskey Web erweitern können. Informationen über die Erstellung eines Plugins findest du [hier](../../for-developers/plugin/create-plugin). ================================================ FILE: content/de/docs/2.for-users/3.features/poll.md ================================================ # Umfrage Umfragen sind ein einfacher Weg, um Feedback von anderen zu erhalten. ## Umfragen in Notizen einbinden Umfragen können als Anhänge zu [Notizen](/docs/for-users/features/note) eingereicht werden.Um eine Umfrage an die Notiz anzuhängen, wähle die Schaltfläche „Umfrage“ am Ende des Formulars. ## Erhöhen Sie die Anzahl der Optionen Es können bis zu 10 Optionen in eine Umfrage eingetragen werden.Eingabefelder für Optionen können durch Drücken der Schaltfläche „Hinzufügen“ hinzugefügt werden. Eingabefelder, die zu viel wurden, können durch Drücken der Dis-Taste neben dem Eingabefeld gelöscht werden. :::warning Wenn eines der Eingabefelder leer ist, kann die Notiz, an die der Fragebogen angehängt ist, nicht übermittelt werden. ::: ## Mehrere Antworten erlauben Durch Aktivieren des Schalters „Mehrfachantworten erlaubt“ können die Umfrageteilnehmer für mehr als eine Option stimmen. ## Frist für die Umfrage festlegen Umfragen können mit einer Frist versehen werden, entweder durch Angabe eines Datums und einer Uhrzeit oder durch Angabe eines Zeitraums. Klicke dazu im Feld „Fälligkeitsdatum“ auf „Datum und Uhrzeit angeben“ oder „Verstrichene Zeit angeben“. Um eine gesetzte Frist aufzuheben, wähle im Feld „Frist“ die Option „Unbefristet“. ## Antworten auf Umfragen Wenn eine Notiz mit einer angehängten Umfrage durch die Timeline fließt, können alle für die Umfrage stimmen. Um an der Umfrage teilzunehmen, klicke auf eine oder mehrere Option/en.Wenn der Nutzer, der die Umfrage absendet, die Umfrage nicht so eingestellt hat, dass mehrere Beantwortungen möglich sind, werden die Ergebnisse der Umfrage zu diesem Zeitpunkt angezeigt. Wenn der Nutzer, der die Umfrage einreicht, die Umfrage so eingestellt hat, dass er mehrere Antworten zulässt, kann er auch für andere Optionen stimmen,in diesem Fall werden die Ergebnisse nicht automatisch angezeigt. Unabhängig von den Einstellungen für die Mehrfachbeantwortung können, die Ergebnisse der Umfrage nicht automatisch ansehen, bzw. wenn die Ergebnisse vor der Abstimmung angesehen werden sollen, auf „Ergebnisse anzeigen“ unterhalb der Optionen klicken, um die Ergebnisse der Umfrage anzuzeigen. Unabhängig von den Einstellungen für die Mehrfachbeantwortung kann, wenn die Ergebnisse der Umfrage nicht automatisch angezeigt werden oder die Ergebnisse vor der Abstimmung angezeigt werden soll, auf „Ergebnisse anzeigen“ unterhalb der Optionen klicken, um die Ergebnisse der Umfrage anzuzeigen. :::tip Unabgestimmte Umfragen können weiterhin abgestimmt werden, wobei die Ergebnisse angezeigt werden. ::: Wenn abstimmt wurde, wird die Option, für die du gestimmt hast, angekreuzt. ================================================ FILE: content/de/docs/2.for-users/3.features/reaction.md ================================================ # Eine Reaktion hinzufügen Verleih deinen Gedanken über die Beiträge anderer durch Reaktionen einfach Ausdruck. Um auf einen Beitrag zu reagieren, drücke das "+"-Symbol, das mit dem Beitrag angezeigt wird, und wähle ein Emoji. Es ist ebenso möglich, mit [Benutzerdefinierten Emojis](./custom-emoji.md) zu reagieren. ## Anpassung der Reaktionsauswahl Die in der Reaktionsauswahl angezeigten Emojis können angepasst werden. Dies ist in den Einstellungen im Unterpunkt "Reaktionen" möglich. ## Reaktionen auf Beiträge von anderen Servern Da Reaktionen eine Misskey-spezifische Funktionalität sind, werden diese von nicht-Misskey Instanzen meist als "Like"-Aktivität interpretiert.Im Allgemeinen sind Likes als „Favoriten“ implementiert. ## Reaktionen von Benutzern anderer Server Werden von entfernten Servern "Like"-Aktivitäten gesendet, so werden diese von Misskey als "👍"-Reaktion interpretiert. ## Liste einiger individueller Reaktionen Auf Misskey Web kann eine Liste der vom Nutzer abgegebenen Reaktionen eingesehen werden, indem auf die Profilseite die Registerkarte „Reaktionen“ geöffnet wird. Diese Liste der Reaktionen kann auch in den Einstellungen öffentlich gemacht werden. ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/de/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/de/docs/2.for-users/3.features/share-form.md ================================================ # Formular teilen Öffne `/share` auf Misskey Web, um das Einreichungsformular zum Teilen zu öffnen.Dieses Freigabeformular ist nützlich, wenn Benutzer Seiteninhalte mit Misskey von einer externen Webseite aus teilen. In der URL können mehrere Optionen angegeben werden, einschließlich des gemeinsamen Inhalts als Abfrageparameter. ## Abfrage-Parameter :::tip Alle Parameter sind **optional** und nicht obligatorisch. ::: | Name | Beschreibung | | ------- | -------------------------------------------------------------------------------------------------- | | `title` | Titel[ … ] wird am Anfang des Textes eingefügt | | `text` | Text | | `url` | URLwird am Ende des Textes eingefügt | ### Informationen zu Antworten Eine der folgenden Möglichkeiten kann als Antwort auf eine bestimmte Notiz angegeben werden. | Name | Beschreibung | | ---------- | ---------------------------------------------------------------------------- | | `replyId` | Notiz-ID, an die die Antwort gesendet wird | | `replyUri` | URL zum Antworten(Geben Sie das entfernte Notizobjekt an) | ### Renote melden Renote (Zitat) für eine bestimmte Notiz erstellen, indem eine der folgenden Angaben gemacht werden. | Name | Beschreibung | | ----------- | ------------------------------------------------------------------------------- | | `renoteId` | Notiz-ID des Renote-Ziels | | `renoteUri` | URL des Renote-Ziels(Geben Sie das entfernte Notizobjekt an) | ### Sichtbarkeit Die folgenden Optionen können verwendet werden, um den Umfang der Veröffentlichung festzulegen. | Name | Beschreibung | | ---------------- | ------------------------------------------------------------------------------------------ | | `visibility` | `public`, `home`, `followers`, `specified` | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | Ziel-User-ID (durch Komma getrennt) | | `visibleAccts` | Zielbenutzer [acct](../resources/glossary/#acct) (durch Komma getrennt) | :::warning Wenn für „visibility“ „specified“ angegeben wird, müssen auch „VisibleUserIds“ oder „VisibleAccts“ angegeben werden. ::: ### Anhang Die folgenden Optionen können verwendet werden, um Anhänge zu spezifizieren. | Name | Beschreibung | | --------- | -------------------------------------------------------------------- | | `fileIds` | ID der anzuhängenden Datei (durch Komma getrennt) | ## Über den gemeinsamen Formular-Relay-Service von Misskey Hub Der neue Misskey Hub bietet einen Relay Service für die Freigabe von Formularen, um den Schweregrad der Einrichtung von Misskey Share Buttons zu reduzieren. Dieser Dienst ist kostenlos und steht jedem offen. Einfach den Domain-Teil jedes Servers den bestehenden gemeinsamen Formular-Links in `misskey-hub.net` ändern und es wird sich in einen gemeinsamen Link zu den verschiedenen Misskey-Servern verwandeln! :::tip Versuche auch mal den [share button generator](/tools/share-link-generator/) ::: :::warning Der Shared Form Relay Service (im Folgenden als „Service“ bezeichnet) ist eine kostenlose und nicht garantierte Funktion, die von Misskey Project (im Folgenden als „wir“ bezeichnet) für die Bequemlichkeit von Website-Administratoren bereitgestellt wird.Wir haften nicht für Verluste oder Schäden, die sich aus der Nutzung dieses Dienstes oder aus der Unfähigkeit, ihn zu nutzen, ergeben. ::: ### Basis-Parameter Grundsätzlich können die oben vorgestellten Parameter so verwendet werden, wie sie sind. Es können keine Parameter verwendet werden, die **vom jeweiligen Server abhängig sind, wie z. B. Benutzer- und Datei-IDs.** Wenn sie gemeldet wurden, werden sie aus dem Misskey Hub gelöscht. ### Exklusive Funktionen #### Empfohlene Serverfunktionen Durch Eingabe der Domäne des Misskey-Servers in den URL-Parameter `manualInstance` kann ein Link zu diesem Server in einem separaten Feld als 'Empfehlung der Website der Freigabequelle' platziert werden.Beispielsweise, um Besucher auf den eigenen Server zu leiten. :::warning Die Funktion „Empfohlener Server“ ist eine Funktion, die für die Bequemlichkeit von Website-Administratoren eingerichtet wurde, und bedeutet nicht, dass wir die Server im Feld „Empfehlungen von der Share Source Website“ empfehlen. WICHTIG: Wir haften nicht für Schäden oder Nachteile, die sich aus der Nutzung oder Registrierung von Servern ergeben, die von „Recommendations from the Share Source Website“ übernommen wurden. ::: ================================================ FILE: content/de/docs/2.for-users/3.features/silence.md ================================================ # Instanzweit stummschalten Stummschaltung ist einer der Zustände, die für ein Konto festgelegt werden. Wenn das Konto stummgeschaltet wird, kann der öffentliche Bereich deiner Notizen nicht mehr auf "öffentlich" gesetzt werden. Home, Follower und Direct sind auswählbar, d. h. auch wenn du stummgeschaltet bist, können Follower und direkte Besucher die Benutzerseite deiner Beiträge weiterhin sichtbar sein. Allerdings nicht in der GTL (Förderierten-Timeline) oder LTL (Lokale-Timeline). Der Status der Kontostille wird vom Server-Moderator aktiviert/deaktiviert. ================================================ FILE: content/de/docs/2.for-users/3.features/theme.md ================================================ # Farbschema Durch die Verwendung von Farbthemen kann das Aussehen des Misskey-Clients verändert werden. ## Designeinstellungen [Einstellungen > Darstellung](x-mi-web://settings/theme) ## Erstellung eines Themas Themencodes werden im Format eines JSON5-Objekts gespeichert. Themen werden wie das folgende Objekt dargestellt: ```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` ... Die einzigartige Identifikation des Themas.Verwendung von UUIDs ist empfohlen. - `name` ... Themen-Name - `author` ... Ersteller des Themas - `desc` ... Beschreibung des Themas (optional) - `base` ... Ob dies ein Thema für den Hell- oder Dunkelmodus ist - Wird light angegeben, so wird es als Thema des Hellmodus angezeigt, wird dark angegeben, so wird es als Thema des Dunkelmodus angezeigt. - Das Thema erbt die Eigenschaften der hier eingestellten Vorlage. - `props` ... Definitionen der Themenoptionen.Diese werden im folgenden erläutert. ### Definition von Themenoptionen Unter `props` wird der Stil des Themas definiert. Der Schlüssel ist der Name der CSS-Variable und der Wert gibt den Inhalt an. Beachte, dass dieses „props“-Objekt vom Basisthema erbt. Das Basisthema ist [\_light.json5][_light.json5], wenn die `Basis` dieses Themas `light` ist und [\_dark.json5][_dark.json5], wenn es `dark` ist. Das bedeutet, dass, auch wenn es in diesem Thema keinen Schlüssel `props` mit `panel` gibt, angenommen wird, dass es ein `panel` des Basisthemas gibt. - [_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 #### Syntax für Wertangaben - Hexadezimalfarben - Beispiel: „#00ff00“ - \`RGB-Farben mit rgb(r, g, b)-Syntax - z.B.: rgb(0, 255, 0)\` - \`RGBA-Farben mit rgb(r, g, b, a)-Syntax - z.B.: rgba(0, 255, 0, 0.5)\` - Werte anderer Schlüssel referenzieren - Durch das angeben von @{Schlüsselname} wird dies durch eine Referenz auf den Wert des gegebenen Schlüssels ersetzt.Ersetze {Schlüsselname} mit dem Namen des Schlüssels, der referenziert werden soll. - Beispiel: `@panel` - Konstantenreferenz (später erläutert) - Durch das angeben von ${Konstantenname} wird dies durch eine Referenz auf den Wert der angegebenen Konstante ersetzt.Ersetze {Konstantenname} durch den Namen der Konstanten, die referenziert werden soll. - Beispiel: `$main` - Funktionen (später erläutert) - `:{Funktionsname}{Parameter}{Farbe}` #### Konstante In Fällen, in denen ein Wert nicht als CSS-Variable angesehen werden soll, sondern als Wert für eine andere CSS-Variable verwendet werden soll, eignet sich die Verwendung einer Konstante. Wird ein Wert mit einem $-Präfix versehen, so wird er nicht als CSS-Variable, sondern als Referenz angesehen. #### Funktionen Funktionen sind nützlich, wenn du eine Farbe verwenden möchtest, die leicht von einer bestehenden Farbe abweicht, z. B. „Ich möchte die Farbe nur aufhellen, wenn ich den Mauszeiger über eine Schaltfläche bewege“. Sie kann in der Form `:{Funktionsname}<{Argumente}<{Verweis auf Farbe oder anderen Schlüssel}` verwendet werden. ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### Vorhandene Funktionen - `lighten` ... Gibt die Farbe der übergebenen Farbe zurück, wobei das Argument (0 ~ 100) zur Leuchtdichte (0 ~ 100) der übergebenen Farbe addiert wird. - `darken` ... Gibt die von dem Argument (0 ~ 100) subtrahierte Farbe für die übergebene Farbhelligkeit (0 ~ 100) zurück - `alpha` ... Gibt eine Farbe zurück, bei der die Transparenz der übergebenen Farbe auf das Argument (0.0 ~ 1.0) eingestellt ist - Vollständig transparent bei 0,0, vollständig undurchsichtig bei 1,0 - `hue` ... Gibt die um den Wert des Arguments (-360 ~ 360) gedrehte Farbe für den übergebenen Farbton (-360 ~ 360) zurück - `saturate` ... Gibt die Farbe des Arguments (0 ~ 100) addiert mit der Sättigung (0 ~ 100) der übergebenen Farbe zurück ## Erstellung eines Themas Ab v2023.11.0 können Sie Themes mit einem einzigen Klick direkt von Ihrer Website aus installieren. Falls Funktionen zur Installation von Themen angeboten werden, muss eine API auf Ihrer Website implementiert werden.Für weitere Informationen [hier klicken](../../for-developers/publish-on-your-website/) ================================================ FILE: content/de/docs/2.for-users/3.features/thread-mute.md ================================================ # Thread stummschalten :::tip Dies ist eine Funktion ab Version 12.95.0. ::: Thread Mute schaltet den Thread der angegebenen Notiz stumm.Ein Thread besteht aus allen Antworten, die ausgehend von einer Startnotiz miteinander verbunden sind. Wenn ein Thema stummgeschalten wird, wird nicht mehr über neue Antworten auf das Thema und an dich gerichtete Erwähnungen in den Antworten benachrichtigt, und sie erscheinen auch nicht mehr im Abschnitt „an dich gerichtet“. Um einen Thread in Misskey Web stumm zu schalten, öffne das Menü einer beliebigen Notiz oder Startnotiz, die zu dem betreffenden Thread gehört, und wählen Sie „Thread stummschalten“. :::warning Der gesamte Thread wird stummgeschaltet, unabhängig davon, von welcher Notiz im Thread aus die Stummschaltung durchgeführt wird. ::: ================================================ FILE: content/de/docs/2.for-users/3.features/timeline.md ================================================ # Timeline Die Zeitleiste ist eine Funktion, bei der [Notizen](/docs/for-users/features/note/) in chronologischer Reihenfolge angezeigt werden. Es gibt verschiedene Arten von Zeitleisten, wie unten gezeigt, und die angezeigten Notizen unterscheiden sich je nach Typ. Beachten Sie, dass einige Zeitleisten-Typen auf manchen Servern deaktiviert sein können. ## Startseite Alle Beiträge von Benutzern, denen gefolgt wird。(Abgekürzt als HTL) ## Lokal Alle Beiträge von lokalen Benutzern, die nicht auf "Startseite" gesetzt sind。(Abgekürzt als LTL) ## Sozial Alle Beiträge von Benutzern, denen gefolgt wird sowie alle Beiträge von lokalen Benutzern, die nicht auf "Startseite" gesetzt sind。(Abgekürzt als STL) ## Global Alle Beiträge von lokalen Benutzern, die nicht auf "Startseite" gesetzt sind sowie alle nicht auf "Startseite" gesetzen Beiträge von Benutzern entfernter Server, die den verwendeten Server erreichen.(Abgekürzt als GLT) ## Vergleich
Quelle Sichtbarkeit Timeline
Home Lokal Sozial Global
Lokal (folgen) Öffentlich
Startseite
Follower
Extern(folgen) Öffentlich
Startseite
Follower
Lokal (ohne Follower) Öffentlich
Startseite
Follower
Extern (ohne Follower) Öffentlich
================================================ FILE: content/de/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip Funktionalität ab Version 12.109.0. ::: :::warning Da es sich um eine experimentelle Funktion handelt, kann sie instabil sein oder die Spezifikationen können sich in Zukunft ändern. ::: Für Misskey wird ein Webhook bereitgestellt.Mit Webhook können verschiedene Ereignisse auf Misskey in Echtzeit empfangen werden. Webhook unter [Einstellungen > Webhook](x-mi-web://settings/webhook) verwalten Sobald ein Webhook registriert ist, wird eine HTTP-Anfrage an die angegebene URL gesendet, wenn das angegebene Ereignis eintritt.Die Methode der Anfrage ist POST und der Körper ist JSON. Außerdem enthält der Header der Anfrage das bei der Registrierung festgelegtes Geheimnis mit dem Namen „X-Misskey-Hook-Secret“.Durch die Überprüfung dieses Geheimnisses kann festgestellt werden, ob die Anfrage sicher ist. Die Nutzlast der Anfrage enthält die folgenden Eigenschaften: Wenn der Zielserver einen 5xx-Fehler zurückgibt oder nicht antwortet, wird die Anfrage nach einer gewissen Zeit erneut gesendet. Webhooks können über den Verwaltungsbildschirm individuell in den aktiven Status geändert werden und kann das Senden von Anfragen vorübergehend einstellen. ## Event Beschreibung und Nutzlast für jedes Ereignis. ### Follow Tritt auf, wenn du jemanden folgst. ### followed Tritt auf, wenn dir jemand folgt. ### unfollow Tritt auf, wenn du jemanden entfolgst. ### Notiz Dies geschieht, wenn eine Notiz veröffentlicht wird. ### reply Tritt auf, wenn eine Anwort veröffentlicht wird ### renote Tritt auf, wenn jemand deine Notiz zitiert ### mention Tritt auf, wenn dich jemand erwähnt ================================================ FILE: content/de/docs/2.for-users/3.features/widgets.md ================================================ # Widgets Widgets sind kleine Informations- und Bedienelemente, die auf der Misskey-Benutzeroberfläche platziert werden können. Um ein Widget zu bearbeiten, wechsel in den Widget-Bearbeitungsmodus.Die Art und Weise, wie zwischen ihn gewechselt werden kann, hängt von der Benutzeroberfläche ab. Im Widget-Bearbeitungsmodus können Widgets hinzugefügt, gelöscht und neu angeordnet werden, sowie die Einstellungen für jedes Widget konfigurieren. ## Liste der verfügbaren Widgets - Profil - Serverinformationen - Notizen - Timeline - Kalender - RSS-Reader - RSS-Ticker - Trends - Uhr - Aktivität - Fotos - Benutzerdefinierte Uhr - UNIX-Uhr - Fediversum - Instanzwolke - Notizfenster - Diashow - Servermetriken - Online-Benutzer - Auftragswarteschlange - Schaltfläche - AiScript-Konsole - AiScript-Anwendung - Ai - Benutzerliste - Klickzähler ### Profil Anzeigename, Benutzername, Avatarbild und Bannerbild,wenn du mehrere Konten verwendest, ist es einfacher, die verwendeten Benutzernamen zu sehen. ### Serverinformationen Servername, Domain, Symbolbild und Banner ### Notizen Inhalt, welcher in die Notize geschrieben worden ist ### Timeline Zeigt die Timeline.Zwischen den Ansichten: Home, Local, Social und Global wechseln. ### Kalender Zeigt das heutige Datum, den Wochentag, den heutigen Tag, diesen Monat und dieses Jahr in Prozent an.In der Standard-Benutzeroberfläche wird sie von Anfang an angezeigt. ### RSS-Reader Listet die Titel der RSS-Feeds auf. ### RSS-Ticker Zeigt RSS-Feeds an. ### Trends Zeigt die zuletzt verwendeten Hashtags an. ### Uhr Zeigt die aktuelle Uhrzeit an. ### Aktivität Zeigt die letzte Aktivitäten deines Profils an. ### Fotos Zeigt die aktuellen Inhalte im "Drive" an ### Digitaluhr Zeigt die aktuelle Uhrzeit an. ### UNIX-Uhr Zeigt die aktuelle Uhrzeit vom Server an. ### Fediversum Zeigt die Förderierten Server an ### Hemisphärische Anzeige des Server. ### Notizfenster Feste Anzeige des Formulars, in dem die Notiz eingereicht wird. ### Diashow Zeigt den Inhalt eines bestimmten Ordners im Drive an. ### Servermetriken Zeigt die CPU, den Arbeitsspeicher, den Netzwerkverkehr und die Speicherkapazität des Servers an.Abhängig von der Serverumgebung ist eine Anzeige möglicherweise nicht möglich. ### Benutzer Online Zeigt die Anzahl der Benutzer an, die derzeit online sind. ### Auftragswarteschlange Zeigt die aktuelle Auftragswarteschlange an. ### Schaltfläche Zeigt ein Bild an.Der Vorgang wird in AIScript geschrieben. ### AiScript-Konsole Zeigt eine Konsole an, auf der AiScripts ausgeführt werden. ### AiScript-Anwendung Zeigt aktuelle AiScript-Anwendungen an.Misskey Play verwendet dieselbe Oberfläche.(Ab Version13) ### Ai Zeigt Ai, der Blick richtet sich nach dem Courser aus. ### Benutzerliste Liste anzeigenMehr! Lege es in der Liste fest. ### Cookies Cookies anzeigenKlicken/tippen Sie auf die Cookies ================================================ FILE: content/de/docs/2.for-users/3.features/word-mute.md ================================================ # Wortstummschaltung ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 Word Mute unter [„Einstellungen“ > „Stumm und Blockieren“](x-mi-web://settings/mute-block) einrichten. ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/de/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: 'Problembehebungen und mögliche Lösungen' --- # Fehlerbehebung :::tip Versuche das [FAQ](./faq.md), möglicherweise kann das weiterhelfen. ::: Auf ein Problem gestoßen? Prüfe bitte zuerst hier nach einer möglichen Lösung. Wenn keiner der Punkte zutrifft oder das Problem nach dem Ausprobieren der Schritte weiterhin besteht, wenden Sie sich bitte an Ihren Serveradministrator oder an [Problem melden](../../about-misskey/#mitreden). ## Client startet nicht In den meisten Fällen ist dies auf eine veraltete Version des Browsers oder Betriebssystems zurückzuführen. Aktualisiere den Browser und das Betriebssystem auf die neueste Version und versuche es erneut. Prüfe ebenfalls deinen Cache,leere diesen und Versuche es erneut. ## Seite kann nicht geladen werden (Loop) Überprüfe die Netzwerkverbindung und schalte ggf. Adblocker aus.Stelle sicher, dass der Server läuft und von aussen erreichbar ist. In seltenen Fällen könnte der Zwischenspeicher(RAM) Probleme bereiten.Lösche deinen Browser-Cache und starte den Brower neu, versuche dich erneut mit dem Server zu verbinden. Überprüfe ob der Adblocker noch aktiv ist und schalte ihn ggf. temporär aus (ebenfalls sollte es reichen, die Server-URL als Whitelist hinzuzufügen). Sollte das Problem bestehen bleiben, kontaktiere deinen Server-Admin oder dein Hosting-Provider, da dies auf eine Serverseitige Störung hinweist. ## Der Client läd´ langsamer als sonst Überprüfe deine Internetverbindung, mache ggf. einen speedtest und überprüfe, ob es auf der Serverseite eine Störung oder Wartung gibt. Sollte dies nicht funktionieren, versuche folgende Möglichkeiten: 1.Misskey Web-Einstellungen Öffnen im Menü die Einstellungen, dann Allgemeine Client-Einstellungen und probiere die folgenden Einstellungen aus. - Aktiviere die Option „UI-Animation reduzieren“ in „Erscheinungsbild“ - Deaktiviere die Option „Unschärfeeffekt für Modals verwenden“ in der Darstellung - Aktiviere die Option „Systemstandardschriftart verwenden“ unter „Erscheinungsbild“ - Aktiviere die Option „Betriebssystemeigene Piktogramme verwenden“ unter „Erscheinungsbild“ Versuche die folgenden Einstellungen, mit dem Wissen, dass dadurch einige Misskey-Funktionen nicht funktionieren werden: - Deaktiviere 'Seiten-Skripting deaktivieren' im Verhalten - Aktiviere die Option „MFM in Bewegung deaktivieren“ unter „Erscheinungsbild“ 2. Einstellungen des Webbrowsers - Aktiviere die Hardware-Beschleunigung in den Einstellungen Ihres Webbrowsers - Deaktiviere Add-ons und Erweiterungen auf deinem Browser - Überprüfe ggf. die restlichen Einstellungen in deinem Browser. 3. Sonstiges - Überprüfe die Systemeinstellungen Ihres PCs oder Smartphones. ## Einige Teile der Misskey Web UI werden nicht korrekt dargestellt (z.B. Hintergrund ist transparent). Wenn die Benutzeroberfläche durch eine Aktualisierung geändert wurde, kann das Cache-System des Themas eine solche Anzeige verursachen. (Lösche den Cache in den Client-Einstellungen) :::warning Der Cache des „Clients“ wird gelöscht.Lösche nicht den Cache des Browsers. ::: ## Blinkende Benachrichtigungen, Antennen usw. werden nicht ausgelöst. Blinken zeigt an, dass ungelesene Inhalte vorhanden sind.Wenn das Blinken nicht verschwindet, Versiche die Inhalte noch einmal durchzusehen und festzustellen, dass einige Inhalte auf ungelesen bleiben. Falls, alles gelesen ist, und das Blinken immer noch anhält (wahrscheinlich eine Störung), kann das in den Einstellungen erzwungen werden, dass alles als gelesen markiert wird. ## Renote funktioniert nicht Notizen und DMs, deren öffentliche Reichweite auf Follower beschränkt ist, können nicht umgewidmet werden. ## Bestimmte Elemente sind auf der Misskey Web UI nicht sichtbar Deaktiviere Browser Add-Ons und AdBlocker.Überprüfe die Einstellungen und Versuche es erneut. ## Unübersetzte Abschnitte auf der Misskey Web UI In den meisten Fällen liegt dies daran, dass die Misskey Web UI nicht rechtzeitig übersetzt wurde, es handelt sich also nicht um eine Störung.Habe etwas gedult, bis wir das entsprechende Sprachpaket fertiggestellt haben. Gerne kannst du ebenfalls bei der Übersetzung von Misskey [unterstützen](.../.../about-misskey/#übersetze). ================================================ FILE: content/de/docs/2.for-users/4.resources/_dir.yml ================================================ title: "Weitere Ressourcen" description: "Informationen über nicht-funktionales Wissen und was zu tun ist, falls ein Problem auftreten sollte." ================================================ FILE: content/de/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Anwendungen für die Verwendung von Misskey' --- # Anwendungen Einführung in die Anwendung (Client) zur Nutzung von Misskey Logge dich über einen Browser auf dem Misskey-Server ein und du landest auf der aktuellen Timeline.Der offizielle Misskey-Client, der zurzeit angezeigt wird, ist **Misskey Web**.Unsere Website unterstützt ebenfalls PWA, sodass sie auch als native App über den Browser funktionieren kann.Informationen über die Einrichtung einer PWA gibt es [hier](/docs/for-users/stepped-guides/how-to-use-pwa/).Aktuell befinden sich keine offiziellen Progamme bzw. iOS/Android-Apps in Entwicklung! Sobald du dich an das Interface gewöhnt hast, können wir die von Freiwilligen entwickelten INOFFIZIELLEN Anwendungen ausprobieren.Hier sind einige weit verbreitete Anwendungen (in alphabetischer Reihenfolge): - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): ermöglicht den schnellen Zugriff auf die Timeline und spezifische Suchergebnisse über eine Registerkarte.Ermöglicht es Benutzern, anderen Benutzern Spitznamen zu geben.[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)| [Repository](https://github.com/pantasystem/Milktea) - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[Homepage](https://shiosyakeyakini.info/miria_web/index.html)| [App Store](https://apps.apple.com/jp/app/miria/id6449201469)| [Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): iOS/Android-Client für Misskey.Die Benutzeroberfläche ist fast identisch mit der von Misskey Web (v13) und es sind Push-Benachrichtigungen verfügbar.[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): wurde mit dem Ziel entwickelt, eine intuitive, für Smartphones geeignete Benutzerfreundlichkeit zu bieten.[Homepage](https://yuiga.dev/misscat/)| [Repository](https://github.com/YuigaWada/MissCat) - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[Repository](https://uakihir0.github.io/socialhub/)| [App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582) - **ZonePane** (Android): ermöglicht Timelines, Listen und Kanäle mit Registerkarten.Ausgezeichnetes LesemanagementTwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane) - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [Homepage](https://b123400.net/tootrain/ja) | [Repository](https://github.com/b123400/TootRain) Misskey wird ständig mit neuen Funktionen aktualisiert, wodurch sich die Unterstützung für die neuesten Funktionen manchmal verzögern kann.Die beste Erfahrung erhältst du mit unserer Webapp ================================================ FILE: content/de/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Dieser Abschnitt enthält häufig gestellte Fragen zur Verwendung von Misskey.' --- # FAQ - Häufig gestellte Fragen Dieser Abschnitt enthält häufig gestellte Fragen zur Verwendung von Misskey.
Häufig gestellte Fragen zum Misskey-Projekt selbst findest du [hier](../../about-misskey#faq-häufig-gestellte-fragen) ## Gibt es eine Android/iOS-App? Das Misskey-Projekt entwickelt keine nativen Anwendungen für solche mobilen Betriebssysteme, aber es sind mehrere Anwendungen von Drittanbietern verfügbar.Weitere Details dazu findest du [hier](./apps).
Allerdings hinken Anwendungen von Drittanbietern bei der Unterstützung der neuesten Misskey-Funktionen zwangsläufig hinterher. Wenn es also keine besondere Vorliebe gibt, empfehlen wir, Misskey Web, den offiziellen Web-Client von Misskey, zu verwenden.Beachte, dass Misskey Web PWA-kompatibel ist, d. h. es kann auch wie eine native App ausgeführt werden.Informationen über die Einrichtung einer PWA gibt es [hier](/docs/for-users/stepped-guides/how-to-use-pwa/). ## Kann ich mich mit der Mastodon-App anmelden? Misskey ist nicht mit der API von Mastodon kompatibel, sodass Anwendungen von Drittanbietern und Web-Clients für Mastodon bis auf wenige Ausnahmen Misskey nicht verwenden werden kann.
Verwende Misskey Web, den offiziellen Misskey Web-Client. ## Ist misskey.io ein offizieller Server des Misskey-Projekts? Nein. misskey.io ist kein offizieller Misskey-Server und ist nicht Teil des Misskey-Projekts.misskey.io ist derzeit der größte Server von Misskey, ohne spezifisches Thema, Generell und einfach zu registrieren ## Wie ist die Beziehung zu MisskeyHQ Ltd? MisskeyHQ Inc. ist das Unternehmen, das für den Betrieb von misskey.io verantwortlich ist.Es besteht also keine direkte Beziehung zu dem Misskey-Entwicklungsprojekt. Syuilo, der Leiter des Misskey-Projekts, ist auch Mitglied des Verwaltungsrats, und die Beziehung ist eine Zusammenarbeit bei der Entwicklung von Misskey. ## Woher stammt/kommt der Name 'Misskey'? Der Name stammt aus dem Text des May'n-Songs „Brain Diver“, den syuilo, der Hauptentwickler, zufällig hörte, als ihm der Name einfiel. ## Wie kann ich Benutzern von anderen Misskey- und Pleroma-Servern, Mastodon-Servern usw. folgen? Suche und gebe das Benutzerkonto in folgendem Format ein.Das Benutzerkonto enthält den Benutzernamen und den Hostnamen des Servers oder der Server, zu denen der Benutzer gehört.In vielen verteilten Programmen, nicht nur in Misskey, sondern auch in Mastodon und Pleroma, sind die folgenden Benutzerkontenformate üblich:
Externe-Benutzerkonten: `@ユーザー名@Hostnamen von Misskey- und Pleroma-Servern und Mastodon-Servern.`
Heimserver-Benutzerkonten: `@syuilo@misskey.io`
Das Format der Benutzerkonten ist nicht für jede verteilte Software gleich, aber dieses Format ermöglicht es Benutzern, Benutzern auf anderen Servern oder Servern, auf denen verschiedene verteilte Software implementiert ist, zu folgen. ## Wie kann ich einen Renote entfernen? Klicken neben der Renote-Zeitanzeige auf „…“ und wählen Sie „Renote abbrechen“ aus.
Weitere Informationen zu [Renote](../features/note/#renote). ## Ich möchte keine Vorschau der URL in der Notiz Misskeys eigene Auszeichnungssprache namens MFM (Markup language For Misskey) hat eine Syntax, die die URL-Vorschau deaktiviert.Weitere Einzelheiten finden Sie im MFM-Leitfaden.Den MFM-Leitfaden finden Sie, indem Sie die folgende Adresse auf Ihrem Server eingeben:`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## Ich möchte benutzerdefinierte Emojis hinzufügen, bearbeiten oder löschen. Nur der Administrator des Servers, zu dem du gehörst, kann benutzerdefinierte Emojis hinzufügen, bearbeiten oder löschen.Wende dich hierbei an den Server-Betreiber. ## Ich möchte einen Bot entwickeln. Es kann ein Bot mit der Misskey-API entwickelt werden.Für weitere Informationen [hier klicken](../../for-developers/api/). ## Welcher Dienst wird für die Übersetzungsfunktion der Notizen verwendet? Für die Übersetzung verwenden wir [DeepL](https://www.deepl.com/). ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## Ich habe einen Server eingerichtet, muss ich meinem Internetanbieter (ISP) informieren? ### Kurze Antwort: **Ja**, wenn es aus einem **gewerblicher Zweck** ist.Ansonsten **nein**. ### Etwas Ausführlicher: // Zusatz vom Übersetzer: "Es gelten die Normen und Gesetze in deinem Land. Frage zur Sicherheit deinen Internetanbieter und überprüfe deinen Vertrag. Sollte ich mehr erfahren, ändere ich diesen Absatz entsprechend. Das Lokale hosten Daheim ist hingegen kein Problem [via Intranet/LAN]." ~ [TIZEN](https://mk.absturztau.be/@Tizen)Folgende Übersetzung gilt vorweg für das Land "Japan":Die Definition des Begriffs „Betreiber“ lautet laut [MIC-Dokument](https://www.soumu.go.jp/main_content/000477428.pdf): „eine Person, die beabsichtigt, Einnahmen aus der Erbringung einer Dienstleistung zu erzielen, indem sie eine Gebühr als Gegenleistung für die Dienstleistung erhebt“.Daher ist keine Anmeldung erforderlich, es sei denn, der Server wird zur Erzielung von Einnahmen als Unternehmen betrieben.Selbst wenn es also Einnahmen aus Spenden oder Werbung gibt, fallen diese nicht unter die Kategorie der meldepflichtigen Unternehmen, wenn sie nur zur Deckung der Betriebskosten des Servers dienen.(Bestätigt durch das Ministerium für innere Angelegenheiten und Kommunikation)
Weitere Informationen finden Sie in Dokumenten wie dem [Telecommunications Business Entry Manual] des Ministeriums für innere Angelegenheiten und Kommunikation (https://www.soumu.go.jp/main_content/000477428.pdf) oder wenden Sie sich an das Ministerium für innere Angelegenheiten und Kommunikation. ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## Kann ich Dienste mit „Misskey“ im Namen veröffentlichen? "Misskey“ ist ein eingetragenes Warenzeichen des Misskey-Projekts (Japan), aber es gibt keine Probleme mit der Veröffentlichung von Diensten, die ‚Misskey‘ im Namen enthalten (z. B. Misskey Tools). Es ist nicht geplant, in solchen Fällen Lizenzgebühren zu erheben. ================================================ FILE: content/de/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Glossar der Begriffe im Zusammenhang mit Misskey.' --- # Glossar Glossar der Begriffe im Zusammenhang mit Misskey. ## Acct Zeichenfolge der Form `@username@host`, die einen bestimmten Benutzer angibt.Wird zum Beispiel bei Erwähnungen verwendet. ## ActivityPub (gelesen: akuteibipabu)
Ein offenes Standardprotokoll (Spezifikation), das zur Bildung eines dezentralen und föderierten sozialen Netzwerks namens Fediverse verwendet wird.Die Server sind mit diesem Protokoll miteinander verbunden und tauschen Inhalte, Benachrichtigungen und andere Informationen untereinander aus.Sie ist für die Bildung von Fediverse-Netzwerken unerlässlich. ## AiScript (gelesen: Ais Kuriput)
Eine Programmiersprache, die in Misskey verwendet werden kann und auf JavaScript läuft.[Mehr erfahren](https://aiscript-dev.github.io/). ## API (gelesen: Erpiai)
Eine Schnittstelle, die vom Misskey-Server zur Verfügung gestellt wird, um Misskey aus Ihrem Programm zu verarbeiten.[Mehr Erfahren](../../for-developers/api). ## Bot (gelesen: Bot) Vom Programm verwaltetes Konto. ## CW Inhaltswarnung.Funktionen, mit denen der Inhalt von Notizen ohne Manipulation ausgeblendet werden kann.Sie wird hauptsächlich verwendet, um längere Inhalte zu verbergen oder Spoiler zu verhindern.[Mehr Erfahren](../features/note/#cw). ## Fediverse (gelesen: Fedi-Verse)
Ein Begriff, der durch die Kombination der Wörter „Föderation“ und „Universum“ geprägt wurde.Ein dezentralisiertes und föderiertes soziales Netzwerk, das aus Servern besteht, die eine Vielzahl von dezentralisierter Software implementieren, einschließlich Misskey.Zu den anderen dezentralisierten Programmen neben Misskey gehören Mastodon, Pleroma und Pixelfed. ## GLT Globale Timeline[Mehr Erfahren](../features/timeline). ## HTL Heimserver Timeline[Mehr Erfahren](../features/timeline). ## LTL Lokale Timeline[Mehr Erfahren](../features/timeline). ## MFM (gelesen: Emu-Ef-Emu)
Abkürzung für Markup language For Misskey, eine Markup-Sprache, die auf Misskey verwendet werden kann.[Mehr Erfahren](../features/note/mfm). ## Misskey Web (gelesen: Miss-Key-Web)
Offizieller Misskey-Web-Client (Schnittstelle).Wenn der Misskey-Server von einem PC, Smartphone oder einem anderen Webbrowser aufgerufen wird, wird er automatisch angezeigt. ## NSFW Not Safe for Work (zu deutsch: Nicht-Jugendfreie bzw, sensible Inhalte)Mit dieser Funktion können Bilder als „empfindlich“ eingestuft und nicht ohne Manipulation angezeigt werden. ## Renote Der Akt des Zitierens einer bereits vorhandenen Notiz oder der Freigabe dieser Notiz als neue Notiz und der damit erstellten Notizen.[Mehr Erfahren](../features/note/#renote). ## STL Globale Timeline[Mehr Erfahren](../features/timeline). ## Ai Sie ist das Maskottchen (offizieller Charakter) von Misskey.[Mehr Erfahren](https://xn--931a.moe). ## Instanzen To-do ## Benutzerdefinierte Emojis Emoji, die von den Administratoren und Benutzern der einzelnen Misskey-Server unabhängig voneinander erstellt werden.Normale Emoji, die keine benutzerdefinierten Piktogramme sind, werden separat als „Unicode-Piktogramme“ bezeichnet.[Mehr Erfahren](../features/custom-emoji). ## Systemsteuerung Verweist auf den Konfigurationsbildschirm des Misskey-Servers. ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## Gesperrt Bezieht sich auf den Zustand, in dem das Konto auf deaktiviert gesetzt ist. ## Drive Diese Funktion verwaltet Dateien wie Bilder und Musik, die von Benutzern auf die Server von Misskey hochgeladen werden.[Mehr Erfahren](../features/drive). ## Notizen Ein Beitrag, der von einem Benutzer auf dem Misskey-Server veröffentlicht wurde.Sie können eine Vielzahl von Misskey-eigenen Inhalten einbinden, wie z. B. Bilder, Musik und andere Dateien, Umfragen usw.[Mehr Erfahren](../features/note). ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## Misskist Benutzer mit Konten auf den Servern von Misskey.Oder der Begriff bezieht sich auf die stärksten Nutzer unter ihnen. ## Moderatoren Benutzer mit der Befugnis, den Betrieb des Servers zu überwachen, einschließlich des Einfrierens von Spam und des Löschens von stillgelegten oder unangemessenen Beiträgen.In vielen Fällen rekrutiert und stellt der Serveradministrator Moderatoren innerhalb des Servers ein. ## Externe Server - Instanzen - Remote andere Server oder Server.Es wird auch als Präfix verwendet, z. B. Remote User.Lokal Back-up ## Fediversum Es handelt sich um eine Sammlung von mehreren Servern oder Servern, die miteinander verbunden sind und Informationen, wie z. B. Inhalte und Benachrichtigungen, untereinander und mit Servern austauschen ## Lokal Bezieht sich auf den eigenen Server, manchmal auch "Heimserver" genannt.Es wird auch als Präfix verwendet, z. B. lokaler Benutzer, lokale TimelineDas Gegenteil von entfernt ================================================ FILE: content/de/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Über Misskey Hub Misskey Hub ist die offizielle Misskey-Website, die Wissen und andere Dokumentationen über Misskey, einen Entwickler-Blog und einen Plugin-Shop bereitstellt. Ziel ist es, dass sich hier alles um Misskey dreht. Misskey Hub ist auch [Open Source und öffentlich verfügbar](https://github.com/misskey-dev/misskey-hub). :::tip Misskey Hub ist eine statische Website, die mit Nuxt erstellt wurde. ::: ## Zum Misskey Hub beitragen Dokumentation & Übersetzen willkommen ================================================ FILE: content/de/docs/2.for-users/4.resources/self-xss.md ================================================ # Über Self-XSS-Angriffe ![](/img/docs/for-users/resources/self-xss/console_warn.png) Haben Sie diese Seite erreicht, nachdem Sie Misskey unter Anleitung durch jemand anderen verwendet haben und auf einen Bildschirm wie den oben gezeigten gestoßen sind? **Wahrscheinlich wurdest du von einem böswilligen Angreifer getäuscht.** Es werden keine Informationen an den Angreifer gesendet, solange du die angegebenen Inhalte (wahrscheinlich ein Programm) nicht eingibst.**Bitte unterbeche und stelle die Arbeit sofort ein!** Dieser Bildschirm ist ein Werkzeug namens "Konsole", das von Entwicklern zum Überprüfen von Code und Beheben von Fehlern verwendet wird. Im normalen Gebrauch ist dieser Bildschirm nicht erforderlich.\*\* ## Noch ein paar Informationen Bei einem Self-XSS-Angriff täuscht der Angreifer den Benutzer dazu, bösartigen Programmcode in die Entwicklertools des Browsers einzufügen.In diesem Fall wirst du mit folgenden Aussagen gelockt: - Es können versteckte Funktionen und Belohnungen freigeschaltet werden. - Man möchte, dass du diesen Code zur vermeindlichen Sicherheitstestung ausführst. - Du kannst eine Website hacken und unrechtmäßig Punkte erhalten. Wenn du durch solche Aussagen getäuscht wirst und den Code ausführst, führst du die vom Angreifer beabsichtigten Aktionen aus. Im Gegensatz zu den typischen "Cyberangriffen", die man sich vorstellt, erlangt ein Self-XSS-Angriff über reguläre, vom Benutzer genutzte Anwendungen Zugriff auf sensible Daten. Daher ist es wichtig, dass nicht nur das System selbst Schutzmaßnahmen ergreift, sondern auch wir als Gemeinschaft stets wachsam sind. ================================================ FILE: content/de/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # Schritt-für-Schritt Anleitung Dieser Abschnitt enthält eine schrittweise Anleitung zu den komplexen Vorgängen bei der Verwendung von Misskey. :::warning Dieser Bereich befindet sich noch in der BETA.Inhalte können unvollständig sein. ::: ================================================ FILE: content/de/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "Schritt-für-Schritt Anleitung" description: "Wir erklären ausführlich Schritt für Schritt, wie Misskey verwendet wird. Wenn du nicht weißt, wie es funktioniert, schaue hier nach!" ================================================ FILE: content/de/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "Mein Konto löschen" description: "Erfahre, wie du dein Konto löschen kannst." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Manche Menschen möchten ihr Misskey-Konto löschen, weil sie es z. B. nicht mehr benötigen. Auf dieser Seite erklären wir, - Informationen über das Löschen - Was du beim Löschen beachten solltest - Wie du dein Konto löschen kannst ::danger Wir werden später noch genauer erläutern, wie die **Löschung deines Kontos** sich bei einer Neuanmeldung auswirken kann. Bitte sei sehr vorsichtig, wenn du den **Account endgültig löschen.** willst. ::: ## Das Löschen eines Kontos hat folgende Auswirkungen: - Es kann sich nicht mehr in das Konto angemeldet werden. - Die Daten werden im Laufe der Zeit gelöscht - Es kann, nie wieder, die gleiche ID ausgewählt werden. Nach dem Eingang der Löschung, kann keine Änderung mehr am Account durchgeführt werden. ### **Es gibt keine Wiederherstellungsfunktion im Falle einer versehentlichen Löschung.** ### Das Löschen von Daten ist ein sehr zeitaufwändiger Vorgang, daher wird die Datenlöschung zeitnah durchgeführt, um die Systemlast schnell wieder freigeben zu können. Bitte beachte, dass nicht alle Daten gleichzeitig mit der Löschung des Kontos gelöscht werden. ### Dieselbe ID kann nicht mehr verwendet werden Aufgrund des Fediversums kann eine einmal erhaltene ID (der `@someone`-Teil von `@someone@misskey.example.com`) derzeit **nicht mehr verwendet werden**. Bitte beachte, dass die gleiche ID nicht noch einmal auf dem gleichen Server verwenden werden kann. --------------- Wenn du mit diesen Bedinungen Einverstanden bist und das Konto trotzdem löschen möchtest, wähle bitte unten den Gerätetyp aus und lösche das Konto. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Smartphone" steps: - title: "Einstellungen" image: "sp/1.png" description: | Öffne Misskey, tippe auf die Schaltfläche „≡“ unten rechts auf dem Bildschirm und dann auf „Einstellungen“ im angezeigten Menü. - title: "Tippe auf „Sonstiges“" image: "sp/2.png" description: | Suche in der Kategorie Einstellungen die Option "Sicherheit" und tippe darauf. - title: "Tippe auf „Kontolöschung anfordern“" image: "sp/3.png" description: | Tippe auf „Konto schließen“, prüfe die Hinweise und tippe auf „Kontolöschung beantragen“. - title: "Passwort eingeben" image: "sp/4.png" description: | Gebe bei sicherheitsrelevanten Einstellungen das Passwort ein, mit dem du dich zur Bestätigung bei deinem Konto anmeldest. - title: "Antrag auf Kontolöschung abgeschlossen" image: "sp/5.png" description: | Wenn dieser Bildschirm erscheint, ist die Anfrage zum Löschen des Kontos abgeschlossen. Tippe „Okay“, um dich vom Misskey-Server abzumelden. - _AUTOSELECT_TYPE_: "HARD_PC" title: "Desktop" steps: - title: "Einstellungen öffnen" image: "pc/2.png" description: | Öffne die „Einstellungen“ und klicken auf „Sonstiges“, möglicherweise muss dafür runtergescrollt werden. - title: "Tippe auf „Kontolöschung anfordern“" image: "pc/3.png" description: | Tippe auf „Konto schließen“, prüfe die Hinweise und tippe auf „Kontolöschung beantragen“. - title: "Passwort eingeben" image: "pc/4.png" description: | Gebe bei sicherheitsrelevanten Einstellungen das Passwort ein, mit dem du dich zur Bestätigung bei deinem Konto anmeldest. - title: "Antrag auf Kontolöschung abgeschlossen" image: "pc/5.png" description: | Wenn dieser Bildschirm erscheint, ist die Anfrage zum Löschen des Kontos abgeschlossen. Tippe „Okay“, um dich vom Misskey-Server abzumelden. ================================================ FILE: content/de/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "Aktivierung der MFA (TOTP)" description: "In diesem Abschnitt wird erklärt, wie ein Einmalpasswort für das Misskey-Konto einrichtet werden kann, um die Sicherheit zu erhöhen." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Die Einrichtung der Zwei-Schritt-Verifizierung verringert das Risiko des Eindringens in das Konto und erhöht die Sicherheit. Erfahre hier, wie ein Einmal-Passwort(TOTP) eingerichtet werden kann. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Smartphone" steps: - title: "Herunterladen der App auf dem Smartphone" description: | Installiere vor Beginn des Vorgangs eine App, die ein Einmalpasswort für die zweistufige Verifizierung generiert. Beispiele sind unten aufgeführt: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "Einstellungen öffnen" image: "sp/1.png" description: | Öffne Misskey, tippe auf die Schaltfläche „≡“ unten rechts auf dem Bildschirm und dann auf „Einstellungen“ im angezeigten Menü. - title: "Tippen auf \"Sicherheit\"." image: "sp/2.png" description: | Suche in der Kategorie Einstellungen die Option "Sicherheit" und tippe darauf. - title: "Tippe auf „Einrichtung von Authentifizierungsanwendungen beginnen“." image: "sp/3.png" description: | Tippe unter „Authentifizierungs-Apps“ in „Zwei-Faktor-Authentifizierung“ auf „Einrichtung von Authentifizierungs-Apps starten“. - title: "Passwort eingeben" image: "sp/4.png" description: | Gebe bei sicherheitsrelevanten Einstellungen das Passwort ein, mit dem du dich zur Bestätigung bei deinem Konto anmeldest. - title: "Authentifizierungs-App registrieren" image: "sp/8.png" description: | Zur Einrichtung der zweistufigen Verifizierungsanwendung wird ein Code generiert. Bitte verwende eine der folgenden Methoden, um sie einzurichten. ### So richtest du die App für die Zwei-Schritt-Verifizierung auf deinem aktuellen Gerät ein. Tippe auf die Schaltfläche „App starten“. Wenn diese Schaltfläche nicht verfügbar ist, tippen auf **QR-Code, um die App zu starten. ** :::tip Wenn es nicht startet, überprüfe, ob die App für die Zwei-Schritt-Verifizierung korrekt installiert ist. :::: ### So richten Sie eine App zur 2-Schritt-Verifizierung ein, die auf einem anderen Gerät installiert ist Öffne die 2-Schritt-Verifizierungs-App und folge den Anweisungen der App, um ein neues Einmalpasswort zu registrieren. Scanne dann den auf dem Bildschirm angezeigten QR-Code. - title: "Kopiere den von der Authentifizierungs-App generierten Code." image: "sp/9.png" description: | Bei der anschließenden Einrichtung auf der Misskey-Seite gibt es einen Schritt, bei dem das von der App generierte Einmalpasswort eingegeben werden muss, um zu überprüfen, ob die Authentifizierungs-App korrekt eingerichtet wurde. Bitte folge den Anweisungen der App und merke oder kopiere das Einmalpasswort. :::warning Das Einmalpasswort läuft sofort ab (ca. 30 Sekunden), diese werden hierbei alle 30Sek. neue Generiert. ::::. - title: "Gib das Einmalpasswort ein" image: "sp/6.png" description: | Gebe das soeben verwendete Einmalpasswort ein und tippe auf Weiter. - title: "Lade die Backup-Code herunter!" image: "sp/7.png" description: | **Eine zweistufige Überprüfung wurde eingerichtet.** Schließlich wird auch ein „Back-up Code“ generiert, der verwendet werden kann, falls die Zwei-Schritt-Verifizierung nicht mehr verfügbar ist. :::warning Der Backup-Code ist eine Rettungsfunktion, mit dieser man sich in das Konto anmelden kann, wenn das Einmal-Passwort nicht mehr verfügbar ist. Ohne dieses Back-up, kann im Verlustfall, nie wieder auf das Konto zugegriffen werden. Bewahre dein Backup-Code daher sicher und lasse dich von diesem Fakt nicht ableiten, keine 2-FA einzurichten. Dieser Backup Code wird in Misskey nie wieder auftauchen! ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "Desktop" steps: - title: "Herunterladen der App auf dem Smartphone" description: | Bevor du loslegst, installiere eine App auf deinem Smartphone, um Einmalkennwörter für die Zwei-Faktor-Authentifizierung zu erstellen. Beispiele dafür sind: Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) | [App Store](https://apps.apple.com/app/google-authenticator/id388497605) FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) | [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip Es gibt auch Software für den PC zur Erstellung von Einmalkennwörtern, aber wegen der Portabilität empfehlen wir eine Smartphone-App. ::: - title: "Einstellungen öffnen" image: "pc/8.png" description: | „Gehe zu „Einstellungen” → „Sicherheit” und tippe auf „Authentifizierungs-App” in „Zwei-Faktor-Authentifizierung”. Wähle dann „Einrichtung der Authentifizierungs-App starten”. - title: "Passwort eingeben" image: "pc/3.png" description: | Gebe bei sicherheitsrelevanten Einstellungen das Passwort ein, mit dem du dich zur Bestätigung bei deinem Konto anmeldest. - title: "Authentifizierungs-App registrieren" image: "pc/7.png" description: | Ein Code wird generiert, um die Zwei-Faktor-Authentifizierungs-App einzurichten. Verwende eine der folgenden Methoden, um die Einrichtung abzuschließen: ### Einrichtung der Zwei-Faktor-Authentifizierungs-App auf dem Smartphone (empfohlen) Öffne die Zwei-Faktor-Authentifizierungs-App auf deinem Smartphone und folge den Anweisungen in der App, um ein neues Einmalkennwort zu erstellen. Scanne den auf dem Bildschirm angezeigten QR-Code. ### Verwendung der Zwei-Faktor-Authentifizierungs-App auf dem PC Tippe auf die Schaltfläche „App starten”. Falls diese Schaltfläche nicht vorhanden ist, tippe auf den QR-Code, um die App zu starten. - title: "Den von der Authentifizierungs-App generierten Code kopieren." image: "sp/9.png" description: | Bei der anschließenden Einrichtung auf der Misskey-Seite gibt es einen Schritt, bei dem das von der App generierte Einmalpasswort eingegeben werden muss, um zu überprüfen, ob die Authentifizierungs-App korrekt eingerichtet wurde. Bitte folge den Anweisungen der App und merke oder kopiere das Einmalpasswort. :::warning Das Einmalpasswort läuft sofort ab (ca. 30 Sekunden), diese werden hierbei alle 30Sek. neue Generiert. ::::. - title: "Gib das Einmalpasswort ein" image: "pc/5.png" description: | Gebe das soeben verwendete Einmalpasswort ein und tippe auf Weiter. - title: "Lade die Backup-Code herunter!" image: "pc/6.png" description: | **Eine zweistufige Überprüfung wurde eingerichtet.** Schließlich wird auch ein „Back-up Code“ generiert, der verwendet werden kann, falls die Zwei-Schritt-Verifizierung nicht mehr verfügbar ist. :::warning Der Backup-Code ist eine Rettungsfunktion, mit dieser man sich in das Konto anmelden kann, wenn das Einmal-Passwort nicht mehr verfügbar ist. Ohne dieses Back-up, kann im Verlustfall, nie wieder auf das Konto zugegriffen werden. Bewahre dein Backup-Code daher sicher und lasse dich von diesem Fakt nicht ableiten, keine 2-FA einzurichten. Dieser Backup Code wird in Misskey nie wieder auftauchen! ::: ================================================ FILE: content/de/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Web in eine App umwandeln und verwenden" description: "Wir zeigen dir, wie du Misskey Web zu einer PWA-App machen kannst. Dies ist die empfohlene Methode, um Misskey auf dem Smartphone zu nutzen." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Wie du Misskey Web zu einer PWA-App machen kannst; Dies ist die empfohlene Methode, um Misskey auf deinem Smartphone zu nutzen. ## Was ist eine PWA? PWA steht für Progressive Web App und ermöglicht es, Webseiten wie Apps zu behandeln. Misskey unterstützt PWA standardmäßig. Hier zeigen wir dir, wie du PWA je nach Betriebssystem deines Geräts einrichtest. Wähle dein Betriebssystem aus und folge den Anweisungen! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | Wenn du PWA auf einem Android-Gerät verwenden möchtest, empfehlen wir Google Chrome. Hier erklären wir dir, wie du die Einstellungen mit Google Chrome vornimmst. steps: - title: "Öffne den Misskey-Server, den du als PWA verwenden möchtest" image: "android/sp_0.png" description: | Rufe den Misskey-Server auf, den du als PWA auf deinem Gerät installieren möchtest, und melde dich an. - title: "Öffne das Menü für die erweiterten Einstellungen" image: "android/sp_1.png" description: | Lass eine beliebige Seite des Misskey-Servers geöffnet und tippe auf die Schaltfläche „︙” oben rechts. - title: "Tippe auf \"Zum Startbildschirm hinzufügen” oder \"App installieren”." image: "android/sp_2.png" description: | Tippe im Menü auf „Zum Startbildschirm hinzufügen” oder „App installieren” und folge den Anweisungen im angezeigten Dialog. - title: "Prüfe deinen Startbildschirm." image: "android/sp_3.png" description: | Nach kurzer Zeit wird ein Server- oder Misskey-Symbol auf deinem Startbildschirm hinzugefügt. Wenn du dieses Symbol antippst, wird Misskey im App-Modus gestartet. - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | Wenn du PWA auf einem iOS- oder iPadOS-Gerät verwenden möchtest, nutze Safari Bevor du beginnst, stelle sicher, dass das Betriebssystem auf deinem Gerät auf dem neuesten Stand ist. Falls nicht, aktualisiere es anhand dieser Anleitung: [hier](https://support.apple.com/ja-jp/ios/update). steps: - title: "Öffne den Misskey-Server, den du als PWA verwenden möchtest." image: "ios/sp_0.png" description: | Rufe den Misskey-Server auf, den du als PWA auf deinem Gerät installieren möchtest, und melde dich an. - title: "Tippe auf die Schaltfläche „Teilen”, um sie zu öffnen." image: "ios/sp_1.png" description: | Lass eine beliebige Seite des Misskey-Servers geöffnet und tippe auf die Schaltfläche „Teilen” in der Menüleiste. - title: "Tippe auf „Zum Startbildschirm hinzufügen”" image: "ios/sp_2.png" description: | Scrolle in der Optionsliste nach unten und tippe auf „Zum Startbildschirm hinzufügen”. Du wirst möglicherweise um die Erlaubnis zur Benachrichtigung gebeten. Folge den Anweisungen auf dem Bildschirm und erlaube es bei Bedarf. Falls „Zum Startbildschirm hinzufügen” nicht angezeigt wird, könnte die Option ausgeblendet sein. Scrolle bis ganz nach unten in der Liste und füge die Option „Zum Startbildschirm hinzufügen” über „Aktionen bearbeiten” hinzu. Weitere Informationen findest du auf der [Apple-Supportseite](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios). - title: "Prüfe deinen Startbildschirm" image: "ios/sp_3.png" description: | Nach kurzer Zeit wird ein Server- oder Misskey-Symbol auf deinem Startbildschirm hinzugefügt. Wenn du dieses Symbol antippst, wird Misskey im App-Modus gestartet. ================================================ FILE: content/de/docs/2.for-users/_dir.yml ================================================ title: "Für Misskey-Nutzer" ================================================ FILE: content/de/docs/3.for-admin/_dir.yml ================================================ title: "Für Serverbetreiber" description: "Nützliche Informationen über die Einrichtung und den Betrieb eines Servers." ================================================ FILE: content/de/docs/3.for-admin/features/1.index.md ================================================ --- description: "Erläuterung der Funktionen für Server-Administratoren." --- # Beschreibung der Instanz Misskey bietet eine Reihe von Funktionen, die beim Betrieb von Server unterstützen. ================================================ FILE: content/de/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/de/docs/3.for-admin/features/announcement.md ================================================ # Neuigkeiten Announcements sind nun eine der in Misskey verfügbaren Serverfunktionen. Die Ankündigungsfunktion ermöglicht es den Benutzern, serverweite Ankündigungen zu veröffentlichen und Nachrichten vom Server an einzelne Benutzer zu senden. :::warning Eine große Anzahl aktiver Benachrichtigungen kann den Bestätigungsprozess verlängern, insbesondere für neue Benutzer, und die Benutzerfreundlichkeit beeinträchtigen.In solchen Fällen können die folgenden Optionen in Betracht gezogen werden: - Erstelle eine Mitteilung mit der Option „nur für bestehende Benutzer“. - Erstelle eine Mitteilung mit der Option „Nicht benachrichtigen“. - Archiv für bisherige Bekanntmachungen. ::: ## Stil anzeigen Wähle zwischen den folgenden Anzeigeformaten für Benachrichtigungen: - **Normal** ... "Announcements" werden ebenfalls auf der Seite mit den Bekanntmachungen veröffentlicht. - **Banner** ... erscheint auf der Seite mit der Bekanntmachungsliste und wird auch als Banner am oberen Rand des Bildschirms zu sehen sein. - **Dialog** ... Wird auf der Seite mit der Ankündigungsliste angezeigt und als modaler Dialog beim Starten des Clients. - Bei der Verwendung von mehr als zwei Meldungen im Dialog-Format wird um Vorsicht geboten, da dies negative Auswirkungen auf die UX haben kann. ## Erstellung von Bekanntmachunge ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/de/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/de/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/de/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTT ist eine der auf Misskey verfügbaren Serverfunktionen. Wenn diese Funktion aktiviert ist, kann die Leistung beim Abrufen verschiedener Zeitleisten erheblich verbessert und die Belastung der Datenbank verringert werden,die Speichernutzung in Redis wird jedoch zunehmen.FTT kann deaktiviert werden, wenn der Server eine geringe Speicherkapazität hat oder instabil ist. Die Einstellungen können über Systemsteuerung → Allgemein vorgenommen werden. ## Auf die Datenbank zurückfallen - Wenn diese Option aktiviert ist, wird ein Fallback-Prozess durchgeführt, der zusätzlich die DB abfragt, wenn die Zeitleiste nicht zwischengespeichert ist. - Die Deaktivierung reduziert die Serverlast weiter, da der Fallback-Prozess nicht durchgeführt wird, schränkt aber den Umfang der abrufbaren Zeitleisten ein. ## Zeiträume, in denen FTT angewendet werden kann. - Startseite - Lokale Timeline - Soziale Timeline - Benutzerdefinierte Timeline ================================================ FILE: content/de/docs/3.for-admin/features/managing-emojis.md ================================================ # Benutzerdefinierte Emojis verwalten :::warning Derzeit wird dieses Dokument aktualisiert.Bitte beachte, dass veraltete Informationen enthalten sein können. ::: Individuelle-Emojis können von Administratoren, Moderatoren und Benutzern mit der Rollenrichtlinie zur Verwaltung von Custom-Emojis über das Untermenü auf der Seite für Custom-Emojis in den Einstellungen verwaltet werden.Standardmäßig wird eine Liste der derzeit lokal installierten Emojis angezeigt.Anfangs ist diese Liste leer, aber es gibt verschiedene Möglichkeiten, Custom-Emojis hinzuzufügen. ## Emojis von anderen Instanzen kopieren Emojis können einfach von anderen Instanzen kopiert werden. Wechsle zunächst zum Tab „Remote” in den Custom-Emoji-Einstellungen.Emojis können nach Namen oder Host durchsucht werden. Wenn du das gewünschte Emoji gefunden hast, klicke darauf, um das Menü zu öffnen und das Emoji zu importieren. Da Emojis urheberrechtlich geschützt sein können, stelle sicher, dass du die Berechtigungen überprüfst, um festzustellen, ob sie verwendet werden dürfen. ## Import einzelner Emojis Wenn du eine Bilddatei hast, die du als Individuelles-Emoji verwenden möchtest, kannst du diese als Emoji importieren. :::danger Wenn du ein Emoji aus deinem Drive importierst, bleibt die Datei im Drive gespeichert.Da Misskey keine Kopie dieser Datei erstellt, wird das Emoji nicht mehr angezeigt, wenn du die Datei löschst. ::: Sobald das Emoji zum Server hinzugefügt wurde, kann es wie gewohnt bearbeitet oder gelöscht werden. ## Mehrere Dateien auf einmal importieren Emojis können gesammelt als ZIP-Datei in einem speziellen Format importiert werden. Diese Funktion ist über die Schaltfläche im oberen rechten Eck des Individuellen-Emoji-Menüs zugänglich. :::warning Die Massen-Importfunktion kann vorhandene Emojis überschreiben oder Serverprobleme verursachen. Importiere daher möglichst nur die von dir exportierten Emojis und prüfe, ob die Quelle vertrauenswürdig ist, wenn du einen Massenimport von externen Quellen durchführst. ::: ### Format der paketierten Emojis Im obersten Verzeichnis befindet sich eine Datei namens `meta.json`, die Informationen über die paketierten Emojis enthält. Die Typdefinition dieser Datei ist wie folgt, wobei `Meta` die Struktur der gesamten Datei darstellt. ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` Die Felder von `Meta` werden derzeit beim Import von Emojis nicht verwendet oder überprüft, aber das Feld `emojis` wird verwendet. Für jedes `Emoji`: - `downloaded`: Immer auf true setzen.Wenn dieses Feld fehlt oder nicht auf true gesetzt ist, wird das Emoji nicht importiert. - `fileName`: Der Name der Bilddatei im paketierten Archiv. - `emoji`: Daten, die mit dem in der Datenbank gespeicherten Emoji verknüpft sind.Die folgenden Felder werden derzeit verwendet: - `name`: Der Name des Emojis, den der Benutzer eingibt, z.B.: `blobfox` (wenn der Benutzer `:blobfox:` eingibt, wird dieses Emoji angezeigt). Falls ein Emoji mit demselben Namen bereits existiert, wird es **überschrieben**. - `category`: Die Kategorie des Emojis. - `aliases`: Eine Liste von Zeichenfolgen, die als alternative Namen hinzugefügt werden.In der Administrator-Oberfläche wird dies als „Tags” bezeichnet. ## Bearbeiten und Löschen von Emojis Die Eigenschaften eines Emojis können durch Klicken in der Liste der lokalen Emojis bearbeitet werden. Wenn du auf ein Custom-Emoji klickst, öffnet sich ein Dialog, um dessen Eigenschaften zu bearbeiten. In diesem Dialog kannst du das Emoji auch löschen. :::danger Wenn ein Custom-Emoji gelöscht wird, bleibt der Emoji-Name als Text in den alten Notizen enthalten. Das Emoji wird dann nicht korrekt angezeigt. ::: Bitte beachte, dass Remote-Emojis nicht bearbeitet oder gelöscht werden können. Jedes Emoji kann mit einem Namen, einer Kategorie und mehreren Tags versehen werden. Die Kategorie wird zur Strukturierung des Emoji-Pickers verwendet. Tags dienen als alternative Namen, um Emojis im Emoji-Picker zu suchen. Nach Abschluss der Bearbeitung klicke auf das Häkchen in der oberen rechten Ecke des Dialogs, um die Änderungen zu speichern. ### Mehrere bearbeiten Emojis können durch Aktivieren der Checkbox unter dem Suchfeld in einem Zug bearbeitet werden. Wenn dies aktiviert ist, öffnet sich durch Klicken auf ein Emoji kein Bearbeitungsdialog, sondern das Emoji wird ausgewählt. Die Bearbeitungsoptionen werden als Schaltflächen unter der Checkbox angezeigt. Um zur normalen Funktionalität zurückzukehren, deaktiviere die Checkbox erneut. ================================================ FILE: content/de/docs/3.for-admin/features/role.md ================================================ # Rollen Rollen sind Attribute, die Benutzern zugewiesen werden können, so dass Abzeichen für jede Rolle angezeigt werden können und die Benutzerberechtigungen in den Richtlinieneinstellungen angepasst werden können. Die Zuweisung von Benutzerrollen (Zuweisung) kann manuell oder automatisch durch Angabe von Bedingungen erfolgen. Rollen können mehr als einem Benutzer zugewiesen werden. ## Rollenvorlage Festlegung von Richtlinien, die standardmäßig für alle Benutzer gelten, kann als Basisrolleneinstellungen erfolgen. Basisrollen können in der Systemsteuerung unter Rollen → Basisrollen eingestellt werden. ## Art der Zuweisung Die Zuweisungsmethode kann zwischen Manuell und automatisch gewählt werden. - **Manuell** ... Manuelle Zuweisung und Aufhebung der Zuweisung von Benutzern.(Manuelle Rollen) - Es ist auch möglich, die Dauer der Rolle festzulegen. - **Automatisch** ... Bedingungen festlegen, und Benutzer, die diese Bedingungen erfüllen, werden automatisch berücksichtigt.(Automatische Rolle) :::warning Automatische Rollen haben im Vergleich zu manuellen Rollen die folgenden Einschränkungen - Eine manuelle Zuweisung/Aufhebung der Zuweisung ist nicht möglich. - Es ist nicht möglich, die Liste der Benutzer in den angegebenen Rollen abzurufen. ::: ## Berechtigungen Die grundlegenden Berechtigungen der Rolle können aus den folgenden ausgewählt werden: - **Allgemeiner Benutzer** ... Hat keine besonderen Befugnisse. Standardrolle - **Moderator** ... Kann Beiträge, je nach freigabe, löschen und Nutzer melden. - **Manager** ... Kann alle Servereinstellungen ändern und anpassen. Detailliertere Berechtigungen sind in den Richtlinieneinstellungen verfügbar. ## Richtlinien Sie können die Richtlinie der Regel anpassen, um die Einschränkungen der Berechtigungen und Funktionen zu ändern. Richtlinien können auch so eingestellt werden, dass sie die für die Basisrolle eingestellten Werte erben. ### Priorität Wenn mehrere Rollen zugewiesen sind und dieselbe Richtlinie mit unterschiedlichen Werten für jede definiert ist, können Sie festlegen, wie viel Priorität sie gegenüber anderen Definitionen haben. Je höher Sie die Priorität einstellen, desto mehr Vorrang hat sie vor anderen Definitionen. Die Vorrangstellung ist eine Einstellung pro Richtlinie, nicht pro Rolle.Sie kann auch nicht in der Basisrolle eingestellt werden. **Wenn die Prioritäten gleich sind, wird standardmäßig der größte oder maßgebliche Wert ausgewählt.** :::tip Beispiel: Den Nutzern sind die Rollen A und B zugewiesen, und die Laufwerkskapazitätsrichtlinie für Rolle A ist auf 500 MB und die Laufwerkskapazitätsrichtlinie für Rolle B auf 300 MB festgelegt, - Wenn die Prioritäten gleich sind oder die Priorität der Laufwerkskapazitätspolitik in Rolle A höher ist, wird der Wert von 500 MB angenommen. - Wenn die Priorität der Laufwerkskapazitätsrichtlinie für Rolle B höher ist, wird ein Wert von 300 MB angenommen. Wenn einem Nutzer die Rollen C und D zugewiesen sind und die Verfügbarkeitsrichtlinie für öffentliche Bekanntmachungen für die Rolle C als „Nein“ und die Verfügbarkeitsrichtlinie für öffentliche Bekanntmachungen für die Rolle D als „Ja“ definiert ist, - Wenn die Prioritäten gleich sind oder die Priorität der Verfügbarkeitsrichtlinie für öffentliche Buchungen in Rolle D höher ist, wird der Wert „Ja“ angenommen. - Wenn die Priorität der Verfügbarkeitsrichtlinie für die Rolle C höher ist, wird der Wert „Nein“ angenommen. ::: ### Wert der Rollenvorlage verwenden Wenn diese Einstellung eingeschaltet ist, werden die Richtlinienwerte von der Basisrolle geerbt. ## Rolle erstellen Neue Rollen können über „Rollen“ im Kontrollpanel erstellt werden. ## Anzeigen, Bearbeiten und Löschen von Rolleninformationen Dies ist im Control Panel unter „Rollen“ möglich. ## Zuweisen und Aufheben von Rollen an Nutzer Dies kann im Benutzermenü unter „Moderation → Rollen“ erfolgen. Ebenfalls ist dies direkt aus dem Benutzermenü möglich. Bei der Zuweisung können Sie die Dauer festlegen. :::tip Es kann eine Weile dauern, bis die Rollenzuweisung/-aufhebung wirksam sind. ::: :::warning Bedingte Rollen können nicht manuell zugewiesen werden ::: ## Überprüfen der Benutzerrichtlinien Dies kann beim Benutzer unter „Moderation → Übersicht → Richtlinien“ erfolgen. ================================================ FILE: content/de/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/de/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskey Installation und Wartung" description: "Informationen über die Installation und Wartung von Misskey." ================================================ FILE: content/de/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Anleitung zum Erstellen eines Misskey-Servers' --- # Erstellen eines Misskey-Servers Schön das du dich für einen eigenen Server Interessierst.Es gibt mehrere Möglichkeiten, einen Server zu erstellen. Wählen Sie aus der folgenden Pfaden: :::danger Erstelle die Datenbank **nicht** unter einer Serverdomäne/einem Hostnamen neu, der bereits verwendet wird! ::: :::warning Wenn der Quellcode von Misskey geändert werden soll (einschließlich Forking), müssen Sie diese Änderungen gemäß der Lizenz öffentlich zugänglich machen.Mehr Details dazu erhälst du [hier](/docs/for-admin/install/resources/forking/). ::: ## Installation unter XServer SNS Mit XServer SNS kann automatisch ein Misskey-Server erstellen werden, indem du dich einfach für den Dienst anmeldest. Auch die Serververwaltung und -wartung übernimmt der Betreiber, sodass der Server ohne komplizierte Kenntnisse bedient werden kann. [Mehr dazu hier](https://sns.xserver.ne.jp/misskey.php) ## Installationsmethoden ================================================ FILE: content/de/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'Ein Misskey-Server kann einfach mit Diensten von Drittanbietern erstellt werden.' --- # [Dienste nutzen](./service/) Misskey-Server können einfach mit Funktionen von Hosting-Diensten und anderen Services erstellt werden.Hier sind einige Dienste, die Misskey unterstützen: :::warning Die hier aufgeführten Dienste sind dem Misskey-Projekt bekannt, und es handelt sich nicht um eine vollständige Liste aller Dienste.Bitte beachten, dass Funktionstests und offizielle Zertifizierungen, sofern nicht ausdrücklich angegeben, nicht durchgeführt werden, unabhängig davon, ob das Betreiberunternehmen ein Sponsor des Misskey-Projekts ist oder nicht. (Bitte richte die Anfragen zu den Diensten direkt an die Betreiber der jeweiligen Dienste und nicht an das Misskey-Projekt.) ::: ## Hosting-Dienste, die sich auf Misskey spezialisiert haben Es gibt auch Dienste, die speziell angepasste Administrationsoberflächen für Misskey bieten.Mit diesen Diensten kann ein Misskey-Server auch ohne besondere technische Kenntnisse erstellt werden. ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/) bietet Misskey als verfügbare SNS-Software an.Da XServer die Serverwartung und Versionsupdates übernimmt, ist fast kein technisches Wissen erforderlich, um einen Misskey-Server einfach zu erstellen. ## VPS-App-Build Einige VPS (Virtual Private Server)-Dienste bieten unter Bezeichnungen wie „Einfache Installation“ oder „App-Image“ Funktionen an, die die Einrichtung der Umgebung erleichtern.Einige davon unterstützen Misskey standardmäßig.Hier sind einige davon: ### XServer VPS/Thin VPS [XServer VPS](https://vps.xserver.ne.jp/) und [Shin VPS](https://www.shin-vps.jp/) bieten Misskey als App-Image an. Weitere Informationen: - XServer: [「Verwendung des Misskey-App-Images」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - Shin VPS: [Misskey-App-Image verwenden](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) Weitere Informationen unter: ### „SakuraVPS“ [Sakura VPS](https://vps.sakura.ad.jp/) bietet Misskey als Startskript an. Weitere Informationen unter [„Sakura VPS Manual Startup Script](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html). ================================================ FILE: content/de/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Shell-Skript, um Misskey einfach zu installieren! Misskey ganz einfach auf dem Ubuntu-Server installieren, indem du ein paar Fragen beantwortest! Ein "Update-Script" steht ebenfalls zur Verfügung. [Mit Version12 durchstarten!](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md) ## Vorbereitung 1. Domain 2. Ubuntu Server 3. Ein Cloudflare-Konto (empfohlen) :::danger Erstellen die Datenbank nicht unter einer Serverdomäne/einem Hostnamen neu, der bereits genutzt wird! ::: Die Anzahl der Authentifizierungsversuche von Let’s Encrypt sind begrenzt. Überprüfe bitte sorgfältig die Netzwerk- und DNS-Einstellungen deines Servers, wir mit der Instalation fortfahren... ## Cloudflare-Einstellungen Um Cloudflare zu verwenden, stelle sicher, dass die Cloudflare-Domäne eingerichtet ist, bevor es weitergeht! Der Nameserver(DNS) kann bis zu 3 Tage brauchen, bis die Änderung in Kraft tritt. Gehe zum Einrichten von **nginx** und **Cloudflare** zu den **Cloudflare-Einstellungen**. - DNS konfigurieren - SSL/TLS-Einstellungen den Verschlüsselungsmodus auf „Vollständig“ ## Aktionen ### 1. SSH Melde dich über SSH in deinem Server an. (Sollte es sich um einen Server-Desktop handeln, öffne eine Shell.). ### 2. Einrichten einer Umgebung Aktualisiere alle Pakete und starte neu. ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. Mit der Installation beginnen Stelle eine Verbindung via SSH her und beginne Misskey zu installieren Wir empfehlen, vor der Installation die [Tipps](#tips) zu lesen. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` Ersetze example.com durch deine eigene Domain ### 4. Update Wir haben ein Update-Skript implementiert. Das Update-Skript aktualisiert **nicht** deine Linux-Umgebung.Beachte die CHANGELOG (Japanisch) und das [GitHub-Release (Englisch)](https://github.com/joinmisskey/bash-install/releases) und führe die entsprechenden Migrationsvorgänge durch. Lade die Repository herunter ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` Führe das Script dann aus, wenn du ein Update installieren möchtest. ```sh sudo bash update.sh ``` - In der systemd-Umgebung kann das System mit der Option „-r“ aktualisiert und neu gestartet werden. - In einer Docker-Umgebung kannst du den aktualisierten Repository-Namen:Tag-Namen als Variabel angeben. ## Das Script läuft auf folgenden verifizierten Umgebungen ### Oracle Cloud Infrastructure Dieses Skript funktioniert für beide Formen, die im Always Free-Dienst von Oracle Cloud Infrastructure angeboten werden. - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB oder besser] Stelle sicher, das iptables verwendet wird. ## Fehlermeldungen und PR's sind hier Willkommen Wenn es in der oben genannten Umgebung nicht funktioniert, liegt möglicherweise ein Fehler vor.Wir wären dankbar, wenn das Problem mithilfe der Issue-Funktion von GitHub gemeldet wird und dabei die bei der Installation angegebenen Bedingungen angeben werden können. Dezeit ist es schwierig, Support für andere als die oben aufgeführten Umgebungen bereitzustellen. Wenn wir jedoch weitere Informationen zur Situation haben, können wir das Problem möglicherweise lösen. Funktionsvorschläge nehmen wir ebenfalls gerne an. # Tipps So wählst du die richtigen Optionen & Spezifikationen aus. ## Systemd oder Docker? Seit Version1 kann zwischen Docker und Systemd gewählt werden. Obwohl es Docker heißt, wird nur **Misskey auf Docker ausgeführt**. Redis, Postgres usw. werden direkt auf dem Host ausgeführt. [Für Informationen, wie man mit Docker-Compose alles zum Laufen bekommt, empfehle ich diesen Artikel von [mamemononga](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0). Solltest du das Docker Hub-Image verwenden, ist dies die am meisten empfohlene Option, da dadurch die Erstellung von Misskey entfällt. Da jedoch eine Migration erforderlich ist, kann es während der Aktualisierung dennoch vorkommen, dass Misskey nicht verwendet werden kann. Da außerdem die Misskey-Build-Umgebung nicht vorbereitet ist (Git Pull wird nicht ausgeführt), wird die Einrichtung mühsam, falls du einen Fork verwenden möchtest. Aufgrund von Leistungsproblemen wird das lokale Erstellen von Docker nicht empfohlen. systemd wird empfohlen, wenn du einen Fork verwenden willst, das Image aber nicht im Docker Hub veröffentlichen möchtest. Die empfohlene Reihenfolge wie folgt: 1. Docker Hub 2. systemd 3. Docker-Build ## Verwenden von nginx Außer in den folgenden Fällen empfehlen wir, nginx als Reverse-Proxy zu verwenden, um als Vermittler zwischen dem Internet und Misskey zu fungieren. - Es sind wenige Personen auf der Instanz angemeldet oder besteht aus nur einem (1-User-Server) - Sie sind bereit, die Reverse-Proxy- und Cache-Funktionen von nginx auch mit anderen Mitteln zu schützen, beispielsweise mit einem Load Balancer (für fortgeschrittene Benutzer) Durch die Verwendung von nginx als Reverse-Proxy können statische Inhalte wie Bilddateien zwischengespeichert werden und die Systemlast reduzieren. Darüber hinaus verfügt nginx über eine Funktion, die große Zugriffsmengen effektiv steuern kann, wenn kein Cache vorhanden ist. Dies trägt zur Reduzierung der Belastung von Misskey bei. Konfigurationsbeispiele findest du auf der Seite [nginx-Einstellungen](../resources/nginx/). ## Hol' mehr Swaps! Swap muss so konfiguriert werden, das **mindestens 3GB oder mehr** zur Verfügung stehen, sonst kann das Skript nicht ausgeführt werden. ## Wenn das Skript fehlschlägt Sollte das Skript zwischendurch abrechen, versuche folgendes: - Sollte Redis oder Postgres bereits installiert sein, wähle „Nein“ bei „lokal installieren“. Lasse die Host und Porteinstellung und drücke die "Enter"-Taste. Versuche dich mit den letzen Zugangsdaten anzumelden, die du bei der Installation angegeben hattest. ## .env-Datei Das Installationsskript erstellt zwei .env-Dateien: Wird beim Aktualisieren verwendet. ### /root/.misskey.env Dies ist erforderlich, um sich den User zu merken, der misskey ausführt. ### /home/(misskeyユーザー)/.misskey.env Wird generiert, wenn systemd verwendet wird. Hauptsächlich zum Speichern von Verzeichnissen. ### /home/(misskeyユーザー)/.misskey-docker.env Wird erstellt, wenn die Docker Version verwendet wird. Es speichert den Container und die Imagenummer, die ausgeführt wird. Die Containernummer wird beim Update aktualisiert.Der alte Build wird hierbei gelöscht. ## Übernehme die Kontrolle Diese Hinweise können hilfreich sein, wenn nach der Installation Konfigurationsänderungen vorgenommen werden. Ersetze example.com durch deine eigene Domain ### Misskey-Verzeichnis Die Quelle von Misskey wird als „/home/user/directory“ geklont. (Der Standardwert für **Benutzer** und **Verzeichnis** ist „misskey“.) Um zum Misskey-Verzeichnis zu gelangen, gebe folgendes in die Kommandozeile ein: ```sh sudo -iu User cd Datei ``` Um zum Ursprünglichen Benutzer zu wechseln, gebe "exit" ein. ```sh exit ``` ### systemd Der Systemd-Prozessname ist example.com. Beispiel für einen Neustart: ```sh sudo systemctl restart example.com ``` Mit "jounalctrl" kannst du herrausfinden, ob der Neustart funktioniert hat. ```sh journalctl -t example.com ``` Die Konfigurationsdatei wird als „/etc/systemd/system/example.com.service“ gespeichert. ### Docker Docker wird ohne Rootberechtigung als Misskey-Benutzer ausgeführt. Bei Misskey-Benutzer, die mit sudo laufen sollen, muss „XDG_RUNTIME_DIR“ und „DOCKER_HOST“ geändert werden. ```sh sudo -iu user export XDG_RUNTIME_DIR=/run/user/$UID export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock # Prozessliste anzeigen docker ps # Erstellen (Repository: lokal/misskey:latest) docker build -t local/misskey:latest ./misskey # Docker-Ausführung 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“ # Protokolle anzeigen Docker log --tail 50 -f Container-ID ``` Als Einzeiler, sähe das so aus: ```sh sudo -u user XDG_RUNTIME_DIR=/run/user/$(id -u user) DOCKER_HOST=unix:///run/user/$(id -u user)/docker.sock docker ps ``` ### nginx Die Nginx-Konfiguration wird als „/etc/nginx/conf.d/example.com.conf“ gespeichert. ### Redis **requirepass** und **bind** werden in `/etc/redis/misskey.conf` festgelegt. ## Q. Zugriff nach Update mit 502-Fehler nicht möglich In Docker erfolgt die Migration nach dem Start, der Zugriff geht nich sofort. Überprüfe, ob die Migration abgeschlossen ist. Im Fall von systemd ist die pnpm-Installation möglicherweise fehlgeschlagen. Gehe in das Misskey-Verzeichnis und versuche folgendes: ```sh pnpm run clean-all ``` Beim ausführen von jounalctl sollte "re2" irgendwo stehen. ## Q. Ich möchte auf demselbsen Server eine weitere Misskey-Instanz erstellen Das Skript geht nicht davon aus, dass zusätzliche Misskeys auf demselben Server installiert werden. Einige Einstellungen werden überschrieben oder es treten unterwegs Fehlermeldungen auf. ================================================ FILE: content/de/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'Diese Anleitung erklärt, wie man Misskey mit Docker einrichtet.' --- # Misskey-Setup mit Docker Compose Diese Anleitung erklärt, wie man Misskey mit Docker Compose einrichtet. :::danger Ändere nicht die Datenbank für einen Domain- oder Hostnamen eines Servers, den du bereits verwendest! ::: :::tip{label='前提条件'} - Docker und Docker Compose müssen installiert sein. ::: ## Abrufen der Repo ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## Konfiguration Mit dem folgenden Befehl werden Beispielkonfigurationsdateien kopiert. ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` Bearbeite `default.yml` und `docker.env` gemäß den Anweisungen in den Dateien. Bearbeite `compose.yml` nach Bedarf.(Zum Beispiel, wenn du den Port ändern möchtest) ## Build und Initialisierung Mit dem folgenden Befehl wird Misskey gebaut und die Datenbank initialisiert. Dies kann einige Zeit in Anspruch nehmen. ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## Ausführen Gut gemacht!Mit dem folgenden Befehl kannst du Misskey starten. ```sh sudo docker compose up -d ``` GLHF✨ ## Wie man Misskey aktualisiert :::warning Stelle bei einem Update sicher, dass du die [Release-Notes](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) liest, um Änderungen und eventuell notwendige zusätzliche Schritte (in den meisten Fällen nicht erforderlich) im Voraus zu verstehen. ::: ```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 ``` Die Dauer des Updates kann je nach Umfang der Änderungen und der Größe der Datenbank variieren. ## So führst du CLI-Befehle aus: ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/de/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes und TrueNAS zur Einrichtung von Misskey Diese Anleitung erklärt, wie man Misskey mit Kubernetes und HelmChart einrichtet. :::danger Erstellen die Datenbank nicht unter einer Serverdomäne/einem Hostnamen neu, der bereits genutzt wird! ::: ## TrueCharts und TrueNAS Scale Misskeys HelmCharts sind auf TrueCharts für die Verwendung mit TrueNAS Scale verfügbar, können jedoch auch als HelmCharts installiert werden. Auf der Website von [TrueCharts](https://truecharts.org/charts/description_list) findest du Dokumentationen zu allen verfügbaren Charts und Installationsmethoden. Falls du Fragen hast, kannst du auch auf dem [TrueCharts Discord](https://discord.gg/Ax9ZgzKx9t) Server nachfragen. Misskey befindet sich derzeit im _incubator_ Zweig. :::tip{label='前提条件'} - TrueNAS Scale oder - Kubernetes-Cluster und Helm ::: ## TrueNAS Scale Folge den Anweisungen im [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/). Füge den _incubator_ Zweig hinzu und installiere Misskey. Ändere unbedingt den URL-Bereich in den Einstellungen. TrueCharts verwendet standardmäßig Traefik, um Dienste über HTTPS extern verfügbar zu machen. Du kannst jedoch auch andere Software verwenden, indem du die Einstellungen manuell änderst. ## Manuelle Einrichtung mit Helm Wenn du TrueNAS Scale nicht verwendest, kannst du Misskey mit Helm installieren. Ändere unbedingt die `url:` im Abschnitt `misskey:` der Datei `values.yaml`. Ändere andere Abschnitte nach Bedarf. Dieses Chart unterstützt derzeit kein TLS innerhalb des Misskey-Containers. Um den Zugriff auf den Server zu sichern, wird die Verwendung eines Reverse Proxies empfohlen. ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey aktualisieren Um Misskey zu aktualisieren, kann entweder die integrierte Upgrade-Funktion von TrueNAS Scale verwendet werden, oder, falls Kubernetes manuell betrieben wird, sollten [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) oder [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) verwendet werden. Es wird dringend empfohlen, vor dem Upgrade eine Datensicherung durchzuführen, da mögliche Probleme auftreten können. ================================================ FILE: content/de/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'Diese Anleitung erklärt, wie man Misskey installiert und einrichtet.' --- # Manuelles Setup von Misskey Diese Anleitung erklärt, wie man Misskey installiert und einrichtet. :::danger Ändere niemals die Domain oder den Hostnamen eines Servers, sobald er in Gebrauch genommen wurde! ::: :::tip{label='前提条件'} #### Die folgende Software sollte installiert und eingerichtet sein: - **[Node.js](https://nodejs.org/en/)** (Version 20.4.x oder höher) - **[PostgreSQL](https://www.postgresql.org/)** (Version 15 oder höher) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Wenn Debian/Ubuntu verwendet wird, sollte das `build-essential`-Paket installiert werden. ::: ## Benutzer(in) anlegen Es wird empfohlen, Misskey nicht als root-Benutzer auszuführen. Stattdessen sollte ein neuer Benutzer erstellt werden. Ein Beispiel für Debian: ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskey Installation und Wartung ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## Konfiguration Kopiere die Beispieldatei `.config/example.yml` und benenne sie in `default.yml` um. ```sh cp .config/example.yml .config/default.yml ``` Bearbeite die `default.yml` gemäß den Anweisungen in der Datei. ## Build und Initialisierung Mit dem folgenden Befehl wird Misskey gebaut und die Datenbank initialisiert. Dies kann einige Zeit in Anspruch nehmen. ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## Ausführen Gut gemacht!Mit dem folgenden Befehl kannst du Misskey starten. ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} Erstellen einer systemd-Dienstdatei `/etc/systemd/system/misskey.service` Öffne die Datei mit einem Editor, füge den folgenden Code ein und speichere sie: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning Falls Misskey auf CentOS mit einem Port unter 1024 verwendet wird, muss die Zeile `ExecStart=/usr/bin/sudo /usr/bin/npm start` geändert werden. ::: Systemd neu laden und den Misskey-Dienst aktivieren ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` Erstellen eines Misskey-Servers ```sh sudo systemctl start misskey ``` :::tip Gib `systemctl status misskey` ein, um den Status des Dienstes zu überprüfen. ::: :::: ## Wie man Misskey aktualisiert :::warning Stelle bei einem Update sicher, dass du die [Release-Notes](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) liest, um Änderungen und eventuell notwendige zusätzliche Schritte (in den meisten Fällen nicht erforderlich) im Voraus zu verstehen. ::: Die master-Branch erneut pullen, Installation, Build und Datenbankmigration durchführen: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` Die Dauer des Updates kann je nach Umfang der Änderungen und der Größe der Datenbank variieren. Nach Abschluss des Updates bitte den Misskey-Prozess neu starten. ```sh sudo systemctl restart misskey ``` :::tip Falls während des Builds oder Starts Fehler auftreten, bitte die folgenden Befehle ausprobieren: - `pnpm run clean` oder `pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/de/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Detaillierte Anleitung zur Installation von Misskey auf Ubuntu ## Weitere Methoden zur Installation von Misskey - [Grundlegender Leitfaden zum Einrichten von Misskey (manuell)](./manual/) - [Liste weiterer Installationsmethoden](/docs/for-admin/install/guides/#installationsmethoden) ## Ankündigung für Shell-Skripte Wenn es nur ums Copy-Paste geht, dann kann man das doch genauso gut mit einem Shell-Skript erledigen. Also habe ich ein Shell-Skript entwickelt, **das fast alles für dich macht!**\ [**Details und Anweisungen zur Verwendung des Shell-Skripts findest du hier!**](./bash/) :::tip Die Installation in einer Entwicklungsumgebung mithilfe des Shell-Skripts ist nicht vorgesehen. ::: :::tip Bitte kümmer dich selbst um den Kauf der Domain, die Einrichtung von Cloudflare und die Beschaffung des Servers. ::: Bitte melde eventuelle Probleme, indem du Erwähnung an [@aqz@p1.a9z.dev ](https://p1.a9z.dev/@aqz) sendest. ## Über diesen Artikel In diesem Artikel erkläre ich, dass ich Misskey gemäß dem [Misskey-Einrichtungsleitfaden (Handbuch)](./manual/) mit systemd betreibe. Außerdem möchte ich darauf hinweisen, dass es mit [docker-compose](./docker/) manuell etwas einfacher sein sollte, Misskey auszuführen. Mit [docker-compose](./docker/) sollte es manuell etwas einfacher sein, Misskey auszuführen. :::danger Ändere nicht die Datenbank für einen Domain- oder Hostnamen eines Servers, den du bereits verwendest! ::: ## Einführung Dieser Artikel erklärt Schritt für Schritt, wie Misskey auf einem allgemeinen Ubuntu-Server installiert und öffentlich zugänglich gemacht wird, basierend auf dem [Misskey-Einrichtungsleitfaden (Handbuch)](./manual/). Die Einrichtung ist so konzipiert, dass sie nur Eingaben von Bash-Befehlen, das Bearbeiten einiger Konfigurationsdateien und die Bedienung des Browsers erfordert, um abgeschlossen zu werden.Es wird eine kurze Erklärung zur zu installierenden Software gegeben, aber dies ist nicht weiter von Bedeutung. In diesem Artikel wird besonderer Wert auf Konkretheit gelegt und spezifische Umgebungen detailliert beschrieben. Es könnten Unterschiede im Betriebssystem, in Misskey selbst oder in den Versionen der abhängigen Software auftreten, weshalb einige Teile sich verändert haben könnten. Wir bitten um Verständnis. Bei unklaren Begriffen wird empfohlen, im [IT-Wörterbuch](https://wa3.i-3-i.info/) nachzuschlagen, um sich ein besseres Verständnis zu verschaffen. ## Umgebung und Bedingungen - Als Betriebssystem wird **Ubuntu 22.04 LTS** verwendet. - Bezüglich der Hardwareanforderungen reicht eine aktuelle CPU für den minimalen Betrieb aus.Die Architektur ist auf amd64 und arm64 ausgelegt. - Ein Arbeitsspeicher von etwa 4 GB ist empfehlenswert. - Zuvor wurde erklärt, dass durch die Einführung von Vite der Build mit etwa 1,5 GB möglich war. (aber in letzter Zeit sind die Anforderungen für den Frontend-Build wieder gestiegen.) - Eine eigene Domain wird erworben und Cloudflare wird verwendet. - Die Domain sollte im Voraus bei [Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/) oder einem ähnlichen Dienst registriert werden. - Hier wird die Domain example.tld verwendet, daher sollte diese entsprechend durch die gekaufte Domain ersetzt werden.Im Falle einer Entwicklungsumgebung ist localhost zu verwenden (weitere Erläuterungen im Abschnitt zu den Konfigurationsdateien). :::danger Ändere niemals die Domain oder den Hostnamen eines Servers, sobald er in Gebrauch genommen wurde! ::: ## Verwendung von Nano Dieses Mal werden wir den Texteditor nano verwenden.Starten wie folgt: ```sh nano /path/to/file ``` Sie können die Pfeiltasten sowie die Home/End-Tasten verwenden, um den Cursor zu bewegen. Beenden Sie das Programm mit `Ctrl+X`. Wenn Sie gefragt werden, ob Sie Änderungen speichern möchten, geben Sie `Y` (Yes) ein und drücken Sie `Enter`, um die Änderungen zu speichern. Eine Liste der Befehle wird unten angezeigt. Ersetzen Sie `^` durch `Ctrl` und `M-` durch `Alt`, um sie zu verwenden. ## Erstellung eines Benutzers Da Misskey nicht als root ausgeführt werden sollte, wird ein dedizierter Benutzer erstellt. ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip Im Entwicklungsumfeld ist es nicht notwendig, Benutzer zu trennen. ::: ## Installation und Konfiguration grundlegender Software Grundlegende Software installieren. ### Node.js Node.js ist eine serverseitige JavaScript-Laufzeitumgebung und die grundlegende Ausführungsumgebung für Misskey. ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=20; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v # corepack enable sudo corepack enable ``` Wenn `v20.x.x` oder ähnlich angezeigt wird, ist alles in Ordnung.Wenn eine niedrigere Version wie `v8.x.x` angezeigt wird, ist die Installation nicht korrekt durchgeführt worden. Starten den Server neu und versuche, die Installation erneut durchzuführen. ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQL ist ein objektrelationales Datenbankmanagementsystem und eine unverzichtbare Software zur Speicherung der verschiedenen Daten von Misskey. #### Installieren シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudflareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/de/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskey Wartung und Fehlerbehebung" description: "Für den Betrieb eines Misskey-Servers ist eine regelmäßige Wartung wichtig. Anbei nützliche Informationen, was zu tun ist, wenn es zu Problemen kommt." ================================================ FILE: content/de/docs/3.for-admin/install/resources/cdn.md ================================================ # CDN-Einstellungen Bei der Veröffentlichung eines Misskey-Servers wird dringend empfohlen, ein CDN wie [Cloudflare](https://www.cloudflare.com/) zu verwenden. Durch die Verwendung eines CDN ergeben sich die folgenden Vorteile: - Durch das Cachen von statischen Inhalten kann die Serverlast reduziert werden - Durch die Verschleierung der Server-IP-Adresse wird das Risiko von DoS-Angriffen verringert ## Zwischenspeicher Misskey Web ist komplett statisch und benötigt keinen Server zum Betrieb.Daher kann der gesamte Misskey-Webinhalt von einem CDN gecacht werden. Die Misskey-API kann jedoch nicht gecacht werden. Bitte führe die folgenden Einstellungen für das CDN durch: - Alle Anfragen außer `/api/*` cachen. :::tip Es ist nicht notwendig, den Cache zu leeren, wenn Misskey aktualisiert wird.. ::: ================================================ FILE: content/de/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/de/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/de/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/de/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/de/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!** [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/de/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "Moderationstipps" description: "Nützliche Informationen, die beim Moderieren eines Servers helfen können." ================================================ FILE: content/de/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTL Chronik deaktivieren Misskey erlaubt es, die lokale, soziale und globale Chronik jeweils zu deaktivieren.Die Chroniken können in den Instanzeinstellungen aktiviert bzw. deaktiviert werden. Dass alle Notizen auf deiner Instanz auf der lokalen und sozialen Chronik erscheinen, erleichtert es neuen Nutzern, andere zu finden, ohne dafür die Suche benutzen zu müssen. Es bedeutet jedoch auch, dass es nicht unbedingt nötig ist, Nutzern zu folgen, um ihre Posts zu sehen, und dass häufiger unangebrachte Inhalte zu sehen sein könnten. Die Nutzung gleicht zudem eher der eines Chatrooms, was es neuen Nutzern wiederum erschweren könnte, in Gespräche unter Langzeitnutzern einzusteigen. Diese Vor- und Nachteile wiegen je nach Instanz unterschiedlich schwer, weshalb die Wahl letztendlich den Betreibern überlassen ist. Falls die Nachteile also in deinem Fall überwiegen, kannst du die jeweiligen Chroniken auch deaktivieren. :::warning Das Deaktiveren von Chroniken kann Nutzer verwirren und kurzzeitig abschrecken. Daher solltest du diese Entscheidung gut begründen können und die Nutzer deiner Instanz im Vorfeld darüber aufklären, damit diese sich entsprechend vorbereiten können, beispielsweise indem sie Nutzern folgen, mit denen sie sich häufiger unterhalten. ::: Beachte, dass Aministratoren und Moderatoren diese Chroniken weiterhin sehen können, auch nachdem sie deaktiviert wurden. ================================================ FILE: content/de/docs/4.for-developers/_dir.yml ================================================ title: "Für Entwickler" description: "Ressourcen für Plugin- und Play-Entwickler und Entwickler externer Anwendungen, die APIs verwenden." ================================================ FILE: content/de/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScript ist eine Skriptsprache, die in den folgenden Bereichen von Misskey verwendet werden kann. - [Plugins](./plugin/create-plugin/) - [Widgets](/docs/for-users/features/widgets/) - Schaltflächen - AiScript-Konsole - AiScript-Anwendung - [Misskey Play](./plugin/create-play/) - Scratchpad :::tip Die Implementierung von AiScript ist in einem separaten Repository von Misskey und [als Open Source verfügbar](https://github.com/aiscript-dev/aiscript). ::: ## So geht's Die Standard-Syntax und eingebauten Funktionen von AiScript können verwendet werden. :::tip Die Dokumentation findest du [hier](https://aiscript-dev.github.io/). Die verwendbare AiScript-Version kann je nach Misskey-Hauptversion variieren.Um die Version zu überprüfen, führe bitte `<: Core:v` im Scratchpad oder einem ähnlichen Bereich aus. ::: Zusätzlich werden die speziellen eingebauten Konstanten und Funktionen von Misskey in drei Gruppen unterteilt. ### Misskey AiScript API Präfix: `Mk:` Eine Gruppe von Konstanten und Funktionen, die in allen AiScript-Umgebungen in Misskey verwendet werden können. Weitere Informationen findest du im [AiScript Misskey Erweiterungs-API-Referenz](./plugin/plugin-api-reference/) im Abschnitt `Mk:`. ### Plugin-API Präfix: `Plugin:` Eine Gruppe von Konstanten und Funktionen, die nur in [Plugins](./plugin/) verwendet werden können. Weitere Informationen findest du im [AiScript Misskey Erweiterungs-API-Referenz](./plugin/plugin-api-reference/) im Abschnitt `Plugin:`. ### UI API Präfix: `Ui:` Kann in [Widgets](/docs/for-users/features/widgets/) (AiScript App), [Misskey Play](./plugin/create-play/) und Scratchpad verwendet werden. Weitere Informationen findest du im [AiScript Misskey Erweiterungs-API-Referenz](./plugin/plugin-api-reference/) im Abschnitt `Ui:`. ### Standard-Ein- & Ausgabe Die interne Implementierung der in AiScript definierten `readline`- und `print`-Funktionen (sowie der `<:`-Syntax) wird von Misskey selbst bereitgestellt. #### readline(message) `message`: `str` Rückgabewert: `str` Kann in allen AiScript-Umgebungen innerhalb von Misskey verwendet werden. Ein Popup-Fenster wird angezeigt, das die Eingabe einer Zeichenfolge anfordert. #### print(message) `message`: `any` Rückgabewert: `null` Kann in [Widgets](/docs/for-users/features/widgets/) (AiScript-Konsole) und Scratchpad verwendet werden. Gibt eine Zeichenfolge in die Konsole aus. Die `<:`-Syntax funktioniert auf die gleiche Weise. ================================================ FILE: content/de/docs/4.for-developers/api/1.index.md ================================================ --- description: 'Offene Misskey API.APIs können zur Entwicklung von Misskey-Clients, in Misskey integrierten Webdiensten, Bots usw. (im Folgenden als „Anwendungen“ bezeichnet) verwendet werden.' --- # Misskey API Offene Misskey API.Durch die Verwendung des Misskey APIs können Misskey Clients, mit Misskey kompatible Web-Services, Bots (ab sofort "Anwendungen" genannt) und mehr entwickelt werden. Ebenso existiert ein Streaming-API, um Echtzeit-Anwendungen zu erstellen. :::tip Die Verwendung des offiziellen Misskey-SDK oder von Bibliotheken von Drittanbietern kann die Nutzung der API bequemer machen, indem sie beispielsweise einige der in diesem Dokument beschriebenen Schritte vereinfacht.\ ::: ================================================ FILE: content/de/docs/4.for-developers/api/endpoints.md ================================================ # Liste der Endpunkte :::tip Derzeit ist die Liste der Endpunkte in Vorbereitung.Bis zur Bereitstellung kann auf die [`/api-doc`-Seite](x-mi-web://api-doc) jedes Misskey-Servers zugegriffen oder der [Misskey-Quellcode](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints) eingesehen werden. Außerdem kann auch der [älteren Misskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html) nutzen, auch wenn die Informationen dort etwas veraltet sind. ::: ================================================ FILE: content/de/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Liste der Misskey-API-bezogenen Bibliotheken' --- # Liste der Bibliotheken ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/de/docs/4.for-developers/api/permission.md ================================================ --- description: 'Liste der von der Anwendung geforderten Berechtigungen' --- # Liste der Berechtigungen :::tip Diese Seite wird automatisch aus [misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) generiert, weshalb die Dokumentation oder Übersetzung unvollständig sein kann. ::: ================================================ FILE: content/de/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'Durch die Verwendung des Streaming-APIs können verschiedene Daten (z.B. darüber, dass neue Beiträge geschrieben wurden, neue Direktnachrichten eingetroffen sind, Benachrichtigungen über einen neuen Follower, usw) in Echtzeit empfangen werden und dann basierend auf diesen verschiedene Aktionen getätigt werden.' --- # Streaming-API :::tip Es wird empfohlen, zuerst die [Misskey API](./index.md) Dokumentation zu lesen. ::: Durch die Verwendung des Streaming-APIs können verschiedene Daten (z.B. darüber, dass neue Beiträge geschrieben wurden, neue Direktnachrichten eingetroffen sind, Benachrichtigungen über einen neuen Follower, usw) in Echtzeit empfangen werden und dann basierend auf diesen verschiedene Aktionen getätigt werden. ## Eine Verbindung zum Stream aufbauen Um das Streaming-API zu benutzen, muss zuerst eine Verbindung zu Misskey's websocket Server aufgebaut werden. Websocket-Verbindung zu einer URL mit folgendem Format: ``` wss://{host}/streaming?i={token} ``` Hier, - Ersetze Sie `{host}` durch den Host des Servers, mit dem Sie eine Verbindung herstellen wollen. - Ersetzen Sie „{token}“, durch das Zugriffstoken des Benutzers. :::tip Ein Verbindungsaufbau ohne Anmeldedaten ist ebenso möglich, jedoch wird in diesem Fall der Zugriff auf manche Daten sowie die Verwendung mancher Funktionen eingeschränkt. ::: Eine Verbindung zum Stream kann durch die später erläuterte API oder durch das Abbonieren individueller Beiträge getätigt werden.Jedoch können zu diesem Zeitpunkt noch keine Informationen über Chroniken wie das Eintreffen neuer Beiträge empfangen werden. Um dies zu ermöglichen, müssen Verbindungen zu später erläuterten Kanälen aufgebaut werden. **Alle Nachrichten an den sowie vom Stream sind in JSON-Format.** ## Kanäle Innerhalb des Misskey Streaming-APIs existiert das Konzept von Kanälen.Diese werden zur Abspaltung der Informationen, die erhalten werden sollen, verwendet. Wird eine Verbindung zum Misskey Stream aufgebaut, so ist es noch nicht möglich, sofort Echtzeit-Aktualisierungen zu empfangen. Durch den Verbindungsaufbau zu Kanälen des Streams wird beidseitige Kommunikation bezüglich Informationen dieses Kanals ermöglicht. :::tip Es ist möglich, sich mit mehreren Kanälen gleichzeitig über eine einzige Stream-Verbindung zu verbinden. ::: Im folgenden Abschnitt wird beschrieben, wie Sie die Kanäle nutzen können.Um zu sehen, welche Kanäle verfügbar sind, siehe [Kanalliste](./channel/index.md). ### Verbindungen zu Kanälen aufbauen Um eine Verbindung zu einem Kanal aufzubauen, sende die folgende Nachricht: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` Hier, - steht channel für den Namen des Kanals, zu dem eine Verbindung aufgebaut werden soll.[チャンネル一覧](./channel/index.md)を参照してください。 - steht id für eine einzigartige ID zur Kommunikation mit diesem Kanal.Da durch den Stream viele verschiedene Nachrichten erhalten werden können, ist eine Zuordnung, zu welchen Kanal eine Nachricht gehört, notwendig.Diese ID kann eine UUID oder etwas wie der Wert eines Zufallszahlengenerators sein. - steht `params` für die Parameter zum Verbindunsgaufbau.Je nach Kanal können die verfügbaren Parameter abweichen.Bei Kanälen, die keine Parameter akzeptieren, kann dieses Attribut ausgelassen werden. :::tip Diese IDs sollen für jede Verbindung zu einem Kanal einzigartig sein, nicht nur für jeden Kanal.Der Grund dafür ist, dass mehrere Verbindungen zum selben Kanal mit unterschiedlichen Parametern zur selben Zeit bestehen können. ::: ### Verarbeitung von eintreffenden Nachrichten der Kanäle Beispielsweise wird bei Erstellung eines neuen Beitrags auf einer Chronik von einem Kanal eine Nachricht ausgelöst.Durch die Verarbeitung solcher Nachrichten ist es möglich, in Echtzeit über die Erstellung eines neuen Beitrags zu erfahren. Sendet ein Kanal eine Nachricht, so wird vom Stream folgendes JSON-Objekt empfangen: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` Hier, - steht id für die zum Verbindungsaufbau gewählte ID, die zuvor erläutert wurde.Hierdurch wird eine Zuordnung, welche Nachricht zu welchen Kanal gehört, ermöglicht. - steht type für die Art der Nachricht.Je nach Kanal können die Arten der Nachrichten, die von einem Kanal empfangen werden, abweichen. - steht body für den Inhalt der Nachricht.Je nach Kanal kann der Inhalt der Nachrichten, die von einem Kanal empfangen werden, abweichen. ### Nachrichten an Kanäle senden Je nach Kanal kann es möglich sein, nicht nur Nachrichten vom Kanal zu empfangen, sondern auch Nachrichten an diesen zu senden, die dann unterschiedliche Aktionen auslösen können. Um eine Nachricht an einen Kanal zu senden, sende folgendes JSON-Objekt an den Stream: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` Hier, - steht id für die zum Verbindungsaufbau gewählte ID, die zuvor erläutert wurde.Hierdurch wird festgelegt, an welchen Kanal diese Nachricht gesendet werden soll. - steht type für die Art der Nachricht.Je nach Kanal können die Arten der Nachrichten, die an einen Kanal gesendet werden können, abweichen. - steht body für den Inhalt der Nachricht.Je nach Kanal kann der Inhalt der Nachrichten, der an einen Kanal gesendet werden kann, abweichen. ### Verbindungen zu Kanälen trennen Um die Verbindung zu einem Kanal zu trennen, sende die folgende Nachricht: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` Hier, - steht id für die zum Verbindungsaufbau gewählte ID, die zuvor erläutert wurde. ## Beitragserfassung Misskey stellt eine sogenannte Beitragserfassung zur Verfügung.Hierdurch können dem angegebenen Beitrag zugehörige Events über den Stream empfangen werden. Sei beispielsweise eine Situation, in der einem Benutzer eine Chronik angezeigt wird.Angenommen, jemand reagiert auf einen der Beiträge in der Zeitleiste. Der Client kann jedoch nicht wissen, dass auf einen Beitrag reagiert wurde, sodass es nicht möglich ist, die Reaktion in Echtzeit in der Zeitleiste anzuzeigen. Um dieses Problem zu lösen, wurde die Funktionalität der Beitragserfassung implementiert.Wird ein Beitrag erfasst, so werden verschiedene diesem Beitrag zugeordnete Events in Echtzeit übermittelt, um bei einer Veränderung diese sofort auf der Chronik anzeigen zu können. Nachfolgend eine Anleitung zur Verwendung der Capture Post-Funktion.Welche Erfassungsereignisse verfügbar sind, finden Sie unter [Liste der Erfassungsereignisse](./note-capture-events.md). ### Einen Beitrag erfassen Um einen Beitrag zu erfassen, sende folgende Nachricht an den Stream: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` Hier, - `id` enthält die `id` des Beitrags der erfasst werden soll. Sobald diese Nachricht gesendet wurde wird dieser Beitrag von Misskey erfasst und es können von nun an diesen Beitrag betreffende Events empfangen werden. Beispielsweise wird das folgende Event empfangen, sobald einem erfassten Beitrag eine Reaktion hinzugefügt wurde: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` Hier, - das id-Attribut in body enthält die ID des Beitrags, der das Event ausgelöst hat. - das type-Attribut in body die Art des Events. - das body-Attribut von body enthält weitere Informationen über das Event. ### Beitragserfassung aufheben Sobald ein Beitrag nicht mehr auf der Chronik angezeigt wird und somit diesen Beitrag betreffende Events nicht mehr benötigt werden, bitten wir um die Aufhebung der Erfassung dieses Beitrags. Sende die folgende Nachricht: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` Hier, - id enthält die id des Beitrags, für den Erfassung aufgehoben werden soll. Sobald diese Nachricht versendet wurde, werden mit diesem Beitrag verbundene Events nicht mehr empfangen. ================================================ FILE: content/de/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # Kanal-Liste ================================================ FILE: content/de/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "Dies ist ein Kanal, in dem die Notizen der Globalen-Timeline durchlaufen." --- # `globalTimeline` Dies ist ein Kanal, in dem die Notizen der Home-Timeline durchlaufen. ## Parameter Keine ## Event ### `note` Es tritt auf, wenn eine neue Notiz zur Globalen-Timeline hinzugefügt wird. ## Aktionen Keine ================================================ FILE: content/de/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "Dies ist ein Kanal, in dem die Notizen der Home-Timeline durchlaufen." --- # `homeTimeline` Dies ist ein Kanal, in dem die Notizen der Home-Timeline durchlaufen. ## Parameter Keine ## Event ### `note` Es tritt auf, wenn eine neue Notiz zur Home-Timeline hinzugefügt wird. ## Aktionen Keine ================================================ FILE: content/de/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Dies ist ein Kanal, in dem die Notizen der sozialen Timeline durchlaufen." --- # `hybridTimeline` Dies ist ein Kanal, in dem die Notizen der sozialen Timeline durchlaufen. ## Parameter Keine ## Event ### `note` <0/> Es tritt auf, wenn eine neue Notiz zur sozialen Timeline hinzugefügt wird. ## Aktionen Keine ================================================ FILE: content/de/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "Dies ist ein Kanal, in dem die Notizen der lokalen Timeline durchlaufen." --- # `localTimeline` Dies ist ein Kanal, in dem die Notizen der lokalen Timeline durchlaufen. ## Parameter Keine ## Event ### `note` <0/> Es tritt auf, wenn eine neue Notiz zur lokalen Timeline hinzugefügt wird. ## Aktionen Keine ================================================ FILE: content/de/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "Dies ist ein Kanal, in dem grundlegende Informationen durchlaufen." --- # `main` Dies ist ein Kanal, in dem grundlegende Informationen durchlaufen. ## Parameter Keine ## Event ### `notification` Es tritt auf, wenn eine Benachrichtigung empfangen wird. ### `mention` <0/> Tritt auf, wenn dich jemand erwähnt ### `reply` Es tritt auf, wenn eine Antwort empfangen wird. ### `renote` Es tritt auf, wenn ein Beitrag neu geteilt (Rezitiert) wird. ### `follow` <0/> Es tritt auf, wenn du einem anderen Benutzer folgst. ### `followed` Es tritt auf, wenn ein anderer Benutzer dir folgt. ### `unfollow` Tritt auf, wenn du jemanden entfolgst. ### `messagingMessage` Es tritt auf, wenn du eine Nachricht empfängst. ### `readAllNotifications` Es tritt auf, wenn alle Benachrichtigungen als gelesen markiert sind. ### `unreadNotification` Es tritt auf, wenn eine neue Benachrichtigung empfangen wird. ### `unreadMention` Es tritt auf, wenn eine neue Erwähnung empfangen wird. ### `readAllUnreadMentions` Es tritt auf, wenn alle Erwähnungen als gelesen markiert sind. ### `unreadSpecifiedNote` Es tritt auf, wenn ein neuer Direktbeitrag empfangen wird. ### `readAllUnreadSpecifiedNotes` Es tritt auf, wenn alle Direktbeiträge als gelesen markiert sind. ### `unreadMessagingMessage` Es tritt auf, wenn eine neue Nachricht empfangen wird. ### `readAllMessagingMessages` Es tritt auf, wenn alle Nachrichten als gelesen markiert sind. ## Aktionen Keine ================================================ FILE: content/de/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # Post-Capture-Event ## `reacted` <0/> Es tritt auf, wenn auf die betreffende Notiz reagiert wird. ## `pollVoted` Es tritt auf, wenn bei der betreffenden Notiz angehängten Umfrage eine Stimme abgegeben wird. ## `deleted` Es tritt auf, wenn bei der betreffenden Notiz angehängten Umfrage eine Stimme gelöscht wird. ================================================ FILE: content/de/docs/4.for-developers/api/token/1.index.md ================================================ # Einen Zugriffstoken erhalten Um mit der Verwendung des APIs zu beginnen, wird zuerst ein Zugriffstoken benötigt. Wie ein solcher Token erhalten werden kann, und wie die API dann hiermit verwendet werden kann, wird auf dieser Seite erklärt. Grundsätzlich benötigt die API ein Zugangs-Token, um eine Anfrage zu stellen. Das Zugriffstoken ist eine mit dem Nutzer verbundene Authentifizierungsinformation, die den Nutzer bei der Nutzung der API identifiziert und verwaltet, zu welchen Vorgängen der Nutzer für jedes Zugriffstoken berechtigt ist. :::tip Es besteht eine eins-zu-viele-Beziehung zwischen einem Benutzer und dem diesem Benutzer zugeordneten Zugangs-Token, und für einen bestimmten Benutzer können mehrere Zugangs-Token ausgestellt werden. ::: Sie können auf einfache Weise Ihr eigenes Zugriffs-Token sowie die Zugriffs-Tokens von nicht spezifizierten Benutzern, die Ihre Anwendung nutzen werden, erhalten. - Im ersten Fall: Gehe zu **„Manuelles Ausstellen Ihres eigenen Zugangstokens “** - Im letzteren Fall: Fahren Sie fort mit **‚Den Benutzer der Anwendung auffordern, ein Zugriffstoken auszustellen‘** ## Einen Zugriffstoken für das eigene Benutzerkonto generieren Sie können Ihr eigenes Zugangstoken in Misskey Web unter „Einstellungen > API“ vergeben. :::danger Der Zugangstoken darf nicht an Dritte weitergegeben werden. ::: ## Einen Benutzer zur Generierung eines Zugangstokens für eine Anwendung auffordern Um das Zugriffstoken eines Benutzers der Anwendung (im Folgenden einfach „Benutzer“ genannt) zu erhalten, verwenden Sie eine der folgenden Methoden. :MkIndex ## Nutzung der API Nach Erhalt des Zugangstokens kann die API durch Anfragen an die verschiedenen Endpunkte genutzt werden. :::tip - Alle HTTP-APIs sind POST und sowohl Anfrage als auch Antwort sind im JSON-Format (außer drive/files/create). - Geben Sie `Content-Type: application/json` in der Kopfzeile der Anfrage an. - Das Zugriffstoken ist im JSON-Körper der Anfrage mit dem Parameternamen „i“ enthalten. - Die Basis-URL lautet „https://{Domäne des Servers}/api“. ::: ### Methoden mit Autorisierung Header Geben Sie das Feld „Autorisierung“ im Header wie folgt an. ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### Methoden via i Beispiel für einen Body mit einem Access-Token (für Meta):. ```json { "i": "HogEFugA1341", "detail": false } ``` Weitere Informationen über die API finden Sie in der API-Referenz. :::warning Misskey verwendet kein REST. ::: Misskey bietet nicht nur eine HTTP-API, sondern auch eine Streaming-API an.Für weitere Details, schaue in die [Dokumentation(../streaming/). ================================================ FILE: content/de/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/de/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/de/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/de/docs/4.for-developers/bot/1.index.md ================================================ # Erstellen eines Bots Die [Misskey API](/docs/for-developers/api/) kann zur Entwicklung des Bots verwendet werden. Darüber hinaus sind mehrere Bot-Implementierungen für die öffentliche Nutzung verfügbar. - syuilo/ai](https://github.com/syuilo/ai) ... Bot-Implementierung in TypeScript, die via Node.js läuft. Wenn du einen Bot erstellst, wird dringend empfohlen, die Bot-Flagge in den Profileinstellungen zu aktivieren. ## Ressourcen - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/de/docs/4.for-developers/plugin/_dir.yml ================================================ title: "Erstellen eines Plugins/Play" description: "Anleitungen zum Erstellen von Plugins und Plays sowie verschiedene Referenzen." ================================================ FILE: content/de/docs/4.for-developers/plugin/create-play.md ================================================ # Play erstellen Play ist eine Funktion, mit der Benutzer ihre eigene Benutzeroberfläche in AiScript erstellen und Miniapps und Spiele entwickeln können. Das erstellte Play kann auf dem Misskey-Server veröffentlicht werden, und jeder kann mit dem erstellten Play spielen. ## AiScript Play kann mit AiScript erstellt werden. ## API Misskey Web stellt APIs für Plugins zur Verfügung, die zur Erweiterung der Funktionalität des Clients verwendet werden können. Um herauszufinden, welche APIs verfügbar sind, lese die [AiScript Misskey Erweiterung und API-Plugins](. /plugin-api-reference/). ================================================ FILE: content/de/docs/4.for-developers/plugin/create-plugin.md ================================================ # Erstellen von Plugins Die Plugin-Funktionalität des Misskey Webclients ermöglicht es, den Client zu erweitern und verschiedene Funktionen hinzuzufügen. Hier erklären wir, wie man Plugins erstellt. ## Plug-in Beispiele Ein Beispiel für ein vollständiges Plugin ist unten abgebildet.Dieses Plugin [`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn), um dem Beitragsformular eine "Fugu Punch"-Schaltfläche hinzuzufügen. Durch die Installation dieses Plugins wird dem Plugin-Menü auf dem Anmeldeformular ein Eintrag „Fugu Punch“ hinzugefügt.Klicke, um „Fugu Punch“ hinzuzufügen !!!! 🐡( ‚-‘ 🐡 )\` wird hinzugefügt. ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript Plug-ins sind mit AiScript geschriebene Skripte. ## Metadaten Plugins müssen benötigte Metadaten im AiScript Metadata-Format angeben. Bei diesen Metadaten handelt es sich um ein Objekt mit folgenden Attributen:Beispiele für Metadaten sind. ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` Metadaten sind ein Objekt, das die folgenden Eigenschaften enthält ### name Name des Plugins ### author Name des Plugin-Erstellers ### version Version des Plugins.Muss eine Zahl sein. ### description Beschreibung des Plugins ### Berechtigungen Die vom Plugin geforderten Berechtigungen.Werden bei Anfragen der Misskey API verwendet. Informationen zur Anforderung der API gibt es unter [AiScript Misskey Extension API Reference](/docs/for-developers/plugin/plugin-api-reference/). :::tip Eine Liste der Berechtigungen gibt es [hier](/docs/for-developers/api/permission/). ::: ### config Ein Objekt, dass die Einstellungen des Plugins enthält. Schlüssel representieren Namen von Einstellungen, und Werte sind einer der unten genannten Attribute. #### type Der Typ eines Einstellungswertes.Muss aus einem dieser Typen gewählt sein: string number boolean #### label Dem Benutzer angezeigter Einstellungsname #### description Beschreibung der Einstellung #### default Standardwert der Einstellung ## API Misskey Web stellt APIs für Plugins zur Verfügung, die zur Erweiterung der Funktionalität des Clients verwendet werden können. Um herauszufinden, welche APIs verfügbar sind, lese die [AiScript Misskey Erweiterung und API-Plugins](. /plugin-api-reference/). ## Veröffentlichen des Plug-in's Ab v2023.11.0 können Themes mit einem einzigen Klick direkt von Ihrer Website aus installieren. Falls Funktionen zur Installation von Themen angeboten werden, muss eine API auf Ihrer Website implementiert werden.Informationen über die Einrichtung einer PWA gibt es [hier](../publish-on-your-website.md). ================================================ FILE: content/de/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey-Erweiterung API Referenz In diesem Abschnitt wird die erweiterte AiScript-API in Misskey vorgestellt. :::tip Die Standard-AiScript-API finden gibt es [hier] (https://aiscript-dev.github.io/guides/get-started.html). ::: ## Gemeinsame Konstanten für alle Felder ### `USER_ID` ID des aktuellen Benutzers ### `USER_NAME` Name des aktuellen Benutzers. ### `USER_USERNAME` Das Handle des aktuellen Benutzers (der Teil nach dem `@`.(z. B. `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` Liste der benutzerdefinierten EmojiDie folgenden Objekte werden in Arrays gespeichert ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` Aktuelle Misskey Web Einrichtungssprache.Darstellung in einem RFC4646-kompatiblen Format (z.B. `ja-JP`) ### `SERVER_URL` Aktuelle Server-URLRepräsentiert durch z. B. `https://www.example.com`. ## Gemeinsame Funktionen in allen Bereichen ### `Mk:dialog(title, text, type)` Zeigt ein Dialogfenster an.Die folgenden Werte können für ype eingestellt werden.\ `info` `success` `warning` `error` `question`\ Standard ist `info`¸ wenn kein anderes Attribut erstellt wurde. ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` Zeigt ein Dialogfenster an.Für type können die folgenden Werte eingestellt werden.\ `info` `success` `warning` `error` `question`\ Standard ist `question`¸ wenn kein anderes Attribut erstellt wurde.\ Gibt `true` zurück, wenn der Benutzer „OK“ wählt oder `false`, wenn der Benutzer „Cancel“ wählt. ```AiScript let response = Mk:confirm( 'Bist du sicher?' 'Dieser Vorgang kann nicht rückgängig gemacht werden.' 'warning' ) if (response) { // OK, bestätigen } else { // Abbruch } ``` ### `Mk:api(endpoint, params, token?)` Sendet eine Misskey API-Anfrage.Der erste Parameter gibt den API-Endpunkt an, der zweite die Anfrageparameter als Objekt. Als drittes Argument kann auch ein token angegeben werden.Bei der Arbeit mit Plugins wird, wenn im Metadatenblock „Berechtigungen“ angegeben sind, das Token mit der Berechtigung verwendet, wenn das dritte Argument nicht angegeben ist. :::tip Eine Liste der Berechtigungen gibt es [hier](/docs/for-developers/api/permission/). ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` Speichert einen beliebigen Wert dauerhaft unter einem beliebigen Namen.Der gespeicherte Wert bleibt auch nach Verlassen des AiScript-Kontexts erhalten und kann mit Mk:load ausgelesen werden. ### `Mk:load(key)` Läd den Wert des gegebenen Schlüssels, der zuvor mit Mk:save gespeichert wurde ### `Mk:remove(key)` \*Verfügbar ab v2025.1.0 (vorläufig). Läd den Wert des gegebenen Schlüssels, der zuvor mit Mk:save gespeichert wurdeWenn der Wert mit dem angegebenen Namen nicht existiert, wird nichts unternommen. ### `Mk:url()` Ermittelt die URL der aktuell geöffneten Seite (die URL, die in der Adressleiste des Browsers angezeigt wird). ### `Mk:nyaize(text)` Verkleinert den angegebenen Text.MFM-Syntax etc. werden nicht berücksichtigt. ## Plug-in Beispiele ### `Plugin:register_post_form_action(title, fn)` Fügt dem Beitragsfenster eine Aktion hinzu.Das erste Argument ist der Name der Aktion und das zweite Argument ist die Callback-Funktion, wenn die Aktion ausgewählt wird.\ Die Callback-Funktion erhält als erstes Argument den `Text` und `cw` der übermittelten Formularobjekte und als zweites Argument die Funktion, die sie umschreiben soll. ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` Fügt dem Notiz-Menü ein Listenelement hinzu.Das erste Argument ist der Name des Elements und das zweite Argument ist die Callback-Funktion, wenn das Element ausgewählt ist.\ Der Callback-Funktion wird als erstes Argument ein Ziel-notizen-Objekt übergeben. ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) ``` ### `Plugin:register_user_action(title, fn)` Fügt dem Benutzer-Menü ein Listenelement hinzu.Das erste Argument ist der Name des Elements und das zweite Argument ist die Callback-Funktion, wenn das Element ausgewählt ist.\ Der Callback-Funktion wird ein Zielbenutzerobjekt als erstes Argument übergeben. ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) ``` ### `Plugin:register_note_view_interruptor(fn)` Schreibt die in der Benutzeroberfläche angezeigten Notizinformationen um.\ Der Callback-Funktion wird als erstes Argument ein Ziel-notizen-Objekt übergeben.\ Die Notiz wird in den Rückgabewert der Callback-Funktion umgeschrieben.\ Die Rückgabe von `null` blendet die Notiz aus. :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` Die Informationen zur Notiz werden beim Einreichen der Notiz neu geschrieben.\ Der Callback-Funktion wird als erstes Argument ein Ziel-notizen-Objekt übergeben.\ Die Notiz wird in den Rückgabewert der Callback-Funktion umgeschrieben. ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Die Seiteninformationen werden neu geschrieben, wenn die Seite angezeigt wird.\ Der Callback-Funktion wird ein Ziel-Seitenobjekt als erstes Argument übergeben.\ Die Seite wird mit dem Rückgabewert der Callback-Funktion neu geschrieben. ```AiScript Plugin:register_note_post_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` Die als erstes Argument übergebene URL wird in einer neuen Registerkarte des Browsers geöffnet. ### `Plugin:config` Ein Objekt, dass die Plugin-Einstellungen enthält.Die in den Plugin-Einstellung eingetragenen Werte sind hier unter den Einstellungsnamen gespeichert. ## Play Attribute ### `THIS_ID` Play erstellen ### `THIS_URL` Play URL ## UI-Steuerungsfunktionen (verfügbar für Play- und AiScript-App-Widgets) ### `Ui:root` Stammelement der Benutzeroberfläche. ### `Ui:render([ ...components ])` Syntaktischer Zucker für `Ui:root.update({ children: [ ...components ] })`.Das UI-Root-Element wird überschrieben. ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` ID-zugewiesene Komponenten abrufen und Aktionen durchführen. ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## Komponentenfunktionen (verwendbar mit Play und AiScript App-Widgets) In den folgenden Elementen kann beim Initialisieren die ID der Komponente als zweites Argument wie `Ui:C:xxx(props id)` angegeben werden (in den folgenden Referenzen wird dies überall weggelassen).Die angegebene ID kann mit der Funktion `Ui:get(id)` abgerufen und mit der `update`-Funktion direkt geändert werden (weitere Informationen findest du in der Referenz zu `Ui:get(id)`). ### Listenmodus #### `Ui:C:container` Ein Rahmen (Container), der Formatierungen wie Einrücken und Farbgebung ermöglicht. ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` Ein Akkordeon-Element (ein Container, den Benutzer öffnen und schließen können) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### Text #### `Ui:C:text` Unformatierter Text ```AiScript Ui:C:text({ text: "Inhalt" // Anzuzeigender Text size: 1 // Schriftgröße bold: false // Fettgedruckt color: '#000' // Farbe font: 'monospace' // Schriftart serif, sans-serif, monospace }) ``` #### `Ui:C:mfm` MFM-Text ```AiScript Ui:C:mfm({ text: "Inhalt" // Anzuzeigender Text size: 1 // Schriftgröße bold: false // Fettgedruckt color: '#000' // Farbe font: 'monospace' // Schriftart serif, sans-serif, monospace onClickEv: @(id) { // MFM-Syntax-Handler für $[clickable.ev=eventId TEXT] <: `{id} angeklickt` } }) ``` ### Formulare #### `Ui:C:button` Schaltflächen ```AiScript Ui:C:button({ text: "Button" // Anzuzeigender Text auf dem Button onClick: @() { // Event beim Drücken des Buttons } primary: false // Soll eine Farbe hinzugefügt werden? rounded: false // Sollen die Ecken abgerundet sein? disabled: false // Soll der Button deaktiviert sein? }) ``` #### `Ui:C:buttons` Schaltflächen (nebeneinander) ```AiScript Ui:C:buttons({ buttons: [ // Array von Button-Definitionen. Die Angabe der Props erfolgt wie bei Ui:C:button {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // Event, wenn der Zustand geändert wird. Das erste Argument ist der neue Zustand (Boolean) } default: false // Standardwert label: "Label" // Text neben dem Schalter caption: "Caption" // Hilfetext, der unter dem Schalter angezeigt wird }) ``` #### `Ui:C:textInput` Einzeilige Texteingabe ```AiScript Ui:C:textInput({ onInput: @(text) { // Event, wenn Text eingegeben wird. Das erste Argument ist der neue Wert } default: "Standard" // Standardwert label: "Label" // Text über dem Eingabefeld caption: "Caption" // Hilfetext, der unter dem Eingabefeld angezeigt wird }) ``` #### `Ui:C:numberInput` Einzeilige Texteingabe ```AiScript Ui:C:numberInput({ onInput: @(number) { // Event, wenn eine Zahl eingegeben wird. Das erste Argument ist der neue Wert } default: "Standard" // Standardwert label: "Label" // Text über dem Eingabefeld caption: "Caption" // Hilfetext, der unter dem Eingabefeld angezeigt wird }) ``` #### `Ui:C:textarea` Mehrzeiliges Texteingabefeld ```AiScript Ui:C:textarea({ onInput: @(text) { // Event, wenn Text eingegeben wird. Das erste Argument ist der neue Wert } default: "Standard" // Standardwert label: "Label" // Text über dem Eingabefeld caption: "Caption" // Hilfetext, der unter dem Eingabefeld angezeigt wird }) ``` #### `Ui:C:select` Ein Format, bei dem aus mehreren Werten einer ausgewählt wird. ```AiScript Ui:C:select({ items: [ // Array von Auswahlmöglichkeiten. Für text den anzuzeigenden Text und für value den Wert, der beim Ereignis übergeben wird {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // Event bei Änderung. Das erste Argument ist der neue value } default: "v1" // Standardwert für value label: "Label" // Text über dem Eingabefeld caption: "Caption" // Hilfetext unter dem Eingabefeld }) ``` ### Verwandt mit dem Veröffentlichen von Notizen #### `Ui:C:postForm` Ein Einreichungsformular direkt in Play einbetten. ```AiScript Ui:C:postForm({ form: { cw: "CW-Anmerkung" // Text für die "Zusammenfassung", wenn CW angegeben wird text: "Inhalt des Beitrags" // Standardtext des Eingabeformulars // Folgendes kann ab Misskey v2024.5.0 angegeben werden visibility: "home" // Standard-Sichtbarkeit des Beitrags (wenn nicht angegeben, öffentlich) localOnly: false // Standardmäßig keine Föderation (wenn nicht angegeben, false) } }) ``` #### `Ui:C:postFormButton` Ein spezieller Button, der ein Einreichungsformular aufruft. ```AiScript Ui:C:postFormButton({ text: "Post!" // Anzuzeigender Text auf dem Button primary: false // Soll eine Farbe hinzugefügt werden? rounded: false // Sollen die Ecken abgerundet sein? form: { cw: "CW-Anmerkung" // Text für die "Zusammenfassung", wenn CW angegeben wird text: "Inhalt des Beitrags" // Standardtext des Eingabeformulars // Folgendes kann ab Misskey v2024.5.0 angegeben werden visibility: "home" // Standard-Sichtbarkeit des Beitrags (wenn nicht angegeben, öffentlich) localOnly: false // Standardmäßig keine Föderation (wenn nicht angegeben, false) } }) ``` ================================================ FILE: content/de/docs/4.for-developers/publish-on-your-website.md ================================================ # Veröffentlichen von Plug-ins und Themen Ab Misskey v2023.11.0 können verschiedene zusätzliche Ressourcen direkt von der Website aus installiert werden.Dies ist besonders nützlich für diejenigen, die viele Plug-ins und Themes herstellen oder eine Plug-in-Vertriebsseite einrichten wollen. ## Ressourcen für externe Installation - [Plugins](./plugin/create-plugin/) `plugin` - [Themes](../for-users/features/theme/) `theme` ## So funktioniert's Um sicherzustellen, dass die von Misskey Web empfangenen Ressourcen während der Installation nicht manipuliert werden, wird sowohl auf der Seite des Verteile als auch auf der Seite von Misskey ein Hash-Wert berechnet, der dann von Misskey abgeglichen wird. Wenn der Hash-Wert nicht übereinstimmt, kann die Ressource nicht installiert werden. ## Anleitung ### Hostende Seite Erstelle einen Link mit der Schaltfläche „Installieren“ und einer URL mit folgenden Attributen ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: Setzt den Benutzer-HostHosts müssen generell Benutzereingaben zulassen. - `{API_URL}`:setzt durch die URL der API für die Ressourcenverteilung (siehe unten).Relative Pfade sind nicht erlaubt - `{HASH}`: setzt den SHA-512-Hash der zu verteilenden Ressource.**Zeilenumbruchcodes innerhalb der Ressource sollten mit LF übereinstimmen.** ### API-Seite für die Ressourcenveröffentlichung Rückgabe eines JSON-Objekts von dem in `{API_URL}` angegebenen Endpunkt, z. B. ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: Gibt den Code an, der unter „Unterstützte Ressourcen für die externe Installation“ angegeben ist. - `data`: Der Quellcode der Ressource wird als **Zeichenfolge** eingegeben. - In diesem Fall sollte der Zeilenvorschubcode **LF** lauten. ================================================ FILE: content/de/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # Release Notes Misskey Versionsupdates ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### Allgemein - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 Vom: 2025/01/28 ### Note - [Wichtig] Die Konfiguration der Konfigurationsdateien (z. B. default.yml) wird sich durch die Hinzufügung des Anbieters für die Notizensuche leicht ändern. - Es wurde ein neuer Konfigurationspunkt „fulltextSearch.provider“ hinzugefügt. Kann auf sqlLike, sqlPgroonga oder meilisearch gesetzt werden. - Wenn bereits Meilisearch verwendet wird, muss **„fulltextSearch.provider“ auf „meilisearch “** gesetzt werden. - Siehe #14730 und `.config/example.yml` oder `.config/docker_example.yml` für Details. - [Für Entwickler] Das Problem, dass der HMR im früheren Entwicklungsmodus nicht funktionierte, wurde behoben, und der getrennte Backend- und Frontend-Entwicklungsmodus wurde entfernt.In der Entwicklungsumgebung sind möglicherweise Änderungen der Konfiguration erforderlich. ### General - Feat: Benutzerdefinierter Piktogramm-Verwaltungsbildschirm erneuert #10996 - Da es sich um eine Beta-Version handelt, werden die alten Bildschirme weiterhin verfügbar sein. ### Client - Verbesserung: Kanäle können in mehreren Reihen auf PC-Bildschirmen angezeigt werden. (Cherry-Pick von https://github.com/Otaku-Social/maniakey/pull/13) - Erweiterung: Wenn die Abfrage fehlschlägt, wird der Grund dafür angezeigt - Erweiterung: Wortstummschaltung, um erkannte Wörter anzeigen zu können. - Erweiterung: Links können von zu entfernten Notizen kopiert werden. - Erweiterung: Designänderungen für Server, bei denen förderierte auf der Whitelist stehen und deaktiviert sind. - Erweiterung: Funktion `Mk:remove` hinzugefügt, um AiScript-Speicherdaten explizit zu löschen. - Erweiterung: Es wurde eine Registerkarte „Dateien“ hinzugefügt, die es den Benutzern ermöglicht, zu einer Liste von Notizanhängen zurückzukehren. (Basierend auf https://github.com/Otaku-Social/maniakey/pull/14) - Erweiterung: Strengere Typüberprüfung von Argumenten in den erweiterten API-Funktionen von AiScript - Erweiterung: Abfrageparameter zur vorübergehenden Änderung der Benutzeroberfläche #15240 - Erweiterung: Emoji-Fernimport mit Details #15336 - Fix: Ein Problem wurde behoben, bei dem die Navigationsleiste bei einer Änderung der Bildschirmgröße nicht automatisch eingeklappt wurde. - Fix: Fehlende Trennlinien im Server-Informationsmenü behoben. - Fix: Es wurde ein Problem behoben, bei dem das Schließen des Anmeldedialogs dazu führte, dass die nachfolgende Flusszeile verloren ging, wenn die Notiz nur für den angemeldeten Benutzer sichtbar war. - Ein Problem wurde behoben, bei dem das eingebettete Widget für Notizen, deren Publikationsbereich Home ist, nicht geladen wurde. (Cherry-Pick von https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: Es wurde ein Problem behoben, bei dem einige Piktogramme nicht auf dem Piktogramm-Verwaltungsbildschirm angezeigt wurden. - Fix: Plugin `register_note_view_interruptor` behebt Problem beim Umschreiben von Serverinformationen für Notizen - Fix: Beim Ändern von Bot-Schutz-Einstellungen können die Änderungen nur gespeichert werden, wenn sie die Überprüfung tatsächlich bestehen (#15137). - Fix: Ein Problem wurde behoben, bei dem das Feld für die Notizensuche im Kanal auch dann angezeigt wurde, wenn die Notizensuche deaktiviert war - Fix: Problem mit „Ui:C:select“ behoben, bei dem Wertänderungen nicht auf dem Bildschirm angezeigt wurden - Fix: Es wurde ein Problem auf dem MiAuth-Autorisierungsbildschirm behoben, das einen Übergang zur Callback-URL verursachte, auch wenn der Autorisierungsprozess fehlschlug. (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: Auf dem Bildschirm zur Erstellung von Notizen wurde ein Problem behoben, bei dem die Schaltfläche „Notiz“ auch dann gedrückt werden konnte, wenn die Anzahl der anhängbaren Dateien überschritten wurde. - Fix: Es wurde ein Problem behoben, bei dem Konten, deren Benutzerinformationen nicht abgerufen werden konnten (z. B. gelöschte Konten), nicht auf dem Bildschirm „Konten verwalten“ angezeigt wurden - Fix: Es wurde ein Problem behoben, bei dem das Schließen von Misskey die Audiofunktionalität anderer Tabs bei der Verwendung eines Chrome-basierten Browsers unter MacOS beeinträchtigt hat. - Fix: Es wurde ein Problem behoben, bei dem eingebettete Widgets abhängig vom Cache-Status der Sprachdaten nicht korrekt gestartet wurden - Fix: Es wurde ein Problem behoben, bei dem Notizen unter „Löschen und Bearbeiten“ nicht aus den Zitaten entfernt werden konnten. (#14476) - Fix: Ein Problem mit der korrekten Anzeige des RSS-Widgets wurde behoben. (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: API-Fehler behoben, der manchmal auftrat, wenn das Speichern von Wortstummschaltung fehlschlug - Fix: Behebt ein Problem, bei dem Remote-Emojis in Umfragen nicht korrekt gezeichnet werden. (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: Es wurde behoben, dass die Menütaste auf dem Server-Übersichtsbildschirm nicht gedrückt werden konnte, wenn man nicht eingeloggt war. (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: Es wurde ein Problem behoben, bei dem der Bildbetrachter nicht mit dem Zurück-Button des Browsers geschlossen werden kann, wenn die URL von Anfang an `#pswp` enthält - Fix: Begrenzung der maximalen Anzahl von Symboldekorationen, die im Rollenerstellungsbildschirm eingestellt werden können, auf 16. - Fix: Ein Problem wurde behoben, bei dem Icons in Firefox Nightly etc. nicht geladen wurden. ### Server - Verbesserung: Suche nach LOWER()'d-Text mit dem LIKE-Operator anstelle des ILIKE-Operators, damit pg_bigm verwendet werden kann. - Erweiterung: Unterstützung von pgroonga als Option für die Notizsuche (#14730) - Erweiterung: Vermeidung gleichzeitiger Datenbankverbindungen bei der Aktualisierung von Charts (Übernommen von https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Erweiterung: Möglichkeit zur Konfiguration, ob vollständige SQL-Logs aus der config(default.yml) ausgegeben werden sollen (#15266) - Fix: Behebung des Problems, bei dem die Übersichts-Registerkarte fehlschlägt, wenn das Profil eines Benutzers direkt über eine Adresseingabe angezeigt wird (#15032). - Fix: Behebung des Problems, dass der Verbindungstest vor dem Start nicht mehr funktionierte (Übernommen von https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: Behebung des Problems, dass Notizen im Feed angezeigt wurden, obwohl die Anmeldung für das Betrachten von Notizen erforderlich war. - Fix: Lizenzfelder bei der Föderation von Emojis werden gegenseitig ausgetauscht (#10859, #14109) - Fix: Behebung des Problems, dass gesperrte zeitlich beschränkte Notizen über Streaming im LTL erschienen (#15200) - Fix: Anpassung der Initialisierungslogik bei der Einstellung disableClustering (#15223) - Fix: Behebung des Problems, dass die Abfrage von Entitäten mit unterschiedlichen URL und URI fehlschlägt (#15039) - Fix: Behebung des Problems, dass die Erkennung von ActivityPub-Anfragen nicht korrekt war (Übernommen von https://github.com/MisskeyIO/misskey/pull/869) - Fix: Behebung des Problems, dass bei einer Anfrage an `/api/pages/update` ohne Angabe von `name` ein Fehler auftritt. - Fix: Behebung des Problems, dass die AI-Sensitivitätserkennung auf arm64-Systemen nicht funktioniert. - Fix: Behebung des Problems, dass Notizen, die von nicht-Misskey-Software mit HTML-``-Tags empfangen werden, in die MFM-Rubi-Syntax konvertiert und angezeigt werden. - Fix: Reduzierung redundanter Verarbeitung für Notizen, die mit deaktivierter Föderation gepostet wurden (#15018) - Fix: Behebung des Problems, dass die Antwort von `/api.json` ab der zweiten Anfrage fehlerhaft wird. ### Misskey.js - Feat: Ermöglichen der Einstellung des `binaryType` der WebSocket-Verbindung ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/de/docs/6.donate.md ================================================ # Spenden :::tip Wenn Sie daran interessiert sind, das Projekt zu unterstützen (zu sponsern) [klicken Sie hier](/docs/become-a-sponsor/). ::: Misskey ist kein Unternehmen und kann kostenlos genutzt werden, sodass die einzigen Einnahmen aus Spenden stammen.(Einige Server scheinen Werbeeinnahmen zu generieren, aber das ist das Einkommen des Betreibers und nicht direkt des Entwicklers.) Spenden ermöglichen es uns, die Entwicklung fortzusetzen und das Projekt auch in Zukunft zu unterstützen.Die folgenden Methoden werden akzeptiert:(Bitte lese vor deiner Spende alles sorgfältig durch) - Regelmäßige Unterstützung - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Einmalige Spenden - (おすすめ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Cryto-Wallet: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazon.jp-Wishlist](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip Größere Spende machen (z.B. mehr als 30.000 Yen)? ziehe bitte Kyash in Betracht oder kontaktieren Sie uns und wir werden Ihnen ein Bankkonto zur Verfügung stellen, da PayPal und andere Methoden zu hohe Gebühren haben. ::: :::tip Je nach Höhe des Betrages sind die folgende Belohnungen möglich: - 1.000 und mehr: mi-Badge für dein misskey.io-Konto - Über ¥3.000: ↑ + Dein Name in den Credits von Misskey - Über ¥10.000: ↑ + Name in den Misskey-Credits + beliebiges Symbol - 20.000+: ↑ + [MisskeyID-Karte](/docs/mi-card/) ::: :::warning Eine Rückerstattung ist unter keinen Umständen möglich (einschließlich bei Nichtannahme einer Rücksendung aus irgendeinem Grund).Wir freuen uns über jegliche Spende und geben unser bestes die Entwicklung voranzutreiben. ::: :::warning **Da die Vergabe und Anrechnung von Abzeichen nicht automatisch erfolgt, senden Sie Ihre Anfrage bitte an `@syuilo@misskey.io` und gebe an, dass du gespendet hast.** (Antworte gerne auch gerne nach ein paar Tagen auf die E-Mail, da wir nicht jede Nachricht direkt einsehen.Außerdem werden Erwähnungen möglicherweise nicht von anderen Servern als misskey.io empfangen.Ebenfalls stehen wir über das Misskey Project Kontaktfomular zur Verfügung.) ::: Ausserdem erziehlen die Serverbetreiber nahezu keine Einnahmen.Der Betrieb eines Servers ist kostspielig, daher bitten wir auch die Betreiber unterstützen. Auch wenn es nicht direkt mit der Entwicklung zusammenhängt, ist das Projekt nur so gut wie seine Server, daher ist es genauso wichtig, dass der Betrieb gewartet wird wie die Entwicklung. ================================================ FILE: content/de/docs/7.become-a-sponsor.md ================================================ # Werde ein Supporter :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Das Misskey-Projekt sucht nach Sponsoren. Als Sponsor erhalten Sie ein Firmenlogo auf Misskey und dem Misskey Hub sowie technische Unterstützung. [Für eine Kontaktaufnahme stehen wir Ihnen hier zur Verfügung.](/contact/) ================================================ FILE: content/de/docs/8.mi-card.md ================================================ # MisskeyID-Karte - Japan only Als Vorteil der Unterstützung des Misskey-Projekts wird eine physische „MisskeyID-Karte“ ausgestellt! **MisskeyID-Karten sind Ihre eigene, sehr robuste Metallkarte, die mit einer Seriennummer und einem Besitzer versehen ist.** Die Karte besteht aus einer groberen, schweren Metallplatte mit Präzisionsbearbeitung, um eine Karte mit hohem Status zu schaffen. Die Vorder- & Rückseite sind von Shuiro sorgfältig gestaltet.Wir hoffen damit deinen Erwartungen treue leisten zu können. Für ein Video des eigentlichen Produkts [hier klicken] (https://www.youtube.com/shorts/AdzzwxEa-WE) (Es sieht aufgrund der Beleuchtung golden aus, ist aber in Wirklichkeit silbern). ## プレート仕様 - Höhe/Breite: 54.0mm x 85.6mm - Gewicht: 34g - Material: 1,0 mm starker, hochglanzpolierter Edelstahl - Verarbeitung: Hochglanz (Oberfläche), Ätzen (andere Oberflächen), Siebdruck (Logo), Lasergravur (Nummerierung) - Design: Design von Shuiro / mit Seriennummer, Barcode, QR-Code und Ai-chan-Unterschriftengravur オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(Ohne Zusatzkosten) ### 3D-Ansicht ::X__Docs__mi-card__InteractiveView :: ※Das Motiv auf der Rückseite entfällt.Das Modell kann vom Produkt abweichen. ## Anforderung für einen Anspruch **Eine Karte wird an diejenigen vergeben, die insgesamt mindestens 20.000 Yen unterstützen.** :::g-details{summary='2枚以上ご希望の場合'} Zwei oder mehr Karten, für jeweils 30.000 Yen eine zusätzliche Karte. Anzahl der zusätzlichen Exemplare, ist der Betrag der Unterstützung minus 20.000 Yen geteilt durch 30.000 Yen. So werden beispielsweise zwei Karten für einen Gesamtbetrag von mindestens 50.000 Yen berechnet, drei Karten für einen Gesamtbetrag von mindestens 80.000 Yen usw. So kann berechnet werden, wie viele Karten insgesamt erhalten werden kann: ::X__Docs__mi-card__Calculator :: Beachte, dass es, je nach Verfügbarkeit, nicht möglich ist die gewünschte Anzahl von Karten bereitstellen zu können. ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: Die Unterstützung in USD wird in 1USD = 150JPY umgerechnet, unabhängig davon, wann die Unterstützung gegeben wird.Für Berechnungen in anderen Währungen nehme bitte Kontakt mit uns auf! プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 Wir bedauern, dass die **Lieferung aus Gründen der Zustellung derzeit nur an Personen mit Wohnsitz in Japan möglich ist.** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** Beachte bitte, dass der Support für die einzelnen Misskey-Server für dieses Angebot nicht in Frage kommt [Klicke hier, um das Misskey-Projekt zu unterstützen](/docs/donate/) ::: :::tip Für die Berechnung des Unterstützungsbetrags kann jede beliebige Methode der Unterstützung und jeder beliebiger Zeitraum herangezogen werden. Wenn beispielsweise im Jahr 2023 eine Spende von 5000 Yen über PayPal, 12000 Yen über Fanbox und 3000 Yen über Amazon Wishlist im Jahr 2024 gespendet wurde, bist du berechtigt, 5000 + 12000 + 3000 = 20000 zu erhalten. ::: ## Bewerbungsprozess Reiche die Bewerbung über das unten stehende Formular ein.(Google-Konto erforderlich) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## Versand Die Lieferung erfolgt durch Japan Post.**Kostenloser Versand.** - Sendungs-/Tracking-Nr. (erhalt via E-Mail) - Sendung von Mo-So - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。Bitte kontaktiere die japanische Post, sofern ein Problem mit der Verpackung oder Verpackung enstanden sein sollte. :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 Die Versandart kann nicht angegeben werden. ::: ## Zusätzliche Hinweise - Die technischen Daten können ohne vorherige Ankündigung nicht geändert werden. - Seriennummern können nicht ausgewählt werden. - Geringfügige Mängel an der Karte können bestehen. - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - Die Verteilung kann ohne Vorankündigung nicht ausgesetzt oder beendet werden. - Der Schwellenwert für die Bezahlung kann ohne vorherige Ankündigung nicht geändert werden. - Bewahre es an einem sicheren Ort, da es bei Verlust, Beschädigung oder Diebstahl nicht erneut ausgestellt werden kann. - Bitte sehe von einem Weiterverkauf oder einer Weitergabe ab. ================================================ FILE: content/de/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/en/.docs-legacy/admin/cdn.md ================================================ # 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. :::: ================================================ FILE: content/en/.docs-legacy/admin/default-reaction.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/admin/emoji.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/admin/nginx.md ================================================ # 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; } } ``` ================================================ FILE: content/en/.docs-legacy/admin/push-docker-hub.md ================================================ # 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. ::: ================================================ FILE: content/en/.docs-legacy/admin/troubleshooting.md ================================================ # 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. ::: ================================================ FILE: content/en/.docs-legacy/api/app.md ================================================ --- 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', }); ``` ================================================ FILE: content/en/.docs-legacy/api/common.json5 ================================================ { 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.', }, }, } ================================================ FILE: content/en/.docs-legacy/api/index.md ================================================ --- 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.
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`. ::: ================================================ FILE: content/en/.docs-legacy/api/streaming/channel/global-timeline.md ================================================ --- description: "Channel where nots from the global timeline are streamed." --- # `globalTimeline` Channel where nots from the global timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the global timeline. ## Operations none ================================================ FILE: content/en/.docs-legacy/api/streaming/channel/home-timeline.md ================================================ --- description: "Channel where nots from the home timeline are streamed." --- # `homeTimeline` Channel where nots from the home timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the home timeline. ## Operations none ================================================ FILE: content/en/.docs-legacy/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Channel where nots from the social timeline are streamed." --- # `hybridTimeline` Channel where nots from the social timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the social timeline. ## Operations none ================================================ FILE: content/en/.docs-legacy/api/streaming/channel/index.md ================================================ # Channel list ================================================ FILE: content/en/.docs-legacy/api/streaming/channel/local-timeline.md ================================================ --- description: "Channel where nots from the local timeline are streamed." --- # `localTimeline` Channel where nots from the local timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the local timeline. ## Operations none ================================================ FILE: content/en/.docs-legacy/api/streaming/channel/main.md ================================================ --- description: "This channel provides basic information." --- # `main` This channel provides basic information. ## Parameters none ## Events ### `notification` Occurs when you receive a notification. ### `mention` Occurs when a message is sent. ### `reply` Occurs when a reply is received. ### `renote` Occurs when one of your notes is renoted. ### `follow` Occurs when you follow another user. ### `followed` Occurs when another user follows you. ### `unfollow` Occurs when you unfollow another user. ### `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 ================================================ FILE: content/en/.docs-legacy/api/streaming/index.md ================================================ --- 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. ================================================ FILE: content/en/.docs-legacy/api/streaming/note-capture-events.md ================================================ # Note Capture Events ## `reacted` Occurs when a reaction is made to the target note. ## `pollVoted` Occurs when the survey attached to the target note is voted on. ## `deleted` Occurs when the target note is deleted. ================================================ FILE: content/en/.docs-legacy/donate.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/faq.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/ads.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/antenna.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/charts.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/clip.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/custom-emoji.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/deck.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/drive.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/favorite.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/follow.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/index.md ================================================ # Functions ================================================ FILE: content/en/.docs-legacy/features/mfm.md ================================================ --- 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 ================================================ FILE: content/en/.docs-legacy/features/mute-and-block.md ================================================ # 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". ::: ================================================ FILE: content/en/.docs-legacy/features/note.md ================================================ # 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 Ctrl + Enter 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 silenced. ::: ### 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
PublicHomeFollowersDirect
LTL/STL/GTL of Followers
LTL/STL/GTL of Others
## 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. ================================================ FILE: content/en/.docs-legacy/features/online-status.md ================================================ # 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.
Colour State Description
🟢 green online Misskey is being used right now.
🟡 yellow active The user is absent but Misskey is still being used.
🔴 red offline Misskey is not used.
⚫ grey unknown The status is private or not available for remote users etc.
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. ::: ================================================ FILE: content/en/.docs-legacy/features/pages.md ================================================ # 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 { variable name } in the text. For example, in Hello { thing } world!, if the value of the variable (thing) was ai, then the text would become Hello ai world!. 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, A, B, C, that are defined in that order, A and B can be referenced inside of C's definition; however, B and C cannot be referenced inside of A'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. ================================================ FILE: content/en/.docs-legacy/features/plugin.md ================================================ # 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). ================================================ FILE: content/en/.docs-legacy/features/reaction.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/share-form.md ================================================ # 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) | ================================================ FILE: content/en/.docs-legacy/features/silence.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/theme.md ================================================ # 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 ================================================ FILE: content/en/.docs-legacy/features/thread-mute.md ================================================ # 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. ::: ================================================ FILE: content/en/.docs-legacy/features/timeline.md ================================================ # 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 | | | | | ================================================ FILE: content/en/.docs-legacy/features/webhook.md ================================================ # 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. 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. ### followed Occurs when you are followed by someone. ### unfollow Occurs when you unfollow someone. ### note Occurs when you post a note. ### reply Occurs when someone has replied to your note. ### renote Occurs when your note is renoted. ### mention Occurs when someone has mentioned you. ================================================ FILE: content/en/.docs-legacy/features/widgets.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/features/word-mute.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/getting-started.md ================================================ # 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. :::g-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 ================================================ FILE: content/en/.docs-legacy/glossary.md ================================================ # 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". ================================================ FILE: content/en/.docs-legacy/install/bash.md ================================================ # 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をインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/en/.docs-legacy/install/docker.md ================================================ 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 ``` ================================================ FILE: content/en/.docs-legacy/install/kubernetes.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/install/manual.md ================================================ 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: :::g-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`: :::g-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` ================================================ FILE: content/en/.docs-legacy/install.md ================================================ # 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) ================================================ FILE: content/en/.docs-legacy/misskey-hub.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/misskey.md ================================================ # 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 Distributed service, also called a Decentralized service, refers to a service which features the division of a community into many servers that all mutually communicate (federate) with each other to share their contents, building a network (Fediverse). 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, making the source code of software (a program) publicly available.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. ### 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!)
ℹ️ To read more about Ai, check here (Japanese-only).
================================================ FILE: content/en/.docs-legacy/releases.md ================================================ # 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 `/emoji/.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 `` 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.1(2022/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). ::: ================================================ FILE: content/en/.docs-legacy/tips/disable-timelines.md ================================================ # 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. ================================================ FILE: content/en/.docs-legacy/troubleshooting.md ================================================ --- 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. ================================================ FILE: content/en/contact-faq/0.cannot-create-account.md ================================================ --- question: I cannot create an account --- **Sorry, but you have reached the wrong website. Please check your contact information again.** This is the official website for Misskey, the open source SNS server software developed by Misskey Project. If you are unable to register even after referring to the above procedure, or if you have any questions about items that are not included in the above procedure (e.g. customized by each server), please contact the administrator of your server. Note that servers using Misskey software, both individually and collectively, are often referred to as "Misskey".) The Misskey Project is only responsible for the source code of the Misskey server software, which is provided free-of-charge. We do not provide or operate any servers that use Misskey software or its derivatives. We also do not have the ability to regulate services using Misskey software. We are unable to respond to inquiries on our contact form about individual services.\*\* ================================================ FILE: content/en/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: I cannot sign in to my account --- **Sorry, but you have reached the wrong website. Please check your contact information again.** This is the official website for Misskey, the open source SNS server software developed by Misskey Project. Misskey is server software for operating SNS services. It is not itself an SNS service. Note that SNS services using Misskey software (Misskey servers) are sometimes referred to as "Misskey".) The Misskey Project is only responsible for the source code of the Misskey server software, which is provided free-of-charge. We do not provide or operate any servers that use Misskey software or its derivatives. If you are unable to log in to your account, please contact your server administrator as there may be some problem with the server or account you are registered with. We are unable to respond to inquiries on our contact form about individual services.\*\* ================================================ FILE: content/en/contact-faq/2.delete-account.md ================================================ --- question: I want to close my account --- **Sorry, but you have reached the wrong website. Please check your contact information again.** This is the official website for Misskey, the open source SNS server software developed by Misskey Project. If the above guide does not tell you how to delete your account, or if you are unable to delete your account despite following the instructions, please contact the administrator of your server. Note that SNS services using Misskey software (Misskey servers) are sometimes referred to as "Misskey".) The Misskey Project is only responsible for the source code of the Misskey server software, which is provided free-of-charge. We do not provide or operate any servers that use Misskey software or its derivatives. We also do not have the ability to regulate services using Misskey software. **We are unable to respond to inquiries on our contact form about individual services.** ================================================ FILE: content/en/contact-faq/3.server-wide-content-mod.md ================================================ --- question: Could you delete the content on local/remote server? --- The Misskey Project is an organization that develops Misskey, but does not provide any Misskey server-related services. Therefore, **if you contact us via the form below, we are unable to address your request.** This is the official website for Misskey, the open source SNS server software developed by Misskey Project. Misskey is server software for operating SNS services. It is not itself an SNS service. Note that SNS services using Misskey software (Misskey servers) are sometimes referred to as "Misskey".) The Misskey Project is only responsible for the source code of the Misskey server software, which is provided free-of-charge. We do not provide or operate any servers that use Misskey software or its derivatives. We also do not have the ability to regulate services using Misskey software. We are unable to respond to inquiries on our contact form about individual servers.\*\* Content moderation on individual servers is conducted according to the rules of each server. If you wish to have content removed, please contact the administrator of the server where the content originated, or you can block the user or server as a self-defense measure. ================================================ FILE: content/en/contact-faq/4.copyright-infringement.md ================================================ --- question: I found copyright infringement --- **Sorry, but you have reached the wrong website. Please check your contact information again.** This is the official website for Misskey, the open source SNS server software developed by Misskey Project. Therefore, for any copyright infringement on a Misskey server, please contact the administrator of that server. Note that SNS services using Misskey software (Misskey servers) are sometimes referred to as "Misskey".) The Misskey Project is only responsible for the source code of the Misskey server software, which is provided free-of-charge. We do not provide or operate any servers that use Misskey software or its derivatives. We also do not have the ability to regulate services using Misskey software. We are unable to respond to inquiries on our contact form or elsewhere about individual servers.\*\* ================================================ FILE: content/en/contact-faq/5.client-not-working.md ================================================ --- question: Misskey is not working properly --- First, please check "[Troubleshooting](/docs/for-users/resources/troubleshooting/)" for solutions to common browser problems. You can find more details on the page, but be sure to check especially the following points: - Did you **remove any custom CSS or plugins** and try again? - Did you **try logging out, log back in,** and then trying again? - Are you using **an outdated OS or browser?** - Did you **wait some time and try again?** - Have you **confirmed that the URL is correct?** - Have you tried **deleting your browser cache and cookies?** If you are still unable to resolve the issue, please contact your **server administrator first.** If you have been instructed to report a bug to the Misskey Project, please submit a bug report on [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose), **not the form below.** We won't be able to respond immediately if you report a problem using the contact form below.Be sure to submit your report to [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose). ================================================ FILE: content/en/contact-faq/6.mention-spam.md ================================================ --- question: I got a message from an account claiming to be Misskey or server support --- The Misskey Project will never send these sorts of messages.This is likely a spam message. Contact your server administrator for more information.\*\* If you receive an unexpected note from an account claiming to be Misskey, the Misskey Project, or the helpdesk for your instance or server claiming that "Your account is currently suspended" along with a link to an unfamiliar site, or if there are instructions asking you to take action urgently, such as responding to a mention, then it is likely spam.\*\* If you receive these sorts of messages, contact your server admin first.**Opening links in these notes or replying to these notes can be dangerous.**\*\* The Misskey Project is only responsible for the source code of the Misskey server software, which is provided free-of-charge. We do not provide or operate any servers that use Misskey software or its derivatives.We also do not have the ability to moderate or administer services using Misskey software, so please contact **your server administrator** for any inquiries.The Misskey Project cannot assist you with any inquiries.) ================================================ FILE: content/en/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Documentation about Misskey.' --- # About Misskey Misskey is an open-source and distributed platform for microblogging. Development was started in 2014 by syuilo in Japan. It is characterized by its rich functionality, including drive and reaction, as well as a highly customizable UI. ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## 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. [Misskey History Museum](/about-us/history/) ## What does "Decentralized" mean? A distributed service, also called a decentralized service, refers to a service that divides its community into many servers (instances) that all mutually communicate (federate) with each other to share their contents, forming a network (Fediverse). Services that only have one instance or multiple instances that are independent of each other are called centralized. Most services fall under the category of centralized, some examples being Twitter (X) and Facebook. The advantages of decentralized services include being able to freely choose the instance whose administration and theme suit you best. It's also possible for you to make your own server. Thanks to the federated nature, you will be able to access the same communities, no matter which server you choose. ## Always Open-Source Misskey has always been, and will always be, open source.Open source simply means that the source code of the software (a program) is publicly available.This also includes being able to adjust or redistribute the source code in its definition. The entirety of Misskey's source code is [published](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 managed via Git, and the repository is hosted on [GitHub](https://github.com/misskey-dev). ::: ## Joining development and supporting the project If you like Misskey, please support the project.Supporting the project can be done in many ways, with some of them introduced below.Some of these do not require programming skills, so anyone can feel free to support Misskey their own way.We are always looking forward to hearing from you. ### Adding features or fixing bugs If you possess software engineering skills, you can contribute to the project through editing the source code. Check our contributing guidelines [here](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). ### Participating in discussions You can also contribute by giving your opinion on new or existing features, or by reporting bugs. Such discussions will take place on [GitHub](https://github.com/misskey-dev). ### Translating text Misskey is available in many languages (also called i18n, which is an abbreviation for Internationalization).While the original language is generally japanese, volunteers are translating Misskey into other languages.Misskey uses a service called [Crowdin to manage its translations.](https://crowdin.com/project/misskey) ### Sharing your impressions Besides reporting bugs, please also feel free to share positive impressions such as which parts of Misskey you personally like, or things about Misskey that you find fun.As things like these serve as motivation for the developers, it also counts as indirect support for the project.As things like these serve as motivation for the developers, it also counts as indirect support for the project. ### Increasing the number of Misskists "Misskist" refers to the people using Misskey. By spreading the word about Misskey through introducing it to your acquaintances, the number of Misskists may increase, which serves as motivation for the developers. ### Making donations [Please click here](/docs/donate/) ## Frequently Asked Questions ### What is this project aiming to achieve? Unlike other platforms, Misskey is not grounded in a specific idea (for example, anti-centralization) or vision and being developed with that in mind, so it's a bit "aimless" in this respect. ### Is Misskey being developed by a company? No. Misskey is developed by individuals and not commercialized through connection with any particular company. Development members are generally volunteers. Additionally, while there are some corporate sponsors, development is still centered around the community. ### Who is managing Misskey? Due to the decentralized nature of Misskey, each individual server has their own administration.Therefore, not all of Misskey is managed by one individual person or company.To put it bluntly, while this is a bit vague, Misskey is aiming to be a widely-used all-purpose platform. On the other hand though, this creates a flexibility due to not being bound by a specific direction to go towards. Development members are generally volunteers. Additionally, while there are some corporate sponsors, development is still centered around the community. This means that, as the development team does not control individual servers, for management-related questions you should contact your server's administration instead. ### Which server should I choose? [A list of servers is available here.](/servers/) Depending on the server, its community or central theme (for example, liking a show) may vary, so if there is a server that suits your interests, joining it would likely be a good choice. Besides that, server size, userbase, country or spoken language, reliance or trust in the administration team and many other things can also serve as criteria. There is however no single server that serves as the official server of Misskey.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 your interest in creating a Misskey server. To create a Misskey server, you can use dedicated services or semi-automated methods to set up the environment (of course, it is also possible to manually build the server).Please refer to [this document](/docs/for-admin/install/guides/) for more information. ### What kind of technology does Misskey use? As Misskey's development progressed, the technologies used have changed significantly. In the beginning, it used a combination of MySQL + PHP + jQuery, but currently uses the following: - Server-side: Node.js - Database: PostgreSQL, Redis - UI Framework: Vue.js - Programming language: TypeScript In addition to this, from Misskey derived technology such as MFM or AiScript are also being used. ### Is this a fork of Mastodon? No.Misskey is a project completely different from Mastodon or other alike projects. It has been in development for a long time already.However, it only became a decentralized network after the appearance of Mastodon. Besides both projects implementing the ActivityPub protocol, there is no relation between the two. ### Are there any apps for iOS / Android available? We do not officially develop native apps for those operating systems, but there are several third-party apps available. Please see [here](/docs/for-users/resources/apps/) for more information. However, third-party applications will inevitably lag behind the official Web client in functionality, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, you can use it as if it was a native application. :::tip For more information on how to set up a PWA, please [click here](/docs/for-users/stepped-guides/how-to-use-pwa/) for the detailed guide. ::: ### Where can I download Misskey's logo or icon? [Click here](/brand-assets/) ### Who are those cute cat-eared girls that you see sometimes? :::fukidashi{chara="doya_ai" charaName="Ai"} For more information about me, please visit [this website](https://xn--931a.moe/)! ::: :::fukidashi{chara="syuilo" charaName="syuilo" direction="right"} It's Misskey's guardian deity, Ai.(They called Ai cute, yay!) ::: ================================================ FILE: content/en/docs/2.for-users/1.index.md ================================================ # User Guide This section provides an overview of general features that are useful for both new and existing Misskey users. ================================================ FILE: content/en/docs/2.for-users/2.onboarding/0.index.md ================================================ # Getting Started with Misskey Here you will find a tutorial to get you started in Misskey. Mainly, - Points to note about decentralized platforms - What is a server?How do I choose a server? - Registration Process - Minimal basic knowledge By following these instructions, you will be able to start using Misskey in no time. Let's get started!(Press "Next" to proceed.) ================================================ FILE: content/en/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Those are some basic notes before creating an account on a Misskey server.' --- # Important notes There are some points to be aware of when using services which use Misskey. - Due to its decentralized nature, once uploaded, data is not guaranteed to be deleted from all other servers, even if deleted.(However, this is also true for the Internet in general.) - Even if a post is created as private, there is no guarantee that the other servers will treat it as private as well.So, please use caution when posting personal or confidential information.(However, this is also true for the Internet in general.) - The "Drive" feature in Misskey should not be considered a typical cloud storage.This feature is for managing and reusing uploaded files for your post. \*\*Any uploaded data can be accessed by anyone who knows the URL, regardless of whether they have ever attached it to a note.\*\*Please use a dedicated service for exchanging data containing sensitive information. - Account deletion is an intensive process and may take a long time.In cases where there is a large amount of uploaded data, it may not be possible to delete the account. - Some servers may cover operating costs through advertising revenue.Additionally, ad blockers often mistakenly block content or features that are completely unrelated to advertising, which can interfere with client operation and prevent you from using Misskey properly.Therefore, please use Misskey with adblockers and similar features turned off. Please understand these points and enjoy using Misskey. ================================================ FILE: content/en/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "This section explains user registration on a Misskey server and basic operations." --- # Find a Misskey Server Misskey is a software and a project. The server running Misskey, which is publicly available on the Internet is called a **Server**. To use Misskey, you create an account on one of these servers and use that server. You can choose any server from the [server list](/servers/). :::tip No matter which server you choose, you can interact with users on other servers. :::g-details{summary='Details'} Misskey has federated functionality. This federated functionality allows users on different servers to follow, react, and renote in the same way as users on the same server, even if they are on different servers. The federated functionality that Misskey incorporates is based on an open common standard called ActivityPub and is compatible with other software such as Mastodon and Pleroma. ::: ::: ## How to choose a server ### Server Theme Some servers may have a specific theme, for example, "I like certain a thing or things". :::tip A list of servers can be found [here](/servers/). ::: ================================================ FILE: content/en/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # Register on a server Once you have decided which server to register with, it's time to create an account. :::tip Here, Misskey.io is used as an example, but registration method is generally the same for other servers. However, the information you enter may vary depending on the server.Please contact your server administrator for more information. ::: ## Register First, find and click the "**Register on this server**" button on the landing page. ![Register to this server button](/img/docs/for-users/onboarding/join-server/1.ja.png) Next, follow the on-screen instructions to review the terms and conditions and fill out the required information. The main items to be filled out are as follows - Invitation code (only if registration is by invitation only.If you do not have one, you will not be able to register.) - Username (**Cannot be changed later. Once you delete your account, you will not be able to get the same username again.**) - Email address (some servers don't require it) - Password ![Fill out the required information](/img/docs/for-users/onboarding/join-server/2.ja.png) Once you have filled out the required information, you will receive an confirmation email for servers that ask for a email address, so please click on the link in the email as soon as possible. ![Confirmation email](/img/docs/for-users/onboarding/join-server/3.ja.png) With this, registration to a Misskey server is complete! Now you are a [Misskist](../resources/glossary/#misskist)!Enjoy a fun and new communication experience. ================================================ FILE: content/en/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskey Basics Welcome, newcomers! We've put together some basic Misskey knowledge to help you get started right away. ## Notes Posts on Misskey are called "notes."There are many features compared to Twitter and other popular social networking sites, so be sure to check them out before making your first post. :::tip For more information, see "[Notes](/docs/for-users/features/note/)." ::: ## Timelines Misskey has multiple timelines.The names alone may be a little confusing, so it is important to know how each works. :::tip For more information, see "[Timeline](/docs/for-users/features/timeline/)." ::: ## Other Misskey also has many other features that make it fun to use!The descriptions for all features are listed [here](/docs/for-users/features/), so please take a look! ================================================ FILE: content/en/docs/2.for-users/3.features/1.index.md ================================================ --- description: "We will explain many functions that are the main feature of Misskey." --- # Various functions Misskey's main characteristics are several features that other microblogging systems don't have.We will explain them here. ================================================ FILE: content/en/docs/2.for-users/3.features/ads.md ================================================ # Ads Misskey has a feature that displays ads etc. :::tip If the total number of ads is low, ads may reappear even though their frequency has been reduced. ::: ## Setting Up Ads (Administrators Only) You can add, edit, delete ads on your server control panel. ================================================ FILE: content/en/docs/2.for-users/3.features/antenna.md ================================================ # Antennas Antennas are a function of Misskey that collects notes that match the set conditions. When an antenna is created with set conditions and a note is posted that matches the conditions, the note is added to the antenna's timeline in real time. ================================================ FILE: content/en/docs/2.for-users/3.features/charts.md ================================================ # Charts Misskey has a feature that displays and generates charts from various server data sources. The server chart can be displayed on the Server Information page. Below is a description of each chart and each of its elements. ## Federation Charts Charts about federated servers. ### Pub Unique number of self-server that has sent activities to remote servers. ### Sub Unique number of remote servers that have sent activity to the self-server. ### Received The number of users receiving activities. ### Delivered The number of servers providing activity. ### Stalled Unique number of failures when the self-server attempted to deliver activities to remote servers. ## Active users charts Self-server user usage charts. ### Read & Write Unique number of users who have browsed and written. ### Read Unique number of users who have browsed. ### Write Unique number of users who have written. ### < Week The number of users who have browsed and whose account creation date and time is less than one week. ### < Month The number of users who have browsed and whose account creation date and time is less than one month. ### < Year The number of users who have read and whose account creation date and time is less than one year. ### Week The number of users who have read and whose account creation date and time is one week ago. ### Month The number of users who have read and whose account creation date and time is one month ago. ### Year The number of users who have read and whose account creation date and time is one year ago. ================================================ FILE: content/en/docs/2.for-users/3.features/clip.md ================================================ # Clips Clips are a feature of Misskey that summarize notes.Clips are a feature of Misskey that summarize notes.They don't care if the notes are mine or someone else's. You can make more than one clips, and you can name them and give an explanation, and you can manage them.You can also choose between public and private clips.You can also choose between public and private clips. To create clips, select "Add" on the [Clip Management page](x-mi-web://my/clips). To add notes to clips, select Clips on the appropriate note page and select the target clip. ================================================ FILE: content/en/docs/2.for-users/3.features/custom-emoji.md ================================================ # Custom Emoji Custom Emoji is a feature that allows you to use images uploaded to the instance as emoji. They can be used in places such as notes, reactions, chat, self-introductions, and names. To use a custom emoji in those places, press the emoji picker button (if present) or type `:` to display emoji suggestions. If a string of the form `:foo:` is found in the text, the `foo` part is interpreted as a custom emoji name and replaced by the corresponding custom emoji when displayed. To see which custom emoji are available on the server, go to "Custom Emoji" in the [**Server Info**](x-mi-web://about#emojis) section of Misskey Web. ================================================ FILE: content/en/docs/2.for-users/3.features/deck.md ================================================ # Deck Deck is one of the available UIs.It features the ability to create highly customizable and dense UIs by displaying multiple views side by side called "columns." In addition, when notes or profiles are displayed on the page, if a main column is added then their contents will be displayed inside it. ## Adding columns Columns can be added by right-clicking on the deck background and selecting "Add Column." ## Moving columns Columns can have move by swapping with other columns via drag and drop, as well as through the column menu, shown from right-clicking the column header. ## Splitting columns Columns can be arranged not only horizontally but also vertically. Open the column menu and select "Stack to the left" to move the current column below the left column. To undo the split, select "Dock on the right." ## Column settings Column settings can be edited by selecting "Edit" from the column menu.Columns can be renamed and their widths can be changed. ## Deck settings Deck settings can be changed at [settings/deck](x-mi-web://settings/deck). ================================================ FILE: content/en/docs/2.for-users/3.features/dev-mode.md ================================================ # Developer Mode Developer Mode can be enabled from [Settings > Other > Developer](x-mi-web://settings/other). Developer Mode enables features useful for developers, such as the ability to copy a note ID from a note's context menu. ================================================ FILE: content/en/docs/2.for-users/3.features/drive.md ================================================ # Drive Drive is a feature to manage the files you have uploaded to Misskey. :::tip Technically speaking, all files are centrally managed on Misskey's system, and the interface that exposes them to users can be thought of as a drive. ::: In addition to being able to upload any file from Misskey Web's [Drive page](x-mi-web://my/drive), images set as avatars and files attached to notes will all be uploaded to Drive. :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: Not only can files uploaded to Drive be downloaded at any time, but they can also be reused by selecting "Attach Files from Drive" when creating notes. In addition, folders can be created within Drive to organize multiple files together. :::warning Currently, when you delete a file from Drive, **all the content (notes, pages, etc.)** it was attached to also disappears. ::: ## Sensitive (NSFW) Sensitive or NSFW (Not safe for work) is a flag that can be set on files in Drive. Files that are flagged as sensitive will not be displayed without interaction from the viewer. This flag is used, for instance, to mark images that are considered inappropriate for viewing at work or in public places, and to prevent them from being displayed suddenly. This flag can be manually turned on or off, as well as set at the discretion of moderators. ================================================ FILE: content/en/docs/2.for-users/3.features/embed.md ================================================ # Embed to Website You can embed notes and timelines on the Misskey server into your website. With Misskey, widgets design is highly customizable so you can fit them to your website. Here, we describe the content that can be embedded and how to embed it. :::warning This feature will be available in Misskey v2024.9.0 or later. ::: :::tip MFM and custom emojis are also supported, but depending on how they are displayed on the embedded page, the layout may not be as expected. ::: ## Generate embed code using built-in generator All the embed codes and their customizations shown on this page can be easily done using Misskey Web's built-in embed code generator. If you have no particular reason to get the code manually, we recommend you to use the generator. ![Embed code generator](/img/docs/for-users/features/embed/generator.png) ## Embedding a single note ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: A single local note can be embedded (notes on a remote server cannot be embedded using another server).Your code should look like this: ```html ``` The placeholder is replaced by the following: - ``: Hostname of the Misskey server - ``: ID of the note to embed - ``: Random string (Required if provided embed.js is used.If there are multiple embed codes on the same page, make sure they are not duplicated.) ## Embedding a list of user's note ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: You can embed a list of users' public notes (public or home visibility).Your code should look like this: ```html ``` The placeholder is replaced by the following: - ``: Hostname of the Misskey server - ``: ID of the user to embed (not the username starting with `@`) - ``: Random string (Required if provided embed.js is used.If there are multiple embed codes on the same page, make sure they are not duplicated.) ## Embedding the list of notes in a clip ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: You can embed a list of notes of clips where visibility is public.Your code should look like this: ```html ``` The placeholder is replaced by the following: - ``: Hostname of the Misskey server - ``: ID of the clip to embed - ``: Random string (Required if provided embed.js is used.If there are multiple embed codes on the same page, make sure they are not duplicated.) ## Embedding a list of hashtag notes ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: You can embed a list of notes with a specific hashtag.Your code should look like this: ```html ``` The placeholder is replaced by the following: - ``: Hostname of the Misskey server - ``: Hashtag name (without `#`) - ``: Random string (Required if provided embed.js is used.If there are multiple embed codes on the same page, make sure they are not duplicated.) ## Parameters for customization You can customize the appearance of the embed widget by specifying a specific value for the URL parameter.
Parameters Possible values Description
maxHeight Number above 0 Specifies the max height of the widget in pixels.If the content is longer than that vertically, it can be scrolled inside the widget.
If 0 is specified, the height of the embedded element will automatically extend to match the internal height (deprecated).
If not specified, it will be fall back to 700.
This parameter won't work for single note embedding.
colorMode
  • light
  • dark
Forces the color mode to light or dark.
If unspecified, it will sync with the device dark mode setting.
border
  • true
  • false
Specifies whether or not a border is attached to the outer frame.true if not specified.
rounded
  • true
  • false
Specifies whether or not the corners should be rounded.true if not specified.
showHeader
  • true
  • false
Specifies whether the top header should be displayed.true if not specified.
This parameter won't work for single note embedding.
:::g-details{summary="maxHeight=0 is used how?"} Setting `maxHeight` to `0` is not recommended, but can be useful for special purposes, such as when you want to provide a scroll container on the embedding site rather than inside an iframe.Here's an example: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/en/docs/2.for-users/3.features/favorite.md ================================================ # Bookmarks This function allows you to save [notes](./note) as bookmarks. You can view your saved notes on the [Bookmarks page](x-mi-web://my/favorites). The note's author is not notified when you bookmark a note, and only you can see your bookmarks. To bookmark a note, select "Bookmark" in the Notes menu.To remove a bookmark, select "Remove bookmark." ================================================ FILE: content/en/docs/2.for-users/3.features/follow.md ================================================ # Follow When you follow a user, you will see their posts on your timeline.However, this does not include replies to other users. To follow a user, click the Follow button on the user's profile.Click once more to unfollow. If the user manually approves who follows them, or if the user is on a remote instance, the Follow button will change to "Processing..."Users will receive a notification if their follow request is approved. ## Message when you are followed :::tip This feature is available on Misskey v2024.9.0 or later. If following a remote user, both instances must be on Misskey v2024.9.0 or later. This feature is in beta. ::: You can set a welcome message for new followers.If you manually approve followers, the message will be displayed to the follower upon approval. The message will also be displayed on your profile. :::warning The Followed Message is publicly accessible, even to non-followers.Do not include private information in the message. ::: ================================================ FILE: content/en/docs/2.for-users/3.features/hashtag.md ================================================ # Hashtags Hashtag is a feature that allows you to add searchable tags to your posts. The world's first hashtag, #barcamp, was created by Chris Messina [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina) on [August 24, 2007 at 4:25 AM](https://twitter.com/chrismessina/status/223115412?lang=en).Later, this idea of using the pound sign `#` to make searches easier was reborn as "hashtag," a word coined by combining the English word "hash," meaning "to chop up or shred," and "tag," meaning "label," and was officially adopted by Twitter at the time.Incidentally, Chris Messina chose `#` because it was reminiscent of IRC channel names starting with `#`. ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp [msg]?"](/img/docs/for-users/features/hashtag/1.ja.png) The way to use hashtags in the Fediverse is slightly different from how it is used in centralized services such as X and Instagram.In the Fediverse, full-text search is sometimes difficult, making it hard to find a specific post, but if a post contains a hashtag, you can easily locate it by following the hashtag.Additionally, there are services on the Fediverse called hashtag relays that automatically send posts to various sites just by adding hashtags to them, so hashtags are quite important. ================================================ FILE: content/en/docs/2.for-users/3.features/mention.md ================================================ # Mentions You can mention users by including their username with an `@` symbol in the note (e.g. `@user@misskey.example`).Mentioned users will receive a notification that they've been mentioned. ================================================ FILE: content/en/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM is a proprietary markup language that can be used in various locations in Misskey.' --- # MFM MFM, short for Markup language For Misskey, is a proprietary markup language that can be used in various locations in Misskey.Some of its syntax is compatible with Markdown and HTML. :::tip Visit [MFM Playground](/tools/mfm-playground/) to try MFM for yourself! ::: ## Examples of places where MFM can be used - The text of a note - Content warning annotation - Names of users - User bios ## Syntax ### Mentions `@` + username can be used to display a specific user. :::tip For more information about mentions, see [here](./mention.md). ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### Hashtags `#` + tag can be used to display a hashtag. :::tip For more information about hashtags, see [here](./hashtag.md). ::: ``` #misskey ``` ### URL URLs can be displayed. ``` https://example.com ``` ### Links Specific parts of text can be displayed as a URL. ``` [example link](https://example.com) ``` :::tip You can hide the link preview by prefixing the link text with `? `. ``` ?[example link](https://example.com) ``` ::: ### Custom Emoji Custom emoji can be displayed by surrounding the emoji name with colons. :::tip For more information about custom emoji, see [here](./custom-emoji.md). ::: ``` :misskey: ``` ### Bold Bolds text for emphasis. ``` **太字** ``` ### Shrink Displays content smaller and thinner. ``` MisskeyでFediverseの世界が広がります ``` ### Quote Displays content as a quote. ``` > MisskeyでFediverseの世界が広がります ``` ### Center align Displays content centered. ```
MisskeyでFediverseの世界が広がります
``` ### Yomigana (Ruby characters) Yomigana can be attached to text. ``` $[ruby Misskey ミスキー] ``` ### Code (Inline) Displays syntax highlighting for code from programs inline. ``` `<: "Hello, world!"` ``` ### Code (Block) Displays multi-line syntax highlighting for code from programs in a block. By specifying the programming language by ID, you can apply syntax highlighting in that language.Available languages are: - [Languages supported by Shiki (200+)](https://shiki.style/languages) - AiScript: Specify one of `aiscript`, `ais`, or `is` to use. ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### Flip Flips content horizontally or vertically. ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### Font Sets the font to display content in. ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### Blur Content can be blurred.When hovering the mouse over the content, it will be displayed clearly. ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### Search A search box can be displayed. ``` misskey 検索 ``` ### Foreground and Background Color The color of the foreground and background can be changed. Colors are expressed using 3, 4, or 6 digit color codes. ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### Border Content can be surrounded borders.The borders can have various styles. ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### Rotate Rotate by a specified angle. ``` $[rotate.deg=30 misskey] ``` ### Shift Position The position can be shifted. ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### Expand Displays enlarged text. ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### Animation (Jelly) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### Animation (Tada) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### Animation (Jump) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### Animation (Bounce) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### Animation (Spin) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### Animation (Shake) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### Animation (Twitch) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### Rainbow ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### Sparkle ``` $[sparkle 🍮] ``` ### Plain Text Disable formatting of content. ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## Information for developers MFM parsing and rendering implementations are published as libraries, making it easy to incorporate MFM into clients. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScript parser implementation - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js component - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlin parser implementation - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dart parser implementation - [mfm](https://pub.dev/packages/mfm) - Flutter rendering widget ================================================ FILE: content/en/docs/2.for-users/3.features/mute-and-block.md ================================================ # Mutes and Blocks If you don't like someone, you can mute them so they're no longer visible to you. Or, as a more powerful measure, you can block someone so they can't see your content or interact with you. The other person won't know that they are muted, but they will know that they are blocked.It is up to you to decide which one to use. :::tip Mutes and blocks can be used together. ::: :::warning If there are any troublesome users who violate the terms of service, please consider reporting them to the administrator. ::: On Misskey Web, you can view the users you have muted or blocked by going to Settings > Mutes and Blocks. ## Mute When you mute a user, the following content about that user will no longer appear in Misskey: - Their notes on your timeline and search results (including replies and renotes from them) - Notifications from them - History of messages with them - etc. To mute a user on Misskey Web, open the menu on the target user's page and press the "Mute" button. :::tip The other person won't be notified that you've muted them, nor will they know that they've been muted. ::: ## Mute Renotes You can mute only the user's renotes, in case the user is renoting many notes.The user's regular notes are not affected. ## Block Blocking a user prevents them from seeing your content and from taking any of the following actions against you: - Following you - Adding you to their user list - Replying to you, renoting you - Reacting, voting in surveys - Sending messages to you - etc. In addition: - If the user is already following you when you block them, their follow will be removed. - If the user already has you on their user list when you block them, you will be removed from it. To block a user on Misskey Web, open the menu on the target user's page and press the "Block" button. :::warning The person will not be notified that you have blocked them, but they may be able to figure it out indirectly - as they will no longer be able to perform the actions listed above. ::: :::warning Your content will not be visible to the other user, but they may be able to if they switch accounts or log out.Please think of this as a simple and supplementary tool. ::: ================================================ FILE: content/en/docs/2.for-users/3.features/note.md ================================================ # Notes Notes are the main content of Misskey. They can consist of images, texts, polls, and more.On other platforms, notes are known as posts. :::tip The name "note" comes from the ActivityPub object type `Note`, which in this context "Represents a short written work typically less than a single paragraph in length." ::: Once a note is created, it will be added to your [timeline](./timeline) and visible to your [followers](./follow) and other users on your instance. You can [react](./reaction),reply, or quote notes. You can find a note later by adding it to your [Favorites](./favorite) ## Composing a Note To compose a note, click the Note button (denoted by the pencil icon) to open the compose form.Enter your content, then click the Note button (denoted by the paper airplane icon) to submit the note. Notes can contain text, images, videos, and [polls](./poll).You can format your note using [Markup language For Misskey (MFM)](./mfm), [mention](./mention) other users, or include [hashtags](./hashtag). You can also add content warnings (CW) and change the visibility of the note (more on this below). :::tip On Misskey Web, you can paste images directly from your clipboard to the text box using the usual copy-and-paste shortcuts. ::: :::tip You can also press Ctrl + Enter within the text box to publish your note. ::: ## Renote The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts are all called Renote (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 renoting it will not be possible. ::: To remove a renote in Misskey Web, press "..." next to the renote time display next to the time display of the renote and select "Unrenote". ## 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. ## Visibility For each note, you can set the range within which the note will be made public. To set visibility in Misskey Web, click the icon to the left of the "Note" button on the compose form. There are the following types of visibility: ### Public Your note will be visible to all users and will show up on all timelines (home, local, social, global). :::warning If your account is [silenced](./silence), you cannot set your note visibility to public. ::: ### 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. :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### Local Only If you enable this option, your note won't be federated to remote instances. ### Visibility comparison
PublicHomeFollowers指名
LTL/STL/GTL of Followers
LTL/STL/GTL of Others
## 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 You can pin multiple notes on your profile. ::: ## Notification on User's New Note Notification can be sent out when a user posts a new note.Go to the user page of the user you wish to receive notifications for, select the Details button next to the Follow button, and then click "Notify me of posts" to activate it. ================================================ FILE: content/en/docs/2.for-users/3.features/online-status.md ================================================ # Online Status A user's **Online Status** is an indication of the user's Misskey usage status. The online status is displayed as an indicator in the corner of the user's icon on the user page, for example.
Color State Description
🟢Green Online The user seems to be using Misskey right now
🟡Yellow Active This user seems seems not to be online right now, but has used Misskey recently
🔴Red Offline This user seems to have not used Misskey recently
⚫Gray Unknown This user has a status that is private, or the status is unknown for some reasons such as being remote user, etc.
Online status changes automatically and cannot be set manually. However, you can set your online status to private. :::warning Some features, such as user recommendations, may be processed based on online status, so making your status private may make it harder for other users to find you. ::: ================================================ FILE: content/en/docs/2.for-users/3.features/pages.md ================================================ # Page In addition to notes, you can create pages on Misskey.v13 specializes in static pages. :::warning Starting with v13, Misskey Play can be used instead of dynamic page creation. ::: ## Page Settings Set items related to the page.You can enter the following items. - Title - Page summary - Page URL - Center alignment - Font - Hide title when pinned - Featured image ### Title Enter the title of the page.It will appear in the list. ### Page summary Enter a brief description.It will appear in the list. ### Page URL Optionally set the `●●●` in `https://server-name/@user/pages/●●●`. ### Center alignment When enabled, the contents will be centered. ### Font Choose from **serif** or **sans-serif**. ### Hide title when pinned Hides the title when pinned. ### Featured image You can set an image from the **Featured Image Settings**.It is possible to display this in a list view, etc. ## Contents Edit the page body.Pages can be generated by combining one or more of the following blocks. - Section - Text - Image - Embedded note ### Section When setting a title, it is displayed as a heading.Furthermore, blocks can be set inside. ### Text Enter the text body.MFM and custom emoji can be used. ### Image Show an image.Set an image from Drive. ### Embedded note By entering a note ID, its contents are displayed.If you want to embed another server, put its URL in the search and paste the ID that's displayed. ================================================ FILE: content/en/docs/2.for-users/3.features/plugin.md ================================================ # Plugins Misskey Web has a plug-in feature that allows users to extend its functionality. Please refer to [this document](../../for-developers/plugin/create-plugin) for information on how to create plugins. ================================================ FILE: content/en/docs/2.for-users/3.features/poll.md ================================================ # Polls Polls are a feature that allow you to solicit opinions from others. ## Attach a Poll to a Note Polls can be published by attaching them to a [note](/docs/for-users/features/note).To attach a poll to your note, select the "Poll" icon at the bottom of the posting form. ## Adding Options A poll can have up to 10 options.To add an option, click the "Add" button. If you have too many options, you can delete one using the "X" button next to the option. :::warning If an option is blank, you will not be able to submit the note. ::: ## Allow Multiple Choices If "Allow selecting multiple choices" is selected, voters will be able to vote for more than one option. ## Set a Deadline for Responses You can set a deadline for the poll as either an end date or a period of time. To set a deadline, select "End at..." or "End after..." in the "End poll" dropdown menu. To remove a deadline, select "Never" in the "End poll" dropdown. ## Voting in a Poll When you see a note with a poll fly by in the timeline, vote! To vote in a poll, click on your desired option.If the user who created the poll did not allow multiple choices, the current results of the poll will be immediately displayed. If the user who created the poll allowed multiple choices, you will be allowed to vote for another option.In this case, the results will not be displayed immediately. To see the results of the poll before or after voting, click the "View results" button below the options. If you viewed the results without voting, you can return to voting by clicking the "Vote" button. :::tip If you haven't voted already, you can vote after viewing the current results. ::: When voting, a ✔ will appear beside your selections. ================================================ FILE: content/en/docs/2.for-users/3.features/reaction.md ================================================ # Reactions The reaction feature allows you to easily show your reactions to other people's notes using emoji.To react, click the + icon on the note and select an emoji from the picker. You can also react with [custom emojis](./custom-emoji.md). ## Customizing the Emoji Picker You can select which emojis are displayed in the emoji picker. These options are found under Settings > Emoji picker. ## Reactions to Remote Posts Reactions are a feature original to Misskey. Platforms that do not support Misskey reactions will receive the reaction as a "like" activity.This might be called a "favourite" on some platforms. ## Reactions from Remote Instances If a generic "like" activity is received from a remote server, Misskey will interpret it as a "❤" reaction. ## Viewing Your Reactions On Misskey Web, you can view your past reactions by going to your profile and selecting the Reactions tab.You can change the privacy of your reactions by going to Settings > Privacy. ## Reaction Acceptance When posting a note, you can limit the types of reactions that will be accepted for that note. - All: All reactions are allowed - All (remote only likes): Allow all reactions from your server, but only accept reactions from other servers as likes (❤) - Non-sensitive only: All reactions are allowed, but you will not be able to react with reactions from your own server that are flagged as "sensitive" - Non-sensitive only (remote is like only): You will not be able to react using custom emojis flagged as “sensitive” from your own server, and all reactions from other servers are accepted as likes (❤) - Likes only: You can only react with a like (❤) In this case, the reaction you specify will be accepted on your server.For example, if you view a note on another server with the “Like Only” option, the note may have an emoji reaction on that server. ================================================ FILE: content/en/docs/2.for-users/3.features/safemode.md ================================================ # Safe Mode Since Misskey Web v2025.8.0, Misskey features a Safe Mode which disables custom CSS, plugins, and themes. This is for cases where these features interfere with the normal operation of the app. Safe Mode can be activated in the following ways: - If an error appears on startup: Click the "Launch Misskey in safe mode" button on the error screen. - If using a keyboard: Press the G key repeatedly - Add `?safemode=true` to the URL - If using the PWA: Use the Safe Mode shortcut to launch the app When Safe Mode is enabled, the following limitations will apply: - All plugins will be disabled regardless of whether they are configured to be enabled or disabled, and new plugins cannot be installed. - Custom CSS will not be applied. - The default theme will be applied regardless of settings, and theme changes will be disabled. Themes can still be deleted from the Theme settings page. - A "Safe Mode" message will always be displayed on screen. Use Safe Mode to troubleshoot issues.Once you have resolved your issues, click "Turn off" in the Safe Mode menu to return to normal operation. :::tip Safe Mode is not intended for normal use.Once you have finished troubleshooting your issue, disable Safe Mode and resume normal operation. ::: ================================================ FILE: content/en/docs/2.for-users/3.features/share-form.md ================================================ # Share Form On Misskey Web, the path `/share` leads to a social sharing form.This page is useful for external site owners who want users to share their pages on Misskey. You can specify options such as the content to share as URL query parameters. ## Query Parameters :::tip All parameters are **optional** and not required. ::: | Name | Description | | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `title` | Title.Appended to the beginning of the note and enclosed in square brackets in the form "\[ Title contents \]". | | `text` | Body text. | | `url` | URL.Appended to the end of the note. | ### Reply Information A note can be replied to using the following parameters: | Name | Description | | ---------- | -------------------------------------------------------------------------------------------- | | `replyId` | The ID of the note to reply to. | | `replyUri` | The URL of the note to reply to(for remote note objects). | ### Renote Information You can specify one of the following to make the post a Renote (quote) of a specific note. | Name | Description | | ----------- | ------------------------------------------------------------------------------------------ | | `renoteId` | The ID of the note to Renote. | | `renoteUri` | The URL of the note to Renote(for remote note objects). | ### Visibility Options You can specify the visibility of the note with the following options. | Name | Description | | ---------------- | ----------------------------------------------------------------------------------------------------- | | `visibility` | One of `public`, `home`, `followers`, or `specified`. | | `localOnly` | 0 (false) or 1 (true). | | `visibleUserIds` | Target user IDs (comma-separated). | | `visibleAccts` | Target user [acct](../resources/glossary/#acct) (comma-separated). | :::warning If you specify `visibility` as `specified`, you must also specify either `visibleUserIds` or `visibleAccts`. ::: ### Attachments You can specify attachments with the following option. | Name | Description | | --------- | ------------------------------------------------------------------------------------ | | `fileIds` | The IDs of the files to attach (comma-separated). | ## Misskey Hub Share Form Relay Service To reduce the hassle of setting up the Misskey share button that's compatible with multiple servers, the new Misskey Hub provides a share form relay service. This service is free for anyone to use. You can evolve your share form links to share links to various Misskey servers by simply changing the domain part of the previous share form links to `misskey-hub.net`! :::tip See also the [Share Button Generator](/tools/share-link-generator/). ::: :::warning The share form relay service (hereinafter referred to as "this service") is a feature provided by the Misskey Project (hereinafter referred to as "we") free of charge and without warranty for the convenience of webmasters.We are not responsible for any damages incurred as a result of using or being unable to use this service for any reason. ::: ### Basic Parameters Generally, you can use the parameters introduced above, but \*\*parameters that depend on each server, such as user IDs and file IDs, cannot be used.\*\*If specified, they will be removed on Misskey Hub and will not be passed to the destination servers. ### Unique Features available on Misskey Hub Share Relay Service #### Featured Server By entering the domain of a Misskey server in the URL parameter `manualInstance`, you can add a separate link to that server as a "Recommended by the Share Source Website."Use this when you want to guide users to your server. :::warning The "Recommended Server Feature" is a feature provided for the convenience of webmasters. Therefore, it does not mean that we recommend the servers listed in the "Recommended by the Share Source Website" section. We are not responsible for any damages or disadvantages that arise from using or registering on the servers transitioned from the "Recommended by the Share Source Website." ::: ================================================ FILE: content/en/docs/2.for-users/3.features/silence.md ================================================ # Silence An account can be in a silenced state. When an account is silenced, the user will no longer be able to set their note visibility to "Public".A silenced user can still set note visibility to "Home", "Followers", and "Direct", which shows the note to their followers and on their profile page, but their posts will not be visible on the GTL (federated timeline) or LTL (local timeline). Only instance admins/moderators can silence accounts. ================================================ FILE: content/en/docs/2.for-users/3.features/theme.md ================================================ # Themes Themes can be used to change the look and feel of the Misskey client. ## Theme settings [Settings > Themes](x-mi-web://settings/theme) ## Creating a theme Themes are described as JSON5 objects, written in the format 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` ... A unique theme ID.UUID recommended. - `name` ... The name of the theme - `author` ... The author of the theme - `desc` ... The description of the theme (optional) - `base` ... Whether the theme is a light or dark theme - If you set it to light the theme will be listed as a light mode theme, if you set it to dark it will be listed as a dark mode theme. - The theme will be inheriting the default values of the theme specified here. - `props` ... The style definitions of the theme.These will be explained below. ### Definitions Used in Theme Styles The styles used in a theme are defined in the `props` property. - [_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 #### Syntax for Values - Hexadecimal colours - e.g. `#00ff00` - RGB colors with `rgb(r, g, b)` syntax - e.g. `rgb(0,255,0)` - RGBA colors with `rgb(r, g, b, a)` syntax - e.g. `rgba(0, 255, 0, 0.5)` - References to values of other keys - If you write `@{key-name}` the value of the given key will be used.Replace `{key-name}` with the name of the key to reference. - e.g. `@panel` - Constants (see below) - If you write `${constant-name}` the value of the given constant will be used.Replace `{constant-name}` with the name of the constant to reference. - e.g. `$main` - Functions (see below) - `:{function-name}<{argument}<{color}` #### Constants In cases where you have a value that you don't want to output as a CSS variable, but want to use it as the value of another CSS variable, you can use a constant. If you prefix the name of a key with a `$`, it will be not be used as a CSS variable, but a referenced value. #### Functions Functions are useful when you would like to use a slight variation of an existing color, for example, to brighten a button when hovering over it. Functions take the form: `:{function-name}<{argument}<{color}` ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### List of Functions - `lighten` ... Returns the color obtained by increasing the lightness of the specified color by the given amount (0-100). The lightness of the color can range from 0-100. Providing 100 will always return white. - `darken` ... Returns the color obtained by decreasing the lightness of the specified color by the given amount (0-100). Providing 100 will always return black. - `alpha` ... Return the color with the transparency (alpha) value set to the given argument (0.0-1.0). - 0.0 is completely transparent, while 1.0 is completely opaque. - `hue` ... Return the color obtained by spinning the hue by the given amount (-360 to 360). - `saturate` ... Returns the color obtained by increasing the saturation by the given amount (0-100). The saturation of the color can range from 0-100. ## Distributing Themes Since v2023.11.0, you can install themes directly from a website with one click. If you want to provide theme installation functionality, you will need to implement an API on your site.See also the documentation on [distributing plugins and themes](../../for-developers/publish-on-your-website/). ================================================ FILE: content/en/docs/2.for-users/3.features/thread-mute.md ================================================ # Mute Thread :::tip This feature is available in version 12.95.0 and later. ::: "Mute thread" mutes the thread of the specified note.A thread is all notes connected to the specified note. When a thread is muted, you will not receive notifications about new replies to the thread, nor will you receive notifications of your mentions in the thread. Additionally, mentions of you in the thread will not appear in the "Mentions" column. To mute a thread in Misskey Web, open the menu of any note belonging to the thread or the original note and select "Mute thread". :::warning The entire thread will be muted, regardless of which note in the thread was selected. ::: ================================================ FILE: content/en/docs/2.for-users/3.features/timeline.md ================================================ # Timelines [Notes](/docs/for-users/features/note/) are shown in the timelines. There are several kinds of timelines as mentioned below and each of them displays the different set of notes. Servers might disable some of them. ## Home This is where you see posts from users you follow.Often abbreviated as HTL. ## Local This is where you see all the posts from the local users, except those with "Home" visibility.Often abbreviated as LTL. ## Social This is where you see the posts from users you follow AND all the posts from the local users, except those with "Home" visibility.Often abbreviated as STL. ## Global This is where you see the posts from the local users and the remote users in federated servers, except those with "Home" visibility.Often abbreviated as GTL. ## Comparison
Source Visibility Timeline
Home Local Social Global
Local users you follow Public
Home
Followers
Remote users you follow Public
Home
Followers
Local users you don't follow Public
Home
Followers
Remote users you don't follow Public
================================================ FILE: content/en/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip This feature is available in version 12.109.0 and later. ::: :::warning This feature is experimental. It may be unstable and its specifications may be subject to change. ::: Misskey provides webhooks.Using webhooks, you can receive events from Misskey in realtime. You can manage your webhooks in [Settings > Webhook](x-mi-web://settings/webhook) Once a webhook is registered, Misskey will send an HTTP request to the specified URL when the specified event occurs.These requests are POST requests with a JSON body. The header field `X-Misskey-Hook-Secret` will contain the secret specified on creation.For security, you should verify the content of this field matches the secret provided during creation. The request payload contains the following properties: [TBA] If the destination server returns a `500` error or does not respond, Misskey will try again later. Webhooks can be temporarily enabled or disabled from their settings page. ## Events The following are the available events and their payloads. ### follow ### followed ### unfollow ### note ### reply ### renote ### mention Occurs when you are mentioned. ================================================ FILE: content/en/docs/2.for-users/3.features/widgets.md ================================================ # Widgets Widgets are small displays that can be added to the Misskey UI to show and interact with information. To change which widgets are displayed, enter widget editing mode.The way widgets are edited depends on which UI is being used.In widget editing mode, you can add, remove, rearrange, and configure widgets. ## List of Widgets - Profile - Instance Information - Sticky notes - Timeline - Calendar - RSS reader - RSS-Ticker - Trending - Clock - Activity - Photos - Digital clock - UNIX clock - Federation - Instance cloud - Posting form - Slideshow - Server metrics - Online users - Job Queue - Button - AiScript console - AiScript App - Ai - User list - Clicker ### Profile Displays your username, avatar, and banner.This widget can help you keep track of which account you are using if you have multiple accounts. ### Instance Information Displays the instance name, domain, icon, and banner. ### Sticky notes A notepad for saving text. ### Timeline Shows a timeline.You can switch between the Home, Local, Social, and Global timelines. ### Calendar Shows today's date, day of the week, and percentages for the passage of the day, month, and year.In the Default UI, this widget is displayed by default. ### RSS reader Lists titles from an RSS feed. ### RSS-Ticker Lists titles from an RSS feed in a scrolling ticker format. ### Trending Shows the most frequent hashtags. ### Clock Shows the current time on an analogue clock. ### Activity Shows a dot-style activity graph for the current user. ### Photos Shows recent files from the Drive. ### Digital clock Shows the current time on a digital clock. ### UNIX clock Shows the current time in UNIX format. ### Federation Shows the most popular remote instances. ### Instance cloud Shows remote instances as a sphere. ### Posting form Contains the form used to compose notes. ### Slideshow Displays the contents of a Drive folder in sequence. ### Server metrics Displays the instance's CPU, memory, network traffic, and storage capacity.This may be disabled depending on instance configuration. ### Online users Displays the number of users who are online. ### Job Queue Displays the status of the federation job queue. ### Button A button. Executes AiScript. ### AiScript console A console for running AiScript. ### AiScript App Displays an app written in AiScript.Uses the same UI as Misskey Play.Added in v13. ### Ai Shows Ai.Follows your cursor with her gaze. ### User list Shows a list of users.Head to "More!" > "Lists" to set the list. ### Clicker Shows a cookie.Click/tap the cookie. ================================================ FILE: content/en/docs/2.for-users/3.features/word-mute.md ================================================ # Word Mute When Word Mute is configured, a note that matches the conditions set in Word Mute will be minimized and shown as "[Username] said something".The contents of the note can be seen by clicking on the minimized note. The Word Mute filter can be configured in [Settings > Mutes and Blocks](x-mi-web://settings/mute-block). ## Hard Word Mute Notes filtered by the Hard Word Mute filter will be invisible.This differs from Word Mute in that notes filtered by Hard Word Mute will not be displayed at all. ================================================ FILE: content/en/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: 'Check this page first when you are in trouble using Misskey.' --- # Troubleshooting :::tip Be sure to check [FAQ](./faq.md) as well. ::: If you encounter a problem, first review the following standard problems and their solutions. If there is no corresponding item, or if the problem persists after trying the steps, please contact the server administrator or [report the problem](../../about-misskey/#participating-in-discussions). ## 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 unlikely, if the client still does not start, there might be a problem with the cache.In this case, please try clearing your cache and then try again. ## Pages cannot be loaded If your client does load successfully, but you get an error when trying to load the content, please check your network connection first.Also, check that the server you are trying to access is not down. Although unlikely, this could be due to the issue with the cache.In this case, please try clearing your cache and then try again. Any remaining problems are likely related to the server itself, so please contact the administrator. ## The client is slow Before changing any of your settings, first make sure that your Internet service provider is not experiencing any outages or maintenance, that your network transmission speed is sufficient, that your network settings are normal, and that there are any outages or maintenance on the server side, then try or check the following: 1. Misskey Web Settings Open Settings from the menu, go to the General page, and try to adjust following settings: - Turn on "Reduce UI animations" in the Appearance section - Turn off "Use blur effect for modals" in the Appearance section - Turn on "Use system default font" in the Appearance section - Turn on "Use OS native emojis" in Appearance section Please note that enabling the following settings will improve client performance, but at the cost of preventing some features from working. - Turn off "Disable Scripting in Pages" in the Behavior section - Turn on "Disable animated MFM" in Appearance section 2. Browser Settings - Activate hardware acceleration in your browser's settings - Check your browser's add-ons and extensions settings or turn them off - Check other settings of your browser 3. Other - Check the system settings of your PC or smartphone ## Some parts of Misskey Web are displayed incorrectly (transparent background, etc.) When changes are made to the UI due to an update, the theme's cache system may cause the UI to display incorrectly. In this case, just click "Clear cache" in the settings section of Misskey Web. :::warning The Clear Cache button is located in the Settings section within Misskey Web.Do not clear the browser cache. ::: ## Indicators for notifications, antennas, etc. don'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 and direct notes cannot be renoted. ## Certain components of Misskey Web are not available It is likely that add-ons or extensions such as ad blockers installed in your web browser are causing the problem.Please check those settings or turn them off. ## Some parts of the Misskey Web have not been translated In most cases, the part is simply not yet translated. It is not a glitch.Please wait for a while until the translation is completed. If you are interested, you too can [participate in translating Misskey](../../about-misskey/#translating-text). ================================================ FILE: content/en/docs/2.for-users/4.resources/_dir.yml ================================================ title: "Additional Resources" description: "This section introduces non-functional knowledge and how to deal with problems." ================================================ FILE: content/en/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Here are some apps to use with Misskey.' --- # Apps Here are some applications to use Misskey. When you log in to a Misskey server from your browser, you will see a timeline.What you see in this case is Misskey Web, Misskey's only official client.It is a browser-based application which also supports PWA, so it can be run like a native mobile OS application.For more information, please click [here](/docs/for-users/stepped-guides/how-to-use-pwa/).Please note that the Misskey project does not develop native apps. Once you get used to Misskey Web, you may want to try unofficial apps developed by volunteers.Here are the most widely used apps (in alphabetical order).Here are the most widely used apps (in alphabetical order). - **Aria** (iOS, Mac, Android, Windows, Linux): Most of Misskey features are available.It is based on the design of the official Misskey Web client.[Official website](https://misskey.io/@aria_app).[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880).[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria).[Source code](https://github.com/poppingmoon/aria). - **Flare** (iOS, Mac, Android, Windows): Saving browsing history and RSS reader are available.It supports Mastodon, Bluesky and X, and those timelines are mixable.[Official website](https://flareapp.moe).[TestFlight](https://testflight.apple.com/join/iYP7QZME).[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare).[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357).[Source code](https://github.com/DimensionDev/Flare). - **Milktea** (Android): Quickly access timelines and specific search results from tabs.You can also give nicknames to other users.[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient).[Source code](https://github.com/pantasystem/Milktea). - **Miria** (iOS, Mac, Android,Windows, Linux): It has unique features specific to Misskey, such as the ability to set custom emoji on tabs and MFM input completion.[Official website](https://shiosyakeyakini.info/miria_web/index.html).[App Store](https://apps.apple.com/app/miria/id6449201469).[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria).[Source code](https://github.com/shiosyakeyakini-info/miria). - **MissRirica** (iOS, Android): iOS/Android client for Misskey.Most of the Misskey Web (v13) UI and push notifications are available.[Source code](https://github.com/fruitriin/missRirica-client). - **Misscat** (iOS): It has been developed with the goal of providing intuitive operability suitable for smartphones.[Official website](https://yuiga.dev/misscat/).[Source code](https://github.com/YuigaWada/MissCat). - **SocialHub** (iOS): A paid app that also supports Misskey, Mastodon, Bluesky, Slack, and Tumblr.[Official website](https://uakihir0.github.io/socialhub/).[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582). - **ZonePane** (Android): Allows the creation of tabs for timelines, lists, and channels.Excellent read management.The Misskey version of the Twitter app TwitPane also supports Mastodon and Bluesky. [Google Play](https://play.google.com/store/apps/details?id=com.zonepane). - **TootRain** (Mac): This is a Mac application that displays posts on the timeline and lists in real time on the screen in the style of comments. [Official website](https://b123400.net/tootrain), [Source code](https://github.com/b123400/TootRain). However, since Misskey's features are being updated frequently, there may be a delay in adding the latest features.If you have no particular preferences, we recommend using Misskey Web. ================================================ FILE: content/en/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'This document contains frequently asked questions about using Misskey.' --- # Frequently Asked Questions This document contains frequently asked questions about using Misskey.
For frequently asked questions about the Misskey project itself, please refer to [this link](../../about-misskey#frequently-asked-questions). ## Are there Android/iOS apps available? The Misskey project does not develop native apps for such mobile operating systems, but there are several third-party apps available.For more information, please refer to [this link](./apps).
However, since third-party apps may lag behind in supporting the latest Misskey features, we recommend using the official web-based client called Misskey Web unless you have specific preferences.Additionally, Misskey Web supports Progressive Web App (PWA), allowing it to behave like a native app.For more details, see [here](/docs/for-users/stepped-guides/how-to-use-pwa/). ## Can I use Misskey with Mastodon-compatible apps? As Misskey is not compatible with the Mastodon API, barring some exceptions, using Mastodon clients to log into Misskey is not possible.
Please use the official Misskey Web client instead. ## Is misskey.io the official server of the Misskey project? No, misskey.io is not the official server of the Misskey Project and is not affiliated with it.misskey.io is the largest server running Misskey, offering a general-purpose platform for easy registration without specific themes. ## Is the any relationship with MisskeyHQ Inc.? MisskeyHQ is a company to operate misskey.io.Therefore, it does not have a direct relationship with the Misskey development project. However, syuilo, the project leader of Misskey, also participates as an officer in MisskeyHQ Inc., fostering cooperation to advance Misskey. ## What is the origin of the name "Misskey"? The name "Misskey" was inspired by the lyrics of May'n's song "Brain Diver," which the main developer syuilo happened to be listening to when considering the name. ## How can I follow users from other Misskey, Pleroma, or Mastodon servers? Select "Search" from the menu and enter the user's fully-qualified username in the format specified below.A fully-qualified username includes a username and the hostname of the server to which the user belongs.This format is common between ActivityPub platforms such as Misskey, Mastodon, and Pleroma.
The format of a fully-qualified username is as follows: `username@hostname.example`Here's a live example: `syuilo@misskey.io` While this format is not universal across all distributed software, it allows you to follow users from other servers or platforms implemented with different decentralized software. ## How do I delete a Renote? To take back a renote, press the "..." next to the renote timestamp and select "Take back Renote".
For more details about Renote, see [here](../features/note/#renote). ## How can I disable URL previews in a note? Misskey's Markup language For Misskey (MFM) includes syntax to disable URL previews.For more details, refer to the MFM cheat sheet, which you can access by entering the following address on your server:`https://yourservername/mfm-cheat-sheet`. ## How can I add, edit, or delete custom emojis? Only server administrators can add, edit, or delete custom emojis.Please contact your server administrator if you wish to do so. ## I want to develop a bot. Anyone can develop a Misskey bot using the Misskey API.For more information, see [here](../../for-developers/api/). ## Which service does the note translation function use? We use [DeepL Translation](https://www.deepl.com/), the machine translation service. ## I want to inquire about your service. "Misskey" is the name of software used to operate social media services, as well as the development project of this software."Misskey" itself is not a social media service.The Misskey Project does not operate or manage any social media services itself. Any inquiries about services using Misskey software should be directed to their respective service.Note that colloquially, "Misskey" is often used to refer to social media services using Misskey software. ## How will we use your donations? Your donations will be used to support the continuous development of Misskey. Specifically, your donations will primarily go towards the salary of a full-time developer (currently @syuilo). The Misskey Project could not be possible without our full-time developer. From time to time the funds may also be used to pay for contract work, as well as stipends. A small proportion of our expenses may include hospitality, donations to other open source software, domain registration, development software and services, materials (e.g. books), hardware (e.g. test benches), fees for trademarks and other rights, accounting fees, merchandise costs (production, shipping, etc. for Misskey cards, etc.), purchasing art assets (logos, icons, illustrations, sounds, etc.), virtual office fees, etc. We are not currently advertising, so we do not have any advertising expenses. Please note that donations to us are considered "sales" for tax purposes and will be subject to sales tax. Additionally, donations are subject to payment processor fees, meaning a portion of your donations will not go to us. ## Do I need to register with the Ministry of Internal Affairs and Communications if I create a server? (For servers in Japan) ### Short answer **Yes**, if you are operating for **business purposes**.Otherwise, **no**. ### Long answer The definition of "operator," according to [documents from the Ministry of Internal Affairs and Communications](https://www.soumu.go.jp/main_content/000477428.pdf), is "a person who seeks to make a profit by providing services and collecting fees as compensation for the provision of those services."Therefore, unless you are operating the server for the purpose of making a profit as a business, registration is not necessary.Thus, even if there is revenue from sources like donations or advertising, as long as it is used solely for operating costs, it does not fall under the category of operators requiring registration (confirmed with the Ministry of Internal Affairs and Communications).
For more details, please refer to the Ministry of Internal Affairs and Communications' [Entry Manual for Telecommunications Businesses](https://www.soumu.go.jp/main_content/000477428.pdf) or contact the ministry directly. ## Since Misskey has a DM function, don't I need to register as a telecommunications business to run a server? As mentioned in ["Do I need to register with the Ministry of Internal Affairs and Communications if I create a server? (For servers in Japan)"](#Do I need to register with the Ministry of Internal Affairs and Communications if I create a server? (For servers in Japan)), any service operating on a non-profit basis does not require registration, regardless of the services offered. ## Can I release services containing the name "Misskey"? "Misskey" is a registered trademark (in Japan) by the Misskey Project, but you can publish services with the name "Misskey" (e.g., Misskey Tools) without issues. Additionally, there are no plans to charge fees for such use. ================================================ FILE: content/en/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'A glossary of terms related to Misskey.' --- # Glossary A glossary of terms related to Misskey. ## Acct The fully-qualified ActivityPub username of a user, in the format `@username@host`.Used when mentioning a user. ## ActivityPub An open, standardized protocol used to create a decentralized federated social network known as the Fediverse.Instances connect to each other using this protocol and exchange data such as content and notifications.It is the core protocol of the Fediverse. ## AiScript A scripting language running on top of Javascript that can be used with Misskey.For more details, see [here.](https://aiscript-dev.github.io/) ## API An interface for computer programs to interact with Misskey.[Documentation is available](../../for-developers/api) ## Bot An account operated by a program. ## CW 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.[Documentation is available](../features/note/#cw) ## Fediverse A portmanteau of "federated" and "universe."A decentralized, federated social network made up of servers running various decentralized software, including Misskey.Besides Misskey, other examples of federated software include Mastodon, Pleroma, and Pixelfed. ## GTL An abbreviation for "Global TimeLine".See the documentation on the [timelines.](../features/timeline) ## HTL An abbreviation for "Home TimeLine".See the documentation on the [timelines.](../features/timeline) ## LTL An abbreviation for "Local TimeLine".See the documentation on the [timelines.](../features/timeline) ## MFM Abbreviation for Markup Language for Misskey (Misskey Flavored Markdown). The markup language used on Misskey. [Documentation is available](../features/mfm) ## Misskey Web Misskey's official web client (interface).This is the application seen when viewing Misskey from a web browser on your PC or smartphone. ## NSFW Abbreviation of Not Safe for Work.A feature to tag an image as "sensitive" (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.[Documentation is available](../features/note/#renote) ## STL An abbreviation for "Social TimeLine".See the documentation on the [timelines.](../features/timeline) ## Ai Ai is Misskey's official mascot.[More information is available](https://xn--931a.moe/) ## Server (Server, Instance)An entity that provides the Misskey service to users. ## Custom Emoji Emoji created by administrators and users unique to each instance.Emoji that are not specifically provided by your server but are available by default are called "Unicode Emoji".[Documentation is available](../features/custom-emoji) ## Control Panel The configuration page of a Misskey instance. ## System Account The system account is a service account used to communicate with remote instances.It is built into Misskey, and Misskey can operate it automatically as needed. ## Suspension The state of an account when it is disabled. ## Drive The file manager for user-uploaded files on Misskey, such as images and music.[Documentation is available](../features/drive) ## Note Messages posted by Misskey users.Notes can contain a variety of original content including images, music, and polls.[Documentation is available](../features/note) ## Proxy Account The proxy account is a service account used by Misskey to retrieve posts from remote instances in special circumstances.If a remote user is not followed by anyone on the local instance, the proxy account may follow the remote user to allow the remote user to continue sending notes to the local instance. ## Misskist (Misskeyist, Misskist)Someone who has an account on Misskey.Especially power users. ## Moderator Users with the authority to manage the community of a server by deactivating spam accounts, silencing users, deleting inappropriate posts, etc.In most cases, moderators are recruited from users of the instance. ## Remote Instances other than your own.Also used as an adjective in terms such as "remote user."The opposite of local. ## Federation A collection of instances that exchange data such as content and notifications with each other, or a member thereof. ## Local Your own instance.Also used as an adjective in terms such as "local users" or "local timeline."The opposite of "Remote". ================================================ FILE: content/en/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hub Misskey Hub is the official website of the Misskey Project, which provides knowledge and other documentation about Misskey, a development blog, and a plugin store. It aims to be "the place to be for all things Misskey." Misskey Hub is also [open source and publicly available.](https://github.com/misskey-dev/misskey-hub) :::tip Misskey Hub is a static site built with Nuxt. ::: ## Contribute to Misskey Hub Additional documentation and translations are welcome. ================================================ FILE: content/en/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS Attack ![](/img/docs/for-users/resources/self-xss/console_warn.png) Did you land on this page after following someone's instructions while using Misskey and seeing a screen like the one above? **You may have been tricked by a malicious attacker.** Unless you type in the content you were instructed to (most likely a program), no information will be sent to the attacker.**Please stop what you're doing immediately.** The screen you're seeing is called the "console," a tool developers use to check code and fix bugs. **This screen is not needed for regular use.** ## More Details In a Self-XSS attack, an attacker tricks a user into pasting malicious code into the browser’s developer tools.They often do this by making enticing claims like: - Unlock hidden features or perks - Test this code for security purposes - Hack the website to get extra points If you’re convinced to run this code, you’ll perform actions that the attacker intended. Unlike what you might image as a typical "cyberattack," Self-XSS attacks get sensitive data by tricking users into using legitimate apps. This means that, in addition to system security measures, it's crucial for users to stay vigilant against these tricks. ================================================ FILE: content/en/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # Step-by-step Guides In this section, we'll explain some complicated things in Misskey by crunching into small steps. :::warning This section is in beta.Contents might be uncompleted or buggy. ::: ================================================ FILE: content/en/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "Step-by-step Guides" description: "This page explains Misskey operations step by step in detail. Check out this section when you find yourself difficult using Misskey!" ================================================ FILE: content/en/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "How to delete your account" description: "This page explains how to delete your account on Misskey server." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Some users may find that they no longer need their Misskey accounts and may wish to delete them. On this page, we will provide information about: - Points to consider when deleting an account - How to delete an account :::danger As we will explain in more detail later, **deleting an account will affect even when you resume using Misskey (i.e., re-register).** Please be very careful when deleting your account. ::: ## Points to Consider When Deleting an Account When you delete your account, the following will occur: - You will no longer be able to log in to your account. - Data deletion will take some time. - The same ID cannot be used again. Let's explain each point. ### You will no longer be able to log in to your account Once you delete your account, you will no longer be able to log in to it. **There is no recovery function in case of accidental deletion.** Please take note of this. ### Data deletion will take some time Data deletion is a resource-intensive operation. Therefore, to avoid disrupting other users' usage, data deletion will take some time. Please note that not all data will be deleted immediately upon account deletion. ### The same ID cannot be used again Due to the technical limitation on federation, at present, once an ID (the part before `@` in `@someone@misskey.example.com`) is obtained, **it cannot be used again.** **You will not be able to obtain the same ID again on the same server,** so please be cautious. --------------- After understanding all of the above, and if you still need to delete your account, please select your device type below and proceed with the account deletion. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Smartphone" steps: - title: "Open Settings" image: "sp/1.png" description: | Open Misskey, tap the "≡" button at the bottom right of the screen, then tap "Settings" from the menu that appears. - title: "Tap \"Other\"" image: "sp/2.png" description: | Find and tap on "Other" within the settings category. - title: "Tap \"Request account deletion\"" image: "sp/3.png" description: | Tap "Close Account" to open it, then tap "Request account deletion" button after reviewing the instructions. - title: "Enter password" image: "sp/4.png" description: | Enter the password for confirmation as it initiates the dangerous operation. - title: "Request for account deletion is complete" image: "sp/5.png" description: | When this screen appears, your request to delete your account is complete. Tap "OK" to log out of the Misskey server. - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "Open Settings" image: "pc/2.png" description: | Open "Settings" and click on "Other," which can be found by scrolling down a bit. - title: "Click \"Request account deletion\"" image: "pc/3.png" description: | Click "Close Account" to open it, then click "Request account deletion" button after reviewing the instructions. - title: "Enter password" image: "pc/4.png" description: | Enter the password for confirmation as it initiates the dangerous operation. - title: "Request for account deletion is complete" image: "pc/5.png" description: | When this screen appears, your request to delete your account is complete. Tap "OK" to log out of the Misskey server. ================================================ FILE: content/en/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "How to Set Up Two-Factor Authentication (One-Time Password)" description: "This guide explains how to set up a one-time password for your Misskey account to enhance security." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Enabling two-factor authentication can reduce the risk of unauthorized access to your account and enhance security. Here, we will introduce how to set up a one-time password. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Smartphone" steps: - title: "Download a Two-Factor Authentication App" description: | Before starting, install an app for generating one-time passwords for two-factor authentication. Here are some examples: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "Open Settings" image: "sp/1.png" description: | Open Misskey, tap the "≡" button at the bottom right of the screen, then tap "Settings" from the menu that appears. - title: "Tap on \"Security\"" image: "sp/2.png" description: | Find and tap on "Security" within the settings category. - title: "Tap on \"Register authenticator app\"" image: "sp/3.png" description: | Within "Two-factor authentication," find "Authenticator App" section and then tap on "Register authenticator app." - title: "Enter password" image: "sp/4.png" description: | Enter the password for verification. - title: "Start Setting Up Authentication App" image: "sp/8.png" description: | A code for setting up two-factor authentication app will be generated. Set it up using one of the following methods: ### If setting up the authentication app on your current device Tap the "Launch App" button. If this button is not available, **tapping on the QR code will launch the app.** :::tip If it doesn't launch, make sure the two-factor authentication app is properly installed. ::: ### If setting up the authentication app on another device Open the two-factor authentication app on the other device and follow the app's instructions to register a new one-time password. Scan the QR code displayed on the screen during this process. - title: "Copy the Code Generated by the Authentication App" image: "sp/9.png" description: | Later in the setup on the Misskey side, there will be a step to input the one-time password generated by the authentication app to confirm that it was set up correctly. Follow the app's instructions to either remember or copy the one-time password. :::warning The one-time password expires quickly (about 30 seconds), so please be careful. ::: - title: "Enter the One-Time Password" image: "sp/6.png" description: | Enter the one-time password generated earlier and tap "Continue." - title: "Download Backup Codes" image: "sp/7.png" description: | **Two-factor authentication setup is complete.** Finally, download the "Backup Codes" that can be used if two-factor authentication becomes unavailable. :::warning Backup codes are a last resort to log in to your account when one-time passwords are not available. If you don't have these codes, you won't be able to log in to your account, so be sure to download and store them in a safe place. These codes will not be displayed again. ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "Download a Two-Factor Authentication App" description: | Before starting, install an app for generating one-time passwords for two-factor authentication on your smartphone. Here are some examples: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip There are also one-time password generation software available for PCs, but we recommend smartphone apps for portability. ::: - title: "Open Settings" image: "pc/8.png" description: | Go to "Settings" → "Security," and from within "Two-factor authentication," find "Authenticator App" section and then tap on "Register authenticator app." - title: "Enter password" image: "pc/3.png" description: | Enter the password for verification. - title: "Start Setting Up Authentication App" image: "pc/7.png" description: | A code for setting up two-factor authentication app will be generated. Set it up using one of the following methods. ### If Setting Up the Authenticator App on a Smartphone (Recommended) Open the two-factor authentication app on your smartphone, follow the app's instructions to register a new one-time password. Scan the QR code displayed on the screen during this process. ### If Using a Two-Factor Authentication App on PC Tap the "Launch App" button. If this button is not available, tapping on the QR code will launch the app. - title: "Copy the Code Generated by the Authentication App" image: "sp/9.png" description: | Later in the setup on the Misskey side, there will be a step to input the one-time password generated by the authentication app to confirm that it was set up correctly. Follow the app's instructions to either remember or copy the one-time password. :::warning The one-time password expires quickly (about 30 seconds), so please be careful. ::: - title: "Enter the One-Time Password" image: "pc/5.png" description: | Enter the one-time password generated earlier and tap "Continue." - title: "Download Backup Codes" image: "pc/6.png" description: | **Two-factor authentication setup is complete.** Finally, download the "Backup Codes" that can be used if two-factor authentication becomes unavailable. :::warning Backup codes are a last resort to log in to your account when one-time passwords are not available. If you don't have these codes, you won't be able to log in to your account, so be sure to download and store them in a safe place. These codes will not be displayed again. ::: ================================================ FILE: content/en/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "How to use Misskey Web as a smartphone app" description: "Learn how to turn Misskey Web into a PWA app. This is the recommended way to use Misskey on your smartphone." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Here is how to convert Misskey Web into a PWA application. This is the recommended way to use Misskey on your smartphone. ## What is PWA? PWA stands for Progressive Web App, a technology that allows web pages to be treated like normal apps. In this page, we'll explain how to set up PWA for each device OS. Please select your OS below to proceed! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | We recommend using Google Chrome to use PWA on Android. Let's take a look at how to set it up using Google Chrome. steps: - title: "Open the Misskey server you want to make into a PWA" image: "android/sp_0.png" description: | Access the Misskey server you want to install on your device, and log in. - title: "Open settings" image: "android/sp_1.png" description: | Tap the ︙ button in the upper right corner while any page on the Misskey server is open. - title: "Tap \"Add to Home Screen\" or \"Install App\"" image: "android/sp_2.png" description: | Tap the "Add to Home Screen" or "Install App" item in the menu and follow the instructions in the dialog. - title: "Check your home screen" image: "android/sp_3.png" description: | After a few moments, the server icon or a Misskey icon will be added to the home screen. When launched from this icon, Misskey will start in app mode. - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | Use Safari when using PWA on iOS or iPadOS. Before starting, please make sure that the OS on your device is up-to-date. If it is not, please update your system by following the instructions [here](https://support.apple.com/en-us/ios/update). steps: - title: "Open the Misskey server you want to make into a PWA" image: "ios/sp_0.png" description: | Access the Misskey server you want to install on your device, and log in. - title: "Tap \"Share\" button and open the menu" image: "ios/sp_1.png" description: | Tap "Share" button in the menu bar while any page on the Misskey server is open. - title: "Tap \"Add to Home Screen\"" image: "ios/sp_2.png" description: | Scroll down the list of options, then tap Add to Home Screen. Misskey server may ask for permission to send you notifications at this point. If so, follow the on-screen instruction and decide accept or deny it. If you don’t see Add to Home Screen, the setting item may be hidden. To add it, scroll down to the bottom of the list, tap Edit Actions, then tap Add to Home Screen. See [Apple Support page](https://support.apple.com/guide/iphone/bookmark-favorite-webpages-iph42ab2f3a7/17.0/ios/17.0) for more information. - title: "Check your home screen" image: "ios/sp_3.png" description: | After a few moments, the server icon or a Misskey icon will be added to the home screen. When launched from this icon, Misskey will start in app mode. ================================================ FILE: content/en/docs/2.for-users/_dir.yml ================================================ title: "For Misskey Users" ================================================ FILE: content/en/docs/3.for-admin/_dir.yml ================================================ title: "For Server Operators" description: "Guides and resources on how to create a server and useful tips for operating a server." ================================================ FILE: content/en/docs/3.for-admin/features/1.index.md ================================================ --- description: "Features for server administrators." --- # Server Features Misskey offers a variety of features to help you run your server. ================================================ FILE: content/en/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/en/docs/3.for-admin/features/announcement.md ================================================ # Announcements Announcements are one of the features available in Misskey. Using the announcement feature, you can post server-wide announcements to users, as well as send messages from the server to individual users. :::warning A large number of active announcements can cause a poor user experience, due to excessive confirmation prompts, especially for new users.The following options should be considered: - Create an announcement with the "Existing Users Only" option enabled - Create an announcement with the "do not notify" option enabled - Archive closed announcements. ::: ## Display format You can select from the following types of display formats. - **Normal** ... Announcements will be posted on the Announcements page. - **Banner** ... In addition to appearing on the announcements page a banner will appear at the top of the user's screen. - **Dialog** ... In addition to being posted on the announcements page it will also appear as a modal dialog when the user opens the site. - It is recommended that you proceed with caution when there are two or more dialog-type announcements at the same time, as they are very likely to adversely affect the UX. ## Creating Announcements ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/en/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/en/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/en/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTT is one of the major server features available in Misskey. When enabled, the performance of retrieving various timelines can be greatly improved and the load on the database can be reduced.Instead, memory usage of Redis will increase.It can be disabled if the server's memory capacity is low or if the Misskey backend is unstable. The settings can be configured in the General section of the Control Panel. ## Fallback to database - If enabled, fallback processing is performed to make an additional query to the database if the timeline is not cached. - Disabling it further reduces the server load by not performing fallback processing, but limits the range of timelines that can be retrieved. ## FTT-Compatible Timelines - Home - Local - Social - User lists ================================================ FILE: content/en/docs/3.for-admin/features/managing-emojis.md ================================================ # Managing Custom Emojis :::warning This documentation is currently under confirmation.Some information might be out of date, so please be careful when you refer to. ::: 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. :::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 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; /** * 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.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 behavior just uncheck the box again. ================================================ FILE: content/en/docs/3.for-admin/features/role.md ================================================ # Roles Roles are attributes assigned to users that allow you to display badges and assign permissions using policy settings. Role assignment can be done manually or automatically based on specified conditions. A user can have multiple roles at once. ## Role Template You can set policies that will be applied by default to all users in the role template (base role) settings. You can set the role template in the control panel under "Roles > Role Template". ## Assignment Type You can set a role to be assigned manually or automatically. - **Manual:** Manually assign and unassign users.(Manual Role) - You can also set a length of time for the assignment. - **Conditional:** Set conditions for assignment. Users who meet the conditions will be assigned automatically.(Automatic Role) :::warning Compared to manual roles, conditional roles have the following limitations: - Conditional roles cannot be manually assigned/unassigned - There is no way to view a list of users assigned a conditional role ::: ## Permissions Each role can be given the following base permissions: - **Normal User:** No special permissions - **Moderator:** Can perform basic moderation operations - **Administrator:** Can change all settings of the instance More detailed permissions can be set under Policies. ## Policies Role policies can be adjusted to implement permissions and feature restrictions. Policies can also be set to inherit the values from the role template. ### Priority If multiple roles are assigned and the same policy is defined with different values for each role, priorities can be assigned to each policy to determine which policy prevails. Policies with higher priority override those with lower priority. Priority is assigned by policy, not by role.Role templates cannot have priorities. **If the priorities for a policy are the same, the largest or most permissive value prevails by default.** :::tip For example, suppose a user is assigned roles A and B. The Drive capacity policy for role A is set to 500MB and the Drive capacity policy for role B is set to 300MB. - If the priority for this policy on role A is higher or the priorities are the same, then the user will have 500MB of Drive capacity. - If the priority for this policy on role B is higher, then the user will have 300MB of Drive capacity. Additionally, suppose the user is also assigned roles C and D. Role C has the "Can send public notes" policy set to "No" while role D has the same policy set to "Yes". - If the priority for this policy on role D is higher or the priorities are the same, then the user will have the policy set to "Yes". - If the priority for this policy on role C is higher, then the user will have the policy set to "No". ::: ### Use role template value Enable this setting to inherit the policy's value from the role template. ## Creating Roles New roles can be created from "Roles" in the Control Panel. ## View, Edit, or Delete Role Details Roles can be edited under "Roles" in the Control Panel. ## Assigning and Unassigning Roles to Users Roles can be assigned to users under "Moderation > Roles". You can also assign roles directly from the user's menu. You can set a length of time to assign the role. :::tip It may take some time for changes to role assignment to take effect. ::: :::warning Conditional roles cannot be manually assigned. ::: ## Checking a User's Policies A user's policies can be viewed under "Moderation > Overview > Policies". ================================================ FILE: content/en/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/en/docs/3.for-admin/install/_dir.yml ================================================ title: "Install and Maintain Misskey" description: "Information on how to install and subsequently maintain Misskey." ================================================ FILE: content/en/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'How to create a Misskey server.' --- # Creating a Misskey Server Thank you for your interest in creating a Misskey server.There are several ways to create a server, so please choose one below and read the corresponding guide. :::danger Do not recreate the database with the domain/hostname of the server once you have started using it! ::: :::warning If you change the source code of Misskey (including forking), AGPLv3 license requires you to disclose those changes.Please refer to [this document](/docs/for-admin/install/resources/forking/) for more information. ::: ## Installation on Xserver VPS [Xserver VPS](https://vps.xserver.ne.jp/) provides a Misskey application image making it easy to set up a Misskey server. The provider manages and maintain the server, so you can operate your server without any complicated knowledge. Please refer to [this document](https://sns.xserver.ne.jp/misskey.php) for more information. ## List of Installation Methods ================================================ FILE: content/en/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'Set up Misskey server with ease by using third-party service.' --- # Use Dedicated Service It's easy to set up a Misskey server using services provided by third-party hosting providers.Below, we'll introduce some services that support Misskey. :::warning The services listed here are those known to the Misskey Project but do not represent a complete list.Please also note that, unless explicitly stated otherwise, the Misskey Project does not verify the functionality of these services or endorse them, regardless of whether the service provider sponsors the Misskey Project. **(For inquiries about these services, please contact the service provider directly, not the Misskey Project.)** ::: ## Services Specialized for Misskey Hosting Some services offer management tools tailored for Misskey, allowing you to set up a server without needing technical expertise.これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/) provides Misskey as an available SNS software option.XServer handles server maintenance and version updates, making it easy to set up a Misskey server with minimal technical knowledge. ## VPS Application Images Some VPS (Virtual Private Server) providers offer features like "easy installation" or "application images" for quick setup.Some of these are compatible with Misskey by default.Here are a few examples: ### XServer VPS / Shin VPS [XServer VPS](https://vps.xserver.ne.jp/) and [Shin VPS (シンVPS)](https://www.shin-vps.jp/) provide Misskey as an application image. For more details, see: - XServer: [Using the Misskey Application Image](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - Shin VPS: [Using the Misskey Application Image](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### Sakura VPS [Sakura VPS](https://vps.sakura.ad.jp/) provides Misskey as a startup script. For more information, please refer to the [Sakura VPS Manual - Startup Script](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html). ================================================ FILE: content/en/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 This shell script was made to make the installation of Misskey easy! By answering a couple of questions, you can easily install Misskey on an Ubuntu server! There is also an update script. The (older) v12 script is available here ## Requirements 1. Domain 2. Ubuntu server 3. Cloudflare account (recommended) :::danger Do not recreate the database with the domain/hostname of the server once you have started using it! ::: Since Let's Encrypt's verification attempts are limited, please double-check your server's network and DNS settings prior to starting the installation. ## Cloudflare Configuration Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. Installation SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. Update アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 主にディレクトリを覚えておくのに使用します。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 実行されているコンテナとイメージの番号を保存しています。 コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/en/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'This guide explains how to set up Misskey using Docker' --- # Building Misskey using Docker Compose This guide explains how to set up Misskey using Docker :::danger Do not recreate the database with the domain/hostname of the server once you have started using it! ::: :::tip{label='前提条件'} - Make sure Docker and Docker Compose are installed on your system. ::: ## Clone the Repository ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## Configuration The following commands will copy the various config files from examples to their actual config location. ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` Please edit `default.yml` and `docker.env` file as per the description.\ Also edit `compose.yml` as needed.(If you want to change the port etc.) Please make sure to check in advance for any changes that may be required.(If you want to change the port etc.) ## Build & Initialize The next set of commands will build Misskey image and perform database initialization. This will take some time. ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## Startup Congraturations!You can launch Misskey with the following command. ```sh sudo docker compose up -d ``` GLHF✨ ## Updating Misskey :::warning Updates are always available in the [release notes](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` It may take time depending on the update content and the size of the database. ## How to execute CLI commands? ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/en/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 [TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/en/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'This guide will tell you how to install and setting Misskey.' --- # Manual Misskey Installation This guide will tell you how to install and setting Misskey. :::danger Do not recreate the database with the domain/hostname of the server after you have started using it! ::: :::tip{label='前提条件'} #### You need to install the follow packages: - **[Node.js](https://nodejs.org/en/)** (v22.15.0 or higher within the v22 series) - **[pnpm](https://pnpm.io/)** (v10.16.0 or higher) - **[PostgreSQL](https://www.postgresql.org/)** (v15 or higher) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** If you run Misskey on Debian/Ubuntu, you need to install `build-essential` package. ::: ## Create Linux User Misskey should not run under root permission, so you should create a new user. Debian for example: ```sh adduser --disabled-password --disabled-login misskey ``` ## Install Misskey ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## Settings Please copy setting sample file `.config/example.yml` to `default.yml`. ```sh cp .config/example.yml .config/default.yml ``` And edit `default.yml` according to the help text in the file. ## Build and Initialize The next command will build Misskey and initialize the database. This will take some time. ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## Launch You did it.Please start Misskey with the following command. ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="Manage with systemd"} Create systemd services config. `/etc/systemd/system/misskey.service` Open your editor and paste the following code: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning If you are using CentOS and using port number less than 1024. Please change to `ExecStart=/usr/bin/sudo /usr/bin/npm start`. ::: Reload systemd and enable misskey service. ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` Launch Misskey service ```sh sudo systemctl start misskey ``` :::tip You can check the service status by `systemctl status misskey`. ::: :::: ## Updating Misskey :::warning Please check [release note](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) before you update. To understand the changes and something need to do (usually don't to anything). ::: Pull the master, install, build and migrating the database. ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` It may take time depending on the update content and the database size. After updating, Please restart the Misskey process. ```sh sudo systemctl restart misskey ``` :::tip If there are errors on build or start, please try the following command: - `pnpm run clean` or `pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/en/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=20; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Now that node.js is installed, check the version node -v # corepack enable sudo corepack enable ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # check the status of the service with systemctl. systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https\://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo snap install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` Check that the output is `573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62`. ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` Check the status of ufw. ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudflareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginx configuration nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` Create `/etc/nginx/conf.d/misskey.conf`. ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/en/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskey Maintenance & Troubleshooting" description: "Regular maintenance is essential to running a Misskey server. Here is some useful information about maintaining Misskey." ================================================ FILE: content/en/docs/3.for-admin/install/resources/cdn.md ================================================ # CDN Configuration We strongly recommend using a CDN such as [Cloudflare](https://www.cloudflare.com/) when publishing your Misskey server. Using a CDN provides the following benefits - Reduce server load by having static content cached - Less exposure of the server's IP address which can mitigate DoS attacks, etc. ## Cache The Misskey Client is completely static and does not require a server to operate.Thus, the entire Misskey Client can be cached by the CDN with the exception of the Misskey API which cannot be cached. Please configure your CDN in the following way: - Cache all requests except `/api/*` :::tip You don't have to purge cache when updating Misskey. ::: ================================================ FILE: content/en/docs/3.for-admin/install/resources/forking.md ================================================ # Notes on Forking and Customizing Misskey The GNU Affero General Public License v3.0 (AGPL-3.0), adopted by Misskey, mandates the disclosure of any modifications made to the Misskey source code. Starting from Misskey v2024.2.0, a feature has been implemented to facilitate compliance with this license.Here, we introduce how to configure this feature. :::warning Of course, even if you base your work on versions before this, you still need to take measures to comply with the license. ::: ## Using Misskey Without Modifications If you intend to use only the built-in features of Misskey without making any changes to the codebase, there's no specific action required. ## Making Changes to Misskey's Code and Publishing the Modified Version on Platforms like GitHub If you modify the Misskey code and intend to publish the modified version on platforms like GitHub, please ensure the following: - Keep your repository public (without access restrictions, allowing anyone to access it) Let's proceed with the setup. 1. Build the modified version of Misskey and deploy it in your production environment. 2. While logged in as an Admin account, open the [admin settings](x-mi-web://admin/settings) page. 3. Enter the URL of your Misskey repository in the "Repository URL" field. ## Making Changes to Misskey's Code but Not Publishing the Modified Version (or Unable to) Even in this case, you need to provide direct access to the source code from the Misskey interface.Starting from Misskey v2024.2.0, a feature has been implemented to automatically package the source code into a tarball during the build process. :::tip Note that **disclosing the source code only when requested is deemed insufficient for license compliance.** Even if you don't utilize Misskey's built-in source code disclosing feature, ensure that there is some way to directly access the source code of the running version of Misskey from the Misskey Web interface. ::: Let's proceed with the setup. 1. Open the Misskey configuration file (default is `.config/default.yml`). 2. Set `publishTarballInsteadOfProvideRepositoryUrl` to `true` (you can simply uncomment the specified part in the config file). 3. Build Misskey (this will generate a tarball of the source code). 4. Open the generated tarball and ensure that **no confidential information such as tokens is included in the distributed source code.** 5. If any confidential information is included, edit `scripts/tarball.mjs` to exclude such information. :::warning The generation of the source code tarball occurs during the build process.Be sure to rebuild whenever changes are made to `scripts/tarball.mjs`. ::: ================================================ FILE: content/en/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginx configuration We recommend using [nginx](https://nginx.org/) as a reverse proxy and operating the Misskey server without exposing it directly to the Internet. This provides the following benefits: - Enhanced security: By controlling access through a reverse proxy, you can reduce the risk of direct attacks on the Misskey server. - Flexible configuration: nginx offers flexible configuration options, allowing you to configure not only the reverse proxy function but also caching[^1] and security policies. By taking advantage of these points, you can operate your Misskey server more safely and efficiently. You can also set up your infrastructure with a CDN such as Cloudflare for even greater benefits. [^1]: By utilizing the nginx functions [proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock) and [proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale), you can expect to reduce the load on the Misskey server even if there is a large amount of access when the cache has not been created. ## Example of how to set it up The following is a configuration example for when nginx is installed directly on a server machine (such as a VPS) and [Let's Encrypt](https://letsencrypt.org/) is used as the certificate authority. 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".)\ (The file name does not have to be "misskey".) 2. Edit as follows: 1. Replace example.tld with the domain you have prepared.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; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/en/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # How to push to Docker Hub using GitHub Actions An example of how to push to Docker Hub using Github Actions can be found on the original repository in the file [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) In the original workflow when a new release happens, it will be pushed to Docker Hub with the `latest` and `` tags.\ \ \ ※ Docker Hub may have a tag like ``, but those tags are not automatically pushed. \ \ ※ Docker Hub may have a tag like ``, but those tags are not automatically pushed. Executing this workflow in a fork will fail. In the following information, we describe how to make the Fork push to its own Docker Hub repository. ## How to set up a workflow to push to your own Docker Hub repository 1. Create a repository on Docker Hub. 2. Replace the [image mentions in the workflow file](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) with the name of the repository you created. 3. Create two [encrypted secrets](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) on GitHub. Create two [encrypted secrets](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) on GitHub.\ \ You need to create `DOCKER_USERNAME` and `DOCKER_PASSWORD`, which are the Docker Hub username and password, respectively. ## How to push The default settings in the workflow will automatically push to Docker Hub upon a new release.\ \ Specifically, when a release is made using GitHub's release function it is pushed to Docker Hub with the tags `latest` and `` \ Specifically, when a release is made using GitHub's release function it is pushed to Docker Hub with the tags `latest` and `` You can also push manually from GitHub. You can also push manually from GitHub.\ \ To do so, go to Actions => Publish Docker image => Run workflow and then select a branch.\ \ However doing this will make it push with a tag labeled as ``. \ However doing this will make it push with a tag labeled as ``. ================================================ FILE: content/en/docs/3.for-admin/install/resources/scale-out.md ================================================ # Scaling Misskey As the number of your users increase, it becomes necessary to improve the specs of the server or increase the number of servers to handle the load.This article introduces tips on how to scale your Misskey server. ## PostgreSQL Replication PostgreSQL replication allows you to distribute the database load across multiple servers, Please refer to the PostgreSQL documentation for details on replication.(excerpt) ```yml # Set to true if replication is used dbReplications: true # Configure all slaves to replicate the DB to dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` With this configuration, when Misskey issues a read query to the database, it will randomly select database replicas from the configured `dbSlaves` and send the query to one of them, thus distributing the load of the database. ## Role-based Redis partitioning Misskey uses Redis for a variety of purposes, including - Job Queue Management - Rate Limit Management - Cache - Storing notifications and other information - Pub/Sub for global events Misskey can be configured to use a different Redis server for each of these uses, allowing the load to be distributed across multiple servers.(excerpt) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` Currently, in addition to the main Redis configuration you can also configure Redis for "Pub/Sub for Global Events" and "Job Queue Management" as described above. ## Disable remote charts If you do not need charts such as activity for individual remote users or charts for individual remote servers, disabling their generation will improve performance. ================================================ FILE: content/en/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/en/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "Moderation Tips" description: "Useful information for the practical management of the server." ================================================ FILE: content/en/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # 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.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. ================================================ FILE: content/en/docs/4.for-developers/_dir.yml ================================================ title: "For Developers" description: "Resources for plugin and Play developers, as well as developers of external applications using the API." ================================================ FILE: content/en/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScript is a scripting language for Misskey that can be used in following features: - [Plugins](./plugin/create-plugin/) - [Widgets](/docs/for-users/features/widgets/) - Button - AiScript console - AiScript App - [Misskey Play](./plugin/create-play/) - Scratchpad :::tip The implementation of AiScript is in a separate repository from Misskey and is [open source and available here](https://github.com/aiscript-dev/aiscript). ::: ## Usage AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/) Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:` Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:` [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:` [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、[Misskey Play](./plugin/create-play/)、Scratchpadで使用できます。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Ui:`とついた部分を参照して下さい。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str` 返り値: `str` Misskey内の全てのAiScript環境で使用できます。 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any` 返り値: `null` [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 コンソールに文字列を出力します。 `<:`構文も同様の働きをします。 ================================================ FILE: content/en/docs/4.for-developers/api/1.index.md ================================================ --- description: 'Misskey has a public API.The API can be used for developing Misskey clients, Misskey connected web-services, bots, etc. (which will be referred to as "applications" from here on).' --- # Misskey API Misskey has a public API.You can use the Misskey API to develop Misskey clients, Misskey-linked web services, bots, etc. (hereinafter referred to as "applications"). Since there is also a streaming API, it is possible to create real-time applications. :::tip By using the official Misskey API or third-party libraries, this document can conveniently explain the usage of the API.\\ ::: ================================================ FILE: content/en/docs/4.for-developers/api/endpoints.md ================================================ # Endpoints :::tip The list of endpoints is currently under construction.In the meantime, please refer to the [`/api-doc` page](x-mi-web://api-doc) on each Misskey server or access the [Misskey source code](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints) for some insights. The [legacy version of Misskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html) is also available, although some information is outdated. ::: ================================================ FILE: content/en/docs/4.for-developers/api/libraries.md ================================================ --- description: 'List of Misskey API libraries' --- # List of Libraries ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/en/docs/4.for-developers/api/permission.md ================================================ --- description: 'Permissions required by the application' --- # List of permissions :::tip This page is automatically generated from [misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js), so the documentation and translations may be incomplete. ::: ================================================ FILE: content/en/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/en/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # List of channels ================================================ FILE: content/en/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/en/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/en/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/en/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/en/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/en/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/en/docs/4.for-developers/api/token/1.index.md ================================================ # Obtain an access token To get started with the API, you first need to get an access token tied to the account you want to use. This document describes the steps to get an access token and then the basic API usage. Generally, API requests require an access token. An access token is authentication information linked to a user, which identifies the user utilizing the API and manages the permissions associated with each access token. :::tip A user and their associated access tokens have a one-to-many relationship, meaning multiple access tokens can be issued for a single user. ::: You can easily obtain your own access token, and you can also obtain access tokens for users who will be using your application. - For the former: proceed to **"Manually Issuing Your Own Access Token"** section - For the latter: proceed to **"Requesting Access Tokens for Application Users"** section ## Manually Issuing Your Own Access Token You can issue your access token in Misskey Web under "Settings > API". :::danger Make sure to keep your access token confidential and do not share it with others. ::: ## Requesting Access Tokens for Application Users To obtain access tokens for users who will be using your application (hereinafter simply referred to as "users"), use one of the following methods: :MkIndex ## Using the API Once you have obtained an access token, you can use the API by making requests to various endpoints. :::tip - All HTTP API requests are POST, and both requests and responses are in JSON format (except for drive/files/create). - Specify `Content-Type: application/json` in the request header. - Include the access token in the request body JSON with the parameter name `i`. - The base URL is `https://{server domain}/api`. ::: ### Using the Authorization Header Instead of using `i`, you can specify the `Authorization` field in the header as follows: ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### Using the `i` Parameter Example of a request body with an access token (for `meta`): ```json { "i": "HogEFugA1341", "detail": false } ``` For more details of each endpoints, refer to the API reference. :::warning Misskey API does not follow REST practices. ::: In addition to the HTTP API, Misskey also offers a streaming API.For details on the streaming API, refer to [this document](../streaming/). ================================================ FILE: content/en/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: This document explains a simple authentication method unique to Misskey, available from v12.27.0 onwards. --- # Obtaining an Access Token via MiAuth To get an access token for users (hereinafter simply referred to as "users") who will use your application, follow these steps: :::tip The method described below is called MiAuth, which allows instant access token issuance without creating an app. - [There is also a more widely used OAuth method for obtaining access tokens.](./oauth.md) - [You can also get access tokens through the app creation method (legacy method).](./app.md) ::: ## Step 1 Generate a UUID.This will be used as the **Session ID**. :::danger Generate a new session ID each time and do not reuse them. ::: ## Step 2 Display the application authentication form in the user's browser.You can open the authentication form using a URL in the following format: ``` https://{host}/miauth/{session} ``` Here, - Replace `{host}` with the user's server host.Usually, the host is input by the user. - Replace `{session}` with the session ID. You can also set several options as query parameters in the URL: | Name | Description | | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | The name of the application. | | `icon` | The URL of the application's icon image. | | `callback` | The URL to redirect to after authentication.
The session ID will be added as a `session` query parameter on redirect. | | `permission` | The permissions required by the application.
List the required permissions separated by commas.Check the list of permissions [here](../permission.md). | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 After the user grants access to the application, make a POST request to a URL in the following format to receive a JSON response containing the access token. ``` https://{host}/api/miauth/{session}/check ``` Here, - Replace `{host}` with the user's server host. - Replace `{session}` with the session ID. The properties included in the response are as follows: | Name | Description | | ------- | ------------------------------------------- | | `token` | The user's access token. | | `user` | Information about the user. | ================================================ FILE: content/en/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: This document explains how to authenticate using the OAuth2.0 method, available from v2023.9.0 onwards. --- # Obtaining an Access Token via OAuth To get an access token for users (hereinafter simply referred to as "users") who will use your application, follow these steps: :::tip The method described below is called [OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html).Unlike regular OAuth that requires app creation, this method can be used without creating an app through an extension called [IndieAuth](https://indieauth.spec.indieweb.org/). There are many libraries available for OAuth, so it is recommended to use one if possible. Currently, a web page is required to use this method.If you cannot provide a web page or need to support versions of Misskey before 2023.9.0, please use one of the following methods: - [MiAuth](./miauth.md) - [Legacy method for obtaining access tokens through app creation](./app.md) ::: ## Step 1 Create a webpage to introduce your app.Ensure the page is accessible via an HTTPS address.Include the following HTML code somewhere on the page: ```html ``` The authorization code will later be sent to the `redirect_uri` address. ## Step 2 Generate the PKCE `code_verifier` and `code_challenge` strings, as well as a `state` string. - The `code_verifier` must be between 43 and 128 characters, containing only letters, digits, and the characters `-._~`. - The `code_challenge` is the `code_verifier` hashed with SHA256 and base64url encoded. - The `state` string has no special restrictions.Use a random string. :::danger Generate new strings each time and do not reuse them. ::: :::tip It is recommended to use libraries like [pkce-challenge](https://www.npmjs.com/package/pkce-challenge) or OAuth libraries with PKCE functionality. ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 Retrieve the OAuth information from the target server.The data is in JSON format. ``` https://{host}/.well-known/oauth-authorization-server ``` Replace `{host}` with the user's server host.Usually, the host is input by the user. You will use the `authorization_endpoint` and `token_endpoint` in the next step. :::tip You can also confirm the `scope` information with `scopes_supported`. ::: ## Step 4 Display the application authentication form in the user's browser.You can open the authentication form using a URL in the following format: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` Here, - Replace `{authorization_endpoint}` with the address obtained in the previous step. - Replace `{client_id}` with the address of your app's introduction page. - Replace `{code_challenge}` with the previously generated `code_challenge` string. - Set `code_challenge_method` to `S256` (fixed). - Replace `{redirect_uri}` with the address used in your introduction page. - Replace `{scope}` with the permissions required by your application, separated by spaces.Use space ` `, not commas.Check the list of permissions [here](../permission.md). - Replace `{state}` with the previously generated `state` string. :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 Once the user grants access to the application, the user will be redirected to the page you specified as `redirect_uri`. | Name | Description | | ------- | --------------------------------------------------------------------- | | `code` | The user's authorization code. | | `state` | The `state` string used in the authorization request. | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: Verify that the state string matches and proceed to the next step. ## Step 6 Use the authorization code you get to request an access token via POST.The request is made to the `token_endpoint`.The data format can be either `application/json` or `application/x-www-form-urlencoded`.The parameters are as follows: | Name | Description | | --------------- | ---------------------------------------------------------------------------- | | `grant_type` | Always set to `authorization_code`. | | `client_id` | The `client_id` string used in the authorization request. | | `redirect_uri` | The `redirect_uri` string used in the authorization request. | | `scope` | The `scope` string used in the authorization request. | | `code` | The obtained authorization code. | | `code_verifier` | The previously generated `code_verifier` string. | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: The response will be a JSON object from which you can obtain and use the `access_token`. ================================================ FILE: content/en/docs/4.for-developers/api/token/50.app.md ================================================ --- description: This document explains how to obtain an access token in versions of Misskey prior to the introduction of MiAuth (before v12.27.0) --- # Obtaining an Access Token by Creating an App (Legacy) This document explains how to obtain an access token in versions of Misskey prior to the introduction of [MiAuth](./miauth.md) (before v12.27.0) and [OAuth](./oauth.md) (before v2023.9.0). This legacy method is required for versions prior to v12.27.0. ## 1. Creating an Application Send a request to the [`app/create` endpoint ](endpoints/app/create.html) to obtain an `appSecret`. ```json { // App name "name": "test", // App Description "description": "my test application", // App Permissions "permission": ["write:notes"] } ``` Specifying a `callbackUrl` in the body of this object will cause the completed authorization request to redirect to that URL, passing a `token` in the query string. ## 2. Authorizing Clients POST the `appSecret` to the [`auth/session/generate` endpoint](endpoints/auth/session/generate). ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` A `token` (for the sake of example we'll choose `798b9f6e-248d-43a7-a919-fabc664027f1`) and a URL will be returned. To authorize the client, navigate to the URL in a web browser and allow access. ## 3. Obtaining an accessToken Once you have completed Step 2, POST the `appSecret` and the `token` to the [`auth/session/userkey` endpoint](endpoints/auth/session/userkey). ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` You will obtain a string `accessToken`.You can only obtain an `accessToken` once. ## 4. Generating i If you are using Node.js, `i` can be generated using the following code. Unlike the one obtained from the Control Panel, it is a 64-digit hexadecimal number. ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. Trying it out ```javascript fetch("https://misskey.io/api/notes/create", { method: 'POST', body: JSON.stringify({ i: "/* Insert i here */", text: "Hello Misskey API World with My Application!" }), headers: { 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ================================================ FILE: content/en/docs/4.for-developers/bot/1.index.md ================================================ # Create a bot [Misskey API](/docs/for-developers/api/) can be used to develop a Bot. - [syuilo/ai](https://github.com/syuilo/ai) ... Made using Node.js, and the bot implementation is written in TypeScript When you create a bot, it is highly recommended that you turn on the Bot flag from the profile configuration. ## Related Resources - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/en/docs/4.for-developers/plugin/_dir.yml ================================================ title: "Creating a Plugin/Play" description: "Instructions on how to create Plugins and Plays can be found here." ================================================ FILE: content/en/docs/4.for-developers/plugin/create-play.md ================================================ # Create Play Play is a function that allows users to create their own mini-applications and games by building their own UI in AiScript. The Play you create can be published on the server, and anyone can play with the Play you have created. ## AiScript Play can be created using AiScript. ## API Misskey Web exposes APIs for Plugins, which can be used to extend client functionality. Please refer to [AiScript Misskey Extension API Reference](./plugin-api-reference/) to see what APIs are available. ================================================ FILE: content/en/docs/4.for-developers/plugin/create-plugin.md ================================================ # Creating Plugins The plugin feature of the Misskey Web Client allows you to extend the client and add various features to it. ## Example This is a complete example of plugin.This plugin adds a "Fugu Punch Button" to the post form by utilizing [`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn). By installing this plugin, you will find additional item named "Fugu Punch" in plugin section of the post form.And if you click the button, `フグパンチ!!!!🐡( '-' 🐡 )` will be appended in the body text. ```ais /// @ 0.12.4 ### { name: "Fugu Punch Button" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('Fugu Punch', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // Replace with Fugu Punch when no body text is present rewrite('text', fugu) } else { // If body has some content, append Fugu Punch and line break rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript Plugins are scripts written using AiScript. ## Metadata Plugins must use AiScript's metadata feature to define the plugin's metadata as the default.Example of some metadata are:Example of some metadata are: ```AiScript /// @ 0.12.4 ### { name: "Plugin Name" version: "4.2.1" author: "Plugin Author" description: "Plugin Description" } ``` Metadata is an object that contains the following properties: ### name Plugin name ### author Plugin author ### version Plugin version.A number must be specified.A number must be specified. ### description Plugin description ### permissions Permissions required by the plugin.Permissions required by the plugin.Used when making requests to the Misskey API. Please refer to [AiScript Misskey Extension API Reference](/docs/for-developers/plugin/plugin-api-reference/) for how to make a request to the API. :::tip Refer to [this document](/docs/for-developers/api/permission/) for a list of permissions. ::: ### config An object representing the plugin's settings. Keys are setting names and values are any of the below properties. Please refer to the [Plugin API Reference](./plugin-api-reference/) for information on what APIs are available. #### type A string representing the setting's value type.Can be either a string, number, or boolean.Can be either a string, number, or boolean. #### label Setting name displayed to users #### description Description of the setting #### default Default value of the setting ## API Misskey Web exposes APIs for Plugins, which can be used to extend client functionality. ## Distributing Plugins Starting with v2023.11.0, you can install plugins directly from your website with one click. If you want to provide plugin installation functionality, you will need to implement an API on your site.For more information, please see [here](../publish-on-your-website.md). ================================================ FILE: content/en/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey Extended API Reference This section introduces the AiScript API extended for Misskey. :::tip Documentation for the standard AiScript API can be found [here](https://aiscript-dev.github.io/guides/get-started.html). ::: ## Common constants for all use cases ### `USER_ID` ID of the current user ### `USER_NAME` Display name of the current user ### `USER_USERNAME` Current user's handle (the part after `@`. e.g. `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` The array of custom emojis.An array of objects of the following types: ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` The current Misskey Web display language.RFC4646 compatible format (e.g. `ja-JP`) ### `SERVER_URL` The URL of the current server.It is represented by an origin, such as `https://www.example.com`. ## Common functions for all use cases ### `Mk:dialog(title, text, type)` Display a dialog box.The following values ​​can be set for type.\ `info` `success` `warning` `error` `question`\ If omitted, it will be `info`. ### `Mk:toast(text)` Display a toast.Unlike dialogs, it does not require the user to close the dialog, so it can be used for simple notifications such as when some operation has been completed. ### `Mk:confirm(title, text, type)` Display a confirmation dialog.The following values ​​can be set for type.\ `info` `success` `warning` `error` `question`\ If omitted, it will be `question`.\ Returns `true` if the user selects "OK" or `false` if the user selects "cancel". ```AiScript let response = Mk:confirm( 'Are you sure to continue?' 'Please be sure to check again as it is not possible to roll back.' 'warning' ) if (response) { // When user clicks "OK" } else { // When user clicks "Cancel" } ``` ### `Mk:api(endpoint, params, token?)` Make a request to the Misskey API.Make a request to the Misskey API.Passes the endpoint name as the first argument and the parameter object as the second argument. You can also include API token as the third argument.When called within a plugin, if `permissions` are specified in the metadata block, the token with the specified permission(s) will be used if the third argument is not specified. :::tip Refer to [this document](/docs/for-developers/api/permission/) for a list of permissions. ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` Persistently saves an arbitrary key with any given value.Persistently saves an arbitrary key with any given value.The saved value will remain after the AiScript context ends and can be loaded with Mk:load. ### `Mk:load(key)` Reads the value of the specified name saved by Mk:save. ### `Mk:remove(key)` NOTE: This feature will be available in Misskey v2025.1.0 (tentative name) or later. Deletes the value of the specified name saved by Mk:save.If the value of the specified name does not exist, then does nothing. ### `Mk:url()` Get the URL of the page that is currently open (the URL currently displayed in the browser address bar). ### `Mk:nyaize(text)` Nyaizes the specified text.The MFM syntax, etc. are not taken into account. ## Functions/Constants only available for plugins ### `Plugin:register_post_form_action(title, fn)` Adds an action in the post form.Passes the name of the action as the first argument and the callback function when the action is selected as the second argument.The callback function is passed the `text` and `cw` of the submitted form object as its first argument, and the function to rewrite them as its second argument. ```AiScript Plugin:register_post_form_action('Item name displayed on the menu', @(note, rewrite) { // Make some change to the note... rewrite('text', `{note.text}{Str:lf}#examplehashtag`) }) ``` ### `Plugin:register_note_action(title, fn)` Adds an action in the note menu.Passes the name of the item as the first argument and the callback function when the action is selected as the second argument.\ The target note object is passed to the callback function as the first argument. ```AiScript Plugin:register_note_action('Item name displayed on the menu', @(note) { // Do something with the note... Mk:api('notes/create', { text: 'This is quote' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` Adds an action in the user menu.Passes the name of the action as the first argument and the callback function when the action is selected as the second argument.\ The target user object is passed to the callback function as the first argument. ```AiScript Plugin:register_note_action('Item name displayed on the menu', @(user) { // Do something with the user info... Mk:api('notes/create', { text: `{user.name}, welcome to our server!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` Rewrites the note information displayed on the UI.\ The target note object is passed to the callback function as the first argument.\ The note will be rewritten with the return value of the callback function.\ Return `null` to make it hidden. :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // Make some change to the note... note.text = note.text.replace('apple', 'banana') // Return null to make it hidden if (note.text.incl('natto')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` Rewrite note information when posting notes.\ The target note object is passed to the callback function as the first argument.\ The note will be rewritten with the return value of the callback function. ```AiScript Plugin:register_note_post_interruptor(@(note) { // Make some change to the note... note.text = note.text.replace('apple', 'banana') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Rewrites the Page information displayed on the UI.\ The target page object is passed to the callback function as the first argument.\ The page will be rewritten with the return value of the callback function. ```AiScript Plugin:register_note_post_interruptor(@(page) { // Make some change to the page... return page }) ``` ### `Plugin:open_url(url)` Opens the URL given as the first parameter in a new browser tab. ### `Plugin:config` An object containing the plugin settings.The values set in the plugin definition's config are saved in the object keys.The values set in the plugin definition's config are saved in the object keys. ## Constants only available for Play ### `THIS_ID` ID of the Play ### `THIS_URL` The URL of the Play ## UI API functions (available for Play and AiScript App widgets) ### `Ui:root` The root component of the UI. ### `Ui:render([ ...components ])` Syntax sugar for `Ui:root.update({ children: [ ...components ] })`.Rewrites the root of the UI. ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` Retrieve and manipulate the component associated with the ID. ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## Component functions (available for Play and AiScript App widgets) In all of the following functions, the component ID can be specified as the second argument during initialization, as in `Ui:C:xxx(props id)` (this statement is omitted in the following reference).The specified ID can be obtained with the `Ui:get(id)` function, and the content of the component can be directly modified with the `update` function (see the `Ui:get(id)` reference for details). ### Layout #### `Ui:C:container` Outer frame (container) with formatting for text alignment, color, etc. ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` Accordion components (containers that users can open and close) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### Text #### `Ui:C:text` Plain text ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFM-enabled text ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### Forms #### `Ui:C:button` Button ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` Horizontally stacked buttons ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` Single line text input ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` Single line number input ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` Multiline text input ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` Select one of several values ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### Post forms #### `Ui:C:postForm` Embed the post form directly into Play ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` Special button to launch the post form modal ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/en/docs/4.for-developers/publish-on-your-website.md ================================================ # Distributing Plugins and Themes Starting with Misskey v2023.11.0, you can now install various additional resources directly from your website.This feature is especially useful for those who produce a lot of plugins and themes, and for those who want to create a plugin distribution website.This feature is especially useful for those who produce a lot of plugins and themes, and for those who want to create a plugin distribution website. ## Resources that support external installation - [Plugins](./plugin/create-plugin/) ... `plugin` - [Themes](../for-users/features/theme/) ... `theme` ## How it works To ensure that resources received by Misskey Web are not tampered with unexpectedly, hash values are calculated on both the distribution site and Misskey at the time of installation, and then verified within your Misskey server. If the hash value cannot be matched, the resource cannot be installed. ## How to Implement ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/en/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # Release Notes Release Notes for Misskey. ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: Updated dependencies - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 Release date: 2025/03/09 ### General - Update pnpm to v10 - Delete Corepack ### Client - Feat: Add ability to search within settings (experimental) - Enhance: Reorganize settings ### Server - Fix: Resolve issue where the system account's user ID was incorrectly determined after executing a database migration - Fix: the user.featured column was sometimes a JSON string ## 2025.3.0 Release date: 2025/03/06 ### General - Enhance: Proxy accounts are now created as system accounts - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 Release date: 11/22/2024 ### Note - Node.js 20.x has been deprecated.Node.js 22.x (LTS) is now the recommended version. - Node.js 23.x is not supported yet. - The Dockerfile's Node.js version has been updated to 22.11.0. ### General - Feat: Add ability to require logging in to view content. - Feat: Past notes can now be made private or viewable by followers only - Enhance: 依存関係の更新 - Enhance: Updated localizations - Fix: Image URL could not be left blank when creating a new Announcement (#14976) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 Release date: 05/31/2024 ### Note - The summary proxy setting in the control panel is changed from Security to General. - Fixed an issue that could allow a malicious third party to receive activity that impersonates a remote user.For more information, see [GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj). - Administrator permissions `read:admin:show-users` have been merged into `read:admin:show-user`.Reissue the API token if necessary. ### General - Feat: Sentry can now be used for error tracking - Enhance: enable/disable URL preview #13569 - Enhance: Antenna can now exclude notes by bot (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: to display the number of notes in a clip - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - If a Cat User - If a Bot Users - If a Suspended users - If a Private account user - If a "Make it easy to find your account" is enabled for user - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/en/docs/6.donate.md ================================================ # Donating to the project :::tip If you are interested in supporting (sponsoring) the project as a company, please [click here](/docs/become-a-sponsor/). ::: Misskey is not a business, and stays free to use by receiving its earnings through donations from everyone.(Some servers may be like advertising revenue, but that is the income of the administrator and not directly goes to the developer.) Your donation will help us to continue development, and it is your contribution to the project. Your donation will enable us to continue development of Misskey and will be a contribution that will keep the Misskey Project for years to come.You can help us in the following ways:(Please read this page carefully before making a donation) - Continuous Donation - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - One-time Donation - Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Bitcoin: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazon.co.jp Wishlist](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip If you plan to make a large donation (30,000 yen or more), please consider using Kyash or reach out to syuilo and we will provide you with a bank account. ::: :::tip The following returns are available depending on the amount of your donation: - 1,000 JPY or more: Exclusive "mi" badge in your misskey.io account - 3,000 JPY or more: All of the above, plus your name in Misskey credits - 10,000 JPY or more: All of the above, plus your credit with your icon - 20,000 JPY or more: All of the above, plus [exclusive physical Misskey ID Card](/docs/mi-card/) ::: :::warning No refunds will be made under any circumstances (including failure to receive a thank-you gift for any reason).Please be aware of this before making a donation. ::: :::warning **The badge will not be applied automatically and you will not automatically appear in Misskey credit, so if you would like to receive the privilege, please send a request to `@syuilo@misskey.io` with proof of your donation.** (If you don't receive a response after some time, please tag us again as we may be overwhelmed with many inquiries.Also, please note that we may not reach you from server other than misskey.io.If you are unable to reach us, please contact us using the Misskey Project Contact Form.) ::: 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. ================================================ FILE: content/en/docs/7.become-a-sponsor.md ================================================ # Become a Sponsor :::tip To contribute to the project as an individual, please [click here.](/docs/donate/) ::: The Misskey Project is also seeking corporate sponsors! As a sponsor, you will have your company logo featured on Misskey and the Misskey Hub, as well as exclusive technical support directly from Misskey's developers. [Contact us for more information.](/contact/) ================================================ FILE: content/en/docs/8.mi-card.md ================================================ # Misskey ID Card As a return for your generous and valuable support of the Misskey Project, you will receive a physical Misskey ID Card! **Misskey ID Card is highly durable metal card (plate) with a serial number and owner tied to it.** Precision machining on heavy metal has been used to create a card with a high status. Both the front and back surfaces are carefully designed by syuilo.Please get yours now and enjoy! [Click here](https://www.youtube.com/shorts/AdzzwxEa-WE) to see the actual product. ## プレート仕様 - Dimensions: 54.0mm x 85.6mm (2.13in x 3.37in) - Weight: approx. 34g (1.19oz) - Material: 1.0mm (0.03 in) thick mirror-finished stainless steel - Finish: mirror finish (front surface), etching (other surfaces), silk printing (logo), laser engraving (serial number) - Design by syuilo, with serial number, barcode, QR code, and Ai-Chan autograph engraving オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(Free) ### View in 3D ::X__Docs__mi-card__InteractiveView :: Note: The design on the reverse side is omitted.This 3D model is not an exact replica of the actual product. ## Who can get it **Those who have supported a cumulative total of 20,000 yen or more are eligible to obtain one card.** :::g-details{summary='2枚以上ご希望の場合'} If you want more than one, you can get one additional card for every 30,000 yen. The number of additional cards you can receive is calculated by dividing the amount of support minus 20,000 yen by 30,000 yen. For example, if the total amount of support is 50,000 yen or more, you will receive 2 additional cards; if the total amount of support is 80,000 yen or more, you will receive 3 additional cards, and so on. You can calculate how many card you can get: ::X__Docs__mi-card__Calculator :: Please note that we may not be able to provide the requested number of cards depending on availability. ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: Support in US dollars will be converted from 1USD = 150JPY regardless of the actual exchange rate.Please contact us for handling in the case of other currencies. プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 Please note that due to shipping reasons, **this card can only be obtained by residents of Japan.** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** Support for services running on Misskey is not covered by this offer. [Click here to support the Misskey Project](/docs/donate/) ::: :::tip Any method of support and any period of time is acceptable for calculating the cumulative support amount. For example, if you donate 5,000 yen via PayPal in 2023, 12,000 yen via Fanbox in 2024, and a gift of 3,000 yen worth via Amazon's Wish List in 2024, your total support would be 5,000 + 12,000 + 3,000 = 20,000 yen. ::: ## How to claim Please fill out the form below.(You need a Google Account to fill in.) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## Shipping Delivery will be made by Japan Post. **Shipping is free of charge.** - We will email you with a tracking number when we ship. - Delivery might be made on Saturdays and Sundays. - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。If there is any damage upon arrival, please contact Japan Post. :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 You cannot specify the shipping method. ::: ## Note - Specifications are subject to change without notice. - Serial numbers cannot be selected. - Please note that there is a possibility of minor scratches on the card during production and delivery. - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - This campaign may be temporarily suspended or terminated without notice. - The requirements may be changed without notice. - Please keep it safe, as it cannot be reissued in case of loss, damage, or theft. - We appreciate your refraining from reselling or giving to others. ================================================ FILE: content/en/docs/9.misskey-and-misskey-servers.md ================================================ # Misskey vs Misskey Servers Misskey is not the same as a Misskey _server_ (Misskey instance). However, because the Misskey software and Misskey servers are **both colloquially referred to as Misskey**, they are often confused for one another. 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) Please make sure that you are not confusing the two. ## Misskey (the Software) Misskey is **free and open source software for hosting social networking services (SNS)** developed by the Misskey Project. Open source means that the software's source code (blueprint) is available to the public. Free means that there is no charge for using the source code (free as in beer), and that the source code can be used however you wish (free as in libre). Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。 ::: Because anybody can freely use the Misskey source code, many people have started SNS services (Misskey servers) on the web using Misskey. Additionally, anyone can participate in developing Misskey. ## Misskey Servers A Misskey server refers to an **SNS service built using the Misskey software.** For example, websites like Misskey.io, Misskey.design, and Nijimiss.moe are all Misskey servers (or Misskey-based servers). Note that Misskey servers are built on top of other software, not just Misskey itself, including database software like PostgreSQL and Redis, and web server software like Nginx. Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 Servers can be operated by individuals or by an organization. :::tip Operators, policies, and terms of service can vary depending on server. The Misskey Project (the developer of the Misskey software) does not operate any Misskey servers, and does not have the authority to manage or administer individual Misskey servers, nor intervene in their operation. Features such as custom emojis, roles, advertisements, and word filters are not hard coded into Misskey. Rather, the administrators of individual servers configure these features themselves. ::: n.b. As mentioned before, both Misskey and individual servers are commonly referred to as Misskey. When someone mentions Misskey, they may actually be referring to an individual server.ご注意ください。 The Misskey logo, icon, or the text "Powered by Misskey" may appear on a server to indicate it was created using Misskey. ### Misskey-based Servers Servers created using software derived from Misskey, rather than Misskey itself, are referred to as Misskey-based servers. Misskey-based servers might simply be called "Misskey servers". When a server calls itself a "Misskey server", it is possible that the server is actually running a fork of Misskey, meaning it is not using the original Misskey software. ## The Misskey Project The Misskey Project is the community of volunteers developing the Misskey software. ## Diagram ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## Analogies ### Websites Misskey is similar to Wordpress, software for creating websites. A Misskey server is analogous to a website created using Wordpress. ### Apartments Misskey is analogous to the blueprint of an apartment building, whereas a Misskey server is the constructed building. The Misskey Project is the architectural firm that creates the blueprint for the apartment, while Misskey users are tenants of the apartment building. Just as different apartment buildings can have different landlords (and building managers), each Misskey server can have different administrators (and moderators). The Misskey Project is only responsible for the building blueprints; it does not build apartments using the blueprints, it is not a landlord or building management company, nor can it help manage any apartment buildings. #### Updates The blueprints for the apartment building are continuously revised and improved, and new features (like a fire escape) are incorporated. However, just because the blueprints have been revised, doesn't mean that the apartment building has changed. To keep the apartment building up to date with the latest blueprints, the landlord needs to conduct regular renovations. The frequency of renovations in an apartment building depends on the landlord, so the currency of an apartment building will vary from building to building. #### Support Only the landlord can handle issues like neighbor disputes and problems with the building facilities. The Misskey Project is merely an architecture firm and cannot assist with issues regarding the apartment building. ================================================ FILE: content/es/contact-faq/0.cannot-create-account.md ================================================ --- question: No puedo crear una cuenta --- **Si has cometido un error en tus datos de contacto, por favor, comprueba los datos de contacto correctos.** Este es el sitio web oficial del software de código abierto Misskey, desarrollado por la organización Misskey Project. Si no puedes registrarte en un servidor incluso después de realizar el procedimiento anterior o si tienes alguna pregunta sobre cuestiones que no se hayan incluido en el procedimiento anterior (p ej. personalizado para cada servidor , por favor contacta al administrador de tu servidor. (Ten en cuenta que algunas personas se refieren al servicio web que utiliza Misskey (el servidor Misskey) simplemente como 'Misskey'.) El Proyecto Misskey sólo proporciona el código fuente básico del software de forma gratuita y no proporciona ni opera ningún servidor o servicio que utilice Misskey o software derivado de Misskey. Tampoco están en condiciones de ejercer jurisdicción sobre esos servicios ni de intervenir en ellos. Por este motivo, no podemos responder a consultas sobre servicios específicos, aunque se ponga en contacto con nosotros a través del formulario del **Sitio.** ================================================ FILE: content/es/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: No puedo iniciar sesión en mi cuenta --- **Si has cometido un error en tus datos de contacto, por favor, comprueba los datos de contacto correctos.** Este es el sitio web oficial del software de código abierto Misskey, desarrollado por la organización Misskey Project. "Misskey" es un software gratuito para crear redes sociales y no es un servicio web. (Ten en cuenta que algunas personas se refieren al servicio web que utiliza Misskey (el servidor Misskey) simplemente como 'Misskey'.) El Proyecto Misskey sólo proporciona el código fuente básico del software de forma gratuita y no proporciona ni opera ningún servidor o servicio que utilice Misskey o software derivado de Misskey. Si no puede iniciar sesión en su cuenta, es posible que haya algún problema con el servidor o con su cuenta. En ese caso, comuníquese con el administrador del servidor que está utilizando. Por este motivo, no podemos responder a consultas sobre servicios específicos, aunque se ponga en contacto con nosotros a través del formulario del **Sitio.** ================================================ FILE: content/es/contact-faq/2.delete-account.md ================================================ --- question: Quiero eliminar mi cuenta --- **Si has cometido un error en tus datos de contacto, por favor, comprueba los datos de contacto correctos.** Este es el sitio web oficial del software de código abierto Misskey, desarrollado por la organización Misskey Project. Si la guía anterior no le indica cómo eliminar su cuenta, o si no puede eliminar su cuenta a pesar de seguir las instrucciones, póngase en contacto con su administrador o administradora de su servidor. (Ten en cuenta que algunas personas se refieren al servicio web que utiliza Misskey (el servidor Misskey) simplemente como 'Misskey'.) El Proyecto Misskey sólo proporciona el código fuente básico del software de forma gratuita y no proporciona ni opera ningún servidor o servicio que utilice Misskey o software derivado de Misskey. Tampoco están en condiciones de ejercer jurisdicción sobre esos servicios ni de intervenir en ellos. Por este motivo, no podemos responder a consultas sobre servicios específicos, aunque se ponga en contacto con nosotros a través del formulario del **Sitio.** ================================================ FILE: content/es/contact-faq/3.server-wide-content-mod.md ================================================ --- question: ¿Podría eliminar el contenido en el servidor local/remoto? --- El Proyecto Misskey es una organización que desarrolla Misskey, pero no proporciona ningún servicio relacionado con el servidor Misskey. Por lo tanto, \*\*si se pone en contacto con nosotros a través del siguiente formulario, no podremos atender su solicitud. Este es el sitio web oficial del software de código abierto Misskey, desarrollado por la organización Misskey Project. Misskey' es un software, no un servicio web. (Ten en cuenta que algunas personas se refieren al servicio web que utiliza Misskey (el servidor Misskey) simplemente como 'Misskey'.) El Proyecto Misskey sólo proporciona el código fuente básico del software de forma gratuita y no proporciona ni opera ningún servidor o servicio que utilice Misskey o software derivado de Misskey. Tampoco están en condiciones de ejercer jurisdicción sobre esos servicios ni de intervenir en ellos. Por este motivo, no podemos responder a consultas sobre servicios específicos, aunque se ponga en contacto con nosotros a través del formulario del **Sitio.** La moderación de contenidos en servidores individuales se lleva a cabo de acuerdo con las normas de cada servidor. Si desea que se elimine algún contenido, póngase en contacto con el administrador del servidor donde se originó el contenido, o puede bloquear al usuario o al servidor como medida de autodefensa. ================================================ FILE: content/es/contact-faq/4.copyright-infringement.md ================================================ --- question: He encontrado infracciones de Derechos de Autor (Copyright) --- **Si has cometido un error en tus datos de contacto, por favor, comprueba los datos de contacto correctos.** Tampoco está en condiciones de ejercer jurisdicción sobre los servicios de servidor de Misskey. Por lo tanto, en caso de infracción de los derechos de autor en un servidor de Misskey, póngase en contacto con el administrador de dicho servidor. (Ten en cuenta que algunas personas se refieren al servicio web que utiliza Misskey (el servidor Misskey) simplemente como 'Misskey'.) El Proyecto Misskey sólo proporciona el código fuente básico del software de forma gratuita y no proporciona ni opera ningún servidor o servicio que utilice Misskey o software derivado de Misskey. Tampoco están en condiciones de ejercer jurisdicción sobre esos servicios ni de intervenir en ellos. Por este motivo, no podemos responder a consultas sobre servicios específicos, aunque se ponga en contacto con nosotros a través del formulario del **Sitio.** ================================================ FILE: content/es/contact-faq/5.client-not-working.md ================================================ --- question: Misskey no está funcionando correctamente --- En primer lugar, consulta "[Solución de problemas](/docs/for-users/resources/troubleshooting/)" para obtener información sobre cómo resolver problemas comunes del navegador. Los elementos a comprobar incluyen: - ¿Has **eliminado cualquier Css personalizado o plugins** y has probado de nuevo? - ¿Has **probado cerrar sesión, iniciar sesión de nuevo** y volver a intentarlo? - ¿Estás usando **un SO desactualizado o navegador web?** - ¿Has intentado **esperar un rato y volver a intentarlo?** - ¿Has **comprobado que la URL es correcta?** - ¿Has intentado **borrar la caché del navegador y las cookies?** Si sigues sin poder resolver el problema, ponte en contacto primero con tu **administrador del servidor.** Si se te ha indicado que informes de un error al Proyecto Misskey, envía un informe de error en [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose), **no en el formulario que aparece a continuación**. No podremos responder inmediatamente si nos informas de un problema mediante el siguiente formulario de contacto.Asegúrate de enviar el reporte a [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose). ================================================ FILE: content/es/contact-faq/6.mention-spam.md ================================================ --- question: Recibí un mensaje de una cuenta que se hacía pasar por Misskey o el servicio de soporte del servidor. --- **Misskey Project no envía mensajes de ese tipo.Sospechamos que el mensaje puede ser spam, así que por favor contacta primero con el administrador de tu servidor.** Si recibes un mensaje repentino de una cuenta que se hace pasar por Misskey, Misskey Project o el servicio de asistencia de un servidor específico, con un mensaje del tipo "Tu cuenta ha sido suspendida y es necesario tomar medidas" y un enlace a un sitio web desconocido, o si se te insta a responder a dicha mención o a realizar alguna otra acción, es muy probable que se trate de un mensaje spam.\*\* Si te encuentras con un mensaje de este tipo, pónte en contacto primero con el administrador de tu servidor (también llamado instancia).**Ten cuidado al hacer clic en los enlaces de las notas o al responder a ellas, ya que podrías verte envuelto en problemas inesperados.** (El Proyecto Misskey solo proporciona el código fuente básico del software de forma gratuita y no ofrece ni gestiona servidores ni servicios que utilicen Misskey o software derivado de Misskey).Además, no tenemos jurisdicción ni participación en dichos servicios, por lo que le rogamos que dirijas tus consultas al **administrador de tu servidor**.El Proyecto Misskey no puede atender tu solicitud.) ================================================ FILE: content/es/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Documentación sobre Misskey.' --- # Acerca de Misskey Misskey es una plataforma de código abierto y distribuida para el microblogging. El desarrollo empezó en 2014 por syuilo en Japón. Se caracteriza por su rica funcionalidad, que incluye un drive y reacciones, así como una interfaz de usuario altamente personalizable. ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## Historia Si bien Misskey comenzó centrado en un sistema de tablón de anuncios como su principal característica, el crecimiento en popularidad debido a la adición de una línea de tiempo que permitía a los usuarios publicar mensajes cortos y verlos en orden cronológico llevó a un cambio gradual en el enfoque principal de desarrollo hacia este tipo de funcionalidad. Misskey no siempre fue un servicio descentralizado, pero se descentralizó mediante la adopción de ActivityPub en 2018. Desde entonces, se ha convertido en un servicio reconocido y utilizado por muchos. :::tip El nombre "Misskey" procede de una canción llamada "Brain Diver" de un grupo que escuchaba syuilo por aquel entonces llamado May'n. ::: Cualquiera puede participar en su desarrollo, por lo que Misskey sigue desarrollándose activamente. Museo de Historia de Misskey ## ¿Qué significa "Descentralizado"? Distribuido, también llamado descentralizado, es un servicio caracterizado por una comunidad distribuida en varios servidores, que se comunican entre sí en federación para formar una comunidad de contenidos. Un servicio caracterizado por la formación de un Fediverso, en el que se comunican entre sí. Si sólo hay un servidor, o si hay varios servidores pero son independientes entre sí, se dice que es un servicio centralizado, que es el caso de la mayoría de servicios como Twitter y Facebook, por ejemplo. La ventaja de un servicio descentralizado es que puedes elegir el operador y el servidor temático que más te convengan.También puedes crear tu propio servidor.Gracias a la federación, elijas el servidor que elijas, tienes acceso a la misma comunidad. ## Siempre Código Abierto Misskey ha sido y seguirá siendo de código abierto.Código abierto significa simplemente que el código fuente (programa) del software está a disposición del público.La definición también puede incluir que el código fuente puede ser modificado y redistribuido. Todo el código fuente de Misskey está [publicado](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) bajo la licencia de código abierto [AGPL](https://github.com/misskey-dev) y cualquiera es libre de verlo, usarlo, modificarlo, alterarlo y redistribuirlo. El código abierto tiene una serie de ventajas, como la posibilidad de modificarlo a voluntad, comprobar que no contiene procesos dañinos y permitir que cualquiera participe en su desarrollo. Ser de código abierto es también un elemento esencial para el enfoque descentralizado descrito anteriormente. Por citar otro ejemplo, la mayoría de los servicios rentables, como Twitter y Facebook, no son de código abierto. :::tip Técnicamente hablando, el código fuente de Misskey es gestionado vía Git, y el repositorio está alojado en Github. ::: ## Unirse al desarrollo y apoyar el proyecto Si te gusta Misskey, por favor apoya al proyecto.Hay muchas formas de contribuir al proyecto, como se describe a continuación.Algunas de ellas no requieren conocimientos de programación, por lo que cualquiera puede sentirse libre de apoyar a Misskey a su manera.Siempre estamos deseando recibir noticias suyas. ### Añadir funcionalidades o arreglar errores (bugs) Si posees conocimientos de ingeniería de software, puedes contribuir al proyecto editando el [código fuente](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). Consulte nuestras directrices de contribución. ### Únete al debate También puedes contribuir dando tu opinión sobre funciones nuevas o existentes, o informando de errores. Estos debates tendrán lugar en [Github](https://github.com/misskey-dev). ### Traducciones Misskey está disponible en muchos idiomas (también llamado i18n, que es una abreviatura de Internacionalización).Aunque el idioma original suele ser el japonés, hay voluntarios que traducen Misskey a otros idiomas. Misskey utiliza un servicio llamado Crowdin para gestionar sus traducciones.](https://crowdin.com/project/misskey) ### Compartir tus impresiones Además de reportar errores, por favor siéntete libre de compartir impresiones positivas como qué partes de Misskey te gustan personalmente, o cosas de Misskey que encuentres divertidas.Como este tipo de cosas sirven de motivación para los desarrolladores, también cuentan como apoyo indirecto al proyecto. ### Incrementar el número de Misskists "Misskists" se refiere a las personas que usan Misskey. Corriendo la voz sobre Misskey a través de presentarlo a sus conocidos, el número de "Misskists" puede aumentar, lo que sirve de motivación para los desarrolladores. ### Hacer Donaciones Por favor haz clic [aquí](/docs/donate/) ## Preguntas Frecuentes ### ¿Qué pretende conseguir este proyecto? A diferencia de otras plataformas, Misskey no se basa en una idea específica o visión (por ejemplo, la anti-centralización) y se desarrolla con eso en mente, por lo que es un poco «sin rumbo» en este sentido. ### ¿Misskey está siendo desarrollado por una empresa? No.Misskey es desarrollado por individuos y no comercializado a través de la conexión con cualquier compañía particular. Los miembros de desarrollo son generalmente voluntarios. Además, aunque hay algunos patrocinadores corporativos, el desarrollo sigue centrado en la comunidad. ### ¿Quién o quiénes gestionan Misskey? Debido a la naturaleza descentralizada de Misskey, cada servidor tiene su propia administración.Por lo tanto, no todo Misskey es operado por una persona o empresa en particular. Además, como Misskey no es operado por el equipo de desarrollo, cualquier contacto con respecto a su funcionamiento debe hacerse con el operador de su servidor. Puedes encontrar el operador de tu servidor en la página de información del servidor. Si creas tu propio servidor, eres es el operador. ### ¿Qué servidor o instancia debo elegir? Una lista de servidores está disponible aquí.](/servers/) Algunos servidores tienen un tema específico para la comunidad (por ejemplo, centrado en una serie de televisión, coches, libros, etc.), así que si hay un servidor con un tema que te convenga, puede ser una buena idea elegirlo. Otras consideraciones son el tamaño del servidor, la base de usuarios, el país y el idioma, y si el operador es de confianza. Ten en cuenta que no existe un servidor oficial de Misskey.También puedes elegir crear tu propio servidor. En general, independientemente del servidor al que te unas, podrás seguir conectándote con usuarios de todos los demás servidores. ### ¿Cómo puedo crear mi propio servidor? Gracias por tu interés en crear un servidor Misskey. La creación de un servidor Misskey puede hacerse utilizando un servicio dedicado o construyendo el entorno de forma semiautomática (por supuesto, también es posible crear el servidor manualmente).Para más información, consulte [aquí](/docs/for-admin/install/guides/). ### ¿Qué tipo de tecnología usa Misskey? La tecnología utilizada por Misskey ha cambiado significativamente a medida que avanzaba el desarrollo.Al principio se usaba MySQL + PHP + JQuery, pero actualmente se utiliza: - Lado del servidor: Node.js - Base de datos: PostgreSQL, Redis - UI Marco de Trabajo (Framework): Vue.js - Lenguaje de programación: TypeScript Además de lo anterior, también se usan tecnologías derivadas de Misskey tales como MFM o AiScript. ### ¿Es una bifurcación (fork) de Mastodon? No.Misskey es un proyecto completamente separado de Mastodon y otros proyectos. En términos de desarrollo, Misskey se ha desarrollado durante más tiempo.Sin embargo, no fue hasta después de la llegada de Mastodon cuando se descentralizaron. No existe ninguna conexión particular entre ambos, salvo que implementan el mismo protocolo ActivityPub para la descentralización. ### ¿Existe una aplicación para iOS/Android? Oficialmente, no se han desarrollado aplicaciones nativas para estos sistemas operativos, pero existen varias aplicaciones de terceros. Consulta [aquí](/docs/for-users/resources/apps/) para más información. Sin embargo, las aplicaciones de terceros irán inevitablemente por detrás del cliente Web oficial en cuanto a funcionalidad, por lo que, a menos que realmente quieras utilizar una aplicación nativa, te recomendamos en su lugar el cliente Web oficial. Como el cliente web de Misskey es compatible con PWA, puedes utilizarlo como si fuera una aplicación nativa. :::tip Consulte [aquí](/docs/for-users/stepped-guides/how-to-use-pwa/) las instrucciones sobre cómo configurar PWA ::: ### ¿Dónde puedo conseguir los logotipos e iconos de Misskey? [Aquí](/brand-assets/) ### ¿Quién es esa chica tan mona con orejas de gato que ves a veces? :::fukidashi{chara="doya_ai" charaName="藍"} ¡Si desea más información sobre mí, consulte [esta página web](https://xn--931a.moe/)! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Es la deidad guardiana de Misskey, Ai.Llamaron guapa a Ai, ¡viva! ::: ================================================ FILE: content/es/docs/2.for-users/1.index.md ================================================ # Guía de usuario Esta sección proporciona una visión general de las características generales que son útiles tanto para los nuevos usuarios de Misskey como para los ya existentes. ================================================ FILE: content/es/docs/2.for-users/2.onboarding/0.index.md ================================================ # Comenzando con Misskey Aquí encontrarás un tutorial para iniciarte en Misskey. Principalmente, - Aspectos a tener en cuenta sobre las plataformas descentralizadas - ¿Qué es un servidor?¿Cómo elijo un servidor? - Proceso de Registro - Conocimiento mínimo básico Siguiendo estas instrucciones, serás capaz de empezar a usar Misskey en un abrir y cerrar de ojos. ¡Empecemos!(Pulsa "Siguiente" para continuar.) ================================================ FILE: content/es/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Estas son algunas notas importantes antes de crear una cuenta en un servidor Misskey.' --- # Notas importantes Hay que tener en cuenta algunos puntos cuando se utilizan servicios que utilizan Misskey. - Debido a su naturaleza descentralizada, una vez subido, no se garantiza que los datos sean borrados de todos los otros servidores, incluso si se han eliminado.(Sin embargo, esto es también cierto para internet en general.) - Incluso si un post ha sido creado como privado, no hay garantía de que los otros servidores lo traten como privado también.Así que, ten cuidado cuando publiques información personal o confidencial.(Sin embargo, esto es también cierto para internet en general.) - La característica de "Drive" en Misskey no debería considerarse un almacenamiento en la nube típico.Esta característica es para manejar y reutilizar archivos subidos para tus posts. **Cualquier archivo subido puede ser accedido por cualquiera que sepa la URL, independientemente de si nunca se ha adjuntado a una nota**.Por favor utilice un servicio específico para el intercambio de datos que contengan información sensible. - La eliminación de la cuenta es un proceso intensivo y puede llevar bastante tiempo.En casos donde hay una gran cantidad de datos subidos puede no ser posible borrar la cuenta. - Algunos servidores pueden cubrir gastos de operación a través de ingresos por publicidad.Además, los bloqueadores de anuncios a menudo bloquean erróneamente contenidos o funciones que no tienen nada que ver con la publicidad, lo que puede interferir en el funcionamiento del cliente e impedirte utilizar Misskey correctamente.Por lo tanto, por favor usa Misskey con los bloqueadores de anuncios y similares desactivados. Por favor, comprende estos puntos y disfruta utilizando Misskey. ================================================ FILE: content/es/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Esta sección explica el registro de usuarios en un servidor Misskey y las funcionalidades básicas." --- # Encontrar un servidor Misskey Misskey es un software y un proyecto. El servidor que ejecuta Misskey y que está disponible públicamente en Internet se denomina **Servidor**. Para utilizar Misskey, creas una cuenta en uno de estos servidores y utilizas ese servidor. Puedes elegir cualquier servidor de la [lista de servidores](/servers/). :::tip No importa cuál servidor elijas, puedes interactuar con usuarios en otros servidores. :::g-details{summary='Detalles'} Misskey tiene funcionalidad federada. Esta funcionalidad federada permite a los usuarios de diferentes servidores seguir, reaccionar y renotar notas del mismo modo que los usuarios del mismo servidor, aunque se encuentren en servidores diferentes. La funcionalidad federada que incorpora Misskey se basa en un estándar común abierto llamado ActivityPub y es compatible con otros software como Mastodon y Pleroma. ::: ::: ## ¿Cómo elijo un servidor? ### Tema del Servidor Algunos servidores pueden tener un tema específico, por ejemplo, «Me gusta cierta cosa o cosas». :::tip Puedes encontrar una lista de servidores [aquí](/servers/). ::: ================================================ FILE: content/es/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # Registrarse en un servidor Una vez que hayas decidido en qué servidor registrarte, es hora de crear una cuenta. :::tip Aquí se utiliza Misskey.io como ejemplo, pero el método de registro es generalmente el mismo para otros servidores. Sin embargo, la información que introduzca puede variar en función del servidor.Póngase en contacto con el administrador de su servidor para obtener más información. ::: ## Regístrate En primer lugar, busca y haz clic en el botón "Registrarse en este servidor" de la página de inicio. ![Botón Registrarse en este servidor](/img/docs/for-users/onboarding/join-server/1.ja.png) A continuación, sigue las instrucciones que aparecen en pantalla para revisar los términos y condiciones y rellenar la información requerida. Los principales elementos que deben rellenarse son los siguientes. - Código de invitación (solo si la inscripción es solo por invitación.Si no dispones de uno, no podrás inscribirte.) - Nombre de Usuario (**No podrás cambiarlo más adelante. Una vez que elimines tu cuenta, no podrás volver a obtener el mismo nombre de usuario.**).Una vez que renuncies a tu registro, no podrás obtener el mismo nombre de usuario.\*\*) - Dirección de correo electrónico (Algunos servidores no lo requieren) - Contraseña ![Rellena los campos obligatorios](/img/docs/for-users/onboarding/join-server/2.ja.png) Una vez que hayas rellenado la información requerida, recibirás un correo electrónico de confirmación para los servidores que le pidan una dirección de correo electrónico, así que haz clic en el enlace del correo electrónico lo antes posible. ![Email de Confirmación](/img/docs/for-users/onboarding/join-server/3.ja.png) ¡Con esto, el registro en un servidor Misskey está completo! ¡Ahora eres un [Misskist](../resources/glossary/#misskist)!Disfruta de una experiencia de comunicación divertida y nueva. ================================================ FILE: content/es/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Fundamentos de Misskey ¡Bienvenidos, recién llegados! ¡Hemos reunido algunos conocimientos básicos de Misskey para ayudarte a empezar de inmediato! ## Notas Las publicaciones en Misskey son denominadas "Notas."Hay muchas características en comparación con Twitter y otras redes sociales populares, así que asegúrate de comprobarlas antes de hacer tu primera publicación. :::tip Para más información, mira "[Notas](/docs/for-users/features/note/)." ::: ## Líneas de tiempo Misskey tiene varias líneas del tiempo.Los nombres por sí solos pueden ser un poco confusos, así que es importante conocer como funciona cada una. :::tip Para más información, mira "[Línea del tiempo](/docs/for-users/features/timeline/)." ::: ## Otros ¡Misskey también tiene muchas otras características que hacen que sea divertido de usar!Las descripciones para todas las características están listadas [aquí](/docs/for-users/features/), ¡Así que echa un vistazo! ================================================ FILE: content/es/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Explicaremos muchas funciones que son la característica principal de Misskey." --- # Varias funciones Las principales características de Misskey son varias funciones que otros sistemas de microblogging no tienen.Aquí se los explicaremos. ================================================ FILE: content/es/docs/2.for-users/3.features/ads.md ================================================ # Anuncios Misskey tiene la capacidad de mostrar anuncios basados en el servidor en líneas de tiempo y otras áreas. Haciendo clic en el icono de la esquina superior derecha de un anuncio, puede reducir la frecuencia con la que se muestra el anuncio en cuestión. :::tip Si el número total de anuncios es bajo, los anuncios pueden reaparecer aunque se haya reducido su frecuencia. ::: ## Configurar los anuncios (Sólo para administradores) Puede añadir, editar y eliminar anuncios en el panel de control de su servidor. ================================================ FILE: content/es/docs/2.for-users/3.features/antenna.md ================================================ # Antenas Las antenas son una función de Misskey que recolecta notas que coinciden con un conjunto de condiciones. Cuando se crea una antena con las condiciones establecidas y se publica una nota que coincide con las condiciones, la nota se añade a la línea de tiempo de la antena en tiempo real. ================================================ FILE: content/es/docs/2.for-users/3.features/charts.md ================================================ # Gráficos Misskey tiene una característica que muestra y genera gráficos de varias fuentes de datos del servidor. El gráfico del servidor puede ser mostrado en la página de Información del Servidor. Abajo hay una descripción de cada gráfico y cada uno de sus elementos. El gráfico del servidor puede visualizarse en la página Información del servidor. A continuación se describe cada gráfico y cada uno de sus elementos. ## Gráficos de Federación Gráficos sobre servidores federados. ### Pub Número único de servidor que ha enviado actividades a servidores remotos. ### Sub Número único de servidores remotos que han enviado actividad al servidor. ### Recibido El número de usuarios recibiendo actividades. ### Entregado El número de servidores que proporcionan actividad. ### Estancado Número único de fallos cuando el servidor intentó entregar actividades a servidores remotos. ## Cantidad de usuarios activos Gráficos de uso de usuarios del propio servidor. ### Lectura & Escritura Número único de usuarios que han navegado y escrito. ### Lectura Número único de usuarios que han navegado y escrito. ### Escritura Número único de usuarios que han navegado y escrito. ### < Semana Número de usuarios que han navegado y cuya fecha y hora de creación de la cuenta es inferior a una semana. ### < Mes Número de usuarios que han navegado cuya fecha y hora de creación de la cuenta es inferior a un mes. ### < Año Número de usuarios que han navegado cuya fecha y hora de creación de la cuenta es inferior a un año. ### > Semana Número de usuarios que han navegado cuya fecha y hora de creación de la cuenta fue hace más de una semana. ### > Mes Número de usuarios que han navegado cuya fecha y hora de creación de la cuenta fue hace más de un mes. ### > Año Número de usuarios que han navegado cuya fecha y hora de creación de la cuenta fue hace más de un año. ================================================ FILE: content/es/docs/2.for-users/3.features/clip.md ================================================ # Clips Clip es una función que permite agrupar varias notas.No importa si las notas son tuyas o de otra persona. Puedes crear varios clips y gestionarlos estableciendo un nombre y una descripción para cada uno.También puedes elegir si quieres poner los clips a disposición de otros usuarios. Para crear un clip, ve a la [página de gestión de clips] (x-mi-web://my/clips) y haz clic en «Añadir». Para añadir notas a un clip, haz clic en «Clip» en el menú de la nota de destino y selecciona el clip al que quieras añadir notas. ================================================ FILE: content/es/docs/2.for-users/3.features/custom-emoji.md ================================================ # Emojis personalizados Emojis personalizados es una función que permite utilizar imágenes subidas a la instancia como emoji. Se pueden utilizar en lugares como notas, reacciones, chat, autointroducciones y nombres. Para utilizar un emoji personalizado en esos lugares, pulsa el botón selector de emoji (si está presente) o escribe: para mostrar sugerencias de emoji. Si en el texto se encuentra una cadena de la forma :foo:, la parte foo se interpreta como un nombre de emoji personalizado y se sustituye por el emoji personalizado correspondiente cuando se muestra. Puedes ver qué emojis personalizados están disponibles en el servidor visitando [**Emojis personalizados**](x-mi-web://about#emojis) en **Información del servidor** en Misskey Web. ================================================ FILE: content/es/docs/2.for-users/3.features/deck.md ================================================ # Deck Deck es una de las interfaces de usuario disponible.Ofrece la posibilidad de crear interfaces de usuario muy personalizables y densas mostrando varias vistas una al lado de la otra llamadas «columnas». Además, cuando se muestren notas o perfiles en la página, si se añade una columna principal, su contenido se mostrará dentro de ella. ## Agregar Columnas Las columnas pueden añadirse haciendo clic con el botón derecho en el fondo de la cubierta y seleccionando «Añadir columna». ## Moviendo Columnas Las columnas pueden moverse intercambiándose con otras columnas mediante arrastrar y soltar, así como a través del menú de columnas (que se muestra al hacer clic con el botón derecho en la cabecera de la columna). ## División Horizontal de Columnas Las columnas pueden ordenarse no solo horizontalmente, sino también verticalmente. Abra el menú de columnas y seleccione "Apilar a la izquierda" para desplazar la columna actual por debajo de la columna de la izquierda. Para deshacer la división, seleccione "Apilar a la derecha". ## Ajustes de columna Los ajustes de la columna pueden ser editados seleccionando "Editar" desde el menú de la columna.Las columnas pueden renombrarse y su anchura modificarse. ## Ajustes del Deck Los ajustes del deck pueden modificarse en [settings/deck](x-mi-web://settings/deck). ================================================ FILE: content/es/docs/2.for-users/3.features/dev-mode.md ================================================ # Modo de desarrollador La activación del modo desarrollador, que puede configurarse a través de [Ajustes > Otros > Desarrollador] (x-mi-web://settings/other), te da acceso a funciones útiles para desarrolladores, como la posibilidad de copiar notas e identificadores multimedia directamente desde el menú. ================================================ FILE: content/es/docs/2.for-users/3.features/drive.md ================================================ # Drive Drive es una función para gestionar los archivos que has subido a Misskey. :::tip Técnicamente hablando, todos los archivos se gestionan de forma centralizada en el sistema de Misskey, y la interfaz que los expone a los usuarios puede considerarse como una unidad de disco. ::: Además de poder cargar cualquier archivo desde la [página Drive] de Misskey Web (x-mi-web://my/drive), las imágenes establecidas como avatares y los archivos adjuntos a las notas se cargarán en Drive. :::tip Los tipos de archivos que se pueden cargar a través de los roles se pueden configurar; de forma predeterminada, se pueden cargar archivos de texto, JSON, imagen, vídeo y audio. ::: Los archivos cargados en Drive no solo pueden descargarse en cualquier momento, sino que también pueden reutilizarse seleccionando "Desde Drive" al crear notas. Además, se pueden crear carpetas dentro del Drive para organizar varios archivos juntos. :::warning Actualmente cuando borras un archivo desde el Drive, **todo el contenido(notas, páginas etc.)** que ha sido adjuntado también desaparece. ::: ## Sensible (NSFW) Sensible o Nsfw (Not safe for work) es una opción que se puede establecer en los archivos en Drive. Los archivos marcados como sensibles no se mostrarán sin la interacción del usuario. Esta opción se utiliza, por ejemplo, para marcar imágenes que se consideran inapropiadas para su visualización en el trabajo o en lugares públicos, y evitar que se muestren de repente. Esta bandera puede activarse o desactivarse manualmente, así como establecerse a discreción de los moderadores. ================================================ FILE: content/es/docs/2.for-users/3.features/embed.md ================================================ # Incrustar en un Sitio Web Puedes incrustar notas y líneas de tiempo de un servidor Misskey dentro de tu página web. Con Misskey, el diseño de los widgets es altamente personalizable así que puedes adaptarlos para tu página web. A continuación describimos los contenidos que pueden incrustarse y cómo hacerlo. :::warning Esta característica está disponible en Misskey v2024.9.0 o posterior. ::: :::tip MFM y emojis personalizados también están soportados, pero dependiendo de cómo se muestren en la página incrustada, la distribución puede no ser la esperada. ::: ## Generar código de inserción con el generador integrado Todos los códigos de inserción y su personalización mostrados en esta página pueden ser fácilmente realizados usando el generador integrado de código en la web de Misskey. Si no tienes una razón concreta para obtener el código manualmente, recomendamos usar el generador. ![Generador de código incrustado](/img/docs/for-users/features/embed/generator.png) ## Incrustar una sola nota ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: Una sola nota local puede ser incrustada (las notas en un servidor remoto no pueden ser incrustadas usando otro servidor).Tu código debería verse así: ```html ``` Los marcadores de posición se reemplazan por lo siguiente: - ``: Nombre de dominio del servidor Misskey - ``: Id de la nota a incrustar - ``: Cadena de texto aleatoria (Requerido si se usa embed.js.Si hay varios códigos de incrustación en la misma página, asegúrese de que no estén duplicados ## Incrustar una lista de notas de un usuario ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: Puedes incrustar una lista de notas públicas de un usuario (Con visibilidad pública o Inicio).Tu código debería verse así: ```html ``` Los marcadores de posición se reemplazan por lo siguiente: - ``: Nombre de dominio del servidor Misskey - ``: Id del usuario a incrustar (no el nombre de usuario que empieza por `@`) - ``: Cadena de texto aleatoria (Requerido si se usa embed.js.Si hay varios códigos de incrustación en la misma página, asegúrese de que no estén duplicados) ## Incrustar una lista de notas de un usuario en un clip ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: Puedes incrustar una lista de notas de clips cuya visibilidad sea pública.Tu código debería verse así: ```html ``` Los marcadores de posición se reemplazan por lo siguiente: - ``: Nombre de dominio del servidor Misskey - ``: Id de la nota a incrustar - ``: Cadena de texto aleatoria (Requerido si se usa embed.js.Si hay varios códigos de incrustación en la misma página, asegúrese de que no estén duplicados) ## Incrustar una lista de notas con un hashtag ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: Puedes incrustar una lista de notas con un hashtag específico.Tu código debería verse así: ```html ``` Los marcadores de posición se reemplazan por lo siguiente: - ``: Nombre de dominio del servidor Misskey - ``: Nombre del Hashtag (sin `#`) - ``: Cadena de texto aleatoria (Requerido si se usa embed.js.Si hay varios códigos de incrustación en la misma página, asegúrese de que no estén duplicados) ## Parámetros de personalización Puede personalizar la apariencia del widget de incrustación especificando un valor concreto para el parámetro URL.
Parámetros Valores Posibles Descripción
maxHeight Número superior a 0 Especifica la altura máxima del widget en píxeles.Si el contenido es más largo que eso verticalmente, se puede desplazar dentro del widget.
Si 0 la altura del elemento incrustado se ampliará automáticamente para coincidir con la altura interna (obsoleto).
Si no se especifica, se establecerá a700.
Este parámetro no funcionará para la incrustación de una sola nota.
colorMode
  • light
  • dark
Fuerza el modo de color de claro a oscuro.
Si no se especifica, se sincronizará con el ajuste de modo oscuro del dispositivo.
border
  • true
  • false
Especifica si se adjunta o no un borde al marco exterior.true si no se especifica
rounded
  • true
  • false
Especifica si las esquinas deben redondearse o no.true si no se especifica
showHeader
  • true
  • false
Especifica si debe mostrarse la cabecera superior.true si no se especifica.
Este parámetro no funciona si se incrusta solo una sola nota.
:::g-details{summary="maxHeight=0 ¿Cómo se usa? Establecer `maxHeight` a `0` no se recomienda, pero puede ser útil para casos especiales tales como cuando quieres proporcionar un contenedor de desplazamiento en el sitio de incrustación en lugar de dentro de un iframe.Aquí está un ejemplo: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/es/docs/2.for-users/3.features/favorite.md ================================================ # Marcadores Esta función te permite guardar notas [notes](./note) como marcadores. Puedes ver tus notas guardadas en la [Página de Marcadores](x-mi-web://my/favorites). El autor de una nota no será notificado cuando añadas una nota como marcador, y solo tú puedes ver tus marcadores. Para añadir una nota, selecciona "Añadir a favoritos" en el menú de las Notas.Para eliminar una nota, selecciona "Quitar de favoritos" en el menú de las Notas. ================================================ FILE: content/es/docs/2.for-users/3.features/follow.md ================================================ # Seguir Cuando sigues a un usuario, verás sus posts en tu línea de tiempo.Sin embargo, esto no incluye las respuestas a otros usuarios. Para seguir a un usuario, haz clic en el botón de Seguir en el perfil del usuario.Haz clic una vez más para dejar de seguir. Si el usuario aprueba manualmente quién puede seguirle, o si el usuario es de una instancia remota, el botón Seguir, cambiará a "Procesando..."Los usuarios recibirán una notificación si su petición de seguimiento es aprobada. ## Mensaje cuando te siguen :::tip Esta función está disponible en Misskey v2024.9.0 o posterior. Si sigue a un usuario remoto, ambas instancias deben estar en Misskey v2024.9.0 o posterior. Esta característica está en beta. ::: Puedes establecer un mensaje de bienvenida para nuevos seguidores.Si apruebas manualmente seguidores, el mensaje se mostrará al seguidor en el momento de la aprobación. El mensaje también se mostrará en tu perfil. :::warning El mensaje cuando te siguen es accesible públicamente, incluso para no seguidores.No incluyas información privada en el mensaje. ::: ================================================ FILE: content/es/docs/2.for-users/3.features/hashtag.md ================================================ # Hashtags Los hashtags son una característica que te permite añadir etiquetas a tus notas para que puedan ser buscadas. El primer hashtag del mundo, #barcamp, fue creado por Chris Messina [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina) el [24 de agosto, 2007 a las 4:25](https://twitter.com/chrismessina/status/223115412?lang=en).Más tarde, esa idea de usar el símbolo de la almohadilla '#' para hacer búsquedas más fácilmente fue renacida como "hashtag," una palabra combinada del Inglés "hash", que significa "trocear o "triturar" y "tag", que significa "etiqueta", y fue oficialmente adoptado por Twitter al mismo tiempo.Por cierto, Chris Messina eligió `#` porque le recordaba a los nombres de los canales de IRC que empiezan por `#`. Captura de pantalla del primer tuit de Chris Messina con un hashtag que dice «qué te parece usar # (pound) para los grupos». Como en #barcamp [msg]?"](/img/docs/for-users/features/hashtag/1.ja.png) La forma de utilizar los hashtags en el Fediverso es ligeramente diferente de cómo se utiliza en servicios centralizados como X e Instagram.En el fediverso, la búsqueda de texto completo es a veces difícil, lo que dificulta encontrar una publicación concreta, pero si una publicación contiene un hashtag, puedes localizarla fácilmente siguiendo el hashtag.Además, existen servicios en Fediverse llamados hashtag relays que envían automáticamente las publicaciones a varios sitios con solo añadirles hashtags, por lo que estos son bastante importantes. ================================================ FILE: content/es/docs/2.for-users/3.features/mention.md ================================================ # Menciones Haciendo clic en el símbolo + y escribiendo el nombre de usuario, puedes crear una nota mencionando a ese usuario.Los usuarios mencionados recibirán una notificación de que han sido mencionados. ================================================ FILE: content/es/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM es un lenguaje de marcado específico que puede utilizarse en varias partes de Misskey.' --- # MFM MFM, acrónimo de Markup Language For Misskey (Lenguaje de Marcado para Misskey), es un lenguaje de marcado propietario que puede ser usado en varios lugares de Misskey.Alguna de su sintaxis es compatible con Markdown y HTML. :::tip ¡Visita [MFM Playground](/tools/mfm-playground/) para probar MFM tu mismo! ::: ## Ejemplos de lugares donde MFM puede ser utilizado - En un texto de una nota - Para la anotación de contenido sensible, CW - Nombres de usuarios - Biografía de usuarios ## Sintaxis ### Menciones `@` + nombre de usuario puede ser usado para mostrar un usuario específico. :::tip Para más información sobre las menciones mira, [aquí](./mention.md). ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### Hashtags `#` + palabra puede ser usado para mostrar un hashtag. :::tip Para más información sobre hashtags, mira [aquí](./hashtag.md). ::: ``` #misskey ``` ### URL Las URLs pueden ser mostradas. ``` https://example.com ``` ### Links Partes específicas de un texto se pueden mostrar como una URL. ``` [example link](https://example.com) ``` :::tip Puedes ocultar la vista previa del enlace anteponiendo al texto del enlace el prefijo `? `. ``` ?[example link](https://example.com) ``` ::: ### Emoji personalizado Se pueden mostrar emoji personalizados rodeando el nombre del emoji con dos puntos. :::tip Para obtener más información sobre los emoji personalizados, mira [aquí](./custom-emoji.md). ::: ``` :misskey: ``` ### Negrita Texto en negrita para enfatizar. ``` **太字** ``` ### Encoger Muestra el contenido más pequeño y más fino. ``` Misskey amplía el mundo del Fediverso ``` ### Citas Muestra el contenido como una cita. ``` > Misskey amplía el mundo del Fediverso ``` ### Centrar Muestra el texto centrado. ```
Misskey amplía el mundo del Fediverso
``` ### Código fuente (insertado) Muestra el código fuente de un programa resaltando su sintaxis. ``` `<: "¡Hola, Mundo!"` ``` ### Código fuente (bloque) Código de resaltado de sintaxis, como programas de varias líneas con bloques. Especificando el lenguaje de programación por Id, puede aplicar el resaltado de sintaxis en ese lenguaje.Los lenguajes disponibles son: - [Lenguajes soportados por Shiki (200+)](https://shiki.style/languages) - AiScript: Específica uno de los siguientes `aiscript`, `ais`, o `is` para usarlo. ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### Voltear Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha. ``` $[flip Misskey amplía el mundo del Fediverso] $[flip.v Misskey amplía el mundo del Fediverso] $[flip.h,v Misskey amplía el mundo del Fediverso] ``` ### Fuente Establece la fuente en que se mostrará el contenido. ``` $[font.serif Misskey amplía el mundo del Fediverso]] $[font.monospace Misskey amplía el mundo del Fediverso]] $[font.cursive Misskey amplía el mundo del Fediverso]] $[font.fantasy Misskey amplía el mundo del Fediverso]] ``` ### Difuminar El contenido puede ser difuminado.Al pasar el ratón por encima del contenido, éste se mostrará claramente. ``` $[blur Misskey amplía el mundo del Fediverso] ``` ### Búsqueda Un cuadro de búsqueda puede ser mostrado. ``` misskey 検索 ``` ### Color de Frontal y de Fondo Se puede cambiar el color del primer plano y del fondo. Los colores se expresan mediante códigos de 3, 4 ó 6 dígitos. ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### Borde El contenido puede rodear los bordes.Los bordes pueden tener varios estilos. ``` border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### Rotación Rota el contenido a un ángulo especificado. ``` $[rotate.deg=30 misskey] ``` ### Posición El contenido puede ser posicionado. ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### Ampliar Muestra el texto ampliado. ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### Animación (gelatina) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### Animación (tadá) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### Animación (saltar) ``` $[jelly 🍮] $[jump.speed=5s 🍮] ``` ### Animación (rebotar) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### Animación (giro) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### Animación (temblor) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### Animación (sacudida) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### Arcoíris ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### Brillantina ``` $[sparkle 🍮] ``` ### Texto plano Desactiva el formato del contenido. ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## Información para desarrolladores Las implementaciones de análisis sintáctico y renderizado de MFM se publican como bibliotecas, lo que facilita la incorporación de MFM en los clientes. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - Implementación del parser(analizador) de JavaScript - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Componente Vue.js - [mfm.kt](https://github.com/samunohito/mfm.kt) - Implementación del parser (analizador) Kotlin - [mfm_parser](https://pub.dev/packages/mfm_parser) - Implementación del parser de Dart - [mfm](https://pub.dev/packages/mfm) - widget de renderizado para Flutter ================================================ FILE: content/es/docs/2.for-users/3.features/mute-and-block.md ================================================ # Silenciar y Bloquear Si no te gusta alguien, puedes silenciarlo para que deje de ser visible para ti. O, como medida más contundente, puedes bloquear a alguien para que no pueda ver tus contenidos ni interactuar contigo. La otra persona no sabrá que está silenciada, pero sí que está bloqueada.Tú decides cuál utilizar. :::tip Silenciar y bloquear pueden usarse juntos. ::: :::warning Si hay algún usuario problemático que infrinja las condiciones del servicio, por favor, considera informar de ello al administrador. ::: En la web de tu instancia Misskey, puedes ver los usuarios que has silenciado o bloqueado yendo a Ajustes > Silenciados y Bloqueados. ## Silenciar Cuando silencias a un usuario, el siguiente contenido sobre ese usuario ya no aparecerá en Misskey: - Sus notas en tu cronología y resultados de búsqueda (incluidas sus respuestas y renotas) - Sus notificaciones - Historial de mensajes con él/ella - etc Para silenciar a un usuario en Misskey Web, abra el menú de la página del usuario en cuestión y pulse el botón «Silenciar». :::tip La otra persona no será notificada de que la has silenciado, ni sabrá que ha sido silenciada. ::: ## Silenciar renota Puedes silenciar sólo las renotas del usuario, en caso de que el usuario esté renotando muchas notas.Las notas normales del usuario no se ven afectadas. ## Bloquear Bloquear a un usuario le impide ver tus contenidos y realizar cualquiera de las siguientes acciones contra ti. - Seguirte - Añadirte a listas de usuarios - Contestarte, renotar tus notas - Reaccionar, votar en tus encuestas - Enviarte un mensaje - etc Además: - Si el usuario ya te sigue cuando lo bloqueas, se eliminará su seguimiento. - Si el usuario ya te tiene en su lista de usuarios cuando lo bloquees, serás eliminado de ella. Para silenciar a un usuario en Misskey Web, abre el menú de la página del usuario en cuestión y pulsa el botón «Silenciar». :::warning La persona no será notificada de que la has bloqueado, pero podrá darse cuenta indirectamente, ya que no podrá realizar las acciones mencionadas anteriormente. ::: :::warning Tu contenido no será visible para el otro usuario, pero puede serlo si cambia de cuenta o cierra la sesión.Considera estas herramientas como una herramienta sencilla y complementaria. ::: ================================================ FILE: content/es/docs/2.for-users/3.features/note.md ================================================ # Notas Las notas son el contenido principal de Misskey. Pueden consistir en imágenes, textos, encuestas y más.En otras plataformas, las notas se conocen como posts. :::tip El nombre «nota» proviene del tipo de objeto ActivityPub `Note`, que en este contexto «Representa un breve trabajo escrito típicamente de menos de un párrafo de longitud». ::: Una vez creada una nota, se añadirá a tu [Línea del Tiempo](./timeline) y será visible para tus [seguidores](./follow) y otros usuarios de tu instancia. Puedes [reaccionar](./reaction),contestar o citar notas. Puedes encontrar una nota más tarde añadiéndola a tus [Favoritos](./favorite). ## Redactar una nota Para redactar una nota, haz clic en el botón Nota (representado por el icono de un lápiz) para abrir el formulario de redacción.Introduce el contenido y haz clic en el botón Nota (con el icono de un avión de papel) para enviar la nota. Las notas pueden contener texto, imágenes, vídeos y [encuestas](./poll).Puedes formatear tu nota usando [Markup language For Misskey (MFM)](./mfm), [mencionar](./mention) otros usuarios, o incluir [hashtags](./hashtag). También puedes añadir advertencias de contenido (CW) y cambiar la visibilidad de la nota (más sobre esto debajo). :::tip En Misskey Web, puedes pegar imágenes directamente desde el portapapeles al cuadro de texto utilizando los atajos habituales de copiar y pegar. ::: :::tip También puedes presionar Ctrl + Enter dentro del cuadro de texto para publicar la nota. ::: ## Renota El acto de citar una nota existente, compartir una nota existente o la nota creada como resultado de estos actos se denominan Renota (o "renotar" como verbo). La mayoría de las veces se utiliza cuando quieres compartir una nota que te gusta con tus propios seguidores, o cuando quieres volver a compartir una nota que publicaste en el pasado. Aunque es posible renotar la misma nota varias veces, ten en cuenta que hacerlo puede resultar molesto para los demás. :::warning Si has configurado la visibilidad de tu nota como Solo seguidores o Nota Directa, no será posible renotarla. ::: Para eliminar una renota en la web de Misskey, presiona "..." junto a la hora de la renota y selecciona "Quitar Renota". ## CW Advertencia de Contenido Abreviatura de "Advertencia de contenido", en inglés Content Warning, que hace que el contenido de una nota quede oculto a menos que el usuario que la ve solicite explícitamente que se muestre.Se utiliza principalmente para ocultar el contenido de notas largas o para evitar publicar spoilers públicamente. Para activar el Cw de una nota, pulsa el botón «Esconder contenidos» (icono del ojo) en el formulario de publicación.Al hacerlo, aparecerá una nueva área de introducción de texto, donde podrás escribir un resumen del contenido oculto por el CW. ## Visibilidad Para cada nota, puedes establecer el rango dentro del cual la nota se hará pública. Para establecer la visibilidad en Misskey Web, haga clic en el icono situado a la izquierda del botón "Nota" del formulario de composición. Existen los siguientes tipos de visibilidad: ### Público Tu nota será visible para todos los usuarios y aparecerá en todas las líneas de tiempo (inicio, local, social, global). :::warning Si tu cuenta está [silenciada](./silence), no puedes establecer la visibilidad de tu nota como pública. ::: ### Inicio Tu nota será visible para todos los usuarios, pero no aparecerá en la cronología local, social o global para los no seguidores. ### Seguidores Tu nota solo será visible para quienes te sigan.La nota aparecerá en todas las líneas de tiempo de tus seguidores. ### Nota Directa Tu nota solo será visible para los usuarios especificados individualmente.La nota aparecerá en todas las líneas de tiempo de los usuarios especificados. :::tip Hasta la versión 2025.7.0, se llamaba «Nota directa». ::: ### No Federado Si activas esta opción, tu nota no se federará a instancias remotas. ### Comparación de visibilidad
PúblicoInicioSeguidoresMensaje Directo
LTL/STL/GTL de Seguidores
LTL/STL/GTL de Otros
## Fijar al perfil Al fijar una nota a tu perfil, ésta se mostrará constantemente en tu página de perfil. Para fijar una nota, abre el menú de notas y pulsa "Fijar al perfil". :::tip Puedes fijar múltiples notas en tu perfil. ::: ## Notificación sobre una nueva nota de usuario Se puede enviar una notificación cuando un usuario publique una nueva nota.Ve a la página del usuario del que deseas recibir notificaciones, selecciona el botón Detalles situado junto al botón Seguir y, a continuación, haz clic en "Notificar nuevas notas" para activarlo. ================================================ FILE: content/es/docs/2.for-users/3.features/online-status.md ================================================ # Estado de conexión El **Estado en línea** de un usuario es una indicación del estado de uso de Misskey del usuario. El estado en línea se muestra como un indicador en la esquina del icono del usuario en la página de usuario, por ejemplo.
Color Estado Descripción
🟢Verde En línea El usuario parece estar usando Misskey ahora mismo
🟡Amarillo Activo Este usuario parece no estar en línea ahora mismo, pero ha utilizado Misskey recientemente
🔴Rojo Desconectado Parece que este usuario no ha utilizado Misskey recientemente
⚫Gris Desconocido Este usuario tiene un estado que es privado, o el estado es desconocido por algunas razones como ser usuario remoto, etc.
El estado en línea cambia automáticamente y no puede configurarse manualmente. Sin embargo, puedes establecer tu estado en línea como privado. :::warning Algunas funciones, como las recomendaciones de usuarios, pueden procesarse en función del estado en línea, por lo que hacer que tu estado sea privado puede dificultar que otros usuarios te encuentren. ::: ================================================ FILE: content/es/docs/2.for-users/3.features/pages.md ================================================ # Páginas Además de notas, puedes crear páginas en Misskey.v13 se especializa en páginas estáticas. :::warning a partir de la v13, se puede utilizar Misskey Play en lugar de la creación dinámica de páginas. ::: ## Configuración de páginas Establece los elementos relacionados con la página.Puedes introducir los siguientes elementos. - Título - Resumen de la página - Url de la página - Alineación central - Fuente - Ocultar el título de la página al fijarse - Elegir imagen llamativa ### Título Introduce el título de la página.Aparecerá en la lista. ### Resumen de la página Introduce una breve descripción.Aparecerá en la lista. ### Url de la página Opcionalmente establece `●●●` en `https://server-name/@user/pages/●●●`. ### Alineación central Cuando se activa, el contenido se centra. ### Fuente Elige **serif** o **sans-serif**. ### Ocultar el título de la página al fijarse Oculta el título cuando se fija. ### Elegir imagen llamativa Puedes configurar una imagen desde los **Ajustes de imagen**.Es posible mostrar la vista previa, por ejemplo, en una vista de lista. ## Contenidos Edita el cuerpo de la página.Las páginas pueden generarse combinando uno o varios de los siguientes bloques. - Sección - Texto - Imagen - Nota embebida ### Sección Al establecer un título, éste aparece como encabezado.Además, se pueden colocar bloques en su interior. ### Texto Introduce el cuerpo del texto.Se puede usar MFM y emojis personalizados. ### Imagen Muestra una imagen.Establece una imagen desde Drive. ### Nota embebida Al introducir el ID de una nota, se muestra su contenido.Si quieres incrustar otro servidor, pon su Url en la búsqueda y pega el Id que aparece. ================================================ FILE: content/es/docs/2.for-users/3.features/plugin.md ================================================ # Plugins Misskey Web tiene una función de plug-in que permite a los usuarios ampliar su funcionalidad. Por favor mira [esta documentación](../../for-developers/plugin/create-plugin) para más información sobre cómo crear plugins. ================================================ FILE: content/es/docs/2.for-users/3.features/poll.md ================================================ # Encuestas Las encuestas son una función que te permite solicitar opiniones de los demás. ## Adjuntar una encuesta a una nota Las encuestas pueden publicarse adjuntándolas a una [nota](/docs/for-users/features/note).Para adjuntar una encuesta a su nota, seleccione el icono "Encuesta" en la parte inferior del formulario de publicación. ## Añadiendo Opciones Una encuesta puede tener hasta 10 opciones.Para añadir una opción, haz clic en el botón "Agregar". Si tienes demasiadas opciones, puedes eliminar una utilizando el botón «X» situado junto a la opción. :::warning Si una opción está en blanco, no podrás enviar la nota. ::: ## Permitir más de una respuesta Si se selecciona "Permitir más de una respuesta" los votantes podrán votar por más de una opción. ## Fijar una fecha límite para la encuesta Puedes fijar una fecha límite para la encuesta, ya sea una fecha de finalización o un período de tiempo. Para fijar una fecha límite, selecciona "Termina el" o "Finalizar después de..." en el menú desplegable "Finalizar encuesta". Para eliminar una fecha límite, selecciona "Sin límite de Tiempo" en el desplegable "Finalizar encuesta". ## Votando en una encuesta Cuando veas pasar una nota con una encuesta en la línea de tiempo, ¡vota! Para votar en una encuesta, haz clic en la opción deseada.Si el usuario que creó la encuesta no permitía opciones múltiples, se mostrarán inmediatamente los resultados actuales de la encuesta. Si el usuario que creó la encuesta permitía varias opciones, se te permitirá votar por otra opción.En este caso, los resultados no se mostrarán inmediatamente. Para ver los resultados de la encuesta antes o después de votar, haga clic en el botón "Ver resultado" situado debajo de las opciones. Si has consultado los resultados sin votar, puedes volver a votar pulsando el botón "Votar". :::tip Si aún no has votado, puedes hacerlo después de ver los resultados actuales. ::: Al votar, aparecerá una ✔ junto a tu selección o selecciones. ================================================ FILE: content/es/docs/2.for-users/3.features/reaction.md ================================================ # Reacciones La función de reacción te permite mostrar fácilmente tus reacciones a las notas de otras personas utilizando emojis.Para reaccionar, haz clic en el icono + de la nota y selecciona un emoji del selector. También puedes reaccionar con [emojis personalizados](./custom-emoji.md). ## Personalizando el selector de Emojis Puedes seleccionar qué emojis se muestran en el selector de emoji. Estas opciones se encuentran en Ajustes > Paleta emoji. ## Reacciones a Posts Remotos Las reacciones son una característica original de Misskey. Las plataformas que no soportan las reacciones de Misskey recibirán la reacción como una actividad "me gusta".Esto podría llamarse "favorito" en algunas plataformas. ## Reacciones desde instancias remotas Si una actividad genérica "me gusta" es recibida desde un servidor remoto, Misskey la interpretará como una reacción «❤». ## Viendo tus reacciones En Misskey Web, puedes ver tus reacciones anteriores yendo a tu perfil y seleccionando la pestaña Reacciones.Puedes cambiar la privacidad de tus reacciones yendo a Ajustes > Privacidad. ## Aceptación de reacciones Al publicar una nota, puedes limitar los tipos de reacciones que se aceptarán para esa nota. - Todo: Se permiten todas las reacciones - Todos (sólo Me gusta remotos): Permite todas las reacciones de tu servidor, pero solo acepta reacciones de otros servidores como Me gusta (❤) - Solo no sensible: Todas las reacciones están permitidas, pero no podrás reaccionar con reacciones de tu propio servidor que estén marcadas como «sensibles» - Solo contenido no sensible (Solo me gusta en remoto): No podrás reaccionar usando emojis personalizados marcados como "sensibles" desde tu propio servidor, y todas las reacciones de otros servidores se aceptan como Me gusta/likes (❤) - Solo Likes: Solo puedes reaccionar con un Me gusta/like (❤) En este caso, la reacción que especifiques será aceptada en tu servidor.Por ejemplo, si ves una nota en otro servidor con la opción "Solo me gusta", la nota puede tener una reacción emoji en ese servidor. ================================================ FILE: content/es/docs/2.for-users/3.features/safemode.md ================================================ # Modo seguro A partir de la versión 2025.8.0, Misskey Web incluye una función de «modo seguro». Este modo inicia el cliente con los complementos, el CSS personalizado y los temas desactivados en caso de que causen problemas operativos. Puedes acceder al modo seguro mediante el siguiente método. - (Si aparece una pantalla de error al iniciar) Haz clic en el botón «Iniciar Misskey en modo seguro» en la pantalla de error. - (Si hay un teclado conectado) Pulsa rápidamente la tecla «g». - Añade «?safemode=true» a la URL. - (Cuando se utiliza PWA) Inicie seleccionando Safemode a través del acceso directo. Las siguientes funciones están restringidas mientras se ejecuta en modo seguro. - Independientemente de si están habilitados o deshabilitados, todos los complementos se desactivarán y no será posible realizar nuevas instalaciones. - No se aplicará el CSS personalizado. - Se iniciará utilizando el tema predeterminado independientemente de la configuración, y no podrás cambiar el tema (aunque se puede eliminar a través de la página de gestión de temas). - El mensaje «Modo seguro» se muestra constantemente en la pantalla. Utiliza el modo seguro para identificar y solucionar el problema causado por algún componente.Una vez completado el procedimiento, desactiva el modo seguro haciendo clic en «Desactivar» en el menú que se muestra siempre durante el funcionamiento del modo seguro. :::tip El modo seguro no está diseñado para un uso regularUna vez completado el procedimiento, apágalo y reinicia en modo normal. ::: ================================================ FILE: content/es/docs/2.for-users/3.features/share-form.md ================================================ # Formulario para compartir En Misskey Web, la ruta `/share` lleva a un formulario para compartir en redes sociales.Esta página es útil para los propietarios de sitios externos que desean que los usuarios compartan sus páginas en Misskey. Puede especificar opciones como el contenido a compartir como parámetros de consulta de URL. ## Parámetros de consulta :::tip Todos los parámetros son **opcionales** y no obligatorios. ::: | Nombre | Descripción | | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `title` | Título.Añadido al principio de la nota... y entre corchetes en la forma "\[ Título del contenido \]". | | `text` | Cuerpo del texto. | | `url` | URL.Añadida al final de la nota. | ### Información de respuesta Se puede responder a una nota utilizando los siguientes parámetros: | Nombre | Descripción | | ---------- | ---------------------------------------------------------------------------------------------- | | `replyId` | El Id de la nota a la que responder. | | `replyUri` | La Url de la nota a la que responder.(Para objetos remotos) | ### Información para Renotar Puedes especificar una de las siguientes opciones para que la entrada sea una Renota (cita) de una nota específica. | Nombre | Descripción | | ----------- | ------------------------------------------------------------------------------------- | | `renoteId` | El Id de la nota a Renotar. | | `renoteUri` | La Url de la nota a renotar.(Para objetos remotos) | ### Visibilidad Puedes especificar la visibilidad de la nota con las siguientes opciones. | Nombre | Descripción | | ---------------- | -------------------------------------------------------------------------------------------------- | | `visibility` | Una de las siguientes opciones: `Público`, `Inicio`, `Seguidores` o `Nota directa` | | `localOnly` | 0(falso) o 1(verdadero) | | `visibleUserIds` | Id de usuario de destino (separados por comas) | | `visibleAccts` | Usuario de destino [acct](../resources/glossary/#acct) (separado por comas) | :::warning Si especificas la `visibility` como `nota directa`, debes especificar también `visibleUserIds` o `visibleAccts`. ::: ### Archivos adjuntos Puedes especificar archivos adjuntos con la siguiente opción. | Nombre | Descripción | | --------- | -------------------------------------------------------------------------- | | `fileIds` | Los Id de los archivos a adjuntar (separados por comas) | ## Misskey Hub Share Form Relay Service Para reducir la molestia de configurar el botón de compartir de Misskey que es compatible con múltiples servidores, el nuevo Misskey Hub proporciona un servicio de retransmisión de formulario de compartir. Este servicio es gratuito. ¡Puedes evolucionar tus enlaces de formulario de compartir para compartir enlaces a varios servidores de Misskey simplemente cambiando la parte del dominio de los enlaces de formulario de compartir anteriores a `misskey-hub.net`! :::tip Mira también [Generador de botones para compartir](/tools/share-link-generator/). ::: :::warning El servicio de retransmisión de formularios compartidos (en lo sucesivo, «este servicio») es una función proporcionada por Misskey Project (en lo sucesivo, «nosotros») de forma gratuita y sin garantía para comodidad de los webmasters.No nos hacemos responsables de los daños que se produzcan como consecuencia de utilizar o no poder utilizar este servicio por cualquier motivo. ::: ### Parámetros Básicos En general, se pueden utilizar los parámetros introducidos anteriormente, pero **no se pueden utilizar los parámetros que dependen de cada servidor, como los ID de usuario y los ID de archivo.**.Si se especifica, se eliminarán en Misskey Hub y no se pasarán a los servidores de destino. ### Características únicas disponibles en el Servicio Misskey Hub Share Relay #### Servidor Destacado Introduciendo el dominio de un servidor de Misskey en el parámetro URL `manualInstance`, puede añadir un enlace independiente a ese servidor como "Recomendado por el sitio web de origen compartido" (Recommended by the Share Source Website.)Utilízalo cuando desees guiar a los usuarios a tu servidor. :::warning La función "Servidores recomendados" se ofrece para comodidad de los webmasters. Por lo tanto, no significa que recomendemos los servidores enumerados en la sección "Recomendado por el sitio web de origen compartido". No nos hacemos responsables de los daños o desventajas que se deriven de la utilización o el registro en los servidores transitorios del "Sitio web recomendado por Share Source". ::: ================================================ FILE: content/es/docs/2.for-users/3.features/silence.md ================================================ # Silenciado Una cuenta puede estar en el estado Silenciado. Cuando se silencia una cuenta, el usuario ya no podrá establecer la visibilidad de su nota en "Público".Un usuario silenciado puede seguir configurando la visibilidad de la nota en "Inicio", “Seguidores” y "Nota Directa", lo que muestra la nota a sus seguidores y en su página de perfil, pero sus publicaciones no serán visibles en la GTL (línea de tiempo federada) ni en la LTL (línea de tiempo local). Solo los administradores/moderadores pueden silenciar cuentas. ================================================ FILE: content/es/docs/2.for-users/3.features/theme.md ================================================ # Temas Los temas se pueden utilizar para cambiar la apariencia del cliente Misskey. ## Configuración del tema [Configuración > Tema](x-mi-web://settings/theme) ## Crear tema Los temas se describen como objetos JSON5, escritos en el formato que se muestra a continuación:. ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... ID único del tema.Se recomienda un código UUID - `name` ... Nombre del tema - `author` ... El autor del tema - `desc` ... Descripción del tema (opcional) - `base` ... Si es un tema claro u oscuro - Si lo ajustas a `light`, el tema aparecerá como un tema de modo claro, si lo ajustas a `dark`, aparecerá como un tema de modo oscuro. - El tema heredará los valores por defecto del tema especificado aquí. - `props` ... Definición del estilo del tema.Se explicará a continuación. ### Definiciones de los estilos de los temas En `props` se define el estilo del tema. La clave es el nombre de la variable Css y el valor especifica el contenido. Tenga en cuenta que este objeto `props` hereda del tema base. El tema base es [\_light.json5][_light.json5] si la `base` de este tema es `light` y [\_dark.json5][_dark.json5] si es `dark`. Esto significa que incluso si no hay una clave `props` con `panel` en este tema, se asume que hay un `panel` del tema base allí. - [_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 #### Sintaxis de los valores - Los colores en base hexadecimal - Ejemplo:. `#00ff00` - Los colores con la sintaxis `rgb(r, g, b)` - Ej: rgb(0, 255, 0)\` - \`Los colores con la sintaxis rgb(r, g, b, a) con un grado de transparencia - Ej: rgba(0, 255, 0, 0.5)\` - Referencias a valores de otras claves - Escribiendo @{keyname} se hace referencia al valor de la otra clave.Reemplace {keyname} por el nombre de la clave al cual quiera hacer referencia. - Ej:`@panel` - Referencia a una constante (ver más abajo) - Escribiendo ${constant-name} se hace referencia a la constante.Reemplace {constant-name} por la constante al cual quiera hacer referencia. - Ejemplo: `$main` - Funciones (ver más abajo) - `:{function-name}<{argument}<{color}` #### Constantes Cuando hay un valor que no se quiere generar como variable CSS pero sí se quiere reutilizar como valor de otra variable CSS, es conveniente usar constantes. Cuando a un nombre de clave se le añade como prefijo $, esa clave no será generada como una variable CSS. #### Funciones Las funciones son útiles cuando se desea utilizar una ligera variación de un color existente, por ejemplo, para dar más brillo a un botón al pasar el ratón por encima de él. Las funciones tienen la forma: `:{function-name}<{argument}<{color}`. ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### Lista de funciones - `lighten` ... Devuelve el color obtenido al aumentar la luminosidad del color especificado en la cantidad dada (0-100). La luminosidad del color puede oscilar entre 0-100. Si se proporciona 100, siempre se obtendrá el color blanco. - `darken` ... Devuelve el color obtenido al disminuir la luminosidad del color especificado en la cantidad dada (0-100). Proporcionando 100 siempre devolverá el color negro. - `alpha` ... Devuelve el color con el valor de transparencia (alfa) ajustado al argumento dado (0.0-1.0). - 0,0 es completamente transparente, mientras que 1,0 es completamente opaco. - `hue` ... Devuelve el color obtenido al girar el matiz en la cantidad dada (-360 a 360). - `saturate` ... Devuelve el color obtenido al aumentar la saturación en la cantidad dada (0-100). La saturación del color puede oscilar entre 0-100. ## Distribuir temas desde la versión 2023.11.0, puedes instalar temas directamente desde un sitio web con un solo clic. Si desea proporcionar la funcionalidad de instalación de temas, tendrá que implementar una Api en su sitio.Para más información, consulte [aquí](../../for-developers/publish-on-your-website/). ================================================ FILE: content/es/docs/2.for-users/3.features/thread-mute.md ================================================ # Silenciar Hilo :::tip Esta función está disponible a partir de la versión 12.95.0 y superiores. ::: "Silenciar hilo" silencia el hilo de la nota especificada.Un hilo son todas las notas conectadas a la nota especificada. Cuando un tema está silenciado, no recibirás notificaciones sobre nuevas respuestas en el hilo, ni recibirás notificaciones de tus menciones en el hilo. Además, las menciones a tu persona en la conversación no aparecerán en la columna "Menciones". Para silenciar un hilo en Misskey, abre el menú de cualquier nota perteneciente al hilo o a la nota original y selecciona "Silenciar hilo". :::warning Se silenciará todo el hilo, independientemente de la nota del hilo que se haya seleccionado. ::: ================================================ FILE: content/es/docs/2.for-users/3.features/timeline.md ================================================ # Líneas de tiempo [Notas](/docs/for-users/features/note/) se muestran en las líneas de tiempo. Hay varios tipos de líneas de tiempo como se menciona a continuación y cada uno de ellos muestra un conjunto diferente de notas. Los servidores pueden desactivar algunas de ellas. ## Inicio Aquí es donde ves las publicaciones de los usuarios a los que sigues.A menudo abreviado como HTL (en inglés Home Time Line). ## Local Aquí es donde se ven todos los mensajes de los usuarios locales, excepto aquellos con visibilidad "Inicio".A menudo abreviado como LTL (en inglés Local Time Line). ## Social Aquí es donde ves las publicaciones de los usuarios a los que sigues Y todas las publicaciones de los usuarios locales, excepto las que tienen visibilidad de "Inicio".A menudo abreviado como STL (En inglés Social Time Line). ## Global Aquí es donde se ven los mensajes de los usuarios locales y de los usuarios remotos en servidores federados, excepto los que tienen visibilidad "Inicio".A menudo abreviado como GTL (En inglés Global Time Line). ## Comparación
Fuente Visibilidad Líneas de tiempo
Inicio Local Social Global
Usuarios locales que sigues Público
Inicio
Seguidores
Usuarios remotos a los que sigues Público
Inicio
Seguidores
Usuarios locales que no sigues Público
Inicio
Seguidores
Usuarios remotos que no sigues Público
================================================ FILE: content/es/docs/2.for-users/3.features/webhook.md ================================================ # :::tip Esta función está disponible a partir de la versión 12.109.0 y superiores. ::: :::warning Esta función es experimental. Puede ser inestable y sus especificaciones pueden estar sujetas a cambios. ::: Misskey proporciona webhooks.Usando webhooks, puedes recibir eventos de Misskey en tiempo real. Puedes gestionar tus webhooks en [Ajustes > Webhook](x-mi-web://settings/webhook) Una vez registrado un webhook, Misskey enviará una petición Http a la Url especificada cuando ocurra el evento especificado.Estas peticiones son peticiones Post con un cuerpo Json. El campo de cabecera `X-Misskey-Hook-Secret` contendrá el secreto especificado en la creación.Por seguridad, debes verificar que el contenido de este campo coincide con el secreto proporcionado durante la creación. La carga útil de la solicitud contiene las siguientes propiedades: [TBA]. Si el servidor de destino devuelve un error 5xx o no responde, la solicitud se vuelve a enviar tras un tiempo de espera. Los webhooks pueden activarse o desactivarse temporalmente desde su página de configuración. ## Eventos A continuación se indican los eventos disponibles y su carga útil. ### seguir Ocurre cuando sigues a alguien. ### seguido Se produce cuando te sigue otra persona. ### dejar de seguir Ocurre cuando dejas de seguir a alguien. ### nota Ocurre cuando envías una nota. ### responder Esto ocurre cuando se responde a una nota propia. ### renota Esto ocurre cuando su nota es renotada. ### mención Ocurre cuando te mencionan. ================================================ FILE: content/es/docs/2.for-users/3.features/widgets.md ================================================ # Widgets Los widgets son pequeñas pantallas que se pueden añadir a la interfaz de usuario de Misskey para mostrar información e interactuar con ella. Para cambiar los widgets que se muestran, accede al modo de edición de widgets.El modo en que se editan los widgets depende de la interfaz de usuario que se esté utilizando.En el modo de edición de widgets, puede añadir, eliminar, reorganizar y configurar widgets. ## Lista de Widgets - Perfil - Información de la instancia - Notas adhesivas - Líneas de tiempo - Calendario - Lector RSS - Ticker-RSS - Tendencias - Reloj - Actividad - Fotos - Reloj digital - Reloj UNIX - Federación - Nube de palabras de la instancia - Formulario - Presentación de imágenes - Estadísticas del servidor - Usuarios en linea - Cola de trabajos - Botón - Consola de AiScript - Aplicación AiScript - Ai - Lista de usuarios - Cliqueador ### Perfil Muestra tu nombre de usuario, avatar y banner.Este widget puede ayudarte a saber qué cuenta estás utilizando si tienes varias. ### Información de la instancia Muestra el nombre de la instancia, el dominio, el icono y el banner. ### Notas adhesivas Un bloc de notas para guardar texto. ### Líneas de tiempo Muestra una línea de tiempo.Puedes cambiar entre las líneas de tiempo de Inicio, Local, Social y Global. ### Calendario Muestra la fecha de hoy, el día de la semana y los porcentajes de paso del día, mes y año.En la interfaz de usuario predeterminada, este widget se muestra por defecto. ### Lector RSS Lista los títulos de un canal RSS. ### Ticker-RSS Enumera los títulos de un canal RSS en formato de teletipo desplazable. ### Tendencias Muestra los hashtags más frecuentes. ### Reloj Muestra la hora actual en un reloj analógico. ### Actividad Muestra un gráfico de actividad tipo punto para el usuario actual. ### Fotos Muestra los archivos recientes del Drive. ### Reloj digital Muestra la hora actual en un reloj digital. ### Reloj UNIX Muestra el tiempo actual en formato UNIX. ### Federación Muestra las instancias remotas más populares. ### Nube de palabras de la instancia Muestra las instancias remotas como una esfera. ### Formulario Contiene el formulario utilizado para crear nuevos posts. ### Presentación de imágenes Muestra el contenido de una carpeta de Drive en secuencia. ### Estadísticas del servidor Muestra la CPU, la memoria, el tráfico de red y la capacidad de almacenamiento de la instancia.Esta opción puede estar desactivada en función de la configuración de la instancia. ### Usuarios en linea Muestra el número de usuarios que están conectados. ### Cola de trabajos Muestra el estado de la cola de trabajos de la federación. ### Botón Un botón.Ejecuta AiScript. ### Consola de AiScript Una consola para ejecutar AiScript. ### Aplicación AiScript Muestra una aplicación escrita en AiScript.Utiliza la misma interfaz de usuario que Misskey Play.Añadido en la versión v13. ### Ai Muestra a AISigue tu cursor con su mirada. ### Lista de usuarios Muestra una lista.Más > "Listas" para establecer la lista. ### Cliqueador Muestra una galleta.Haz clic en la galleta. ================================================ FILE: content/es/docs/2.for-users/3.features/word-mute.md ================================================ # Silenciar palabras Cuando se filtra una nota utilizando el silenciador de palabras, la nota se colapsará y en su lugar aparecerá "XX (nombre de usuario) dijo algo" en lugar de la nota.Las notas minimizadas pueden visualizarse pulsando sobre ellas. Las palabras silenciadas pueden configurarse en [Configuración > Silenciar y Bloquear](x-mi-web://settings/mute-block). ## Filtro de palabra fuerte El silenciador de palabras fuertes hace que las notas que coinciden con los criterios sean completamente invisibles.A diferencia de la palabra silenciada, la nota quedará completamente oculta a la vista. ================================================ FILE: content/es/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: 'Consulta esta página en primer lugar cuando tengas problemas para utilizar Misskey.' --- # Solución de problemas :::tip Asegúrate de consultar también [FAQ](./faq.md). ::: Si tienes algún problema, compruébalo primero aquí. Si ninguno de los puntos se aplica, o si el problema persiste después de intentar los pasos, ponte en contacto con el administrador de tu servidor o [Informa de un problema] (../../about-misskey/#議論に参加する). ## El cliente no inicia En la mayoría de los casos, esto se debe a que la versión de tu navegador o sistema operativo no está actualizada. Intenta actualizar tu navegador o sistema operativo a la última versión y vuelve a intentarlo. Aunque es poco probable, si el cliente sigue sin iniciarse, podría haber un problema con la caché.En este caso, intenta borrar la memoria caché y vuelve a intentarlo. ## No se pueden cargar las páginas Si tu cliente se carga correctamente, pero obtienes un error al intentar cargar el contenido, comprueba primero tu conexión de red.Comprueba también que el servidor no está caído. Aunque es poco probable, esto podría deberse al problema con la caché.Borra la caché de tu navegador e inténtalo de nuevo. Si sigues teniendo problemas, pónte en contacto con el administrador del servidor, ya que probablemente se trate de un problema del servidor. ## El cliente se ralentiza Antes de cambiar cualquier configuración, asegúrate primero de que tu proveedor de servicios de Internet no está experimentando ninguna interrupción o mantenimiento, de que la velocidad de transmisión de tu red es suficiente, de que la configuración de tu red es normal y de que no hay interrupciones o mantenimiento en el lado del servidor; a continuación, prueba o comprueba lo siguiente: 1. Ajustes en Misskey Web Abre Configuración en el menú, ve a la página General e intenta ajustar las siguientes opciones: - Active la opción "Reducir las animaciones de la interfaz de usuario" en la sección Apariencia. - Desactiva "Usar efecto borroso en modales" en la sección Apariencia" - Activa "Usar la tipografía por defecto del sistema" en la sección Apariencia - Activa "Usar emojis del sistema operativo nativo" en la sección Apariencia Ten en cuenta que la activación de los siguientes ajustes mejorará el rendimiento del cliente, pero a costa de impedir el funcionamiento de algunas funciones. - Desactiva la opción "Desactivar secuencias de comandos en las páginas" en la sección Comportamiento. - Activa la opción "Desactivar MFM animado" en la sección Apariencia. 2. Ajustes del navegador - Activa la aceleración por hardware en tus ajustes del navegador - Comprueba los ajustes de add-ons y extensiones de tu navegador para desactivarlos - Comprueba otros ajustes de tu navegador 3.Otros - Comprueba los ajustes del sistema en tu PC o smartphone ## Algunas partes de Misskey Web se muestran incorrectamente (fondo transparente, etc.) Cuando se realizan cambios en la interfaz de usuario debido a una actualización, el sistema de caché del tema puede hacer que la interfaz de usuario se muestre incorrectamente. En este caso, basta con hacer clic en «Borrar caché» en la sección de configuración de Misskey Web. :::warning El botón Borrar Caché se encuentra en la sección Configuración dentro de Misskey Web.No borres la caché del navegador. ::: ## Los indicadores de notificaciones, antenas, etc. no desaparecen Una luz parpadeante indica contenido no leído.En los casos en los que esta luz no se apaga, normalmente hay contenido no leído que ha sido desplazado por el nuevo contenido entrante. Si crees haber leído todo el contenido, pero la luz sigue sin desaparecer (probablemente se trate de un error), puedes marcar a la fuerza todo el contenido como leído a través de la configuración de usuario. ## El botón de renotar está bloqueado Las notas sólo para seguidores y las directas no pueden renotarse. ## Algunos componentes de Misskey Web no están disponibles Es probable que los complementos o extensiones como los bloqueadores de anuncios instalados en tu navegador web estén causando el problema.Por favor, comprueba estos ajustes o desactívalos. ## Algunas partes de Misskey Web no se han traducido En la mayoría de los casos, la parte simplemente no está traducida todavía. No se trata de un fallo.Por favor, espera un poco hasta que se complete la traducción. Si estás interesado, tú también puedes [participar en la traducción de Misskey](../../about-misskey/#テキストを翻訳する). ================================================ FILE: content/es/docs/2.for-users/4.resources/_dir.yml ================================================ title: "Recursos" description: "Esta sección presenta los conocimientos no funcionales y la forma de abordar los problemas." ================================================ FILE: content/es/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Aquí tienes algunas aplicaciones para usar con Misskey.' --- # Aplicaciones Estas son algunas aplicaciones para utilizar Misskey. Cuando acceda a un servidor Misskey desde su navegador, verá una línea de tiempo.Lo que ves en este caso es Misskey Web, el único cliente oficial de Misskey.Se trata de una aplicación basada en navegador que también admite PWA, por lo que puede ejecutarse como una aplicación nativa de SO móvil.Para más información, consulte [aquí](/docs/for-users/stepped-guides/how-to-use-pwa/).Ten en cuenta que el proyecto Misskey no desarrolla aplicaciones nativas. Una vez que te hayas acostumbrado a Misskey Web, puede que quieras probar aplicaciones no oficiales desarrolladas por voluntarios. A continuación te mostramos las aplicaciones más utilizadas (por orden alfabético).Estas son las aplicaciones más utilizadas (por orden alfabético). - **Aria** (iOS, Mac, Android, Windows, Linux): Accede a la mayoría de las funciones de Misskey.Una interfaz de usuario muy similar al cliente web oficial de Misskey.[Sitio Web Oficial](https://misskey.io/@aria_app).[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880).[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria).[Código Fuente](https://github.com/poppingmoon/aria) - **Flare** (iOS, Mac, Android, Windows): Permite guardar el historial de navegación y cuenta con un lector RSS.Compatible con Mastodon, Bluesky y X, lo que permite consolidar sus cronologías en un único feed.[Sitio web oficial](https://flareapp.moe).[TestFlight](https://testflight.apple.com/join/iYP7QZME).[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare).[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357).[Código fuente](https://github.com/DimensionDev/Flare). - **Milktea** (Android): Accede rápidamente a líneas temporales y resultados de búsquedas específicas desde las pestañas.También puedes poner apodos a otros usuarios.[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient).[Código Fuente](https://github.com/pantasystem/Milktea). - **Miria** (iOS, Mac, Android, Windows, Linux): Entre sus características se incluyen la posibilidad de configurar emojis personalizados para las pestañas y funciones únicas diseñadas específicamente para Misskey, como la finalización de entradas MFM.[ Web Oficial](https://shiosyakeyakini.info/miria_web/index.html).[App Store](https://apps.apple.com/app/miria/id6449201469).[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria).[Código fuente](https://github.com/shiosyakeyakini-info/miria). - **MissRirica** (iOS, Android): iOS/Android cliente para Misskey.La mayor parte de Misskey Web (v13) Ui y notificaciones push están disponibles.[Código fuente](https://github.com/fruitriin/missRirica-client). - **Misscat** (iOS): Se ha desarrollado con el objetivo de ofrecer una operabilidad intuitiva adecuada para smartphones.[ Web Oficial](https://yuiga.dev/misscat/).[Código Fuente](https://github.com/YuigaWada/MissCat). - **SocialHub** (iOS): una aplicación de pago compatible con Misskey, Mastodon, Bluesky, Slack y Tumblr.[ Web Oficial](https://uakihir0.github.io/socialhub/).[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582). - **ZonePane** (Android): Permite crear pestañas para líneas de tiempo, listas y canales.Excelente gestión de la lectura.La versión Misskey de la aplicación de Twitter TwitPane también es compatible con Mastodon y Bluesky. [Google Play](https://play.google.com/store/apps/details?id=com.zonepane). - **TootRain** (Mac): Una aplicación para Mac que muestra las publicaciones de las cronologías y listas en tiempo real, como si fueran comentarios, directamente en tu pantalla. [Official website](https://b123400.net/tootrain), [Source code](https://github.com/b123400/TootRain). Sin embargo, como las características de Misskey se actualizan con frecuencia, puede haber un retraso en la adición de las últimas características.Si no tienes preferencias particulares, te recomendamos que utilices Misskey Web.Si no tienes ninguna preferencia en particular, te recomendamos que utilices Misskey Web. ================================================ FILE: content/es/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Este documento contiene las preguntas más frecuentes sobre el uso de Misskey.' --- # Preguntas Frecuentes Este documento contiene las preguntas más frecuentes sobre el uso de Misskey.
Para las preguntas más frecuentes sobre el proyecto Misskey en sí, consulte [este enlace](../../about-misskey#frequently-asked-questions). ## ¿Hay aplicaciones disponibles para Android/iOS? El proyecto Misskey no desarrolla aplicaciones nativas para estos sistemas operativos móviles, pero hay varias aplicaciones de terceros disponibles.Para más información, por favor ve a [este enlace](./apps).
Sin embargo, como las aplicaciones de terceros pueden quedarse atrás en el soporte a las últimas características de Misskey, te recomendamos que utilices el cliente oficial basado en la web llamado Misskey Web a menos que tengas preferencias específicas.Además, Misskey Web es compatible con Progressive Web App (PWA), lo que le permite comportarse como una aplicación nativa.Para más información, consulta [aquí](/docs/for-users/stepped-guides/how-to-use-pwa/). ## ¿Puedo usar Misskey con aplicaciones compatibles con Mastodon? Como Misskey no es compatible con la API de Mastodon, salvo algunas excepciones, el uso de clientes Mastodon para iniciar sesión en Misskey no es posible.
En su lugar, utiliza el cliente web oficial de Misskey. ## ¿Es misskey.io el servidor oficial del proyecto Misskey? No, misskey.io no es el servidor oficial del proyecto Misskey y no está afiliado con él.misskey.io es el servidor más grande que ejecuta Misskey, ofreciendo una plataforma de propósito general, haciendo fácil el registro sin temática específica alguna. ## ¿Hay alguna relación con MisskeyHQ Inc.? MisskeyHQ es la empresa que opera misskey.io.Por lo tanto no tiene relación directa con el desarrollo del proyecto Misskey. Sin embargo, syuilo, el jefe de proyecto de Misskey, también participa como directivo en MisskeyHQ Inc, fomentando la cooperación para hacer avanzar Misskey. ## ¿Cuál es el origen del nombre "Misskey"? El nombre "Misskey" se inspiró en la letra de la canción "Brain Diver" de May'n, que el desarrollador principal syuilo estaba escuchando casualmente cuando pensó en el nombre. ## ¿Cómo puedo seguir a otros usuarios de otros servidores Misskey,Pleroma o Mastodon? Selecciona "Buscar" desde el menú e introduce el nombre de usuario completo como en el formato especificado abajo.Un nombre de usuario completo incluye un nombre de usuario y el nombre de host del servidor al que pertenece el usuario.Este formato es común entre plataformas ActivityPub como Misskey, Mastodon y Pleroma.
El formato de un nombre de usuario completo es el siguiente: `username@hostname.example`Por ejemplo: `syuilo@misskey.io` Aunque este formato no es universal en todo el software distribuido, permite seguir a usuarios de otros servidores o plataformas implementadas con software descentralizado diferente. ## ¿Cómo elimino una Renota? Para anular una renota, pulsa "..." junto a la marca de tiempo de la renota y seleccione "Quitar renota".
Para más información sobre las Renotas mira [aquí](../features/note/#renote). ## ¿Cómo puedo deshabilitar la vista previa de las URL? El lenguaje de marcado para Misskey (MFM) incluye sintaxis para deshabilitar la vista previa de las URL.Para más detalles, consulta la hoja de trucos de MFM,.A la cual puedes acceder introduciendo la siguiente dirección en tu servidor:`https://nombredetuservidor/mfm-cheat-sheet`. ## ¿Cómo puedo añadir, editar o borrar emojis personalizados? Solo los administradores del servidor pueden añadir,editar o borrar emojis personalizados.Por favor contacta al administrador de tu servidor, si deseas hacer esto. ## Quiero desarrollar un bot. Cualquiera puede desarrollar un bot para Misskey usando la API de Misskey.Para más información, consulta [aquí](../../for-developers/api/). ## ¿Qué servicio usa la función de traducción? Usamos [DeepL](https://www.deepl.com/), el servicio de traducción automática. ## Quiero informarme sobre los servicios 'Misskey' es el nombre de un software y un proyecto para crear servicios de microblogging web.Por lo tanto, “Misskey” en sí no es un servicio web.
Además, nuestro Proyecto Misskey no opera ni tiene jurisdicción sobre ningún servicio web, por lo que cualquier consulta sobre servicios web que utilicen Misskey deberá dirigirse al contacto del servicio web correspondiente.
Ten en cuenta que algunas personas pueden utilizar el término “Misskey” para referirse a “servicios web construidos utilizando Misskey”. ## ¿Cómo se utilizará la ayuda económica? Se utilizará para el desarrollo continuo de Misskey. El uso principal específico es el salario (remuneración) de los desarrolladores a tiempo completo (actualmente @syuilo). El proyecto Misskey se sustenta gracias a la presencia de desarrolladores a tiempo completo. Además, se destina al pago de remuneraciones por trabajos subcontratados y al pago de prestaciones irregulares a los desarrolladores que no trabajan a tiempo completo. Además, aunque en proporción es menor, los gastos de representación de las partes interesadas, los gastos de apoyo a otros OSS, los gastos de mantenimiento del dominio, las tarifas de uso de diversos programas y servicios de software destinados al desarrollo, los gastos de adquisición de materiales (libros, etc.), los gastos de equipamiento (dispositivos para la verificación del funcionamiento, etc.), los gastos de mantenimiento de derechos como marcas registradas, los honorarios de los asesores fiscales, los gastos relacionados con los productos promocionales (tarjetas Misskey, etc.) (costes de producción, gastos de envío, etc.), gastos de pedido de activos (logotipos, iconos, ilustraciones, sonidos, etc.), gastos de uso de oficinas virtuales, etc. Actualmente no estamos realizando ninguna campaña publicitaria, por lo que no se generan gastos de publicidad. Por favor, ten en cuenta que, en principio, las donaciones recibidas se consideran "ingresos" a efectos fiscales, por lo que están sujetas a impuestos por parte del receptor. Además, el receptor debe pagar las comisiones por el servicio utilizado para la transferencia, por lo que no se puede utilizar el importe total de las donaciones recibidas. ## ¿Tengo que registrarme en el Ministerio de Asuntos Internos y Comunicaciones de Japón si creo un servidor? (Para servidores en Japón) ### Respuesta corta **Sí**, si operas por **fines comerciales**.En caso contrario, **no**. ### Respuesta larga La definición de "operador", según [documentos del Ministerio de Asuntos Internos y Comunicaciones](https://www.soumu.go.jp/main_content/000477428.pdf), es "una persona que pretende obtener un beneficio mediante la prestación de servicios y el cobro de tasas como compensación por la prestación de dichos servicios".Por lo tanto, a menos que explotes el servidor con fines lucrativos como empresa, el registro no es necesario.Así, aunque haya ingresos procedentes de fuentes como donaciones o publicidad, siempre que se utilicen exclusivamente para gastos de funcionamiento, no entran en la categoría de operadores que requieren registro.(confirmado con el Ministerio de Asuntos Internos y Comunicaciones).
Para más detalles, consulte el [Manual de Entrada para Empresas de Telecomunicaciones] del Ministerio de Asuntos Internos y Comunicaciones (https://www.soumu.go.jp/main_content/000477428.pdf) o póngase en contacto directamente con el ministerio. ## ¿Requiere la función DM una notificación de negocio de telecomunicaciones? ["He creado un servidor, ¿tengo que presentar una notificación para una empresa de telecomunicaciones?Como se explica en"](#サーバーを作成しましたが電気通信事業の届出は必要ですか) Independientemente de la funcionalidad del servicio que explote, si no entra en la categoría de «intento de generar ingresos mediante el cobro de tasas», no se le considera un operador comercial que deba presentar una notificación. ## ¿Puedo liberar servicios que contengan el nombre "Misskey"? "Misskey" es una marca registrada (en Japón) por el Proyecto Misskey, pero puedes publicar servicios con el nombre "Misskey" (por ejemplo, Misskey Tools) sin problemas. Además, no hay planes para cobrar honorarios por tal uso. ================================================ FILE: content/es/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Un glosario de términos relacionados con Misskey.' --- # Glosario Un glosario de términos relacionados con Misskey. ## Acct El nombre de usuario de ActivityPub completo, con el formato `@nombreusuario@host`.Utilizado cuando se está mencionando a un usuario. ## ActivityPub Un protocolo abierto y estandarizado utilizado para crear una red social federada descentralizada conocida como Fediverso.Las instancias se conectan entre sí mediante este protocolo e intercambian datos como contenidos y notificaciones.Es el protocolo principal del Fediverso. ## AiScript Un lenguaje de scripting que corre sobre Javascript y que puede ser usado con Misskey.Para más información, consulta [aquí.](https://aiscript-dev.github.io/) ## API Una interfaz para que los programas informáticos interactúen con Misskey.Para más información, consulta [aquí.](../../for-developers/api) ## Bot Una cuenta operada por un programa. ## CW Advertencia de Contenido Abreviatura de Advertencia de Contenido (Content Warning).Una función para ocultar el contenido de una nota a menos que un usuario solicite explícitamente que se muestre.Se utiliza principalmente para ocultar el contenido de notas largas o para evitar que se publiquen spoilers.Para más información, consulta [aquí.](../features/note/#cw) ## Fediverso Una palabra compuesta de "federación" y "universo."Una red social descentralizada y federada formada por servidores que ejecutan diversos programas descentralizados, entre ellos Misskey.Otros programas descentralizados, además de Misskey, son Mastodon, Pleroma y Pixelfed. ## GTL Abreviatura para "Global TimeLine".Mira la documentación de las [líneas del tiempo](../features/timeline) ## HTL Abreviatura para "Home TimeLine".Mira la documentación de las [líneas del tiempo](../features/timeline) ## LTL Abreviatura para "Local TimeLine".Mira la documentación de las [líneas del tiempo](../features/timeline) ## MFM Abreviatura de Markup language for Misskey. El lenguaje de marcado utilizado en Misskey.Para más información, consulta [aquí.](../features/mfm) ## Misskey Web El cliente web oficial de Misskey(interfaz).
Esta es la aplicación que se ve al visualizar Misskey desde un navegador web en tu PC o smartphone. ## NSFW Abreviatura de Not Safe for Work.Una función para etiquetar una imagen como "sensible" (NSFW) y ocultarla a menos que un usuario solicite explícitamente que se muestre. ## Renota El acto de citar una nota existente, compartir una nota existente o la nota creada como resultado de estos actos.Para más información, consulta [aquí.](../features/note/#renote) ## STL Abreviatura para "Social TimeLine".Mira la documentación de las [líneas del tiempo](../features/timeline) ## Ai o Ai-Chan La mascota oficial de Misskey.Para más información, consulta [aquí.](https://xn--931a.moe/) ## Servidores (Servidor o también llamado Instancia)Entidad que proporciona el servicio Misskey a los usuarios. ## Emojis personalizados Pictogramas creados independientemente por los administradores y usuarios de cada servidor Misskey.Los pictogramas normales que no son pictogramas personalizados se denominan por separado «pictogramas Unicode».Para más información, consulta [aquí.](../features/custom-emoji) ## Panel de control La página de configuración de una instancia de Misskey. ## Cuenta del sistema Una cuenta especial utilizada por el servidor Misskey, por ejemplo cuando se interactúa con servidores externos.Está integrado en el servidor de Misskey y es operado automáticamente por el servidor según sea necesario. ## Suspensión o Congelación Se refiere a un estado en el que la cuenta está desactivada. ## Drive El gestor de archivos para los archivos cargados por el usuario en Misskey, como imágenes y música.Para más información, consulta [aquí.](../features/drive) ## Notas Son los mensajes publicados por los usuarios de Misskey.Puede incluir diversos contenidos propios de Misskey, como imágenes, música y otros archivos, encuestas, etc.Para más información, consulta [aquí.](../features/note) ## Cuenta proxy La cuenta proxy es una cuenta de servicio utilizada por Misskey para recuperar mensajes de instancias remotas en circunstancias especiales.Si un usuario remoto no es seguido por nadie en la instancia local, la cuenta proxy puede seguir al usuario remoto para permitirle continuar enviando notas a la instancia local. ## Misskero (En inglés Misskist) Es alguien que tiene una cuenta de Misskey.Especialmente los usuarios avanzados. ## Moderador Usuarios con autoridad para gestionar la comunidad de un servidor desactivando cuentas de spam, silenciando usuarios, borrando mensajes inapropiados, etc.En la mayoría de los casos, los moderadores se reclutan entre los usuarios de la instancia. ## Remoto Usuarios en otros servidoresTambién se utiliza como adjetivo en términos como "usuario remoto".Es lo opuesto a local. ## Federación Una colección de instancias que intercambian datos como contenidos y notificaciones entre sí, o un miembro de la misma. ## Local Tu propia instancia.También se utiliza como adjetivo en términos como "usuarios locales" o "cronología local".Es lo opuesto a "Remoto". ================================================ FILE: content/es/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hub Misskey Hub es el sitio web oficial del Proyecto Misskey, que proporciona conocimientos y otra documentación sobre Misskey, un blog de desarrollo, y una tienda de plugins. Su objetivo es ser "el lugar donde estar para todo lo relacionado con Misskey". Misskey Hub es también [código abierto y está disponible públicamente. :::tip Misskey Hub es un sitio web estático construido con Nuxt. ::: ## Contribuir a Misskey Hub Añadir documentación adicional y traducciones es bienvenido. ================================================ FILE: content/es/docs/2.for-users/4.resources/self-xss.md ================================================ # Ataque Self-XSS ![](/img/docs/for-users/resources/self-xss/console_warn.png) ¿Has llegado a esta página después de seguir las instrucciones de alguien usando Misskey y ver una pantalla como la de arriba? **Puede que hayas sido engañado por un atacante malintencionado.** A menos que escribas el contenido que se te indique (muy probablemente un programa), no se enviará ninguna información al atacante.**Por favor, deja de hacer lo que estás haciendo inmediatamente.** La pantalla que estás viendo se llama "consola", una herramienta que los desarrolladores utilizan para comprobar el código y corregir errores. **Esta pantalla no es necesaria para el uso habitual.** ## Más detalles En un ataque Self-XSS, un atacante engaña a un usuario para que pegue código malicioso en las herramientas de desarrollo del navegador.A menudo lo hacen con afirmaciones tentadoras como: - Desbloquear funciones o ventajas ocultas - Probar este código por motivos de seguridad - Hackear la web para conseguir puntos extra Si te convencen para que ejecutes este código, realizarás acciones que el atacante pretendía. A diferencia de lo que podría imaginarse como un "ciberataque" típico, los ataques Self-XSS obtienen datos confidenciales engañando a los usuarios para que utilicen aplicaciones legítimas. Esto significa que, además de las medidas de seguridad del sistema, es crucial que los usuarios se mantengan alerta frente a estos trucos. ================================================ FILE: content/es/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # Guías Paso a Paso En esta sección, explicaremos algunas cosas complicadas en Misskey resumiéndolas en pequeños pasos. :::warning Esta sección está en fase beta.Los contenidos pueden estar incompletos o tener errores. ::: ================================================ FILE: content/es/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "Guías Paso a Paso" description: "Esta página explica las operaciones de Misskey paso a paso en detalle. ¡Consulta esta sección cuando te resulte difícil utilizar Misskey!" ================================================ FILE: content/es/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "Cómo borrar tu cuenta" description: "Esta página explica cómo eliminar tu cuenta en un servidor Misskey." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Algunos usuarios pueden darse cuenta de que ya no necesitan sus cuentas Misskey y pueden desear borrarlas. En esta página, proporcionaremos información sobre: - Puntos a tener en cuenta al eliminar una cuenta - Cómo eliminar una cuenta :::danger Como explicaremos con más detalle más adelante, **borrar una cuenta afectará incluso cuando vuelvas a utilizar Misskey (es decir, cuando te vuelvas a registrar).** Por favor, ten mucho cuidado cuando borres tu cuenta. ::: ## Puntos a tener en cuenta al eliminar una cuenta Cuando elimines tu cuenta, ocurrirá lo siguiente: - Ya no podrás ser capaz de iniciar sesión en tu cuenta. - La eliminación de los datos tardará algún tiempo. - No podrás volver a utilizar el mismo ID, es decir, el mismo nombre de usuario. Vamos a explicar cada punto. ### Ya no podrás iniciar sesión en tu cuenta Una vez que elimines tu cuenta, ya no podrás iniciar sesión en ella. **No existe ninguna función de recuperación en caso de borrado accidental.** Ten en cuenta esto. ### La eliminación de datos llevará algún tiempo La eliminación de datos es una operación que consume muchos recursos. Por lo tanto, para evitar interrumpir el uso de otros usuarios, la eliminación de datos llevará algún tiempo. Ten en cuenta que no todos los datos se borrarán inmediatamente al eliminar la cuenta. ### No se puede volver a utilizar el mismo ID (Nombre de usuario) Debido a la limitación técnica de la federación, en la actualidad, una vez que se obtiene un ID (la parte antes del segundo `@` en `@someone@misskey.example.com`), **no se puede volver a utilizar.** **No podrás volver a obtener el mismo ID (Nombre de usuario) en el mismo servidor,** así que ten cuidado. --------------- Después de entender todo lo anterior, y si todavía necesitas eliminar tu cuenta, por favor selecciona tu tipo de dispositivo a continuación y procede con la eliminación de la cuenta. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Smartphone" steps: - title: "Abrir Configuración" image: "sp/1.png" description: | Abre Misskey, pulsa el botón «≡» en la parte inferior derecha de la pantalla y, a continuación, pulsa "Configuración" en el menú que aparece. - title: "Pulsa \"Otro\"" image: "sp/2.png" description: | Busque y pulse "Otro" dentro de la categoría de configuración. - title: "Pulsa \"Pedir la eliminación de la cuenta.\"" image: "sp/3.png" description: | Pulsa "Cerrar cuenta" para abrirla y, a continuación, pulse el botón "Solicitar eliminación de cuenta" después de revisar las instrucciones. - title: "Introduce la contraseña" image: "sp/4.png" description: | Introduzca la contraseña para confirmar que inicia la operación peligrosa. - title: "La solicitud del borrado de la cuenta se ha completado" image: "sp/5.png" description: | Cuando aparezca esta pantalla, su solicitud para eliminar su cuenta se habrá completado. Pulse "Aceptar" para cerrar la sesión en el servidor de Misskey. - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "Abrir Configuración" image: "pc/2.png" description: | Abre "Configuración" y haz clic en "Otro", que encontrarás desplazándote un poco hacia abajo. - title: "Pulsa \"Pedir la eliminación de la cuenta.\"" image: "pc/3.png" description: | Pulsa "Cerrar cuenta" para abrirla y, a continuación, pulse el botón "Solicitar eliminación de cuenta" después de revisar las instrucciones. - title: "Introduce la contraseña" image: "pc/4.png" description: | Introduzca la contraseña para confirmar que inicia la operación peligrosa. - title: "La solicitud del borrado de la cuenta se ha completado" image: "pc/5.png" description: | Cuando aparezca esta pantalla, su solicitud para eliminar su cuenta se habrá completado. Pulse "Aceptar" para cerrar la sesión en el servidor de Misskey. ================================================ FILE: content/es/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "Cómo habilitar la Autenticación en Dos Pasos (Contraseña de un solo uso)" description: "Esta guía explica como configurar una contraseña de un solo uso en tu cuenta de Misskey para mejorar la seguridad." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Activar la autenticación de dos pasos puede reducir el riesgo de acceso no autorizado a su cuenta y mejorar la seguridad. A continuación, te presentamos cómo configurar una contraseña de un solo uso. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Smartphone" steps: - title: "Descarga una aplicación de autenticación en dos pasos." description: | Antes de empezar, instala una aplicación para generar contraseñas de un solo uso para la autenticación de dos factores. Aquí tienes algunos ejemplos: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "Abrir Configuración" image: "sp/1.png" description: | Abre Misskey, pulsa el botón «≡» en la parte inferior derecha de la pantalla y, a continuación, pulsa "Configuración" en el menú que aparece. - title: "Pulsa en \"Seguridad\"" image: "sp/2.png" description: | Busque y pulse "Seguridad" dentro de la categoría de configuración. - title: "Pulsa en \"Registrar aplicación autenticadora\"" image: "sp/3.png" description: | Dentro de "Autenticación de doble factor", busca la sección "Aplicación autenticadora" y, a continuación, pulsa "Registrar aplicación autenticadora". - title: "Introduce la contraseña" image: "sp/4.png" description: | Para los ajustes relacionados con la seguridad, introduce la contraseña que utilizas para iniciar sesión en tu cuenta para confirmarla. - title: "Empezar a configurar la aplicación de autenticación" image: "sp/8.png" description: | Se generará un código para configurar la aplicación de autenticación de dos factores. Configúrelo utilizando uno de los siguientes métodos: ### Si configura la aplicación de autenticación en tu dispositivo actual Pulsa el botón "Iniciar aplicación". Si este botón no está disponible, **tocar el código QR iniciará la aplicación. :::tip Si no se inicia, asegúrate de que la aplicación de autenticación de dos factores está correctamente instalada. ::: ### Si configuras la aplicación de autenticación en otro dispositivo Abre la aplicación de autenticación de dos factores en el otro dispositivo y sigue las instrucciones de la aplicación para registrar una nueva contraseña de un solo uso. Escanea el código QR que aparece en la pantalla durante este proceso. - title: "Copia el código generado por la aplicación de autenticación" image: "sp/9.png" description: | Más adelante en la configuración del lado de Misskey, habrá un paso para introducir la contraseña de un solo uso generada por la aplicación de autenticación para confirmar que se ha configurado correctamente. Sigue las instrucciones de la aplicación para recordar o copiar la contraseña de un solo uso. :::warning La contraseña de un solo uso caduca rápidamente (unos 30 segundos), así que ten cuidado. ::: - title: "Introduce la contraseña de un solo uso" image: "sp/6.png" description: | Introduzca la contraseña de un solo uso generada anteriormente y pulse "Continuar". - title: "Descarga los códigos de respaldo" image: "sp/7.png" description: | ** La configuración inicial de la verificación en dos pasos está completada.** Finalmente descarga los "Códigos de recuperación", que pueden ser usados si el segundo factor de autenticación no está disponible :::warning Los códigos de recuperación son el último recurso para acceder a tu cuenta cuando no dispones de contraseñas de un solo uso. Si no tienes estos códigos, no podrás acceder a tu cuenta, así que asegúrate de descargarlos y guardarlos en un lugar seguro. Estos códigos no volverán a aparecer. ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "Descarga una aplicación de autenticación en dos pasos." description: | Antes empezar, instala una aplicación en tu móvil u otro dispositivo para generar una contraseña de un solo uso para la autenticación de dos factores. Aquí tienes un ejemplo: - title: "Abrir Configuración" image: "pc/8.png" description: | Dentro de "Autenticación de doble factor", busca la sección "Aplicación autenticadora" y, a continuación, pulsa "Registrar aplicación autenticadora". - title: "Introduce la contraseña" image: "pc/3.png" description: | Para los ajustes relacionados con la seguridad, introduce la contraseña que utilizas para iniciar sesión en tu cuenta para confirmarla. - title: "Empieza a configurar la aplicación de autenticación." image: "pc/7.png" description: | Se generará un código para configurar la aplicación de autenticación de dos factores. Configúralo utilizando uno de los siguientes métodos. ### Si configuras la aplicación Authenticator en un smartphone (recomendado) Abre la aplicación de autenticación de dos factores en tu smartphone, sigue las instrucciones de la aplicación para registrar una nueva contraseña de un solo uso. Escanea el código QR que aparece en la pantalla durante este proceso. ### Si utilizas una aplicación de autenticación de dos factores en el PC Pulsa el botón «Iniciar aplicación». Si este botón no está disponible, pulsa el código QR para iniciar la aplicación. - title: "Copia el código generado por la aplicación de autenticación" image: "sp/9.png" description: | Más adelante en la configuración del lado de Misskey, habrá un paso para introducir la contraseña de un solo uso generada por la aplicación de autenticación para confirmar que se ha configurado correctamente. Sigue las instrucciones de la aplicación para recordar o copiar la contraseña de un solo uso. :::warning La contraseña de un solo uso caduca rápidamente (unos 30 segundos), así que ten cuidado. ::: - title: "Introduce la contraseña de un solo uso" image: "pc/5.png" description: | Introduzca la contraseña de un solo uso generada anteriormente y pulse "Continuar". - title: "Descarga los códigos de respaldo" image: "pc/6.png" description: | ** La configuración inicial de la verificación en dos pasos está completada.** Finalmente descarga los "Códigos de recuperación", que pueden ser usados si el segundo factor de autenticación no está disponible :::warning Los códigos de recuperación son el último recurso para acceder a tu cuenta cuando no dispones de contraseñas de un solo uso. Si no tienes estos códigos, no podrás acceder a tu cuenta, así que asegúrate de descargarlos y guardarlos en un lugar seguro. Estos códigos no volverán a aparecer. ::: ================================================ FILE: content/es/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Cómo usar Misskey Web como aplicación para móvil" description: "Aprende cómo convertir Misskey en una aplicación web progresiva PWA. Esta es la manera recomendada de usar Misskey en tu teléfono móvil." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Aquí se explica cómo convertir Misskey Web en una aplicación progresiva PWA. Esta es la forma recomendada para utilizar Misskey en tu smartphone. ## ¿Qué es PWA? PWA significa Progressive Web App, Aplicación Web Progresiva, una tecnología que permite que las páginas web sean tratadas como aplicaciones normales. En esta página, explicaremos cómo configurar PWA para cada sistema operativo. Selecciona tu sistema operativo para continuar. guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | Recomendamos utilizar Google Chrome para utilizar PWA en Android. Veamos cómo configurarlo con Google Chrome. steps: - title: "Abre el servidor Misskey que desees convertir en una PWA" image: "android/sp_0.png" description: | Accede al servidor Misskey que quieras instalar en tu dispositivo e inicia sesión. - title: "Abre configuración" image: "android/sp_1.png" description: | Pulsa el botón ︙ en la esquina superior derecha mientras cualquier página del servidor Misskey está abierta. - title: "Pulsa \"Añadir a la pantalla de inicio\" o \"Instalar App\"" image: "android/sp_2.png" description: | Pulsa "Añadir a la pantalla de inicio" o "Instalar aplicación" en el menú y sigue las instrucciones del cuadro de diálogo. - title: "Comprueba tu pantalla de inicio" image: "android/sp_3.png" description: | Tras unos instantes, el icono del servidor o un icono de Misskey se añadirá a la pantalla de inicio. Cuando se inicie desde este icono, Misskey se iniciará en modo aplicación. - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | Usa Safari cuando utilices la PWA en iOS o iPadOS. Antes de empezar, asegúrese de que el sistema operativo de su dispositivo está actualizado. Si no lo está, por favor actualice su sistema siguiendo las instrucciones [aquí](https://support.apple.com/en-us/ios/update). steps: - title: "Abre el servidor Misskey que desees convertir en una PWA" image: "ios/sp_0.png" description: | Accede al servidor Misskey que quieras instalar en tu dispositivo e inicia sesión. - title: "Pulse el botón \"Compartir\" y abre el menú" image: "ios/sp_1.png" description: | Pulsa el botón ︙ en la esquina superior derecha mientras cualquier página del servidor Misskey está abierta. - title: "Pulsa \"Añadir a pantalla de inicio\"." image: "ios/sp_2.png" description: | Desplázate por la lista de opciones y pulsa Añadir a la pantalla de inicio. Después de esto, es posible que se te pida que permitas el envío de notificaciones, así que sigue las instrucciones en pantalla y permítelas si es necesario. Si no aparece "Añadir a pantalla de inicio", es posible que el elemento de configuración esté oculto. Para que aparezca, desplázate hasta el final de la lista, ve a "Editar acciones" y añade el elemento "Añadir a la pantalla de inicio". Para más información, consulta [la página de soporte de Apple](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios). - title: "Comprueba tu pantalla de inicio" image: "ios/sp_3.png" description: | Tras unos instantes, el icono del servidor o un icono de Misskey se añadirá a la pantalla de inicio. Cuando se inicie desde este icono, Misskey se iniciará en modo aplicación. ================================================ FILE: content/es/docs/2.for-users/_dir.yml ================================================ title: "Para usuarios de Misskey" ================================================ FILE: content/es/docs/3.for-admin/_dir.yml ================================================ title: "Para operadores de servidores" description: "Guías y recursos sobre cómo crear un servidor y consejos útiles para su funcionamiento." ================================================ FILE: content/es/docs/3.for-admin/features/1.index.md ================================================ --- description: "Funciones para administradores de servidores." --- # Características del Servidor Misskey ofrece una variedad de características para ayudarle a manejar tu servidor. ================================================ FILE: content/es/docs/3.for-admin/features/abuse-report.md ================================================ # Reportes Misskey puede recibir informes sobre el contenido en el servidor de los usuarios dentro y fuera del servidor. El informe se entrega en [panel de control > informe] (x-mi-web://admin/abuses).**Compruébalo con frecuencia.** ## Tramitación de informes. Para informar, - Usuarios a denunciar. - Contenido reportado - Reportador La información incluye. :::tip El informe puede ser reenviado desde un servidor remoto.En este caso, el invocador puede ser la cuenta del sistema (`@instance.actor`) para ese servidor. ::: Si es necesario, se puede dejar una nota de moderación, que sólo pueden ver las cuentas con derechos de administrador y moderador, para anotar el estado del informe. Una vez que haya atendido el reporte, márquelo como completa. - Resuelto (aprobado) si el contenido es legítimo y se ha tomado alguna medida, por ejemplo - Resuelto (denegado)", por ejemplo, si el contenido es fraudulento y no se ha tomado ninguna medida la respuesta puede terminarse distinguiendo el estado de la resolución en función del resultado de la acción emprendida. ## Reenviar a la instancia remota En el caso de un informe relativo a un usuario remoto, el informe puede reenviarse al servidor en cuestión.Al reenviar un informe, la persona que llama se reenvía en forma de cuenta anónima del sistema (`@instance.actor`). ## Notificación del informe. Puede recibir una notificación de que se ha realizado un informe mediante un webhook o una notificación por correo electrónico.Abra [Panel de control > Informes] (x-mi-web://admin/abuses) y vaya a 'Configuración de notificaciones'. ================================================ FILE: content/es/docs/3.for-admin/features/announcement.md ================================================ # Avisos Los avisos son una de las funciones disponibles en Misskey. Utilizando la función de avisos, puedes publicar avisos en todo el servidor para los usuarios, así como enviar mensajes desde el servidor a usuarios individuales. :::warning Un gran número de avisos activos puede causar una mala experiencia de usuario, debido a las excesivas solicitudes de confirmación, especialmente para los nuevos usuarios.Deben considerarse las siguientes opciones: - Crear un aviso con la opción "Sólo usuarios existentes" activada - Crear un aviso con la opción "no notificar" activada - Archivar las notificaciones cerradas ::: ## Estilo de visualización Puede seleccionar entre los siguientes tipos de formatos de visualización. - **Normal** ... Los avisos se publicarán en la página de Anuncios. - **Banner** ... Además de aparecer en la página de anuncios, aparecerá un banner en la parte superior de la pantalla del usuario. - **Diálogo** Además de publicarse en la página de anuncios, también aparecerá como diálogo modal cuando el usuario abra el sitio. - Mostrar dos o más notificaciones en formato diálogo a la vez puede impactar en la experiencia de usuario de forma significativa, úsalos con cuidado. ## Creación de avisos ### Aviso general 1. Accede al [Panel de control > Anuncios] (x-mi-web://admin/anuncios) con una cuenta con derechos de administrador o moderador. 2. Haz clic en el botón "Añadir" para añadir un nuevo elemento de anuncio. 3. Edita el contenido y haz clic en "Guardar" para publicar el anuncio. ### Avisos individuales a los usuarios 1. Abre la página de moderación del usuario al que deseas notificar. - Abre la página de perfil del usuario con una cuenta que tenga derechos de administrador o moderador y haz clic en el botón "Seguir" situado junto al icono...Haga clic en "Moderación" y luego en "Moderación". - Ve a [Panel de control > Usuarios] (x-mi-web://admin/users) con una cuenta con derechos de administrador o moderador, busca su cuenta y haga clic en 2. Haz clic en "Avisos" en la pestaña superior. 3. Al hacer clic en el botón "+" aparece el cuadro de diálogo Añadir nueva notificación. 4. Edita el contenido y haz clic en "Guardar" para enviar la notificación al usuario. ================================================ FILE: content/es/docs/3.for-admin/features/cli.md ================================================ # comandos de administrador A partir de la versión 2025.8.0, los comandos de administración del servidor estarán disponibles en Misskey. Disponible en el formato «pnpm cli ». - `reset-captcha`: restablece la configuración del CAPTCHA. ================================================ FILE: content/es/docs/3.for-admin/features/federation.md ================================================ # Federación Como plataforma descentralizada, Misskey soporta federación ActivityPub por defecto, pero la federación pueden ser limitadas o desactivadas dependiendo de la política de funcionamiento del servidor y otros factores. :::tip La federación está activada por defecto, por lo que no es necesario configurarla de ninguna manera particular en circunstancias normales (cuando se utiliza en estado de federación). ::: ## Configuración Puede configurarse en la sección "Federación" del [Panel de control > General] (x-mi-web://admin/settings). ### Todo Federación con todos los servidores (excluyendo servidores bloqueados, etc.).Esta es la opción por defecto. ### Especificar Host Sólo se federa con servidores específicos (lista blanca).Introduzca los nombres de host de los servidores que pueden federarse, separados por nuevas líneas, en "Servidores que pueden federarse". ### Ninguno No hay federación con otros servidores.Se omiten algunas pantallas y elementos de configuración relacionados con la federación. ================================================ FILE: content/es/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTT es una de las funciones de servidor disponibles en Misskey. Cuando se activa, el rendimiento de la recuperación de varias líneas de tiempo puede mejorar significativamente y la carga de la base de datos puede reducirse.Sin embargo, el uso de memoria en Redis aumentará.Puede desactivarse si la capacidad de memoria del servidor es baja o si el funcionamiento es inestable. Puede configurar los ajustes a través de [Panel de control > Rendimiento] (x-mi-web://admin/performance). ## Reenvío a la base de datos - Si está activada, se realiza un proceso alternativo que consulta adicionalmente la base de datos si la línea de tiempo no está almacenada en caché. - Deshabilitarlo reduce aún más la carga del servidor al no realizar el proceso fallback, pero limita el alcance de la recuperación de líneas temporales. ## Plazos en los que se puede aplicar el ITF - Línea de tiempo de inicio - Línea local - Linea del tiempo social - Listas de usuario ================================================ FILE: content/es/docs/3.for-admin/features/managing-emojis.md ================================================ # Administrar emojis personalizados :::warning Esta documentación está actualmente en fase de confirmación.Es posible que parte de la información no esté actualizada, por lo que le rogamos tenga cuidado al consultarla. ::: Los administradores o moderadores pueden gestionar los emoji personalizados accediendo a la configuración de la instancia y, a continuación, al submenú de emoji personalizados. Por defecto verás una lista de los emoji instalados localmente. Al principio esta lista estará vacía, pero puedes añadir emoji personalizados de diferentes maneras. ## Copiar Emoji de otra Instancia Los emoji pueden copiarse fácilmente de otra instancia. Para ello, cambia a la pestaña "remoto" en la configuración de emoji personalizados.Puedes buscar emoji por su nombre y/o por el host del que proceden. Cuando hayas encontrado el emoji que deseas, haz clic en él para abrir un pequeño menú que te permitirá importarlo. Ten en cuenta que los emoji pueden estar sujetos a derechos de autor y eres responsable de comprobar si puedes utilizar legalmente otro emoji. ## Importar Emoji Individualmente Si tienes un archivo de imagen que te gustaría convertir en un emoji personalizado, puedes importar la imagen como emoji. :::danger Cuando importas el emoji desde tu Drive el archivo permanecerá dentro de tu Drive. Misskey no hace una copia de este archivo por lo que si lo borras, el emoji se romperá. ::: El emoji se añadirá a la instancia y luego podrás editarlo o eliminarlo como de costumbre. ## Importación Masiva Los emojis se pueden importar a granel como archivos ZIP empaquetados con un formato especial. Esta capacidad se puede encontrar en el menú de tres puntos en la esquina superior derecha del menú personalizado emoji. :::warning La importación masiva de emoji puede sobrescribir los emoji existentes o estropear tu instancia. Asegúrate de importar solo emoji de fuentes fiables, idealmente solo los que hayas exportado tú mismo. ::: ### Formato Emoji Empaquetado En el nivel superior hay un archivo llamado "meta.json" que contiene información sobre los emojis contenidos en el archivo empaquetado. Una definición de tipo para este fichero tendría este aspecto, donde `Meta` es la estructura de todo el fichero. ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` Actualmente, los campos de `Meta` no se utilizan ni se comprueban al importar emoji, excepto el campo `emojis`. Para cada 'Emoji': - `downloaded`: debe ser siempre true.Si el campo falta o no es true, el emoji no se importará. - `fileName`: nombre del archivo de imagen dentro del archivo empaquetado. - `emoji`: datos asociados al emoji tal y como estaban almacenados en la base de datos.Actualmente se utilizan los siguientes: - `name`: nombre del emoji para el usuario,, ej. `blobfox` si un usuario debe escribir `:blobfox:` para obtener el emoji. Si existe un emoji anterior con el mismo nombre, **se sobrescribirá!** - `category`: categoría del emoji - `aliases`: lista de cadena de caracteres que deben añadirse como alias.La interfaz de administración las denomina "etiquetas (en inglés: tags)". ## Editando y Borrando Emojis Las propiedades de un emoji se pueden editar haciendo clic en él en la lista de emojis locales. Cuando hagas clic en un emoji personalizado, se abrirá un cuadro de diálogo para editar sus propiedades. Este diálogo también te permitirá eliminar un emoji. :::danger Cuando eliminas un emoji personalizado, las notas antiguas que lo contengan seguirán teniendo el nombre de texto del emoji. El emoji ya no se mostrará correctamente. ::: Ten en cuenta que los emoji remotos no se pueden editar ni borrar. Cada emoji puede tener un nombre, una categoría y varias etiquetas. La categoría se utiliza para estructurar el selector de emoji. Mientras tanto, las etiquetas se pueden utilizar como nombres alternativos con los que se puede encontrar el emoji al buscarlo en el selector de emoji. Cuando termine de editar, guarde los cambios haciendo clic en la marca de verificación de la esquina superior derecha del cuadro de diálogo. ### Edición masiva Los emoji pueden editarse en bloque marcando la casilla situada debajo del campo de búsqueda. Con esta opción activada, al hacer clic en un emoji, éste se seleccionará en lugar de abrirse el cuadro de diálogo de edición. Las opciones de edición se mostrarán como botones debajo de la casilla de verificación. Para volver al comportamiento normal basta con volver a desmarcar la casilla. ================================================ FILE: content/es/docs/3.for-admin/features/role.md ================================================ # Roles Las funciones son atributos asignados a los usuarios que permiten mostrar distintivos y asignar permisos mediante la configuración de políticas. La asignación de funciones puede hacerse manual (asignación) o automáticamente en función de determinadas condiciones. Un usuario puede tener varios roles a la vez. ## Rol base Puedes establecer políticas que se aplicarán por defecto a todos los usuarios en la configuración de la plantilla de roles (rol base). Puede configurar la plantilla de funciones en el panel de control, en "Funciones > Plantilla de funciones". ## Modo de Asignación Puedes configurar un rol para que se asigne manual o automáticamente. - **Manual:**... Asignar y desasignar usuarios manualmente.(Roles manuales) - También puede establecer una duración para el rol. - **Condicional:** Establezca las condiciones para la asignación. Los usuarios que cumplan las condiciones se asignarán automáticamente.(Rol Automático) :::warning En comparación con los roles manuales, los roles condicionales tienen las siguientes limitaciones. - Los roles condicionales no se pueden asignar/desasignar manualmente. - No hay forma de ver una lista de usuarios a los que se ha asignado un rol condicional. ::: ## Permisos Cada rol puede recibir los siguientes permisos básicos. - **Usuario Normal:** No tiene ningún permiso especial. - **Moderador:**... Puede realizar operaciones básicas de moderación - **Administrador:** Puede modificar todos los ajustes de la instancia Se pueden establecer permisos más detallados en Políticas. ## Políticas Las políticas de roles pueden ajustarse para implementar permisos y restricciones de funciones. Las políticas también pueden configurarse para que hereden los valores de la plantilla de roles. ### Prioridad Si se asignan varios roles y se define la misma política con valores diferentes para cada rol, se pueden asignar prioridades a cada política para determinar cuál prevalece. Las políticas con mayor prioridad prevalecen sobre las de menor prioridad. La prioridad se asigna por política, no por rol.Las plantillas de rol no pueden tener prioridad **Si las prioridades de una política son las mismas, prevalece por defecto el valor mayor o más permisivo.** :::tip Por ejemplo, supongamos que a un usuario se le asignan los roles A y B. La política de capacidad de la unidad para el rol A se establece en 500 MB y la política de capacidad de la unidad para el rol B se establece en 300 MB - Si la prioridad para esta política en el rol A es mayor o las prioridades son las mismas, entonces el usuario tendrá 500MB de capacidad en Drive. - Si la prioridad para esta política en el rol B es más alta, entonces el usuario tendrá 300MB de capacidad en Drive. Además, supongamos que el usuario también tiene asignados los roles C y D. El rol C tiene la política "Puede enviar notas públicas" establecida en "No", mientras que el rol D tiene la misma política establecida en "Sí". - Si la prioridad de esta política en el rol D es mayor o las prioridades son las mismas, entonces el usuario tendrá la política establecida en "Sí". - Si la prioridad de esta política en el rol C es mayor, entonces el usuario tendrá la política establecida en "No". ::: ### Usar los valores del rol base Activa esta opción para heredar el valor de la política de la plantilla de roles. ## Creando Roles Se pueden crear nuevos roles desde "Roles" en el Panel de Control. ## Ver, editar o eliminar detalles de roles Los roles pueden editarse en "Roles" en el Panel de Control. ## Asignación y desasignación de funciones a los usuarios Las funciones pueden asignarse a los usuarios en "Moderación > Funciones". También puedes asignar funciones directamente desde el menú del usuario. Puede establecer un periodo de tiempo para asignar el rol. :::tip Los cambios en la asignación de roles pueden tardar algún tiempo en surtir efecto. ::: :::warning Los roles condicionales no pueden asignarse manualmente. ::: ## Comprobación de las políticas de un usuario Las políticas de un usuario pueden consultarse en "Moderación > Visión general > Políticas". ================================================ FILE: content/es/docs/3.for-admin/features/search.md ================================================ # Búsqueda de Notas Misskey tiene una función de búsqueda de notas.La activación permite buscar notas. :::tip La función de búsqueda está desactivada por defecto. Si desea utilizarla, active la opción "Utilizar búsqueda de notas" en el rol. ::: ## Motores de búsqueda compatibles Misskey ofrece varios algoritmos para la búsqueda de notas.Puedes cambiar de uno a otro en función del tamaño de tu servidor y de tus necesidades. - sqlLike ... Búsqueda utilizando las funciones estándar de PostgreSQL.(Predeterminado) - Es fácil de usar, ya que utiliza funciones de base de datos incorporadas. - A medida que aumenta el volumen de datos, es probable que las búsquedas lleven más tiempo. - sqlPgroonga ... Para realizar la búsqueda se utiliza el motor de búsqueda de texto completo [Pgroonga](https://pgroonga.github.io). - Es necesario instalar Pgroonga. - Búsquedas más rápidas que sqlLike. - meilisearch ... Búsqueda mediante el motor de búsqueda de texto completo [Meilisearch](https://www.meilisearch.com). - Meilisearch debe estar instalado. - Búsquedas más rápidas que sqlLike. - Las notas que se buscan en las líneas de tiempo Inicio y Local.Si quieres incluir publicaciones sólo de seguidores, debes usar `sqlLike` o `sqlPgroonga`. Para cambiar el motor de búsqueda, reescriba el `provider` en `fulltextSearch` en el archivo de configuración y reinicie el proceso de Misskey. ## Uso de Pgroonga ### Instalación de Pgroonga :::warning Se recomienda hacer una copia de seguridad de la base de datos antes de realizar cualquier trabajo. Además, detenga a Misskey antes de empezar a trabajar. ::: Este es un ejemplo de instalación de Pgroonga en un entorno Ubuntu 22.04, PostgreSQL 15. Para más información, consulte [Cómo instalar para PostgreSQL oficial](https://pgroonga.github.io/ja/install/ubuntu.html). ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` Si desea utilizar un tokenizador basado en MeCab, haga también lo siguiente ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Al utilizar un entorno Docker En un entorno Docker, puede utilizar una imagen Docker con PGroonga ya instalado. Para utilizar una imagen de PostgreSQL con PGroonga ya instalado, utilice `groonga/pgroonga:latest-alpine-15-slim` en lugar de `postgres:15-alpine`. ### Habilitación de Pgroonga A continuación, inicie sesión en PostgreSQL. ```sh sudo -u postgres psql ``` Una vez conectado, seleccione la base de datos Misskey. ```sh \c "mk1" ``` Habilitar PGroonga. ```sh CREATE EXTENSION pgroonga; ``` Crear un índice para PGroonga. :::warning La indexación lleva tiempo.Asegúrate de disponer de tiempo suficiente ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` Cuando termine, escriba `exit` para salir de Postgresql. ### Cambio de motores de búsqueda Edite el archivo de configuración de Misskey. Cambiar `fulltextSearch` por `sqlPgroonga`. ```sh fulltextSearch: provider: sqlPgroonga ``` Inicie el proceso Misskey y si puede encontrar la nota, ya está. ================================================ FILE: content/es/docs/3.for-admin/install/_dir.yml ================================================ title: "Instalar y Mantener Misskey" description: "Información sobre cómo instalar y posteriormente mantener Misskey." ================================================ FILE: content/es/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Cómo crear un servidor/instancia de Misskey' --- # Creando un servidor de Misskey Gracias por tu interés en crear un servidor Misskey.Hay varias formas de crear un servidor, así que elige una a continuación y lee la guía correspondiente. :::danger ¡No vuelvas a crear la base de datos con el dominio/nombre de host del servidor una vez que hayas empezado a utilizarla! ::: :::warning Si modificas el código fuente de Misskey (incluyendo bifurcaciones (forking)), la licencia AGPLv3 te obliga a revelar dichos cambios.Para más información, consulta [aquí](/docs/for-admin/install/resources/forking/). ::: ## Instalación en Xserver VPS [Xserver VPS](https://vps.xserver.ne.jp/) proporciona una imagen de la aplicación Misskey que facilita la configuración de un servidor Misskey. El proveedor gestiona y mantiene el servidor, para que puedas manejarlo sin necesidad de conocimientos complicados. Para más información, consulta [aquí](https://sns.xserver.ne.jp/misskey.php). ## Lista de Métodos de Instalación ================================================ FILE: content/es/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'Configura un servidor Misskey con facilidad utilizando un servicio de terceros.' --- # Usar un servicio dedicado Es fácil configurar un servidor Misskey utilizando servicios proporcionados por terceros proveedores de alojamiento.A continuación, presentaremos algunos servicios compatibles con Misskey. :::warning Los servicios enumerados aquí son los conocidos por el Proyecto Misskey, pero no representan una lista completa.También ten en cuenta que, a menos que se indique explícitamente lo contrario, el Proyecto Misskey no verifica la funcionalidad de estos servicios o los respalda, independientemente de si el proveedor de servicios patrocina el Proyecto Misskey. **(Para preguntas acerca de estos servicios, por favor pónte en contacto con el proveedor de servicios directamente, no el Proyecto Misskey.)** ::: ## Servicios Especializados para el alojamiento de Misskey Algunos servicios ofrecen herramientas de gestión adaptadas a Misskey, que permiten configurar un servidor sin necesidad de conocimientos técnicos.Con ellos se puede construir un servidor Misskey sin necesidad de conocimientos técnicos particulares. ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/) proporciona Misskey como software SNS disponible.El mantenimiento del servidor y las actualizaciones de versión son gestionados por Xserver, lo que facilita la creación de un servidor Misskey con pocos conocimientos técnicos. ## Imágenes de Aplicación VPS Algunos proveedores de VPS (Servidores Privados Virtuales) ofrecen funciones como "instalación fácil" o "imágenes de aplicaciones" para una configuración rápida.Algunos de ellos son compatibles con Misskey por defecto.Aquí hay algunos ejemplos: ### XServer VPS / Thin VPS [XServer VPS](https://vps.xserver.ne.jp/) y [Shin VPS (シンVPS)](https://www.shin-vps.jp/) proporciona Misskey como una imagen de aplicación. Para más detalles, mira: - XServer: [Usando la Imagen de Aplicación Misskey](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - Shin Vps: [Usando la Imagen de Aplicación Misskey](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) para más información. ### Sakura VPS [Sakura VPS](https://vps.sakura.ad.jp/) proporciona Misskey como un script de inicio. Para más información, mira [Sakura VPS Manual - Startup Script](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html). ================================================ FILE: content/es/docs/3.for-admin/install/guides/bash.md ================================================ # Shell Script de instalación de Misskey v.3.0.0 Este script fue creado para facilitar la instalación de Misskey. Respondiendo a un par de preguntas, ¡podrás instalar fácilmente Misskey en un servidor Ubuntu! También hay un script de actualización. La v12 del script (antigua) está disponible [aquí](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md) ## Requisitos 1. Dominio 2. Servidor con Ubuntu Server instalado 3. Una cuenta de Cloudflare (recomendado) :::danger ¡No vuelvas a crear la base de datos con el dominio/nombre de host del servidor una vez que hayas empezado a utilizarla! ::: Dado que los intentos de verificación de Let's Encrypt son limitados, compruebe doblemente veces la configuración de red y Dns de su servidor antes de iniciar la instalación. ## Configuración de Cloudflare Si utiliza Cloudflare, asegúrese de completar la configuración de su dominio Cloudflare antes de iniciar la instalación. El servidor de nombres puede tardar hasta tres días en aplicarse. Además, al configurar nginx y Cloudflare, en la pantalla de configuración de Cloudflare, - Configura el DNS. - En la configuración SSL/TLS, establece el modo de cifrado en "Completo". ## Acciones ### 1. SSH Conéctate al servidor por SSH. (Si tienes abierto el escritorio del servidor, abra un intérprete de comandos.) ### 2. Actualizar el entorno Actualiza todos los paquetes y reinicia. ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. Iniciar la instalación Vuelve a conectarte por SSH y empieza a instalar Misskey. No obstante, se recomienda encarecidamente leer [Tips](#tips) antes de la instalación. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` sustituye ejemplo.com por tu propio dominio. ### 4. Actualizar También hay disponibles comandos para la actualización. Los scripts de actualización no actualizan el entorno.Consulta CHANGELOG (en japonés) y [GitHub release list (Inglés)](https://github.com/joinmisskey/bash-install/releases) y realiza las operaciones de migración en consecuencia. Primero, descarga. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` Ejecuta el script cuando desees actualizarlo. ```sh sudo bash update.sh ``` - en un entorno systemd, la opción `-r` puede utilizarse para actualizar y reiniciar el sistema. - en un entorno docker, el argumento puede ser el nombre del repositorio actualizado:nombre de la etiqueta. ## Entornos de producción comprobados ### Oracle Cloud Infrastructure El script funciona en las dos formas proporcionadas por el servicio Always Free de Oracle Cloud Infrastructure. - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] utiliza iptables. ## Reportes de bugs (Issues) y PRs son bienvenidos Si no funciona en los entornos mencionados, puede tratarse de un error.Te agradeceríamos que informaras de ello a través de la función Issue de GitHub, indicando las condiciones especificadas para la instalación. Es difícil prestar asistencia en entornos distintos de los indicados anteriormente, pero si nos facilitas detalles de tu situación, es posible que podamos resolver el problema. También se aceptan sugerencias sobre funciones. # Consejos Cómo elegir opciones y especificaciones. ## ¿Systemd o Docker? A partir de v1, se puede seleccionar el método de instalación entre systemd y Docker. Cuando decimos Docker, solo ejecutamos **Misskey en Docker** y Redis, Postgres, etc. directamente en el host. Para más información sobre cómo hacer que todo funcione con [docker-compose, recomendamos este artículo creado por mamemononga.](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Si está configurado para utilizar imágenes Docker Hub, esto es **más recomendable** ya que elimina la necesidad de construir Misskey. Sin embargo, la migración es necesaria, por lo que no hay tiempo de parada (downtime) cuando Misskey no se puede utilizar para las actualizaciones. Además, el entorno de compilación de Misskey no está preparado (no hay git pull), lo que hace que sea una molestia configurarlo cuando se quiere ejecutar un fork. El método de compilación local de Docker está obsoleto por razones de rendimiento. systemd es recomendable si quieres usar un fork del systemd, aunque no necesitas poner la imagen en Docker Hub. El orden recomendado es el siguiente. 1. Docker Hub 2. systemd 3. Docker Build ## Si utilizas Nginx Recomendamos el uso de nginx como proxy inverso para actuar como intermediario entre Internet y Misskey, excepto en los siguientes casos - Un solo usuario (el llamado servidor unipersonal) O muy pocos usuarios - Prepárate para cubrir la funcionalidad de proxy inverso/cache de nginx por otros medios, como balanceadores de carga (para usuarios avanzados). Al utilizar nginx como proxy inverso, se pueden almacenar en caché contenidos estáticos como archivos de imagen y reducir los recursos del servidor. Además, nginx está equipado con una función para controlar los accesos masivos en ausencia de caché, por lo que cabe esperar que reduzca el aumento de la carga en Misskey. En la página [nginx configuration](. /resources/nginx/). ## ¡Añadir más Swap! Si el swap está configurado, la memoria total debe ser de al menos 3 Gb para permitir que el script se ejecute. ## Si el script falla en mitad del proceso y quieres volver a ejecutarlo En el improbable caso de que el script falle a la mitad y quieras ejecutarlo de nuevo, ten en cuenta lo siguiente. - Si Redis o Postgres ya han sido instalados, 'instalar localmente' debe ser No. Para la configuración de host y puerto, pulse Intro tal cual. Introduzca el nombre de usuario y la contraseña especificados en la ejecución anterior. ## Acerca de los archivos .env El script de instalación crea dos archivos.env. Se utiliza para actualizar. ### /root/.misskey.env esto es necesario para recordar el usuario que ejecuta misskey. ### /home/(misskeyユーザー)/.misskey.env generado para systemd. Se utiliza principalmente para recordar directorios. ### /home/(misskeyユーザー)/.misskey-docker.env Generado para Docker. Almacena el número del contenedor y de la imagen que se está ejecutando. Los números de contenedor se actualizan durante las actualizaciones.Las imágenes antiguas se borran. ## Gestionar por su cuenta Se trata de notas que pueden resultar útiles a la hora de modificar la configuración tras la instalación. Sustituye "example.com" por tu dominio. ### Directorio Misskey La fuente de Misskey se clona en el directorio `/home/user/ `. (Los valores por defecto tanto para el usuario como para directorio son misskey.) Puedes navegar al directorio Misskey de la siguiente manera. ```sh sudo -iu {{usuario}} cd {{directorio}} ``` Para volver al usuario original, realice exit. ```sh exit ``` ### systemd el nombre del proceso systemd es example.com. Por ejemplo, para reiniciar, haz lo siguiente. ```sh sudo systemctl restart example.com ``` puedes comprobar los registros con journalctl. ```sh journalctl -t example.com ``` El archivo de configuración se almacena como `/etc/systemd/system/example.com.service`. ### Docker Docker se está ejecutando sin root con el usuario Misskey. al entrar en el usuario Misskey con sudo, el `XDG_RUNTIME_DIR` y `DOCKER_HOST` deben ser cambiados. ```sh 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" ``` Para las frases de una línea, haz lo siguiente. ```sh sudo -u ユーザー XDG_RUNTIME_DIR=/run/user/$(id -u ユーザー) DOCKER_HOST=unix:///run/user/$(id -u ユーザー)/docker.sock docker ps ``` ### nginx la configuración de nginx se almacena como `/etc/nginx/conf.d/example.com.conf`. ### Redis requirepass y bind se configuran en `/etc/redis/misskey.conf`. ## P. Error 502 Inaccesible después de la actualización Con Docker, la migración se realiza después de la puesta en marcha y no es inmediatamente accesible. Compruebe que la migración se ha completado. en el caso de systemd, la instalación pnpm puede haber fallado. Ejecuta lo siguiente en el directorio Misskey e intenta la actualización de nuevo. ```sh pnpm run clean-all ``` Si compruebas los registros con journalctl, normalmente encontrarás una declaración diciendo "re2". ## P. Quiero construir otro Misskey en el mismo servidor El script no contempla instalaciones adicionales de Misskey en el mismo servidor. Algunos ajustes se sobrescribirán o habrá errores por el camino. ================================================ FILE: content/es/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'Esta guía explica cómo configurar Misskey utilizando Docker.' --- # Construyendo Misskey con Docker Compose Esta guía explica cómo configurar Misskey utilizando Docker :::danger ¡No vuelvas a crear la base de datos con el dominio/nombre de host del servidor una vez que hayas empezado a utilizarla! ::: :::tip{label='前提条件'} - Asegúrese de que Docker y Docker Compose están instalados en su sistema. ::: ## Clonar el repositorio ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## Configuración Los siguientes comandos copiarán los distintos archivos de configuración de ejemplos a su ubicación de configuración real. ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` Por favor edita `default.yml` y `docker.env` así como su descripción.\ También edita `compose.yml` si es necesario( Por si quieres cambiar el puerto etc.). Asegúrate de comprobar con antelación cualquier cambio que pueda ser necesario.(Si deseas cambiar el puerto etc.) ## Construir y inicializar El siguiente conjunto de comandos construirá la imagen de Misskey y realizará la inicialización de la base de datos. Esto llevará algún tiempo. ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## Iniciar ¡Felicidades!Puedes ejecutar Misskey con el siguiente comando. ```sh sudo docker compose up -d ``` GLHF✨ ## Actualizando Misskey :::warning Las actualizaciones están siempre disponibles en [ las notas de lanzamiento] (https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md). ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` Puede tardar dependiendo del contenido de la actualización y del tamaño de la base de datos. ## Cómo ejecutar comandos Cli ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/es/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Creación de un servidor Misskey con Kubernetes/TrueNAS Esta guía describe cómo configurar Misskey utilizando Kubernetes y HelmChart. :::danger ¡No vuelvas a crear la base de datos con el dominio/nombre de host del servidor una vez que hayas empezado a utilizarla! ::: ## Escala TrueCharts y TrueNAS Los HelmCharts de Misskey se publican en TrueCharts para su uso con TrueNAS Scale, pero también se pueden instalar como HelmCharts. El sitio [TrueCharts](https://truecharts.org/charts/description_list) contiene documentación sobre todos los gráficos disponibles e instrucciones de instalación. También puedes hacer preguntas en el servidor [Discord](https://discord.gg/Ax9ZgzKx9t) de TrueCharts si no estás seguro. Misskey está actualmente en período de _incubación_. :::tip{label='前提条件'} - Escalar TrueNas - Clústeres Kubernetes y Helm ::: ## Escalando TrueNas Sigue las instrucciones de la [Guía TrueCharts](https://truecharts.org/manual/guides/Adding-TrueCharts/). Añade la rama _incubadora_ e instala Misskey. Asegúrate de cambiar el campo URL en la configuración. TrueCharts utiliza Traefik por defecto para exponer sus servicios al mundo exterior a través de Https, pero se puede utilizar otro software haciéndolo manualmente. ## Configuración Manual con Helm Si no estás utilizando TrueNAS Scale, puede utilizar Helm para instalar Misskey. Asegúrate de reemplazar la `url:` en `misskey:` en values.yaml. Las demás áreas deben reescribirse según sea necesario. Este gráfico no soporta actualmente TLS dentro del contenedor Misskey. Para asegurar el acceso al servidor, se recomienda el uso de un proxy inverso. ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Actualizaciones de Misskey Para actualizar Misskey, utiliza la funcionalidad de actualización integrada de TrueNAS Scale o, si estás ejecutando kubernetes manualmente, utiliza [helm repo update](https://helm.sh/docs/helm/helm_ repo_update/) o [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/). Se recomienda encarecidamente hacer una copia de seguridad de los datos antes de actualizar, en vista de los posibles problemas. ================================================ FILE: content/es/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'Esta guía te mostrará cómo instalar y configurar Misskey.' --- # Instalación Manual de Misskey Esta guía te mostrará cómo instalar y configurar Misskey. :::danger ¡No vuelvas a crear la base de datos con el dominio/nombre de host del servidor una vez que hayas empezado a utilizarla! ::: :::tip{label='前提条件'} #### Necesitarás instalar los siguientes paquetes: - **[Node.js](https://nodejs.org/es/)** (v22) - **[pnpm](https://pnpm.io/)** (versión 10 o superiores) - **[PostgreSQL](https://www.postgresql.org/)** (versión 15 o superiores) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Si ejecutas Misskey en Debian/Ubuntu, necesitas instalar el paquete `build-essential`. ::: ## Creando los usuarios necesarios Misskey no debería ejecutarse con permisos de superusuario, root, así que deberías crear un nuevo usuario.En Debian por ejemplo: ```sh adduser --disabled-password --disabled-login misskey ``` ## Instalación de Misskey ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## Configurando Misskey Por favor copia el archivo del archivo de configuración de ejemplo `.config/example.yml` a `default.yml` . ```sh cp .config/example.yml .config/default.yml ``` Y edita `default.yml` siguiendo las instrucciones dentro del archivo ## Construyendo e iniciando Misskey El siguiente comando construirá Misskey e inicializará la base de datos. Esto puede tardar un tiempo. ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## Ejecutar Misskey ¡Felicidades!Puedes iniciar Misskey con el siguiente comando: ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="Gestión con systemd"} Crea una configuración de servicio systemd `/etc/systemd/system/misskey.service` Abre tu editor y pega el siguiente código: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning Si estás usando CentOS y estás utilizando un número de puerto menor que 1024. Por favor cámbialo a `ExecStart=/usr/bin/sudo /usr/bin/npm start` ::: Recarga systemd y habilita el servicio de misskey. ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` Ejecuta el servicio de Misskey ```sh sudo systemctl start misskey ``` :::tip Puedes comprobar el estado del servicio con 'systemctl status misskey'. ::: :::: ## Actualizando Misskey :::warning Consulta siempre las [notas de la versión](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) antes de actualizar, para saber de antemano qué cambios se han introducido y si es necesario realizar algún trabajo adicional (en la mayoría de los casos, no lo es) ::: Haz pull de master, instala, recompila y migra la base de datos: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` Dependiendo del contenido de la actualización y del tamaño de la base de datos, esto puede llevar algún tiempo. Reinicia el proceso de Misskey en cuanto finalice la actualización. ```sh sudo systemctl restart misskey ``` :::tip Si se produce un error durante la compilación o la inicialización, prueba con los siguientes comandos: - `pnpm run clean` o `pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/es/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Instrucciones detalladas para instalar Misskey en Ubuntu ## Otras instrucciones de instalación de Misskey - [Guía de construcción manual de Misskey (manual)](. /manual/) - [Otros métodos de instalación](/docs/for-admin/install/guides/#インストール方法一覧) ## Avisos de secuencias de comandos. Si todo lo que haces es copiar y pegar, ¿por qué no usas un shell script? ¡Así que hicimos uno que hace casi todo en un \*\* script de shell!\*\*\ [**Aquí encontrarás más información sobre los shell scripts y cómo utilizarlos.**](./bash/) :::tip No está prevista la instalación en entornos de desarrollo mediante shell scripts. ::: :::tip Eres responsable de comprar el dominio y configurar Cloudflare y asegurar el servidor. ::: Le agradeceríamos que nos informara de cualquier problema mediante [Mención a @aqz@p1.a9z.dev](https://p1.a9z.dev/@aqz). ## Sobre este artículo. En este artículo, encontrarás una guía para construir Misskey (manual)](./manual/), como se describe en [La guia de construcción de Misskey] [docker-compose](. /docker/) debería ser un poco más fácil de realizar manualmente. :::danger ¡No vuelvas a crear la base de datos con el dominio/nombre de host del servidor una vez que hayas empezado a utilizarla! ::: ## Introducción Este artículo explica paso a paso cómo instalar Misskey en un servidor Ubuntu general y hacerlo accesible al público, basándose en la [Guía de instalación de Misskey (manual)](./manual/). La configuración se completa simplemente introduciendo comandos Bash, editando algunos archivos de configuración y operando el navegador.Se ofrece una breve explicación del software que debe instalarse, pero no tiene mayor importancia. En este artículo se hace hincapié en la especificidad y las descripciones propias de entornos concretos. Ten en cuenta que puede haber diferencias entre sistemas operativos, y que algunas partes pueden haber cambiado debido a actualizaciones del propio Misskey o del software del que depende. Si los términos no están claros, recomendamos consultar el [diccionario informático](https://wa3.i-3-i.info/) para comprenderlos mejor. ## Entorno y condiciones - El sistema operativo debe ser **Ubuntu 22.04 LTS**. - En cuanto a los requisitos de hardware, las CPU pueden funcionar mínimamente si son recientes.Se supone que la arquitectura es amd64 y arm64. - Se recomiendan unos 4 GB de memoria. - (Anteriormente, se explicó que con la introducción de Vite, era posible construir con tan sólo 1,5 GB, pero recientemente los requisitos han vuelto a ser más estrictos para las construcción de Frontend) - Compra tu propio dominio y utiliza Cloudflare. - El dominio debe estar preparado de antemano, por ejemplo, en [Cloudflare Registrar](https://www.cloudflare.com/es-es/products/registrar/). - Usaremos como ejemplo el dominio example.tld, así que sustitúyelo por el dominio que has comprado y lee la documentación acorde a este cambio.Para entornos de desarrollo, lee localhost (se explica por separado en la sección sobre archivos de configuración). :::danger No cambies nunca el nombre de dominio de un servidor una vez que hayas empezado a utilizarlo. ::: ## Cómo utilizar nano Vamos a usar nano como editor de texto.Ejecútalo de la siguiente forma: ```sh nano /ruta/al/archivo ``` El cursor puede desplazarse con los botones de flecha y con Inicio/Fin. Para salir, pulsa Ctrl+X. Cuando se te pregunte si deseas guardar los cambios, escribe Y (Sí) e Intro para guardar. En la parte inferior aparece una lista de comandos, así que lea ^ como Ctrl y M- como Alt y utilízalo como referencia. ## Creando los usuarios necesarios Misskey no debe ejecutarse como root, así que crea un usuario dedicado. ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip En los entornos de desarrollo, no es necesario separar a los usuarios ::: ## Instalación y configuración básica del software Instalación de dependencias. ### Node.js Node.js es un entorno JavaScript del lado del servidor y el entorno de ejecución (runtime) para Misskey. ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.js ya está instalado, comprueba la versión. node -v # Habilita corepack sudo corepack enable ``` Si muestra v22.x.x, etc., está bien.Si aparece una versión inferior, como v8.x.x, la instalación no se ha realizado correctamente y debes reiniciar el servidor e intentar instalarlo de nuevo. ### pnpm pnpm es la herramienta de gestión de paquetes utilizada por Misskey para referenciar librerías externas y gestionar sus dependencias. Esta sección presenta cómo instalar pnpm usando npm, la herramienta de gestión de paquetes que viene con Node.js, pero el [sitio web de pnpm](https://pnpm.io/installation) presenta varios otros métodos de instalación. Te recomendamos que leas la información e instales pnpm de la forma que mejor se adapte a tu entorno. ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQL es un sistema de gestión de bases de datos relacionales por objetos y un software esencial para almacenar los distintos datos de Misskey. #### Instalación Ejecuta el script de shell e instala la última versión (v15). ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` OK si está activo. #### Creación de usuarios y bases de datos Inicia psql. ```sh sudo -u postgres psql ``` Crear usuarios para su uso con Misskey.Si el nombre de usuario es misskey y la contraseña es hoge, se aplica lo siguiente.\ (Los usuarios de Linux y los usuarios de PostgreSQL son diferentes, así que tenga cuidado de no confundirlos.) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` Creación de la base de datos.El nombre de la base de datos es mk1. ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redis es un software de base de datos NoSQL en memoria, necesario, entre otras cosas, para gestionar la comunicación con bases de datos y la federación. Instálalo según la documentación de redis.io. https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` Activar Redis ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` Compruebe el estado del demonio(daemon) con systemctl. ```sh systemctl status redis-server ``` OK si está activo. ### FFmpeg FFmpeg se encarga del procesamiento relacionado con el vídeo y el audio.Instálalo con el siguiente comando ```sh sudo apt install ffmpeg ``` ### nginx Nginx es un software de servidor web utilizado principalmente para el proxy inverso.No es esencial para Misskey, pero debería instalarse para mejorar el rendimiento al almacenar en caché, etc., o para transferir de http a https, etc. :::tip Para entornos de desarrollo, no es necesario configurar nginx ::: Instale según la documentación de nginx.org http://nginx.org/en/linux_packages.html#Ubuntu. ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` Comprueba si la salida contiene 573BFD6B3D8FBC641079A6ABF5BD827BD9BF62. ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` comprueba el estado del demonio(daemon) con systemctl. ```sh systemctl status nginx ``` OK si está activo.En caso contrario, ejecuta el siguiente comando. ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` Ve a http\://localhost y si ves \*¡Bienvenido a nginx!\*, está bien.También puedes comprobarlo con \ curl. ```sh curl http://localhost ``` ### Más Instala Git (software de control de versiones) y build-essential (necesario para compilar Misskey). ```sh sudo apt update sudo apt install -y git build-essential ``` ## Configuración e instalación adicionales Prepara el servidor para su publicación en Internet. :::tip No se requiere configuración de cortafuegos, Cloudflare o Certbot para entornos de desarrollo. ::: ### Cortafuegos (Firewall) En este caso, utiliza ufw como cortafuegos. En el siguiente paso, se establecieron los permisos de conexión en formato de lista blanca, se abrió el puerto SSH 22 con un límite en el número de conexiones y se abrieron los puertos HTTP 80 y HTTPS 443. ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` Comprueba el estado de ufw. ```sh sudo ufw status ``` Persistencia del estado con systemctl (para que arranque al inicio) ```sh sudo systemctl enable ufw ``` :::tip UFW es una aplicación que hace que netfilter (iptables) sea más fácil de usar.Los scripts de instalación operan directamente sobre netfilter en el entorno OCI. ::: ### Cloudflare Cloudflare es un servicio muy práctico que proporciona un servidor DNS, proxy inverso y CDN para su dominio, todo a la vez.\ Es posible publicar tu servidor sin pasar por Cloudflare, pero es muy conveniente y recomendable instalarlo. [**→ Configuración CDN**](../resources/cdn/) [Regístrate en Cloudflare](https://dash.cloudflare.com/sign-up) y sigue las instrucciones para registrar el dominio que ha adquirido. Puede introducir la dirección IP del servidor en la pantalla de registro DNS. Dependiendo de dónde se haya comprado el dominio, la solicitud puede tardar hasta tres días. ### Configuración de Certbot (Let's Encrypt) Obtén los certificados utilizados para la comunicación HTTPS y WSS de Let's Encrypt utilizando el método basado en Cloudflare. Instalar los plugins certbot y Cloudflare ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` Obtén una clave API de Cloudflare.Para obtener la información deben seguirse los siguientes pasos. 1. Accede a https\://dash.cloudflare.com/profile/api-tokens 2. Selecciona View para la Clave API global. 3. Introduzca la contraseña para eliminar hCaptcha, selecciona View (Ver) Crea un archivo de configuración /etc/cloudflare/cloudflare.ini con la información de Cloudflare. ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` Establezca en dns_cloudflare_email (下の例ではbar@fuga.foo) la dirección de correo electrónico registrada en Cloudflare. ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` Guárdalo y establece los permisos en 600. ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` Ejecuta el comando cuando esté listo.**Reemplace el example.tld en dos lugares a lo largo del tutorial con su propio dominio**. ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Bien, si ves\*... ¡Felicidades!Se debe registrar la ruta del archivo .pem generado, ya que se utilizará en el futuro. Las actualizaciones automáticas se configuran al mismo tiempo que la instalación, por lo que no son necesarias. ## Instalación de Misskey Ahora que la configuración previa está casi terminado, vamos a preparar la instalación de Misskey. Cambia al usuario de Misskey ```sh sudo su - misskey ``` Obtén los archivos de Misskey con Git ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` Instala los paquetes npm necesarios. ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Prepara Misskey. ### default.yml Crea un archivo de configuración .config/default.yml. ```sh nano .config/default.yml ``` Pega el siguiente contenido y sustitúyelo según proceda.Las zonas en las que es necesario modificar los valores de consigna se marcan con ●, mientras que las zonas en las que se utilizan los valores de consigna del flujo anterior se marcan con 0. Este archivo de configuración está escrito en formato YAML, y se debe tener especial cuidado porque Misskey no funcionará si el número de espacios al principio de una línea, etc., es incorrecto. Los valores que se pueden establecer y cómo describirlos se describen en [.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml). :::tip En el entorno de desarrollo, la url se especifica como `url: http://localhost:3000`. ::: ```yml # ● Misskeyを公開するURL URL de publicación de Misskey. url: https://example.tld/ # ポートを3000とする。 El puerto está fijado en 3000. port: 3000 # ● PostgreSQLの設定。 Configuración de PostgreSQL. db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 Nombre de la base de datos de PostgreSQL user: misskey # 〇 PostgreSQLのユーザー名 Nombre del usuario de PostgreSQL pass: hoge # ● PostgreSQLのパスワード Contraseña del usuario de PostgreSQL #   Redisの設定。Configuración de Redis redis: host: localhost port: 6379 #   IDタイプの設定。 Configuración del ID id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` Guarda el archivo. ### Configuración de Nginx Configurar nginx. Realizado con root. ```sh exit ``` Crea `/etc/nginx/conf.d/misskey.conf`. ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` Copia y pega la configuración de ejemplo de [Misskey Hub](/docs/for-admin/install/resources/nginx/) en nano y reescribe las siguientes partes con tu configuración. - Nombre de dominio en las líneas 18 y 30 - La ruta al certificado en las líneas 34-35 está tomada de Certbot (básicamente sustituye example.tld). - Línea 56 (Si se encuentra tras otro proxy inverso o CDN, elimine lo siguiente) Suprime las cuatro líneas Guarda los cambios. Comprueba que el archivo de configuración funciona correctamente. ```sh sudo nginx -t ``` Si está bien, reinicia el demonio nginx. ```sh sudo systemctl restart nginx ``` Verifica el estado. ```sh sudo systemctl status nginx ``` OK si es ACTIVE. ## Compilando Misskey Vuelve a iniciar sesión como usuario misskey. ```sh sudo su - misskey ``` Compila Misskeysí podemos... ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip Para entornos de desarrollo, `NODE_ENV=production` no es necesario.Elimínalo del mismo modo en los comandos siguientes. ::: ### Si no puedes construir en el servidor Posible falta de RAM. Las compilaciones de Misskey y las migraciones de bases de datos (incluida la inicialización) requieren al menos 2 GB de RAM.\ Si la RAM es insuficiente, se pueden adoptar las siguientes soluciones - Añadir swap al servidor - Transferir localmente construido (directorio construido) a través de sftp. ## Inicialización de la base de datos ```sh pnpm run init ``` ## Prepara Misskey. ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) Accede a la URL que has configurado. Debería aparecer la página de bienvenida de Misskey. Comprueba que puedes realizar correctamente una serie de operaciones, como crear una cuenta, crear notas y cargar archivos. ### En caso de inaccesibilidad #### Comprueba el DNS de CloudFlare Comprueba de nuevo que la configuración DNS de Cloudflare está establecida en la dirección IP correcta. #### Comprueba la configuración del router. Para servidores domésticos, comprueba que el router está configurado para permitir la comunicación en los puertos 80 y 443 entre el servidor y el mundo exterior. Incluso en la nube, a menudo es necesario abrir puertos en la configuración de la red. ## Crear un demonio para Misskey :::tip Para entornos de desarrollo, no es necesario crear un demonio. ::: Una vez que mates el proceso con Ctrl+C, configura Misskey para que se inicie como demonio. Hazlo como root ```sh exit ``` Crea /etc/systemd/system/misskey.service. ```sh sudo nano /etc/systemd/system/misskey.service ``` Pega y guarda el siguiente contenido. ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` Configura systemd e inicia el demonio misskey. ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` comprueba el estado del demonio(daemon) con systemctl.Tarda un poco en arrancar, así que es mejor esperar 15 segundos. ```sh sudo systemctl status misskey ``` OK si está activo. **La instalación de Misskey está casi terminada.** Regístrate e inicia sesión con tu cuenta en el servidor de Misskey y continúa con la configuración. ## Prepara Misskey. - [**Descripción de la primera y otras configuraciones del servidor que deben configurarse en el servidor Misskey**](https://hide.ac/articles/Y504SIabp). - [**Crear un proxy Squid para proteger Misskey**](https://hide.ac/articles/MC7WsPDqw) - [Copia de seguridad de la base de datos Misskey [versión de almacenamiento de objetos OCI]\*\*](https://hide.ac/articles/E2Ea3cauk) ## Actualizando Misskey [Cómo actualizar Misskey](./manual/#misskeyのアップデート方法) Misskey no puede actualizarse mientras se está ejecutando. ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Caso 1: Al realizar una actualización apt ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` Después de reiniciar, Misskey se iniciará automáticamente. ### Caso 2: Empezar como está ```sh sudo systemctl start misskey ``` ================================================ FILE: content/es/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Mantenimiento de Misskey y Solución de Problemas" description: "El mantenimiento regular es esencial para el funcionamiento de un servidor Misskey. Aquí hay alguna información útil sobre el mantenimiento de Misskey." ================================================ FILE: content/es/docs/3.for-admin/install/resources/cdn.md ================================================ # Configuración CDN Recomendamos encarecidamente el uso de un CDN como [Cloudflare](https://www.cloudflare.com/) al publicar tu servidor Misskey. El uso de una CDN ofrece las siguientes ventajas - Reducir la carga del servidor almacenando en caché el contenido estático - Menor exposición de la dirección IP del servidor, lo que puede mitigar ataques DoS, etc. ## Caché El Cliente Misskey es completamente estático y no requiere un servidor para funcionar.Por lo tanto, todo el Cliente Misskey puede ser almacenado en caché por la CDN con la excepción de la API Misskey que no puede ser almacenada en caché. Por favor configura tu CDN de la siguiente manera: - Cachea todas las peticiones excepto `/api/*` :::tip No es necesario purgar la caché al actualizar Misskey. ::: ================================================ FILE: content/es/docs/3.for-admin/install/resources/forking.md ================================================ # Notas sobre la bifurcación (Forking) y personalización de Misskey La Licencia Pública General Affero GNU v3.0 (AGPL-3.0), adoptada por Misskey, obliga a revelar cualquier modificación realizada en el código fuente de Misskey. A partir de Misskey v2024.2.0, se ha implementado una función para facilitar el cumplimiento de esta licencia.A continuación, presentamos cómo configurar esta función. :::warning Por supuesto, incluso si basas tu trabajo en versiones anteriores a ésta, debes tomar medidas para cumplir la licencia. ::: ## Usando de Misskey sin modificaciones Si tienes la intención de utilizar sólo las características incorporadas de Misskey sin hacer ningún cambio en el código base, no hay ninguna acción específica requerida. ## Realización de cambios en el código de Misskey y publicación de la versión modificada en plataformas como GitHub Si modificas el código de Misskey y pretendes publicar la versión modificada en plataformas como GitHub, asegúrate de lo siguiente: - Mantén tu repositorio público ( sin ninguna restricción de acceso, permitiendo que cualquiera pueda tener acceso) Procedamos con la configuración. 1. Construye la versión modificada de Misskey y despliégalo en tu entorno de producción. 2. Abra [admin] (x-mi-web://admin/settings) mientras está conectado con la cuenta Admin. 3. Introduce la URL de tu repositorio Misskey en el campo 'URL del repositorio'. ## Si realiza algunos cambios en el código de Misskey, pero no publicas (o no puedes publicar) la versión modificada en GitHub o en otro lugar En este caso, el código fuente debe seguir siendo accesible directamente en la interfaz de Misskey.En Misskey v2024.2.0 y posteriores, se ha implementado la capacidad de compilar automáticamente el código fuente en ficheros de archivo en tiempo de compilación. :::tip Obsérvese que el tratamiento de divulgar **el código fuente sólo previa solicitud se considera insuficiente para cumplir la licencia.** Incluso si no utilizas la función incorporada de Misskey para revelar el código fuente, asegúrate de que hay alguna manera de acceder directamente al código fuente de la versión en ejecución de Misskey desde la interfaz Web de Misskey. ::: Procedamos con la configuración. 1. Abre el archivo de configuración de Misskey (por defecto es `.config/default.yml`). 2. Establece `publishTarballInsteadOfProvideRepositoryUrl` en `true` (puedes simplemente descomentar la parte especificada en el archivo de configuración). 3. Construye Misskey (esto generará un tarball del código fuente). 4. Abra el tarball generado y asegúrese de que **no se incluye información confidencial como tokens en el código fuente distribuido.** 5. Si se incluye alguna información confidencial, edita `scripts/tarball.mjs` para excluir dicha información. :::warning La generación del tarball del código fuente se produce durante el proceso de compilación.Asegúrese de reconstruir cada vez que se realicen cambios en `scripts/tarball.mjs`. ::: ================================================ FILE: content/es/docs/3.for-admin/install/resources/nginx.md ================================================ # Configuración de Nginx Recomendamos utilizar [nginx](https://nginx.org/) como proxy inverso y operar el servidor Misskey sin exponerlo directamente a Internet. Esto proporciona las siguientes ventajas: - Mayor seguridad: Al controlar el acceso a través de un proxy inverso, puede reducir el riesgo de ataques directos al servidor Misskey. - Configuración flexible: nginx ofrece opciones de configuración flexibles, que permiten configurar no sólo la función de proxy inverso, sino también las políticas de caché[^1] y seguridad. Si aprovechas estos puntos, podrás operar tu servidor Misskey de forma más segura y eficiente. También puedes configurar tu infraestructura con una CDN como Cloudflare para obtener aún mayores beneficios. [^1]: Utilizando las funciones de nginx [proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock) y [proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale), puede esperar reducir la carga en el servidor Misskey incluso si hay una gran cantidad de accesos cuando la caché no ha sido creada. ## Ejemplo de configuración A continuación se muestra un ejemplo de configuración para cuando nginx se instala directamente en una máquina servidor (como un VPS) y se utiliza [Let's Encrypt](https://letsencrypt.org/) como autoridad de certificación. 1. Crea `/etc/nginx/conf.d/misskey.conf` o `/etc/nginx/sites-available/misskey.conf` y copia la configuración de ejemplo que aparece a continuación.\ (El nombre del archivo no tiene por qué ser Misskey.) 2. Editalo como sigue: 1. Sustituye example.tld por el dominio que has preparado.`ssl_certificate` y `ssl_certificate_key` deben ser la ruta al certificado obtenido de Let's Encrypt. 2. Si utilizas una CDN como Cloudflare, elimina 4 líneas de "Si está detrás de otro proxy inverso o CDN, elimina lo siguiente". 3. Si creaste `/etc/nginx/sites-available/misskey.conf`, crea un enlace simbólico como `/etc/nginx/sites-enabled/misskey.conf`.\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. Ejecuta `sudo nginx -t` para verificar que el archivo de configuración se cargará correctamente. 5. Reinicia nginx con `sudo systemctl restart nginx`. ## Ejemplos ```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; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/es/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # Cómo hacer push a Docker Hub usando GitHub Actions Un ejemplo de cómo hacer push a Docker Hub usando Github Actions se puede encontrar en el repositorio original en el archivo [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) El repositorio original se envía a Docker Hub con las etiquetas `latest` y `` respectivamente cuando se publica. Puede haber etiquetas como ``. En concreto, la versión se envía a Docker Hub con las etiquetas `latest` y `` respectivamente en el momento de la publicación a través de la función de publicación de GitHub. También puedes hacer push manualmente desde GitHub. Para ello, seleccione la rama desde Acciones => Publicar imagen Docker => Ejecutar flujo de trabajo. Sin embargo, la etiqueta creada en este caso será ``. ================================================ FILE: content/es/docs/3.for-admin/install/resources/scale-out.md ================================================ # Escalando Misskey A medida que aumenta el número de usuarios, se hace necesario mejorar las especificaciones del servidor o aumentar el número de servidores para gestionar la carga.Este artículo presenta consejos sobre cómo escalar tu servidor o instancia de Misskey. ## Replicación PostgreSQL La replicación PostgreSQL le permite distribuir la carga de la base de datos entre varios servidores Para más información sobre la replicación, consulta la documentación de PostgreSQL. Misskey soporta replicación PostgreSQL y puede ser configurado en el archivo de configuración como se indica a continuación.(Extracto) ```yml # Establece a true if replication is used dbReplications: true # Configura todos los esclavos (slaves) para replicar la BD dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` Con esta configuración, cuando Misskey emita una consulta de lectura a la base de datos, seleccionará aleatoriamente réplicas de la base de datos de los `dbSlaves` configurados y enviará la consulta a uno de ellos, distribuyendo así la carga de la base de datos. ## Partición de Redis basada en roles Misskey utiliza Redis para una variedad de propósitos, incluyendo: - Gestión de colas de trabajos - Gestión de límites de peticiones - Caché - Almacenamiento de notificaciones y otra información - Publicación y suscripción de los eventos globales Misskey puede ser configurado para usar un servidor Redis diferente para cada uno de estos usos, permitiendo que la carga sea distribuida a través de múltiples servidores. Configura lo siguiente en el archivo de configuración.(Extracto) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` Actualmente, además de la configuración principal de Redis, también puedes configurar Redis para "Pub/Sub para Eventos Globales" y "Gestión de Colas de Trabajos" como se ha descrito anteriormente. ## Deshabilitar gráficos remotos Si no necesitas gráficos como los de actividad para usuarios remotos individuales o gráficos para servidores remotos individuales, desactivar su generación mejorará el rendimiento. Para ello, desactiva las opciones "Generar gráficos de usuarios remotos" y "Generar gráficos de servidores remotos" en el panel de control. ================================================ FILE: content/es/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # Solución de problemas durante la instalación manual 07 de octubre de 2018 / 20 de diciembre de 2021 Actualización final / Responsabilidad textual aqz/tamaina MisskeyInstallBattleHa aumentado el número de participantes, pero también el número de heridos graves y leves.\ Para reducir el número de lesiones de este tipo, este artículo ofrece una explicación clara de las tendencias y contramedidas en las zonas donde se han producido accidentes en el pasado. \*\*En primer lugar, lee la [guía de construcción] (../guides/manual/) \*\* También, por favor, lee [Explicación de la versión de systemd para Ubuntu](https://hide.ac/articles/iFwm5HDvH) y [Explicación detallada de la versión de Oracle Cloud](https://hide.ac/articles/csERs-7SU) como referencia. Estaría encantado de que los leyeras también. # Anuncios de scripts de shell para Ubuntu Explicar Ubuntu es aburrido porque todo es copiar y pegar.¡Lleva mucho tiempo!De todos modos, ¡es una molestia! ……Oye, si puedes hacerlo simplemente copiando y pegando, significa que puedes automatizarlo por completo, ¿no? ¡Así que hice un \*\* shell script que hace casi todo por mí!\*\*\ [**¡Para más información e instrucciones de uso, haz clic aquí!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) Eres responsable de comprar el dominio y configurar Cloudflare y asegurar el servidor. Si tienes algún problema con el script de comandos, comunícalo al [autor (aqz)](https://p1.a9z.dev/@aqz). # Instalación y compilación Lee las [instrucciones de construcción](. /guías/manual/) léelo atentamente. ## Relacionado con ImageMagick _**¡ImageMagick no es necesario!**_ ## La compilación ha fallado Misskey requiere, como regla general, al menos 2 GB de memoria.\ Podrías escalar el servidor, o podrías compilarlo en tu PC y desplegarlo en el servidor. ## Algo va mal - Lee las [instrucciones de construcción](. /guías/manual/) léelo atentamente. - ¿Es posible que la versión de node.js no esté actualizada? - Actualiza a la versión más reciente - Puede aparecer un error o WARN(Aviso) durante la instalación y la compilación, pero puede que no sea un problema.Vamos a usar `npm start` y comprobar que funciona. - ¿Quizás node-gyp no está instalado? - Prueba lo siguiente `apt install build-essential` - En Windows también puede referirse a [este artículo](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7). - Si esto no parece funcionar, empieza desde el principio y sigue las instrucciones de las [instrucciones de construcción](../guides/manual/) desde el principio. ## Los defectos se produjeron después de la actualización. - Lee las [instrucciones de construcción](. /guides/manual/) y las notas de la versión. - Asegúrate de que `pnpm install` y `pnpm run migrate` al actualizar Misskey.Si eso no lo arregla, prueba `pnpm run clean-all && pnpm install`, luego prueba `pnpm run build && pnpm run migrate && pnpm start`. - Si esto no parece funcionar, empieza desde el principio y sigue las instrucciones de las [instrucciones de construcción](. /guías/manual/) desde el principio. --- # Configuración Lee las [instrucciones de construcción](. /guías/manual/) léelo atentamente. Configura los ajustes en `.config/default.yml`. Copia [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml) y sigue los comentarios. (En formato YAML, desde `#` hasta el final de la línea se trata como un comentario.) ## URL y número de puerto La mecánica de las URL y los números de puerto puede resultar un poco confusa. El archivo `.config/example.yml` contiene `Port and TLS settings` en orden con diagramas explicativos, así que vamos a configurar los ajustes en consecuencia. Haremos esto mientras traducimos las explicaciones del texto al japonés. ### Configuración de la URL ```yml # Final accessible URL seen by a user. # 사용자가 최종적으로 접속하는 URL # URL final accesible vista por un usuario. url: https://example.tld/ ``` **En el campo `url`, escribe la URL **(deseada)** que se mostrará en la barra de direcciones cuando se acceda al servidor con un navegador.** ### Configuración de puertos ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### #### Configuración de puertos y TLS #################################### # Misskey requiere un proxy inverso para soportar conexiones HTTPS # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # Necesitas configurar un proxy inverso. (por ejemplo, nginx) # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # # Se recomienda encarecidamente una conexión cifrada con HTTPS # ya que los tokens pueden transferirse en solicitudes GET. # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # El puerto en el que tu servidor Misskey debería estar escuchando # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` En este ejemplo, Misskey se comunica en el puerto 3000. El proxy inverso especifica este número de puerto para el destino en el lado local. ---- # Errores comunes encontrados durante el `npm start` y el acceso. Es posible configurar un servidor con `npm start` pero luego encontrar problemas. \*\*En primer lugar, lee la [guía de construcción] (../guides/manual/) ## Errores YAML. Puede haber un error de sintaxis en `default.yml`. ¿Hay espacios de más al principio de la línea? ## No se puede conectar a redis ¿Está funcionando el servidor redis? ¿Se ha alcanzado algún límite de conexión? Las versiones de Misskey anteriores a la 11.20.2 no pueden resolver las contraseñas de redis.Comprueba los dos puntos siguientes. - No hay contraseña para redis. - Comenta la línea `pass:` en `redis:` en `default.yml`. ## Aparece una barra roja en la parte superior que dice "Esta es una compilación de desarrollo". Utiliza siempre la versión de producción cuando vayas a publicar un servidor. Para realizar una compilación de producción, configura la variable de entorno como `NODE_ENV=production` y `npm run build && npm start`. ## No es posible un nuevo registro. Parece que no puedes conectarte a la API. Comprueba que la `url:` al principio del `default.yml` está configurada correctamente. Comprueba también la versión de Node.js y la configuración de la instalación. Además, ¿está escrito correctamente el archivo `default.yml`? ## Problemas con la visualización de la línea de tiempo, la TL no se actualiza en tiempo real Si la línea de tiempo no se carga, la versión de mongoDB o PostgreSQL puede estar desactualizada. PostgreSQL debe ser v13 si es posible. También deberías comprobar la conexión a redis. [→ ¿No se puede conectar a redis? Ver](#¿No puede conectarse a redis?) ## Siempre "reconectando" aparece en la esquina inferior derecha, TL (Línea del Tiempo) no se actualiza en tiempo real. Si está utilizando un proxy, es posible que esté bloqueando la comunicación WebSocket. ## Fallo al utilizar almacenamiento de objetos. Los permisos de almacenamiento de objetos pueden configurarse de forma estricta.Intenta configurar los permisos para que "los archivos (objetos) puedan ser recuperados por cualquiera". Además, comprueba de nuevo el `default.yml`. ### Ejemplo de S3 (con CDN, dominio personalizado) S3 ejemplo (con CDN, dominio personalizado) es para cuando quieres publicar almacenamiento en tu propio dominio en lugar del dominio por defecto de AWS. Si el endpoint y el dominio publicado son el mismo servicio, no es necesario especificar la `baseUrl`, como en el ejemplo de S3, y además, la línea de región no es necesaria si el servicio no tiene concepto de región. ### Configuración en servicios compatibles con S3 Misskey utiliza [aws-sdk](https://www.npmjs.com/package/aws-sdk) para las conexiones de almacenamiento de objetos. Se puede utilizar cualquier almacenamiento de objetos compatible con Amazon S3. Lee atentamente la documentación de cada servicio/software e intenta configurarlo. ### La carga nunca termina. Si utilizas Cloudflare, comprueba que Rocket Loader y Auto Minify no están activados.Si está activada, desactivarla puede resolver el problema. --- # Si no se resuelve en absoluto Intenta los siguientes pasos: 1. Lea atentamente la documentación de Misskey. 2. Busca en Google. 3. Busca [Problemas en el repositorio de Misskey](https://github.com/misskey-dev/misskey/issues) (es posible que hayas encontrado el mismo error o que se trate de un fallo de Misskey). 4. Si buscas y no encuentras lo que buscas, pregunta a un experto. 1. Pregunta en [servidor Discord de Misskey](https://discord.gg/P4yYqYBjEp), por ejemplo. 2. Envía una respuesta o un mensaje directo al desarrollador ([aqz](https://p1.a9z.dev/@aqz) o Syuilo) y pregunta ================================================ FILE: content/es/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "Información útil sobre la moderación" description: "Información útil para la gestión práctica del servidor." ================================================ FILE: content/es/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # Desactivación de LTL/STL/GTL Misskey permite desactivar LTL/STL/GTL individualmente.Puede habilitar o deshabilitar estas líneas de tiempo individuales a través del panel de control de la instancia. Como todos los mensajes de tu instancia se pueden ver tanto en el LTL como en el STL, tienen la ventaja de facilitar a los nuevos usuarios encontrar otros que les interesen sin tener que utilizar la búsqueda manual de usuarios. Al mismo tiempo, sin embargo, esto significa que seguir a otros usuarios para ver sus publicaciones es menos importante y las publicaciones inapropiadas pueden mostrarse a los usuarios con más frecuencia. Además, la experiencia se parece más a la de una sala de chat, lo que a su vez puede dificultar que los nuevos usuarios se unan a una conversación con los que llevan mucho tiempo participando. Como el peso de estas ventajas y desventajas puede variar de un servidor a otro, la elección de usarlas o no se ha dejado a cada instancia individual. Si crees que los deméritos superan a los méritos, por favor considera desactivar estas respectivas líneas de tiempo. :::warning Desactivar las líneas de tiempo puede llevar a confusión y, posiblemente, a un descenso de usuarios en poco tiempo.Por lo tanto, por favor, considere cuidadosamente los efectos de desactivar una línea de tiempo, y explique el razonamiento para hacerlo con antelación, para que sus usuarios puedan prepararse, por ejemplo, siguiendo a los usuarios con los que hablan a menudo en el LTL/STL. ::: Además, los administradores / moderadores podrán continuar viendo estas líneas de tiempo incluso después de que se hayan deshabilitado. ================================================ FILE: content/es/docs/4.for-developers/_dir.yml ================================================ title: "Para desarrolladores" description: "Recursos para desarrolladores de plugins y Play también como desarrolladores de aplicaciones externas usando la API." ================================================ FILE: content/es/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScript es un lenguaje de scripting para Misskey que puede ser utilizado en las siguientes funciones: - [Plugins](./plugin/create-plugin/) - [Widgets](/docs/for-users/features/widgets/) - Botones - Consola de AiScript - Aplicación AiScript - [Misskey Play](./plugin/create-play/) - Scratchpad :::tip La implementación de AiScript está en un repositorio separado de Misskey y es [código abierto y disponible aquí](https://github.com/aiscript-dev/aiscript). ::: ## Uso Se puede utilizar la sintaxis estándar de AiScript y las funciones incorporadas. :::tip La documentación está disponible [aquí](https://aiscript-dev.github.io/) La versión de AiScript que se puede utilizar puede diferir dependiendo de la versión del propio Misskey.Para comprobar la versión, ejecute `<: Core:v` con Scratchpad o similar. ::: Además, se proporcionan tres grupos de constantes y funciones incorporadas específicas de Misskey. ### Misskey AiScript API Prefijo: `Mk:` Un conjunto de funciones constantes que se pueden utilizar en todos los entornos AiScript dentro de Misskey. Para obtener más información, consulte [AiScript Misskey Extension API Reference](. /plugin/plugin-api-reference/), donde se utiliza el prefijo `Mk:`. ### Plugin API Prefijo: `Plugin:` [Plugin] (. /plugin/). Para obtener más información, consulte [Referencia API de la extensión AiScript Misskey](. /plugin/plugin-api-reference/) para más información. ### UI API Prefijo: `Ui:` [Widgets](/docs/for-users/features/widgets/) (AiScript App), [Misskey Play](. /plugin/create-play/), y Scratchpad. Para obtener más información, consulte [AiScript Misskey Extension API Reference](. /plugin/plugin-api-reference/) con `Ui:`. ### Plugin I/O Las implementaciones internas de las funciones `readline` e `print` (y la sintaxis `<:`) definidas en el estándar AiScript se proporcionan de forma independiente en el lado de Misskey. #### readline(message) `message`: `str` Valor de retorno: `str` Se puede utilizar en todos los entornos AiScript dentro de Misskey. Muestra una ventana emergente solicitando una cadena. #### print(message) `message`: `any` Valor de retorno: `null` [widget](/docs/for-users/features/widgets/) (consola AiScript), disponible en Scratchpad. Envía una cadena a la consola. La sintaxis `<:` funciona de forma similar. ================================================ FILE: content/es/docs/4.for-developers/api/1.index.md ================================================ --- description: 'Misskey ofrece una API pública.La API puede utilizarse para desarrollar clientes Misskey, servicios web conectados a Misskey, bots, etc. (a los que nos referiremos como "aplicaciones" de aquí en adelante).' --- # Misskey API Misskey ofrece una API pública.Puedes utilizar la API de Misskey para desarrollar clientes Misskey, servicios web vinculados a Misskey, bots, etc. (en adelante, "aplicaciones"). Dado que también existe una API de streaming, es posible crear aplicaciones en tiempo real. :::tip Utilizando la API oficial de Misskey o librerías de terceros, este documento puede explicar convenientemente el uso de la API.\\ ::: ================================================ FILE: content/es/docs/4.for-developers/api/endpoints.md ================================================ # Endpoints :::tip La lista de endpoints está actualmente en construcción.Mientras tanto, consulta la página [`/api-doc`](x-mi-web://api-doc) de cada servidor de Misskey o accede al [código fuente de Misskey](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints) para obtener más información. La [versión heredada de Misskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html) también está disponible, aunque parte de la información está desactualizada. ::: ================================================ FILE: content/es/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Lista de bibliotecas API de Misskey' --- # Lista de bibliotecas ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/es/docs/4.for-developers/api/permission.md ================================================ --- description: 'Lista de permisos requeridos por la aplicación.' --- # Lista de permisos :::tip Esta página se ha generado automáticamente a partir de [misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js), por lo que la documentación y las traducciones pueden estar incompletas. ::: ================================================ FILE: content/es/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'La API de Streaming te permite recibir diversos tipos de información (por ejemplo, nuevas publicaciones en tu línea de tiempo, reacciones, seguidores, etc.) y realizar diversas operaciones en tiempo real.' --- # Streaming API :::tip Se recomienda leer primero la documentación de la [API de Misskey](../index.md) ::: La API de Streaming te permite recibir diversos tipos de información (por ejemplo, nuevas publicaciones en tu línea de tiempo, reacciones, seguidores, etc.) y realizar diversas operaciones en tiempo real. ## Conectarse al Stream (Flujo de datos) Para utilizar la API de streaming, primero debes conectarte al servidor de Misskey a través de **websocket**. Conéctate via Websocket a una URL con el siguiente formato: ``` wss://{host}/streaming?i={token} ``` Aquí - Sustituye `{host}` por el nombre del servidor al que deseas conectarte. - Sustituye el `{token}` por el token de acceso del usuario. :::tip El token de acceso puede omitirse, pero esto significa un uso no registrado, lo que limita la información que puede recibirse y las operaciones posibles. ::: Una vez conectado al stream, puedes suscribirte a las entradas descritas a continuación, pero aún no puedes recibir nuevas entradas en la línea de tiempo, por ejemplo, en esta fase. Para recibir este tipo de eventos, debes conectarte al **canal** descrito a continuación en el stream. **Todos los intercambios en el stream tienen formato JSON.** ## Canales La API de streaming de Misskey tiene el concepto de canales.Se trata de un mecanismo para separar la información que se envía y la que se recibe. La conexión a canales en un stream permite recibir varios tipos de información y transmitir información. :::tip Es posible conectarse a varios canales simultáneamente en una sola conexión de stream. ::: A continuación se describe cómo utilizar los canales.Para ver los canales disponibles, consulta la [lista de canales] (./channel/index.md). ### Conectarse al canal Para conectarse a un canal, envía los siguientes datos al flujo en JSON: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` Aquí - Pon en `channel` al nombre del canal al que quieres conectarte.[Lista de canales] (./channel/index.md). - Establece `id` a un ID arbitrario para interactuar con el canal.Esto se debe a que en el flujo se reproducen diferentes mensajes y es necesario identificar de qué canal procede el mensaje.Este ID puede ser un UUID o un número aleatorio. - Los `params` son los parámetros para conectarse al canal.Los distintos canales requieren parámetros diferentes para la conexión.Esta propiedad puede omitirse cuando se conecta a un canal sin parámetros. :::tip Estos ID deben ser únicos para cada conexión a un canal, no sólo para cada canal.Esto se debe a que puede haber varias conexiones al mismo canal con diferentes parámetros al mismo tiempo. ::: ### Tratamiento de los mensajes entrantes de los canales Por ejemplo, un canal de línea de tiempo emitiría un mensaje cuando hubiera una nueva publicación.Al recibir ese mensaje, sabrás en tiempo real que se ha publicado una nueva entrada en tu cronología. Cuando un canal emite un mensaje, se transmiten los siguientes datos en JSON: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` Aquí - El `id` se establece en el ID establecido al conectarse a ese canal como se ha descrito anteriormente.Esto le permitirá saber de qué canal procede este mensaje. - El `type` se establece en el tipo de mensaje.El tipo de mensajes que se emitirán depende del canal. - El `body` se establece con el contenido del mensaje.El tipo de contenido de los mensajes variará en función del canal. ### Enviar mensajes al canal Dependiendo del canal, es posible que no solo recibas mensajes, sino que también puedas enviar algunos mensajes nuestros y realizar algunas operaciones. Para enviar un mensaje a un canal, envía los siguientes datos al flujo en JSON:. ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` Aquí - El `id` se establece en el ID establecido al conectarse a ese canal como se ha descrito anteriormente.Esto permite al usuario identificar a qué canal va dirigido este mensaje. - El `type` se establece en el tipo de mensaje.Los distintos canales aceptan diferentes tipos de mensajes. - El `body` se establece con el contenido del mensaje.Los distintos canales aceptan distintos tipos de mensajes con contenidos diferentes. ### Desconectarse del canal Para desconectarse de un canal, envía los siguientes datos al flujo en JSON: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` Aquí - El `id` se establece en el ID establecido al conectarse a ese canal como se ha descrito anteriormente. ## Capturar posts Misskey ofrece una construcción llamada "captura de posts". Es una función para recibir en el stream los eventos de un post seleccionado. Por ejemplo, supongamos que se obtiene la línea de tiempo y se la muestra al usuario. Supongamos que alguien reacciona a una de las entradas de la cronología. Sin embargo, el cliente no tiene forma de saber que se ha reaccionado a una publicación, por lo que no es posible reflejar la reacción en la línea de tiempo en tiempo real. Para resolver este problema, Misskey proporciona un mecanismo de captura posterior.Cuando capturas una publicación, puedes recibir eventos sobre ella, lo que te permite reflejar tus reacciones en tiempo real. A continuación encontrarás instrucciones sobre cómo utilizar la función Capturar Post.Para ver qué eventos de captura están disponibles, consulta [Lista de eventos de captura] (./note-capture-events.md). ### Capturar Post Para capturar una entrada, envíe el siguiente mensaje al flujo:. ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` Aquí - Establece `id` como `id` de la entrada que deseas capturar. Cuando envías este mensaje, estás solicitando una captura de Misskey y, en lo sucesivo, los eventos relacionados con esa publicación te serán transmitidos. Por ejemplo, si recibes una reacción a una publicación, recibirás un mensaje como este:. ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` Aquí - El `id` en el `body` se establece en el ID de la entrada que desencadenó el evento. - El `type` en el `body` se establece en el tipo de evento. - Los detalles del evento se establecen en `body` dentro de `body`. ### Cancelar la captura del post Si la publicación ya no está visible en tu pantalla y ya no deseas recibir eventos relacionados con esa publicación, solicita que se elimine la captura. Envía el siguiente mensaje: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` Aquí - Establezca `id` en el `id` de la publicación de la que desea eliminar el captcha. Una vez que envíe este mensaje, no se te enviarán más eventos para esa publicación. ================================================ FILE: content/es/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # Lista de Canales ================================================ FILE: content/es/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "Es el canal a través del cual se reproducen las notas de la línea de tiempo global." --- # `globalTimeline` Es el canal a través del cual se reproducen las notas de la línea de tiempo global. ## Parámetros Ninguno ## Eventos ### `note` Se produce cuando se añade una nueva nota a la línea de tiempo global. ## Acciones Ninguna ================================================ FILE: content/es/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "Es el canal a través del cual se reproducen las notas de la línea de tiempo de Inicio" --- # `homeTimeline` Es el canal a través del cual se reproducen las notas de la línea de tiempo de Inicio ## Parámetros Ninguno ## Eventos ### `note` Se produce cuando se añade una nueva nota a la línea de tiempo de inicio. ## Acciones Ninguna ================================================ FILE: content/es/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Este es el canal a través del cual se reproducen las notas de la línea de tiempo social." --- # `hybridTimeline` Este es el canal a través del cual se reproducen las notas de la línea de tiempo social. ## Parámetros Ninguno ## Eventos ### `note` Se produce cuando se añade una nueva nota a la línea de tiempo social. ## Acciones Ninguna ================================================ FILE: content/es/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "Es el canal en el que se reproducen las notas de la línea de tiempo local." --- # `localTimeline` Es el canal en el que se reproducen las notas de la línea de tiempo local. ## Parámetros Ninguno ## Eventos ### `note` Se produce cuando se añade una nueva nota a la línea de tiempo local. ## Acciones Ninguna ================================================ FILE: content/es/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "Es el canal en el que se reproduce la información básica." --- # `main` Es el canal en el que se reproduce la información básica. ## Parámetros Ninguno ## Eventos ### `notification` Se produce cuando se recibe la notificación. ### `mention` Ocurre cuando te mencionan. ### `reply` Esto ocurre cuando se recibe una respuesta. ### `renote` Se produce cuando se vuelve a compartir (Repost) un post. ### `follow` Ocurre cuando sigues a otro usuario. ### `followed` Se produce cuando otro usuario te sigue. ### `unfollow` Ocurre cuando dejas de seguir a otro usuario. ### `messagingMessage` Se produce cuando se recibe un mensaje. ### `readAllNotifications` Se produce cuando se han leído todas las notificaciones. ### `unreadNotification` Se produce cuando hay una nueva notificación. ### `unreadMention` Se produce cuando se recibe una nueva mención. ### `readAllUnreadMentions` Se produce cuando todas las menciones se marcan como leídas. ### `unreadSpecifiedNote` Se produce cuando se recibe una nueva contribución directa. ### `readAllUnreadSpecifiedNotes` Esto ocurre cuando se han leído todos los mensajes directos. ### `unreadMessagingMessage` Se produce cuando hay un nuevo mensaje. ### `readAllMessagingMessages` Se produce cuando se han leído todos los mensajes. ## Acciones Ninguna ================================================ FILE: content/es/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # Eventos posteriores a la captura ## `reacted` Ocurre cuando se produce una reacción a la nota de destino. ## `pollVoted` Se produce cuando se vota el cuestionario adjunto a la nota en cuestión. ## `deleted` Esto ocurre cuando se elimina la nota de destino. ================================================ FILE: content/es/docs/4.for-developers/api/token/1.index.md ================================================ # Obtener un token de acceso Para empezar a utilizar la API, primero debes obtener un código de acceso vinculado a la cuenta que deseas utilizar. Este documento describe los pasos para obtener un token de acceso y, a continuación, el uso básico de la API. Por lo general, las solicitudes de API requieren un token de acceso. Un token de acceso es información de autenticación vinculada a un usuario, que identifica al usuario que utiliza la API y gestiona los permisos asociados a cada token de acceso. :::tip Un usuario y sus tokens de acceso asociados tienen una relación de uno a muchos, lo que significa que se pueden emitir múltiples tokens de acceso para un mismo usuario. ::: Puedes obtener fácilmente tu propio token de acceso, y también puedes obtener tokens de acceso para los usuarios que vayan a utilizar su aplicación. - En el primer caso, vaya a la sección **"Emisión manual de su propio código de acceso "**. - Para esto último: ve a la sección **"Solicitud de tokens de acceso para usuarios de aplicaciones "**. ## Emisión manual de tu propio código de acceso (Token) Puedes obtener tu token de acceso en Misskey Web en "Configuración > Integraciones > API". :::danger Asegúrate de mantener la confidencialidad de tu código de acceso y no lo compartas con otras personas. ::: ## Solicitud de tokens de acceso para usuarios de aplicaciones Para obtener los tokens de acceso de los usuarios que utilizarán tu aplicación (en lo sucesivo denominados simplemente "usuarios"), utiliza uno de los siguientes métodos: :MkIndex ## Usando la API Una vez que hayas obtenido un token de acceso, puedes utilizar la API realizando solicitudes a varios endpoints. :::tip - Todas las peticiones HTTP API son POST, tanto las peticiones, como las respuestas están en formato JSON (excepto para drive/files/create). - Especifíca `Content-Type: application/json` en la cabecera de la solicitud. - Incluye el token de acceso en el JSON del cuerpo de la petición con el nombre de parámetro `i`. - La URL base es `https://{dominio del servidor}/api`. ::: ### Uso de la cabecera de autorización En lugar de utilizar `i`, puedes especificar el campo `Authorization` en la cabecera de la siguiente manera: ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### Utilización del parámetro `i` Ejemplo de un cuerpo de solicitud con un token de acceso (para `meta`): ```json { "i": "HogEFugA1341", "detail": false } ``` Para más detalles sobre cada punto final, consulta la referencia de la API. :::warning La API de Misskey no sigue las prácticas REST. ::: Además de la API HTTP, Misskey también ofrece una API de streaming.Para más información sobre la API de streaming, consulta [esta documentación](../streaming/). ================================================ FILE: content/es/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: Describe el método de autenticación simplificado propio de Misskey, disponible a partir de v12.27.0. --- # Obteniendo un Token de Acceso a través de MiAuth Para obtener un token de acceso para los usuarios (en adelante denominados simplemente "usuarios") que utilizarán tu aplicación, sigue estos pasos: :::tip El método descrito a continuación se llama MiAuth, que permite la emisión instantánea de tokens de acceso sin crear una aplicación. - [También existe un método OAuth más utilizado para obtener tokens de acceso.](./oauth.md) - [También puedes obtener tokens de acceso a través del método de creación de aplicaciones (método heredado).](./app.md) ::: ## Paso 1 Genera un UUID.Se utilizará como **ID de sesión**. :::danger Genera un nuevo identificador de sesión cada vez y no lo reutilices. ::: ## Paso 2 Mostrar el formulario de autenticación de la aplicación en el navegador del usuario.Puedes abrir el formulario de autenticación utilizando una URL con el siguiente formato: ``` https://{host}/miauth/{session} ``` Aquí - Sustituye `{host}` por el nombre del servidor del usuario.Normalmente, el host lo introduce el usuario. - Sustituye `{session}` por el ID de la sesión. También puede establecer varias opciones como parámetros de consulta en la URL: | Nombre | Descripción | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | El nombre de la aplicación | | `icon` | La URL de la imagen del icono de la aplicación. | | `callback` | La URL a la que redirigir después de la autenticación.
El ID de sesión se añadirá como parámetro de consulta `session` en la redirección. | | `permission` | Los permisos requeridos por la aplicación.
Enumera los permisos necesarios separados por comas.Comprueba la lista de permisos [aquí](../permission.md). | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Paso 3 Después de que el usuario conceda acceso a la aplicación, realiza una solicitud POST a una URL con el siguiente formato para recibir una respuesta JSON que contenga el token de acceso. ``` https://{host}/api/miauth/{session}/check ``` Aquí - Sustituye `{host}` por el nombre del servidor del usuario. - Sustituye `{session}` por el ID de la sesión. Las propiedades incluidas en la respuesta son:. | Nombre | Descripción | | ------- | --------------------------------------------- | | `token` | El token de acceso del usuario | | `user` | Información sobre el usuario. | ================================================ FILE: content/es/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: Este documento explica cómo autenticarse utilizando el método OAuth2.0, disponible a partir de la versión 2023.9.0. --- # Obteniendo un Token de Acceso a través de OAuth Para obtener un token de acceso para un usuario de la aplicación (en lo sucesivo denominado simplemente "usuario"), solicita su emisión siguiendo estos pasos :::tip El método descrito a continuación se denomina [OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html).A diferencia del OAuth normal que requiere la creación de una app, este método puede utilizarse sin crear una app a través de una extensión llamada [IndieAuth](https://indieauth.spec.indieweb.org/). Hay muchas bibliotecas disponibles para OAuth, por lo que se recomienda utilizar una si es posible. Actualmente, se requiere una página web para utilizar este método.Si no puedes proporcionar una página web o necesitas compatibilidad con versiones de Misskey anteriores a 2023.9.0, utiliza uno de los siguientes métodos: - [MiAuth](./miauth.md) - [Método heredado para obtener tokens de acceso mediante la creación de aplicaciones](./app.md) ::: ## Paso 1 Crea una página web para presentar tu aplicación.Asegúrate de que la página es accesible mediante una dirección HTTPS.Incluye el siguiente código HTML en algún lugar de la página: ```html ``` El código de autenticación se reenviará posteriormente a la dirección de la `redirect_uri`. ## Paso 2 Genera las cadenas PKCE `code_verifier` y `code_challenge`, así como una cadena `state`. - El `code_verifier` debe tener entre 43 y 128 caracteres y contener solo letras, dígitos y los caracteres `-._~`. - El `code_challenge` es el `code_verifier` con hash SHA256 y codificado en base64url. - La cadena `state` no tiene restricciones especiales.Utiliza una cadena aleatoria. :::danger Esta cadena debe generarse cada vez y no utilizarse una y otra vez. ::: :::tip Se recomienda utilizar librerías como [pkce-challenge](https://www.npmjs.com/package/pkce-challenge) o librerías OAuth con funcionalidad PKCE. ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Paso 3 Recupera la información OAuth del servidor de destino.Los datos están en formato JSON. ``` https://{host}/.well-known/oauth-authorization-server ``` Sustituye `{host}` por el nombre del servidor del usuario.Normalmente, el host lo introduce el usuario. Usarás el `authorization_endpoint` y `token_endpoint` en el siguiente paso. :::tip También puedes confirmar la información de `scope` con `scopes_supported`. ::: ## Paso 4 Mostrar el formulario de autenticación de la aplicación en el navegador del usuario.Puedes abrir el formulario de autenticación utilizando una URL con el siguiente formato: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` Aquí - Sustituye `{authorization_endpoint}` por la dirección obtenida en el paso anterior. - Sustituye `{client_id}` por la dirección de la página de presentación de tu aplicación. - Sustituye `{code_challenge}` por la cadena `code_challenge` generada previamente. - La parte `code_challenge_method` debe ser siempre `S256`. - Sustituye `{redirect_uri}` con la dirección utilizada en su página de introducción. - Sustituye `{scope}` por los permisos que requiere tu aplicación, separados por espacios.Usa espacios \`\`, no comas.Comprueba la lista de permisos [aquí](../permission.md). - Reemplaza `{state}` con la cadena de texto `state` generada anteriormente :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Paso 5 Una vez que el usuario conceda acceso a la aplicación, será redirigido a la página especificada como `redirect_uri`. | Nombre | Descripción | | ------- | ---------------------------------------------------------------------------- | | `code` | El código de autorización del usuario. | | `state` | La cadena `state` utilizada en la solicitud de autorización. | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: Comprueba que la cadena de estado coincide y continúa con el siguiente paso. ## Paso 6 Utiliza el código de autorización que obtengas para solicitar un token de acceso mediante POST.La petición se realizará a `token_endpoint`.El formato de los datos puede ser `application/json` o `application/x-www-form-urlencoded`.Los parámetros son los siguientes. | Nombre | Descripción | | --------------- | ----------------------------------------------------------------------------------- | | `grant_type` | Siempre se establece en `authorization_code`. | | `client_id` | La cadena `client_id` utilizada en la solicitud de autorización. | | `redirect_uri` | La cadena `redirect_uri` utilizada en la solicitud de autorización. | | `scope` | La cadena `scope` utilizada en la solicitud de autorización. | | `code` | El código de autorización obtenido | | `code_verifier` | La cadena `code_verifier` generada previamente. | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: La respuesta será un objeto JSON del que podrás obtener y utilizar el `access_token`. ================================================ FILE: content/es/docs/4.for-developers/api/token/50.app.md ================================================ --- description: Describe cómo obtener un token de acceso antes de la introducción de MiAuth (por debajo de v12.27.0). --- # Obtención de un token de acceso mediante la creación de una aplicación (antiguo/heredado) Este documento explica cómo obtener un token de acceso en versiones de Misskey anteriores a la introducción de [MiAuth](./miauth.md) (antes de v12.27.0) y [OAuth](./oauth.md) (antes de v2023.9.0). Este método heredado es necesario para las versiones anteriores a la v12.27.0. ## 1. Crear una aplicación Envía una petición al endpoint [`app/create`](endpoints/app/create.html) para obtener un `appSecret`. ```json { // Nombre de la aplicación "name": "test", // Descripción de la aplicación "description": "mi app de prueba", // Permisos de la aplicación "permission": ["write:notes"] } ``` Especificar una `callbackUrl` en el cuerpo de este objeto hará que la solicitud de autorización completada redirija a esa URL, pasando un `token` en la cadena de consulta. ## 2. Autorizando a los clientes Envía por POST el `appSecret` al endpoint [`auth/session/generate`](endpoints/auth/session/generate). ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` Se devolverá un `token` (para el ejemplo elegiremos `798b9f6e-248d-43a7-a919-fabc664027f1`) y una URL será devuelta. Para autorizar al cliente, navega hasta la URL en un navegador web y permite el acceso. ## 3. Obteniendo un accessToken Una vez que hayas completado el Paso 2, haz una petición POST de `appSecret` y con el `token` al enpoint [`auth/session/userkey`](endpoints/auth/session/userkey). ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` Obtendrás una cadena de texto (string) `accessToken`.Sólo se puede obtener un `accessToken` una vez. ## 4. Generar i Si estás utilizando Node.js, `i` puede generarse utilizando el siguiente código. A diferencia del que se obtiene del Panel de Control, es un número hexadecimal de 64 dígitos. ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. Probándolo ```javascript fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ i: "/* Introduzca i aquí.*/", text: "Hello Misskey API World with My Application!" }), headers: { 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ================================================ FILE: content/es/docs/4.for-developers/bot/1.index.md ================================================ # Crear un bot La [API de Misskey](/docs/for-developers/api/) puede usarse para desarrollar un Bot. - [syuilo/ai](https://github.com/syuilo/ai) ... Hecho usando Node.js, y la implementación del bot está escrita en TypeScript Cuando crees un bot, es muy recomendable que actives la opción Esta cuenta es un bot desde la configuración del perfil. ## Recursos - [Misskey.py](/docs/for-developers/api/) ================================================ FILE: content/es/docs/4.for-developers/plugin/_dir.yml ================================================ title: "Creando un Plugin/Juego" description: "Instrucciones de cómo crear Plug-ins y Juegos se pueden encontrar aquí." ================================================ FILE: content/es/docs/4.for-developers/plugin/create-play.md ================================================ # Crear Juego Play es una función que permite a los usuarios crear sus propias miniaplicaciones y juegos construyendo su propia interfaz de usuario en AiScript. La Play que crees puede publicarse en el servidor, y cualquiera puede jugar con la Play que hayas creado. ## AiScript Los juegos pueden ser creados usando AiScript. ## API Misskey Web expone APIs para Plugins, que pueden ser utilizados para extender la funcionalidad del cliente. Por favor, consulte [AiScript Misskey Extension API Reference](./plugin-api-reference/) para ver qué APIs están disponibles. ================================================ FILE: content/es/docs/4.for-developers/plugin/create-plugin.md ================================================ # Creando un Plugin La funcionalidad de plugin del cliente web Misskey le permite extender el cliente y añadir varias características. Este documento explica cómo crear plugins. ## Creando un Plugin Este es un ejemplo completo de plugin.Este plugin añade un «Botón Fugu Punch» al formulario de la entrada utilizando [`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn). Al instalar este plugin, encontrará un elemento adicional llamado "Fugu Punch" en la sección de plugins del formulario de la entrada.Y si hace clic en el botón, `フグパンチ!!!!🐡( '-' 🐡 )` se añadirá en el cuerpo del texto. ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript Los plugins son scripts escritos con AiScript. ## Metadatos Los plugins deben definir los metadatos del plugin como predeterminados utilizando la función de incrustación de metadatos de AiScript.Algunos ejemplos de metadatos son: ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` Los metadatos son un objeto que contiene las siguientes propiedades: ### name Nombre del plugin ### author Autor del plugin ### version Versión del plugin.Debe ser un número. ### description Descripción del plugin. ### permissions Permisos requeridos por el plugin.Se utiliza para realizar peticiones a la MisskeyAPI. Para obtener información sobre cómo solicitar la API, consulta [AiScript Misskey Extension API Reference](/docs/for-developers/plugin/plugin-api-reference/). :::tip Consulta [la documentación](/docs/for-developers/api/permission/) para obtener una lista de permisos. ::: ### config Un objeto que representa la configuración del plugin. Las claves son los nombres de los ajustes y los valores son cualquiera de las siguientes propiedades. Consulte la [Referencia de la API del complemento](./plugin-api-reference/) para obtener información sobre las API disponibles. #### type A string representing the setting's value type.Can be either a string, number, or boolean.Can be either a string, number, or boolean. #### label Nombre de la configuración que se muestra a los usuarios #### description Descripción del entorno #### default Valor por defecto del ajuste ## API Misskey Web expone APIs para Plugins, que pueden ser utilizados para extender la funcionalidad del cliente. Por favor, consulte [AiScript Misskey Extension API Reference](./plugin-api-reference/) para ver qué APIs están disponibles. ## Distribuyendo plugins A partir de la versión 2023.11.0, puedes instalar el plugin directamente desde tu sitio web con un solo clic. Si deseas proporcionar la funcionalidad de instalación de plugins, tendrás que implementar una API en tu sitio.Para más información, consulta [aquí](../publish-on-your-website.md). ================================================ FILE: content/es/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # Referencia de la API ampliada de AiScript Misskey Esta sección presenta la API AiScript extendida para Misskey. :::tip La documentación de la API estándar de AiScript se encuentra [aquí](https://aiscript-dev.github.io/guides/get-started.html). ::: ## Constantes comunes para todos los casos de uso ### `USER_ID` ID del usuario actual ### `USER_NAME` Nombre del usuario actual. ### `USER_USERNAME` Handle (Nombre de usuario) del usuario actual (la parte después de la `@`.e.g. `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` La matriz de los emojis personalizados.Una matriz de objetos de los siguientes tipos: ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` El idioma actual de visualización de Misskey Web.Formato RFC4646 compatible (e.j. `ja-JP`) ### `SERVER_URL` La URL del servidor actual.Se representa mediante un origen, como `https://www.example.com`. ## Funciones comunes para todos los casos de uso ### `Mk:dialog(title, text, type)` Mostrar un cuadro de diálogo.Se pueden establecer los siguientes valores para el tipo.\ `info` `success` `warning` `error` `question`\ Si se omite será `info`. ### `Mk:toast(text)` Muestra un toast.A diferencia de los diálogos, no requiere que el usuario cierre el diálogo, por lo que puede utilizarse para notificaciones sencillas, como cuando se ha completado alguna operación. ### `Mk:confirm(title, text, type)` Muestra un diálogo de confirmación.Se pueden establecer los siguientes valores para el tipo.\ `info` `success` `warning` `error` `question`\ Si se omite será `question`.\ Devuelve `true` si el usuario selecciona "OK" o `false` si el usuario selecciona "cancel". ```AiScript let response = Mk:confirm( '¿Estás seguro de que quieres continuar?' 'Esta operación no se puede deshacer. Compruébalo cuidadosamente.' 'warning' ) if (response) { // Cuando el usuario hace clic en "OK" } else { // Cuando el usuario hace clic en "Cancelar" } ``` ### `Mk:api(endpoint, params, token?)` Realiza una solicitud a la API de Misskey.Realiza una petición a la API de Misskey.Pasa el nombre del endpoint como primer argumento y el objeto parámetro como segundo argumento. También puedes incluir el token de API como tercer argumento.Cuando se llama dentro de un plugin, si se especifica `permissions` en el bloque de metadatos, se utilizará el token con los permisos especificados si no se especifica el tercer argumento. :::tip Consulta [la documentación](/docs/for-developers/api/permission/) para obtener una lista de permisos. ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: '¡Hola desde un plugin!' }) } ``` ### `Mk:save(key, value)` Guarda de forma persistente una clave arbitraria con cualquier valor dado.Guarda de forma persistente una clave arbitraria con cualquier valor dado. El valor guardado permanecerá después de que finalice el contexto AiScript y puede cargarse con Mk:load. ### `Mk:load(key)` Lee el valor del nombre especificado guardado por Mk:save. ### `Mk:remove(key)` NOTA: Esta función estará disponible en Misskey v2025.1.0 (nombre provisional) o posterior. Elimina el valor del nombre especificado y guardado por Mk:save.Si el valor con el nombre especificado no existe, no se hace nada. ### `Mk:url()` Obtiene la URL de la página abierta actualmente (la URL que aparece en la barra de direcciones del navegador). ### `Mk:nyaize(text)` Nyatiniza el texto especificadoNo se tiene en cuenta la sintaxis MFM, etc. ## Funciones/Constantes sólo disponibles para plugins ### `Plugin:register_post_form_action(title, fn)` Añade una acción en el formulario del post.Pasa el nombre de la acción como primer argumento y la función de devolución de llamada cuando se selecciona la acción como segundo argumento.\ A la función callback se le pasa el `text` y `cw` del objeto formulario enviado como primer argumento, y la función para reescribirlos como segundo argumento. ```AiScript Plugin:register_post_form_action('Nombre del elementos que aparece en el menú', @(note, rewrite) { // Hacer algunos cambios a la nota... rewrite('text', `{note.text}{Str:lf}#examplehashtag`) }) ``` ### `Plugin:register_note_action(title, fn)` Añade una acción en el menú de notas.El primer argumento es el nombre del elemento y el segundo es la función de devolución de llamada cuando se selecciona el elemento.\ A la función callback se le pasa un objeto nota destino como primer argumento. ```AiScript Plugin:register_note_action('Nombre del elemento que aparece en el menú', @(note) { // Haz algo con la nota... Mk:api('notes/create', { text: 'Esto es una cita' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` Añade una acción en el menú de usuario.El primer argumento es el nombre del elemento y el segundo es la función de devolución de llamada cuando se selecciona el elemento.\ A la función callback se le pasa un objeto de usuario destino como primer argumento. ```AiScript Plugin:register_note_action('Nombre del elemento que aparece en el menú', @(user) { // Hacer algo con la información del usuario... Mk:api('notes/create', { text: `{user.name},¡Bienvenido a nuestro servidor/instancia!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` Reescribe la información de la nota mostrada en la interfaz de usuario.\ A la función callback se le pasa un objeto nota destino como primer argumento.\ La nota se reescribirá con el valor de retorno de la función callback.\ Devuelve `null` para ocultarlo. :::warning En la versión 2025.8.0 y posteriores, esta función se ejecuta de forma sincrónica. Las funciones que ejecutan procesamiento asincrónico internamente (como `Mk:api`) no se pueden ejecutar y darán lugar a un error. Además, la ejecución sincrónica significa que todo el resto del procesamiento de JavaScript se suspende mientras el complemento está en funcionamiento.Esto significa que, en comparación con otros ganchos de complementos, los scripts problemáticos (como los bucles infinitos) podrían tener un impacto significativo en el entorno JavaScript del host si se ejecutan.Por favor, tenga cuidado. ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // Haz algún cambio en la nota... note.text = note.text.replace('manzana', 'plátano') // Return null to make it hidden if (note.text.incl('natto')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` Reescribir la información de las notas al publicarlas.\ El objeto de nota de destino se pasa a la función de callback como primer argumento.\ La nota se reescribirá con el valor de retorno de la función callback. ```AiScript Plugin:register_note_post_interruptor(@(note) { // Haz algún cambio a la nota... note.text = note.text.replace('apple', 'banana') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Reescribe la información de la página mostrada en la interfaz de usuario.\ A la función callback se le pasa un objeto Page de destino como primer argumento.\ La Página se reescribe con el valor de retorno de la función callback. ```AiScript Plugin:register_note_post_interruptor(@(page) { // Haz algún cambio en la página... return page }) ``` ### `Plugin:open_url(url)` Abre la URL dada como primer parámetro en una nueva pestaña del navegador. ### `Plugin:config` Un objeto que contiene la configuración del plugin.Los valores establecidos en la configuración de la definición del plugin se guardan en las claves del objeto. ## Constantes sólo disponibles para Play ### `THIS_ID` ID del Play ### `THIS_URL` La URL del Play ## Funciones UI API (disponibles para los widgets Play y AiScript App) ### `Ui:root` El componente raíz de la interfaz de usuario. ### `Ui:render([ ...components ])` Azúcar sintáctico para `Ui:root.update({ children: [ ...components ] })`Reescribe el root de la interfaz de usuario. ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` Recupera y manipula el componente asociado al ID. ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## Funciones de los componentes (disponibles en los widgets Play y AiScript App) En todas las funciones siguientes, el ID del componente puede especificarse como segundo argumento durante la inicialización, como en `Ui:C:xxx(props id)` (esta declaración se omite en la siguiente referencia).El id dado puede recuperarse con la función `Ui:get(id)` y el contenido del componente puede cambiarse directamente con la función `update` (véase la referencia `Ui:get(id)` para más información). ### Layout #### `Ui:C:container` Marco exterior (contenedor) con formato para la alineación del texto, color, etc. ```AiScript Ui:C:container({ children: [ // Matriz (también llamado Array) de componentes que desea colocar dentro del contenedor Ui:C:text({text: "A"}) ] align: 'center' // anchura izquierda,centro,derecha bgColor: '#000' // color de fondo fgColor: '#00f' // color del texto font: 'serif' // font serif,sans-serif,monospace borderWidth: 1 // ancho del borde borderColor: '#f00' // color del borde borderStyle: 'solid' // patrón del borde padding: 1 // anchura del margen rounded: false // esquinas redondeadas borderRadius: 1 // esquinas redondeadas (especifica el grado numérico de redondez) hidden: false // oculto }) ``` #### `Ui:C:folder` Componentes de acordeón (contenedores que los usuarios pueden abrir y cerrar) ```AiScript Ui:C:folder({ children: [ // array de componentes que quieras poner dentro del contenedor Ui:C:text({text: "A"}) ] title: "title" // título a incluir en la parte de apertura y cierre de la carpeta opened: true // abrir desde el principio }) ``` ### Texto #### `Ui:C:text` Texto plano ```AiScript Ui:C:text({ text: "contenido" // texto a mostrar size: 1 // tamaño del texto bold: false // negrita color: '#000' // color font: 'monospace' // tipo de fuente: serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` Habilita el texto MFM ```AiScript Ui:C:mfm({ text: "content" // texto a mostrar size: 1 // tamaño de carácter bold: false // negrita color: '#000' // color font: 'monospace' // fuente serif,sans-serif,monospace onClickEv : @(id) { // Gestor de sintaxis MFM para $[clickable.ev=eventId TEXT] <: `{id} clicked` } }) ``` ### Formularios #### `Ui:C:button` Botón ```AiScript Ui:C:button({ text: "button" // texto a mostrar en el botón onClick: @() { // evento al pulsar } primary: false // ¿color? rounded: false // ¿esquinas redondeadas? disabled: false // ¿desactivar? }) ``` #### `Ui:C:buttons` Botones apilados horizontalmente ```AiScript Ui:C:buttons({ buttons: [ // array de definiciones de los botones; el formato para especificar props es el mismo que Ui:C:button {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // Evento cuando se cambia. El primer argumento es el estado tras el cambio (booleano) } default: false // valor por defecto label: "label" // texto junto al interruptor caption: "caption" // texto auxiliar a mostrar bajo el interruptor }) ``` #### `Ui:C:textInput` Introducción de texto en una sola línea ```AiScript Ui:C:textInput({ onInput: @(text) { // Evento cuando se realiza la entrada. El primer argumento es el valor modificado } default: "default" // valor por defecto label: "label" // texto encima del campo de entrada caption: "caption" // texto auxiliar que se mostrará debajo del campo de entrada }) ``` #### `Ui:C:numberInput` Introducción de texto en una sola línea ```AiScript Ui:C:numberInput({ onInput: @(number) { // Evento cuando se introduce. El primer argumento es el valor después del cambio } default: "default" // valor por defecto label: "label" // texto encima del campo de entrada caption: "caption" // texto auxiliar que se mostrará debajo del campo de entrada }) ``` #### `Ui:C:textarea` Introducción de texto multilínea ```AiScript Ui:C:textarea({ onInput: @(text) { // Evento cuando se realiza la entrada. El primer argumento es el valor después del cambio } default: "default" // valor por defecto label: "label" // texto encima del campo de entrada caption: "caption" // texto auxiliar que se mostrará debajo del campo de entrada }) ``` #### `Ui:C:select` Forma de elegir uno entre varios valores. ```AiScript Ui:C:select({ items: [ // array de opciones, donde text es el texto a mostrar y value es el valor a pasar en el evento cuando se cambie {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // Evento cuando cambia. Valor después del cambio como primer argumento } default: "v1" // valor por defecto label: "label" // texto encima del campo de entrada caption: "caption" // texto auxiliar mostrado debajo del campo de entrada }) ``` ### Relacionado con la publicación de notas #### `Ui:C:postForm` Incrustar el formulario de publicación directamente en Play ```AiScript Ui:C:postForm({ form: { cw: "CW annotation" // texto de "resumen" si se especifica CW text: "post content" // cadena por defecto para post form // Se puede especificar lo siguiente en Misskey v2024.5.0 y posteriores visibility: "home" // rango por defecto post public (public si no se especifica) localOnly: false // sin coalición por defecto o no (false si no se especifica) } }) ``` #### `Ui:C:postFormButton` Botón especial para lanzar el modal del formulario de publicación ```AiScript Ui:C:postFormButton({ text: "¡Publicar!" // texto a mostrar en el botón primary: false // ¿colorearlo? rounded: false // ¿esquinas redondeadas? form: { cw: "CW annotation" // texto "Resumen" si se especifica CW text: "Post content" // cadena por defecto para post form // Se puede especificar lo siguiente en Misskey v2024.5.0 y posteriores visibility: "home" // Ámbito público por defecto de las entradas (público si no se especifica) localOnly: false // Si no hay coalición por defecto (falso si no se especifica) } }) ``` ================================================ FILE: content/es/docs/4.for-developers/publish-on-your-website.md ================================================ # Distribuyendo Plugins y Temas A partir de Misskey v2023.11.0, varios recursos adicionales pueden ser instalados directamente desde su página web.Esto es especialmente útil para quienes producen muchos plug-ins y temas, o para quienes desean crear un sitio de distribución de plug-ins. ## Recursos para la instalación externa. - [Plugins](./plugin/create-plugin/) ... `plugin` - [Temas](../for-users/features/theme/) ... `theme` ## Cómo Funciona Para asegurar que los recursos recibidos por Misskey Web no son manipulados inesperadamente durante la instalación, se calcula un valor hash tanto en el lado del sitio de distribución como en Misskey, y luego es verificado por Misskey. Si el valor hash no coincide, el recurso no puede instalarse. ## Cómo implementarlo ### Página de distribución Cree un enlace en el botón "Instalar" con una URL como la siguiente ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - Sustituye `{HOST}` por el nombre del servidor del usuario.Es habitual que el host permita la entrada del usuario. - `{API_URL}`: se sustituye por la URL de la API para la distribución de recursos (véase más abajo).Las rutas relativas no se aceptan. - `{HASH}`: sustituye el hash SHA-512 del recurso a distribuir.**Los códigos de salto de línea dentro del recurso deben ser coherentes con LF.** ### API para la distribución de recursos Devuelve un objeto JSON desde el endpoint especificado en `{API_URL}` anteriormente, como por ejemplo ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - Tipo": introdúzcalo con referencia al código de "Recursos admitidos para la instalación externa" anterior. - `data`: \*\*introduce el código fuente del recurso como una **cadena**. - En este caso, el código de avance de línea debe ser **LF**. ================================================ FILE: content/es/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # Notas de versión Notas de la versión de Misskey. ## 2025.11.1 Fecha de lanzamiento: 28/11/2025 ### Cliente - Mejora: añadir subtítulos a la configuración de aceptación de reacciones #15921 - Corrección: Se ha corregido un problema por el que, en ocasiones, el contenido de la página podía desbordarse - Solución: Se ha resuelto un problema por el que la pantalla se distorsionaba al mostrar un gran número de elementos mientras la barra de navegación estaba situada en la parte inferior - Corrección: Se ha resuelto un problema por el que la opción «Crear nuevo canal» del menú superior no dirigía a la página de creación de canales #16816 - Corrección: Se ha resuelto un problema por el que aparecían opciones en blanco en los botones de opción. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/1105) - Solución: Se ha resuelto un problema por el que el recorrido por el formulario de publicación no se mostraba correctamente en determinadas situaciones - Solución: Se ha resuelto un problema por el que las anotaciones no se restablecían al hacer clic en el botón de restablecimiento del formulario de envío - Solución: Se ha resuelto un problema por el que la detección de la versión de AiScript en Play (que distingue entre las series v0.x y v1.x) no funcionaba correctamente. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/1129) - Solución: Se ha resuelto un problema por el que el texto del cuadro de diálogo de confirmación era inexacto al cancelar una solicitud de seguimiento - Solución: Se ha resuelto un problema por el que podían producirse errores durante la carga inicial - Corrección: Se ha corregido un problema por el que la vista de lista de clips favoritos no funcionaba correctamente - Corrección: En la API de la extensión AiScript Misskey, se ha corregido el manejo de los casos en los que se especifica explícitamente «null» como argumento para varias funciones ### Servidor - Mejora: menor uso de memoria - Mejora: actualizaciones de dependencias - Corrección: Se ha corregido el cálculo del recuento de caracteres para las palabras silenciadas - Solución: Se ha resuelto un problema por el que aparecían notas durante las actualizaciones del canal en tiempo real, incluso cuando se había configurado que no se mostraran notas al no iniciar sesión con la configuración de bloqueo - Corrección: Compatibilidad con el cambio en el método de especificación de claves API de DeepL API (Seleccionado de https://github.com/MisskeyIO/misskey/pull/1096) - Esta actualización se puede implementar mediante cambios internos.No hay cambios en el método de configuración por parte de Misskey. - Solución: Se ha resuelto un problema por el que las consultas fallaban en entornos que utilizaban la replicación de bases de datos. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 Fecha de lanzamiento: 16/11/2025 ### General - Nueva Funcionalidad: Implementación de la función de silenciamiento de canales n.º 10649 - Puedes silenciar desde la parte superior derecha de la pantalla de resumen del canal (junto a Copiar enlace, Compartir y Configuración) - Mejora: Ahora es compatible con Node.js 24.10.0 - Mejora: Node.js de Docker se ha actualizado a la versión 24.10.0 - Actualización de dependencias ### Cliente - Nuevo: función que permite añadir marcos con metadatos a las imágenes - Mejora: Permite aplicar marcas de agua a las imágenes sin necesidad de crear ajustes preestablecidos - Se facilita la distinción/identificación de los canales que administras/gestionas - Mejora: añadir un enlace al perfil al avatar de la ventana emergente del usuario - Mejora: añadir enlaces a las notas del usuario, a la página de seguidores y seguidos en la ventana emergente del usuario - Mejora: Garantizar una verificación más fiable de los permisos para enviar notificaciones push - Mejora: Añadido un tutorial para el formulario de nueva Nota - La opción "Ver más automáticamente" ahora está disponible en la mayoría de las secciones - Mejorado el flujo de navegación entre la pantalla de configuración de Antenas y Listas, y la línea de tiempo - Detalle de la Mejora: Al seleccionar un elemento en la lista de Antenas y Listas, ahora se navega directamente a la línea de tiempo en lugar de a la pantalla de configuración - Detalle de la Mejora: Se ha añadido un botón en la esquina superior derecha de la pantalla de configuración de Antenas y Listas para ir a la línea de tiempo - Corrección: Se ha resuelto un problema por el que los efectos de confeti siempre se mostraban sin tener en cuenta la configuración de la animación - Se ha mejorado la visualización del estado del botón de cambio de modo en tiempo real en la barra de navegación para que sea más claro - Solución: Se ha resuelto el problema por el que los títulos de las páginas se desbordaban cuando eran demasiado largos - Solución: Se ha resuelto el problema por el que los avatares no se mostraban correctamente en el formulario de publicación de notas #16789 - Solucionado: Problema por el que la línea de cambio no se resaltaba correctamente en la pantalla Emoji personalizado (β) #16626 ### Servidor - Mejora: La limpieza de notas remotas permite reanudar el procesamiento de notas complejas sin interrupciones, comenzando por la siguiente nota - Corrección: Eliminada la restricción de número mínimo de caracteres en el campo de descripción del canal ## 2025.10.2 Fecha de lanzamiento: 27/10/2025 ### Cliente - Solución: Se ha resuelto un problema por el que al borrar la caché dentro de la aplicación se producía un error de renderizado hasta que se volvía a aplicar el tema - Corrección: Se ha corregido un problema por el que los usuarios no podían votar en encuestas sin fecha de caducidad ## 2025.10.1 Fecha de lanzamiento: 24/10/2025 ### General - Mejorar: Mostrar insignias de rol asignadas a usuarios remotos (opcional) Esta función está desactivada de forma predeterminada por motivos de rendimiento.Puede habilitarlo a través del Panel de control > Rendimiento. - Actualización de dependencias ### Cliente - Mejorar: Haga clic en el encabezado de la columna principal de la presentación para poder desplazarse hasta la parte superior o inferior de la página. - Mejora: la lista de borradores/publicaciones programadas se ha trasladado al menú de la cuenta dentro del formulario de publicación, y la función Guardar borrador se ha trasladado al menú «...». - Corrección: Se ha resuelto el problema de los caracteres delimitadores no coincidentes utilizados en los alias de la pantalla de emojis personalizados (beta) #15614. - Solución: Se ha resuelto el problema por el que el ancho de la imagen del banner no coincidía con el área de visualización. - Solución: Se ha resuelto un problema por el que las imágenes de los banners no se mostraban centradas verticalmente en algunos navegadores. - Solución: Se ha resuelto un problema por el que los elementos eliminados de la configuración de la barra de navegación no se podían volver a añadir inmediatamente. - Corrección: Se ha mejorado el comportamiento de la columna de mensajes directos del mazo cuando los mensajes directos están desactivados por las políticas de roles. - Solución: Se ha resuelto el problema de inestabilidad en el funcionamiento táctil con máscaras de imagen. - Corrección: Varias correcciones en el comportamiento de las marcas de agua. - Se ha solucionado el problema por el que las marcas de agua giratorias causaban distorsión. - Se ha corregido un problema por el que las imágenes y el texto se mostraban boca abajo o invertidos horizontalmente cuando se aplicaban marcas de agua. - Para tener en cuenta cualquier parte que se extienda más allá de la pantalla al girar la marca de agua. - Solución: Se ha solucionado un problema por el que los resultados de la votación no se mostraban correctamente una vez finalizada la votación. - Corrección: Se ha corregido un problema por el que la sincronización del modo oscuro podía no funcionar. - Solución: Se ha resuelto un problema por el que se perdían las pistas de audio al comprimir vídeos en iOS. ### Servidor - Mejora: Los administradores/moderadores deberían poder omitir las restricciones de carga de archivos. - Mejorar: Seguridad mejorada ## 2025.10.0 Fecha de lanzamiento: 08/10/2025 ### NOTAS - Se requiere pnpm 10.16.0 - El valor predeterminado de la política que regula la disponibilidad de la función de importación de roles ha cambiado a «No». Los servidores que no hayan modificado la configuración predeterminada deben ajustar su configuración en consecuencia. - El valor predeterminado de la política de tipos de archivos permitidos para la carga se ha actualizado para incluir «text/\*». Los servidores que no hayan modificado esta configuración predeterminada deben ajustarla en consecuencia. ### General - Novedad: ahora está disponible la publicación programada. - El número predeterminado de elementos que se pueden crear es uno.Configure los ajustes según corresponda en la política de roles. - Mejora: ahora puedes establecer un indicador de contenido sensible para cada anuncio. - Mejora: actualizaciones de dependencias - Mejorar: actualización de la traducción ### Cliente - Novedad: ahora puedes mostrar y escanear el código QR de tu cuenta. - Característica: Ahora se pueden comprimir los vídeos para subirlos. - Característica: (Experimental) Habilitar la traducción de notas dentro del navegador. - Mejora: El nombre japonés para el chat ha vuelto a ser «ダイレクトメッセージ (Mensaje Directo)» y ya no es una función beta. - Mejorar: Añadir efectos de máscara (relleno, desenfoque, mosaico) a la edición de imágenes. - Mejorar: Reforzar el efecto de líneas concéntricas en la edición de imágenes. - Mejorar: Habilitar la adición de códigos QR de cuentas a las marcas de agua. - Mejorar: Habilitar la función de arrastrar y soltar para los temas. - Mejorar: Permitir aumentar el tamaño del selector de emojis. - Mejora: Evita que la página de la lista de emojis del servidor se bloquee cuando hay numerosos emojis personalizados. - Mejorar: Centralizar la gestión de los valores de referencia para los cálculos de tiempo con el fin de mejorar el rendimiento. - Mejorar: Permitir la recuperación y copia de información útil para la investigación de errores (como las versiones del sistema operativo y del navegador) desde la página «Contáctenos». - Solución: Se ha resuelto un problema por el que se producía un error durante la carga inicial en iOS cuando el dispositivo estaba en modo oscuro. - Solución: Se ha resuelto el problema por el que no funcionaba el modo gráfico del widget de actividad. - Corrección: Se ha corregido un error por el que, al instalar el diccionario complementario Unicode Emoji, algunos emojis Unicode no estaban disponibles para su selección en el selector de emojis. ### Servidor - Mejora: Se ha añadido FastifyOptions.trustProxy al archivo de configuración para garantizar la adquisición fiable de la dirección IP del usuario. ## 2025.9.0 Fecha de lanzamiento: 08/09/2025 ### Cliente - Mejora: cuando se detecten errores de sintaxis en el widget AiScriptApp, mostrar el error dentro del propio widget en lugar de en un cuadro de diálogo. - Mejora: ahora puedes borrar la caché del sitio en la página /flush. - Mejora: Ampliar el número de elementos que se muestran en los elementos del menú relacionados con la adición de clips/listas/antenas/roles. - Mejora: El botón «Borrar caché» ahora también permite eliminar la caché interna del navegador. - Mejora: Pulsa la tecla Ctrl (tecla Comando) mientras haces clic en un enlace para abrirlo en una nueva pestaña. - Corrección: Se ha corregido un problema que impedía habilitar las notificaciones push. - Corrección: Se ha corregido un problema por el que el widget del ticker RSS no funcionaba correctamente. - Corrección: Se ha resuelto un problema por el que no era posible cambiar de cuenta tras restaurar el perfil. - Corrección: Se ha solucionado el problema por el que las imágenes de error se estiraban horizontalmente. ### Servidor - Corrección: Se ha resuelto un problema por el que la detección de contenido multimedia confidencial no se aplicaba a imágenes como webp. ## 2025.8.0 Fecha de lanzamiento: 31/08/2025 ### Nota - La versión mínima compatible de Node.js es ahora **22.15.0**. ### General - Al eliminar una nota, las notas asociadas ya no se eliminarán simultáneamente. - La API ahora encontrará patrones nunca vistos anteriormente, como «replyId existente mientras reply es nulo» o «renoteId existente mientras renote es nulo». - Se ha implementado una función para eliminar periódicamente las publicaciones antiguas remotas. - Puede habilitarlo a través del Panel de control → Rendimiento → Limpieza de notas remotas. - Es posible evitar el aumento excesivo del tamaño de la base de datos. - Habilitar esta función en servidores existentes puede aumentar temporalmente el uso del almacenamiento debido a la mayor carga de procesamiento. - Para limitar el aumento, establezca la duración máxima del procesamiento en un valor inferior al predeterminado. - Si no observa ningún efecto en el tamaño de la base de datos, compruebe que la función autovacuum esté habilitada. - La federación no se activará hasta que se complete la configuración inicial del servidor. - El término «Directo» en los nombres del ámbito de divulgación japonés ha sido renombrado como «Nominado». - El nombre ahora refleja su función real, lo que facilita su comprensión incluso para quienes no están familiarizados con él. - La función de Misskey equivalente a los «mensajes directos» de otros servicios se denomina «chat» (incluso en versiones anteriores de Misskey, esta función se llamaba «chat» en lugar de «mensajes directos»). Sin embargo, la existencia de una función denominada «publicación directa» dio lugar al malentendido de que se trataba de la función de mensajería directa. - Es posible que en el futuro volvamos a cambiar el nombre de «Chat» por «Mensajes directos». - mfm.js ha sido actualizado. - Mejora: Compatibilidad con los emojis incluidos en Unicode 15.1 y 16.0. - Mejora: Responder a las menciones de usuarios cuya cuenta contenga un «.». - Corrección: Se ha resuelto un problema por el que el selector de variantes (`U+FE0F`) adyacente a los emojis Unicode se reconocía como un emoji. - Mejorar: Habilitar la restricción de las búsquedas de los usuarios mediante políticas de roles. ### Cliente - Característica: AiScript se ha actualizado a la versión 1.1.0. - El complemento debe ser compatible con la versión 1.x. - El juego seguirá funcionando como antes, pero los preajustes recién creados serán de la versión 1.x. - El note_view_interruptor, que había estado desactivado desde una versión anterior, se ha vuelto a activar. - Los controladores deben ser sincrónicos. - Característica: Modo seguro - Si surgen problemas al iniciar el cliente debido al uso de complementos, temas o CSS personalizados, puede iniciarlo desactivándolos. - Puede iniciar el modo seguro utilizando los siguientes métodos: - Pulsa rápidamente la tecla «g». - Añade «?safemode=true» a la URL. - Inicie el modo seguro seleccionándolo en el acceso directo de la PWA. - Característica: Permite seleccionar el estilo que se muestra en la página de inicio cuando no se ha iniciado sesión. - Panel de control → Marca → Estilo de la página de inicio - Característica: Permite mostrar la barra de pestañas de la página en la parte inferior. - Característica: (Experimental) Habilitar la retroalimentación háptica en iOS - Característica: Habilitar la búsqueda dentro del Panel de control - Mejora: Se ha habilitado la opción «Ver más automáticamente», lo que mejora la estabilidad. - Mejora: Compatibilidad con turco (tr-TR) - Mejora: ya no se cargan datos de traducción innecesarios, lo que mejora el rendimiento. - Mejora: Compatibilidad multilingüe para los nombres de los parámetros de efectos de imagen. - Mejorar: Permitir a los usuarios especificar libremente el período relativo para ocultar notas en incrementos de un mes. - Mejorar: Mejorar la interfaz de usuario de la pantalla de confirmación de la dirección de correo electrónico. - Mejorar: Ampliar el ámbito de aplicación al desactivar el seguimiento del desplazamiento de iconos. - Mejora: mejora del rendimiento de renderizado - Mejorar: Actualizar el software dependiente - Solución: Gestión cuando se cancelan o fallan las cargas de archivos en el formulario de envío. - Corrección: Se ha resuelto un problema por el que algunos resultados de búsqueda de configuración apuntaban a rutas inexistentes. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Solución: Se ha resuelto el problema por el que el editor de temas no funcionaba. - Corrección: Se ha corregido un problema por el que las notas no se mostraban en la página de destacados del canal. - Solución: Se ha resuelto un problema por el que los nombres de las columnas no se convertían correctamente en nombres de listas/canales. - Corrección: Se ha resuelto un problema por el que las sugerencias no se mostraban correctamente cuando se introducían varias menciones en una sola línea. - Solución: Se ha resuelto parcialmente un problema por el que las sugerencias no aparecían correctamente en determinadas condiciones (por ejemplo, cuando contenían «-»), incluso cuando se cumplían los criterios de mención. - Solución: Se ha resuelto un problema por el que no funcionaba la función para ver las notas anteriores y posteriores de un usuario. - Solución: Se ha resuelto un problema por el que el cuadro de diálogo de consulta redirigía a @username@null al resolver usuarios locales a través de ap/show. - Corrección: Se ha corregido un problema por el que las decoraciones no aparecían al aplicar decoraciones de iconos. - Solución: Se ha resuelto un problema por el que, en ocasiones, la vista previa del usuario se abría durante la operación táctil al pasar el ratón por encima. - Solución: Se ha resuelto un problema por el que las cuentas gestionadas no se mostraban correctamente en la lista de cuentas. - Solución: Se ha resuelto un problema por el que la página de búsqueda no funcionaba correctamente al especificar una URL remota. ### Servidor - Característica: Comandos de administración del servidor - Se puede ejecutar en el formato «pnpm cli foo». - Actualmente están disponibles los siguientes comandos: - `reset-captcha`: restablece la configuración de CAPTCHA. - Mejora: Optimización del proceso para eliminar notas. - Mejorar: Mejora general del rendimiento. - Mejorar: Actualizar el software dependiente - Mejora: La API `clips/list` ahora admite paginación. - Corrección: Se ha resuelto un problema por el que, en determinados casos, el orden de clasificación no se mostraba correctamente en «notas/menciones». - Solución: Se ha resuelto un problema por el que no se podía dejar en blanco el campo «Secreto» en la configuración de SystemWebhook. - Solución: Se ha resuelto un problema por el que se producía un error en «chat/history» y ubicaciones similares si un usuario eliminado había reaccionado a un mensaje de chat. - Solución: Evitar que desaparezca toda la página cuando se elimina la imagen destacada de la unidad. - Corrección: Se ha corregido la respuesta al utilizar «withRenotes: false» en la API de la línea de tiempo. ## 2025.7.0 Fecha de publicación: 18/07/2025 ### Notas - La versión mínima de Node.js ha pasado de 20.10.0 a 20.18.1 - Tenga en cuenta que Node.js debe utilizarse con v22, la versión recomendada, a menos que se requiera otra cosa. ### General - Característica: función de redacción de notas - Feat: para buscar notas en un clip - Hazaña: Se puede buscar juego. - Característica: En la moderación, los mensajes de chat con archivos de unidad específicos adjuntos se pueden enumerar - Mejora: la funcionalidad de la marca de agua puede controlarse por roles ### Cliente - Nota: La opción "Auto More" está desactivada. - Función: búsqueda en los modlogs - Mejora: la copia de seguridad automática de la configuración se realiza inmediatamente después de activar la copia de seguridad automática de la configuración. - Mejora: subtítulos antes de cargar el archivo - Mejora: Mostrar si los archivos son sensibles al cargarlos - Mejora: mejora de la experiencia del usuario al pegar/soltar archivos en el formulario de envío. - Mejora: se puede invertir el orden de paginación (vista de lista). - Mejora: Permitir especificar la fecha y hora base para la paginación (vista de lista). - Mejora: mejora del rendimiento de renderizado - Corrección: Los archivos no se subían a la carpeta especificada como destino de subida por defecto para la unidad. - Corrección: Se ha corregido un problema por el que los datos guardados permanecían después de desinstalar el plugin. - Corrección: Se ha corregido un problema por el que, al volver a una pestaña de Misskey después de varias horas, la pestaña seguía mostrando una animación de actualización prolongada mientras estaba acelerada. - Fix: Corregido: Las imágenes de notas resaltadas cuando no se ha iniciado sesión se muestran sin tener en cuenta si CW está presente o no. - Corrección: Se ha corregido un problema en el desplegable de selección de rangos por el que la operación no se desactivaba donde debía. - Corrección: Se ha corregido un problema con el desplazamiento horizontal cuando se activa la opción de tirar para actualizar. ### Servidor - Mejora: ahora también se puede especificar sinceDate/untilDate para los puntos finales en los que se puede especificar sinceId/untilId. - Mejorar: para mostrar el nombre del servidor como remitente del correo electrónico (si el nombre del servidor está configurado). - Fix: Calcular correctamente el valor de Progreso en la cola de trabajos ## 2025.6.3 Fecha de publicación: 16/06/2025 ### Cliente - Corrección: Se ha solucionado un problema por el que no se podía utilizar el cliente a menos que se borrara la caché. ## 2025.6.2 Fecha de publicación: 16/06/2025 ### Cliente - Corrección: Se ha solucionado un problema por el que no se podía utilizar el cliente a menos que se borrara la caché. - Actualizaciones de traducción ## 2025.6.1 Fecha de publicación: 16/06/2025 ### Notas - El [note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-) de la API AiScript Misskey Extension (Misskey Web Plugin reference/#pluginregister_note_view_interruptorfn) está actualmente desactivado temporalmente debido a un error. - Misskey Web Submission Form vista previa es "..." Ahora se encuentra en el menú ### Cliente - Característica: ahora las imágenes pueden llevar marca de agua - Hazaña: ahora es posible procesar imágenes (experimental). - Mejora: se ha añadido una opción que permite dar prioridad a las reacciones que se pueden pulsar en la lista de reacciones de la nota. - Mejora: ahora se pueden leer todos los mensajes del chat (Ajustes->Otros) - Mejora: los emojis silenciados ahora se pueden sincronizar entre dispositivos. - Corrección: Se ha corregido la inestabilidad de la selección de archivos de unidad. - Corrección: Se ha corregido un problema con el diseño del campo de archivo y otros campos del panel de control. - Corrección: Se ha solucionado un problema por el que no se podían cargar los resultados de búsqueda de usuarios adicionales. - Corrección: Se ha corregido un problema por el que la información sobre herramientas del gráfico a veces no desaparecía al tocarla. - Corrección: Se ha solucionado un problema por el que las reacciones no aparecían en la cronología de bienvenida. - Corrección: Se ha solucionado un problema por el que los sonidos no se reproducían en las notas nuevas en la columna de la línea de tiempo del deck. ### Servidor - Proeza: añadida la API para leer todos los mensajes de chat (chat/read-all) - Corrección: Se ha corregido un problema por el que la eliminación de cuentas no funcionaba correctamente. - Corrección: Se ha corregido un problema de paginación incorrecta en la bandeja de salida. ### Misskey.js - Fix: Corregido problema de subida de archivos en drive/file/create en misskey-js. ## 2025.6.0 Fecha de publicación: 02/06/2025 ### Cliente - Mejora: gestión mejorada de la carga de componentes asíncronos - Corrección: Se ha corregido un problema por el que algunos emojis de las reacciones podían estar duplicados. - Corrección: se ha corregido un problema por el que los usuarios no podían iniciar sesión si todo el contenido generado por el usuario se había configurado como privado para los no usuarios. ### Servidor - Corrección: Permitir a los usuarios/mostrar incluso si todo el contenido generado por el usuario es privado para los no usuarios. ## 2025.5.1 Fecha de publicación: 31/05/2025 ### Notas - Los siguientes elementos del archivo de configuración se configuran ahora desde el panel de control - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - Ahora es un ajuste (allowExternalApRedirect) en lugar de permitir o no permitir (allowExternalApRedirect) ### General - Característica: Ahora es posible hacer que el contenido del servidor sea privado cuando el servidor es navegado por usuarios que no han iniciado sesión. - Esto ayuda a evitar problemas causados por contenidos remotos inapropiados que no están bien moderados y que se publican involuntariamente en Internet a través de su propio servidor. - Puede elegir entre "Publicar todo (el comportamiento actual)", "Publicar sólo el contenido local (es decir, no publicar el contenido remoto recibido en el servidor)" y "No publicar nada". - El valor por defecto es "Publicar sólo contenido local". - Función: Ahora es posible establecer los tipos de archivos que se pueden cargar en una función. - Por defecto **archivos de texto, JSON, imagen, vídeo y audio**.Otros tipos de archivos, como los zip, no se incluyen, así que cambia la configuración si es necesario. - En algunos casos, es posible que no se detecte correctamente el tipo de archivo (especialmente en formato de texto).En este caso, el tipo de archivo se considera application/octet-stream. - Por lo tanto, si desea permitir aquellos archivos de tipo desconocido, añada application/octet-stream a la especificación. - Función: si el destino de la vista previa implica una redirección, ahora puede establecer si desea o no ir a buscar el contenido redirigido (nº 16043). - Mejora: carga ligera de datos de iconos de interfaz de usuario. ### Cliente - Característica: Interfaz de usuario mejorada. - Ahora es posible mover varios archivos a la vez. - Aspecto: Se ha rediseñado la interfaz de carga de archivos. - Ahora se puede comprobar la información del archivo antes de cargarlo - Ahora se puede seleccionar la calidad de compresión. - Ahora se pueden reintentar las subidas si fallan. - Ahora es posible recortar las imágenes antes de cargarlas. - El tamaño del archivo se comprueba ahora en el tamaño real cargado después de la compresión - Ahora se puede interrumpir la carga de archivos - Proeza: Implementación del Asistente de Inicialización del Servidor. - Sólo tiene que seguir el sencillo asistente para aplicar la configuración óptima a su servidor. - Aspecto: No se ha implementado el modo Websocket para utilizar Misskey sin una conexión Websocket (beta). - Se espera que contribuya a mejorar el rendimiento de los servidores. - Puede utilizarse cómodamente incluso en entornos en los que las conexiones Websocket no estén disponibles por cualquier motivo. - El modo tradicional de realizar conexiones Websocket se ha redefinido como modo en tiempo real. - Algunas funciones, como el chat, seguirán utilizando conexiones Websocket independientemente de la configuración. - Característica: posibilidad de silenciar emoticonos - Ahora es posible silenciar y hacer invisible cada pictograma (pictogramas Unicode y pictogramas personalizados). - Característica: las páginas a pantalla completa pueden utilizarse para ampliar y mostrar IU colapsadas en dispositivos móviles (experimental). - Mejora: poder fusionar valores en caso de conflicto al activar la sincronización de la configuración - Mejora: menor uso de memoria. - Mejora: se ha añadido la opción de desactivar los marcadores de posición de alta calidad en las imágenes para mejorar el rendimiento. - Mejora: al abrir una sala a la que has sido invitado pero a la que no te has unido, para preguntarte si aceptas la invitación. - Mejorar: para indicar que una encuesta está disponible en la fuente de respuestas - Mejora: diseño y rendimiento mejorados de la información del servidor en las notas (Basado en https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/211) https://github.com/taiyme/misskey/pull/283) - Mejora: Ahora se puede desactivar la vista previa de URL en la configuración de usuario. - Mejorar: consejos y trucos adicionales - Mejora: los consejos y trucos se pueden volver a mostrar - Mejora: función `Mk:toast` añadida para mostrar tostadas desde AiScript - Mejora: el motor de resaltado de sintaxis ha pasado a basarse en JavaScript. - Tamaño de carga frontal aligerado. - La mayoría de las lenguas pueden resaltarse sin problemas, pero los problemas de compatibilidad pueden impedir que algunas lenguas se resalten correctamente.Para más información, visite https://shiki.style/references/engine-js-compat. - Corrección: Se ha corregido un problema por el que, al enviar un archivo de vídeo al chat, el vídeo se mostraba incorrectamente y no se podía ver. - Corrección: Se ha corregido un problema por el que no se detectaban correctamente los conflictos al intentar sincronizar los valores de configuración dependientes de la cuenta y los valores predeterminados con el servidor. - Corrección: En el widget "Reloj", el fondo no es transparente aunque esté activada la opción Transparente. - Corrección: Ocultar los controles del reproductor de vídeo tras un cierto periodo de inactividad. - Corrección: Se ha corregido un problema por el que los clips de Twitch no se podían reproducir en el reproductor. ### Servidor - Mejora: exportar listas y seguimientos para incluir información sobre si las respuestas están incluidas o no. - Mejora: número máximo de miembros de la sala de chat ajustado de 30 a 50. - Mejora: se añade la bandera `hasPoll` para indicar si se adjunta un cuestionario a la respuesta de la nota. - Mejora: se añade el indicador `invitationExists` a las respuestas de las salas de chat para indicar si el usuario está invitado o no. - Mejora: ajuste del método de cálculo del límite de tarifa (#13997) - Mejora: ajuste de la duración de la caché para OGP en sitios externos - Corrección: Corregido: El estado No leído a veces permanece cuando se elimina una sala de chat o se abandona la sala de chat. - Corrección: Se ha solucionado un problema con la importación de antenas excluidas por el usuario. - Corrección: No se exporta la información sobre si la antena contiene notas de canal sensibles o no. - Fix: Mute penetrado cuando una nota citada por un usuario silenciado es RN'd #16009 - Fix: Omitir la etiqueta de enlace al json de la actividad en el HTML generado cuando el modo de federación es 'Ninguno'. - Corrección: Se ha corregido un problema por el que no se registraban los datos del creador al crear un código de invitación desde el panel de control. - Corrección: Se ha solucionado un problema por el que no se podía ver la lista de trabajos en pausa desde la página de cola de trabajos del panel de control. ## 2025.5.0 Fecha de publicación: 07/05/2025 ### Notas - Node.js en Docker actualizado a 22.15.0 ### Cliente - Función: arrastre con el botón central del ratón para tirar de la línea de tiempo y actualizarla. - También puede desactivarse a través de los ajustes de accesibilidad - Mejora: mejor rendimiento de la línea de tiempo - Mejora: permite eliminar los perfiles de las configuraciones de las copias de seguridad. - Corrección: La animación del menú acordeón no funciona en algunos navegadores. - Corrección: Se ha corregido un problema por el que los avisos de diálogo a veces se extendían más allá de la pantalla. - Corrección: Se ha corregido un problema por el que el indicador seguía mostrándose tras un error en la ventana emergente del usuario. ### Servidor - Mejora: las notas de usuarios congelados no aparecen en varias líneas de tiempo `#15775`. - Mejora: poder darse de baja según el software y el nombre de la versión de la coalición `#15727`. - Mejora: las regeneraciones de índices añadidas en 2025.4.1 ahora pueden realizarse mientras se añaden notas. `#15915` - Cuando la variable de entorno `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` se establece en `1`, la regeneración de índices en columnas existentes en tablas enormes utiliza ahora `CREATE INDEX CONCURRENTLY`. - En servidores con múltiples procesos de servidor agrupados, la migración con esta opción activada mientras algunos procesos están en ejecución puede reducir el tiempo de inactividad. - Sin embargo, si se activa esta opción, el tiempo necesario para crear el índice puede ser más del doble~3 veces superior. - Además, si se trata de una instancia grande, la indexación puede fallar y requerir múltiples reintentos. - Corrección: Algunos resultados de la lista de canales seguidos son incorrectos (#12175) - Corrección: Se ha corregido un problema por el que el nombre del archivo siempre aparecía sin título al cargar un archivo. - Corrección: Se ha corregido un problema que podía provocar fallos en la carga de archivos. - El recorte de imágenes en el formulario deenvíotambién resuelve el problema de no poder enviarnotascon un error `Parámetro no válido.`. - Si este suceso ya le ha impedido enviar una nota, "restablezca" los datos de su borrador desde el menú situado en la parte superior derecha del formulario de envío. ## 2025.4.1 Fecha de publicación: 30/04/2025 ### General - Hazaña: se ha implantado una herramienta de gestión de colas de trabajo alternativa al tablón de anuncios. - Función: Ahora se puede establecer el tamaño máximo de archivo que se puede cargar por función. - Por defecto, 10 MB. - Mejora: notificación push de nuevos mensajes de chat - Mejora: para los servidores que son objeto de un bloqueo de servidor, hacer invisibles los usuarios y las publicaciones conocidas en ese servidor. - Mejorar: Actualizaciones de dependencias - Mejora: Actualización de traducciones - Corrección: Correcciones de seguridad ### Cliente - Función: añadir widget de chat - Hazaña: añadir una columna de chat a la cubierta - Característica: se puede mostrar la barra de título - Mejora: Los pictogramas Unicode pueden convertirse en pictogramas Unicode después del último `:` como `:ok:` al introducirlos desde slug. - Mejorar: para poder borrar la cola de trabajos en el panel de control. - Mejora: el color de la cabecera de la página se puede cambiar en los temas - Mejora: deslizamiento mejorado para cambiar de pestaña - Mejora: repasa el diseño. - Corrección: Se ha solucionado un problema por el que el proceso no se completaba al cerrar la sesión. - Corrección: Ahora se realiza una copia de seguridad de la configuración justo antes de cerrar la sesión en los entornos en los que se ha configurado la copia de seguridad automática. - Fix: Subir desde el menú con una carpeta abierta sube a la carpeta raíz #15836 - Corrección: Ahora se recuerda la posición de desplazamiento de la línea de tiempo. - Fix: La posibilidad de mostrar las notas inmediatamente después de la nota causó la visualización en orden inverso #15841 - Corrección: Los usuarios del filtro de antena no se actualizaban durante la migración de cuentas #15843 - Corrección: Corrección de notas duplicadas en la línea de tiempo. ### Servidor - Mejora: las colas de trabajos también deberían almacenar un cierto número de trabajos realizados con éxito/fallidos durante un cierto periodo de tiempo, para facilitar la investigación de problemas más adelante. - Mejora: si un usuario es seguidor, incluso las notas publicadas sólo por seguidores pueden ser detectadas por la antena (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https:// github.com/team-shahu/misskey/pull/38) - Mejora: las notas se muestran más rápido para cada usuario - Corrección: Se ha solucionado un problema por el que el nombre de la cuenta del sistema no se sincronizaba con el nombre del servidor. - Corrección: error 404 devuelto cuando se consultaba con una URL de usuario que contenía caracteres en mayúsculas #15813 - Corrección: Al configurar una réplica de lectura, las consultas que implican añadir, actualizar o eliminar registros se ejecutan en el nodo maestro ( #10897 ). - Corrección: Algunos ajustes en el comportamiento de carga de archivos (#15895) ## 2025.4.0 Fecha de publicación: 09/04/2025 ### General - El chat (mensajería directa) se ha renovado y ha vuelto. - La aplicación es más cómoda y eficaz que las funciones DM existentes. - Es posible restringir quién puede aceptar chats. - Puede seleccionar entre Cualquiera / Sólo seguidores / Sólo seguidores / Sólo mutuas / No se aceptan - Puedes chatear con cualquier persona a la que hayas enviado un mensaje, independientemente de la configuración anterior. - Se puede controlar si la función de chat está abierta o no mediante roles - También puedes crear salas y chatear con varias personas. - Puedes buscar mensajes enviados por ti o enviados a ti en el pasado. - Puedes silenciar la sala en la que participas para evitar notificaciones. - También se puede reaccionar a los mensajes. - Actualmente sólo está disponible entre usuarios locales, ya que no hay forma de saber si el usuario remoto está configurado para aceptar chats o no. - Función: Ahora es posible copiar funciones de una cuenta antigua a una nueva al migrar cuentas. - El administrador puede especificar si desea copiar durante la migración en la configuración del rol. - Mejora: se ha eliminado la integración del tablero de cola de trabajos (bull-board) para mejorar la seguridad. - El cuadro de mandos se implementará de forma nativa en Misskey - Mejora: para permitir el seguimiento de errores frontales. - Establece el elemento `sentryForFrontend` en `.config/default.yml` en consecuencia. - La información de error se envía al servicio externo Sentry.Por favor, actúe de acuerdo con las leyes y normativas locales, y con una política de privacidad adecuada. - Mejora: los usuarios silenciados se excluyen de los resultados de búsqueda de usuarios - Mejora: permitir a la antena excluir notas en canales sensibles `#14177`. - Corrección: La paginación de notificaciones a veces impedía que se cargaran dos o más notificaciones. ### Cliente - Ventaja: mejor gestión de los ajustes - Se han rediseñado los procesos internos para mejorar la estabilidad y el rendimiento. - Todos los ajustes del cliente se incluyen ahora en el destino de exportación (copia de seguridad)/importación. - Ahora también se incluye toda la información de la cuenta añadida a plugins, temas y clientes. - Para poder realizar copias de seguridad automáticas de los datos de configuración en un servidor. - Puede activarse en Ajustes → Perfiles de ajustes → Copia de seguridad automática. - Se restaura automáticamente al iniciar sesión desde un nuevo dispositivo o cuando se pierden los datos de configuración del navegador (también se puede omitir la restauración). - Permite sincronizar cualquier elemento de configuración entre dispositivos. - Elemento de configuración "..." Menú → "Sincronizar entre dispositivos". - Si hay un conflicto entre el valor almacenado en el servidor y el valor local cuando se activa la sincronización, puede elegir cuál tiene prioridad. - Para poder restablecer cualquier elemento de configuración a su valor predeterminado. - Opción de ajuste "..." Menú → "Restablecer valores predeterminados". - Los ajustes del cliente que estaban mezclados (y no podían configurarse para que estuvieran separados o no) se aplican ahora básicamente de manera uniforme a todo el cliente y pueden configurarse de manera diferente para cada cuenta individualmente. - En el elemento de configuración " Menú -> "Anular por cuenta" se puede activar para que los valores de ajuste sólo se apliquen a esa cuenta - Ahora, al cerrar la sesión también se borran los datos de configuración del navegador para mejorar la privacidad. - Puede restaurar los datos de configuración desde la copia de seguridad del servidor iniciando sesión de nuevo. - Los datos de configuración exportados pueden ahora importarse y aplicarse en otros servidores( transporte de configuraciones ). - La migración de la información de configuración es automática, pero si por algún motivo falla, se puede volver a intentar en Ajustes → Otros → Migrar información de configuración antigua. - Tenga en cuenta que esto es actualmente incompatible con los datos de copia de seguridad creados anteriormente. - Hazaña: implementada una opción para superponer pantallas (experimental). - Ajustes → Varios → Funciones experimentales → Enable stacking router view. - Mejora: gestión mejorada de plug-ins - Ya no es necesario recargar al instalar/desinstalar/cambiar ajustes. - Mejora: para borrar todos los datos del cliente web almacenados en el navegador al cerrar la sesión. - Mejora: La interfaz de usuario de la cubierta permite establecer márgenes entre columnas. - Mejora: la posición del menú de cubierta puede ajustarse en la interfaz de usuario de la cubierta. - Mejora: la posición de la barra de navegación puede ajustarse en la interfaz de usuario de la cubierta - Mejora: desactivar el desplazamiento de los iconos para mejorar el rendimiento. - Mejora: si no se introduce ningún texto de anotación CW, desactivar el botón Publicar - Mejora: si CW está desactivado, el texto anotado puede enviarse aunque supere el número máximo de caracteres introducidos. - Mejora: diseño mejorado de la pantalla de configuración del tema - Mejora: menú de configuración del formulario de envío mejorado - Para poder restablecer el formulario de envío. - Restablecer el recuento de caracteres - Mejora: Incluir la URL del servidor en el nombre del archivo del código de recuperación durante la autenticación de dos factores. - Mejorar: Pulir y perfeccionar en general. - Mejorar el rendimiento general - Mejora: Se ha eliminado la opción predeterminada de comprimir los archivos al subirlos, y ahora se puede elegir si se desean comprimir al subirlos. - Ahora, al pegar o soltar datos de imagen, estos se comprimen. - Corrección: Se ha corregido el problema por el que, al intentar desplazarse inmediatamente después de la carga, el desplazamiento se detenía a mitad de camino. - Corrección: Se ha solucionado el problema por el que algunos colores no cambiaban al cambiar de tema. - Corrección: Se ha solucionado el problema por el que no se podía desplazarse por la interfaz de usuario de deck en iPadOS con el cursor del ratón. - NOTA: Debido a que, por motivos estructurales, resulta difícil migrar la interfaz de usuario clásica al nuevo sistema de diseño, se ha eliminado la interfaz de usuario clásica. - En la interfaz de usuario de la cubierta, se puede reproducir en cierta medida la interfaz de usuario clásica al centrar las columnas, colocar las columnas de widgets a la izquierda y derecha de la columna principal, y mostrar la barra de navegación en la parte superior. ### Servidor - Mejorar el rendimiento general - Corrección: Se ha corregido el error de consulta que se producía al introducir una URL no válida en la información adicional del perfil. - Corrección: Se ha corregido el hecho de que la implementación de la comprobación de la URL de la solicitud ActivityPub no se ajustaba a las especificaciones. - Corrección: Se ha corregido el problema por el que era posible realizar consultas desde el exterior incluso en el modo sin unión. - Corrección: Se ha corregido el problema por el que el parámetro `emojis` de la carga útil del WebHook de prueba difería del parámetro real. - Corrección: Se ha corregido un problema por el que una nota que requería iniciar sesión para verla podía reproducirse al conectarse a una secuenciade línea de tiempo como usuario no conectado. ## 2025.3.1 Fecha de publicación: 09/03/2025 ### General - Actualizar pnpm a la versión v10. - Eliminar Corepack ### Cliente - Feat: Añadir búsqueda de configuración (experimental) - Mejorar: Reorganización de los elementos de configuración ### Servidor - Corrección: Se ha corregido el problema por el que la identificación del ID de usuario de la cuenta del sistema no era correcta durante la migración de la base de datos. - Corrección: Se ha corregido el error por el que la columna «user.featured» se convertía en una cadena JSON dependiendo de la situación. ## 2025.3.0 Fecha de publicación: 06/03/2025 ### General - Mejora: Crear la cuenta Proxy como cuenta del sistema. - Mejora: Si se proporciona un logotipo desde una aplicación externa mediante OAuth, se debe permitir su visualización. El formato debe cumplir con https://indieauth.spec.indieweb.org/20220212/#example-2. - Corrección: Se ha corregido el problema que permitía eliminar cuentas del sistema. ### Cliente - Mejora: Cuando el moderador cambia la configuración de sensibilidad, mostrar un cuadro de diálogo de confirmación. - Mejora: «Reducir las animaciones de la interfaz de usuario» también permite reducir los efectos en pantalla. - Mejora: Se ha invertido el recuento del número de archivos multimedia que se pueden adjuntar en el formulario de envío. - La indicación anterior era «Número restante de archivos adjuntos/Número máximo», pero ahora se ha cambiado a «Número de archivos adjuntos/Número máximo». - Corrección: Se ha corregido el problema por el que los mensajes podían parpadear al ser seguidos. - Corrección: Se ha solucionado el problema por el que no se podía desplazarse por el cuadro de diálogo de publicación cuando se superaba el límite de tamaño. ### Servidor - Corrección: Se ha corregido un problema por el que, en determinados casos, el procesamiento de ActivityPub podía entrar en un punto muerto. - Corrección: Se ha solucionado el problema por el que a veces fallaba la carga de archivos en el almacenamiento de objetos compatible con S3. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 Fecha de publicación: 27/02/2025 ### General - Feat: Notificar al emitir el token de acceso. - Característica: Se ha añadido compatibilidad experimental con Google Analytics. - Actualización de dependencias ### Cliente - Feat: Posibilidad de previsualizar imágenes en el formulario de envío. - Mejora: Considerar CW en las condiciones para mostrar el cuadro de diálogo «Puede resultar molesto» en el formulario de envío. - Mejora: Establecer los nombres de la antena, la lista, etc. como valores predeterminados de los nombres de columna `#13992` - Mejora: Compatibilidad multilingüe de la pantalla de error del cliente - Mejora: Se ha añadido la posibilidad de copiar el ID del archivo desde el menú en el modo desarrollador. \`#15441' - Mejora: Se puede abrir la pantalla de gestión de archivos para administradores desde el menú contextual de los archivos multimedia incrustados en las notas ( #15440 ). - Mejorar: Permitir que se muestre un cuadro de diálogo de confirmación al reaccionar. - Mejorar: Evitar que la información introducida en la búsqueda de usuarios del panel de control se pierda al cambiar de página `#15437` - Mejorar: Mostrar el número de caracteres introducidos en las anotaciones de CW. - Mejora: Ajuste del diseño de la página de búsqueda de notas (Seleccionado de https://github.com/taiyme/misskey/pull/273) - Corrección: Se ha corregido el problema por el que, en la página de notas, a veces no se mostraba la lista de clips. - Corrección: Se ha eliminado la conexión que permitía asignar manualmente roles condicionales `#13529` - Corrección: Se ha solucionado el problema por el que no se podía salir de la página externa desde el reproductor integrado. - Corrección: Se ha solucionado el problema por el que la interfaz de usuario conservaba el estado anterior al volver a cargar Play `#14378` - Corrección: Se ha solucionado el problema por el que el filtro isSensitive/localOnly no funcionaba correctamente en la pantalla de gestión de emojis personalizados (beta) ( #15445 ). - Corrección: Cuando se introduce @ durante la sugerencia de usuario, los resultados de la sugerencia no desaparecen `#14385` - Corrección: Si la anotación de CW supera los 100 caracteres, desactivar el botón de publicación de notas. - Corrección: Se ha solucionado el problema por el que el tema actual no se mostraba inicialmente al seleccionar un tema. - Actualizaciones de traducción ### Server - Mejora: como contramedida contra la suplantación de identidad, habilita la capacidad de rechazar redireccionamientos remotos cuando se consulten a través de ActivityPub (config.disallowExternalApRedirect). - Solución: Devolver información sobre los usuarios que intentan dejar de seguir mediante «following/invalidate». - Solución: Se ha resuelto un problema por el que el prefijo se convertía en nulo o en una cadena vacía si no se configuraba en los ajustes de almacenamiento de objetos. - Corrección: Se ha resuelto un problema por el que las importaciones por lotes de emojis personalizados no respetaban la configuración del proxy HTTP y las exclusiones cuando estaban configurados ( #8766 ). - Corrección: Se ha resuelto un problema por el que solo se utilizaba la primera palabra clave en las búsquedas con pgroonga (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Corrección: Si el formato de la dirección de correo electrónico es incorrecto, no se realizará el procesamiento posterior. - Corrección: Evitar el uso de cadenas no seguras para URL en `objectStoragePrefix` al ejecutar `update-meta`. - Corrección: Se ha resuelto un problema por el que el campo de descripción del clip no se podía dejar en blanco al actualizarlo. - Corrección: Se ha resuelto un problema por el que la actividad de eliminación de una nota no se enviaba cuando un usuario que no era seguidor la volvía a publicar o respondía a ella. ## 2025.2.0 Fecha de lanzamiento: 05/02/2025 ### General - Corregido: Se ha resuelto el problema que provocaba el fallo de las compilaciones de Docker. (Cherry-picked desde https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Cliente - Solución: Se ha resuelto el problema que impedía el inicio de sesión sin contraseña con Passkey. - Solución: Problema por el que ocultar notas que contenían archivos confidenciales no funcionaba en algunos entornos. - Solución: Se ha resuelto un problema por el que las imágenes seguían cargándose en la pestaña «Archivos» de las páginas de usuario incluso cuando estaba activado el ahorro de datos. - Corrección: Se ha resuelto un problema por el que el efecto MFM «sparkle» no se mostraba correctamente. - Solución: Se ha resuelto un problema por el que las páginas no se mostraban correctamente cuando la URL de la página contenía una barra. - Corrección: Se ha corregido un problema que impedía la creación de nuevos perfiles de mazo. - Corrección: Correcciones relacionadas con la seguridad. - Actualización de localización - La función «Ver fuente» se ha eliminado de la página debido a la implementación de Play. ### Servidor - Mejora: Restringir los caracteres permitidos en las URL de las páginas. - Corrección: Se ha corregido la condición incorrecta para generar metaetiquetas en páginas de notificación individuales. ## 2025.1.0 Fecha de lanzamiento: 28/01/2025 ### Notas - [Importante] Con la incorporación del proveedor de búsqueda de notas, la configuración de los archivos de configuración (como default.yml) cambiará ligeramente. - Se ha añadido un nuevo elemento de configuración, «fulltextSearch.provider». Puedes configurar sqlLike, sqlPgroonga o meilisearch. - Si ya estás utilizando Meilisearch, debes configurar **«fulltextSearch.provider» en «meilisearch»**. - Para obtener más información, consulte el número 14730 y la sección «Configuración de la búsqueda de texto completo» en `.config/example.yml` o `.config/docker_example.yml`. - [Para desarrolladores] Se ha resuelto el problema por el que HMR no funcionaba en el modo de desarrollo anterior. En consecuencia, se ha eliminado el modo de desarrollo con separación entre backend y frontend.Es posible que sea necesario realizar cambios en la configuración del entorno de desarrollo. ### General - Característica: Renovación de la pantalla de gestión de emojis personalizados #10996 - Dado que se trata de una versión beta, la interfaz anterior seguirá estando disponible para su uso continuado. ### Cliente - Mejora: Mostrar canales en varias columnas en la pantalla del PC (Seleccionado de https://github.com/Otaku-Social/maniakey/pull/13) - Mejorar: Mostrar el motivo cuando falla una consulta. - Mejorar: Habilitar la visualización de palabras detectadas por Word Mute. - Mejorar: Habilitar la copia de enlaces a notas remotas - Mejora: modificaciones de diseño para servidores en los que la alianza está incluida en la lista blanca o desactivada. - Mejora: Se ha añadido la función «Mk:remove» para eliminar explícitamente los datos guardados de AiScript. - Mejora: Se ha añadido una pestaña «Archivos» para explorar los archivos adjuntos en tus notas (Basado en https://github.com/Otaku-Social/maniakey/pull/14) - Mejora: Implementar una comprobación de tipos más estricta para los argumentos en las funciones de la API de extensión de AiScript. - Mejorar: Habilitar cambios temporales en la interfaz de usuario mediante parámetros de consulta #15240 - Mejora: Permitir la visualización de detalles al importar emojis remotos #15336 - Solución: Se ha resuelto un problema por el que la barra de navegación no se contraía automáticamente cuando cambiaba el tamaño de la pantalla. - Corrección: Se han añadido las líneas separadoras que faltaban en el menú de información del servidor. - Solución: Se ha resuelto un problema por el que al cerrar el cuadro de diálogo de inicio de sesión cuando una nota solo era visible para el usuario que había iniciado sesión, se perdía el flujo de navegación posterior. - Corrección: Se ha resuelto un problema por el que los widgets incrustados en notas con la configuración de visibilidad «Inicio» no se cargaban (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Corrección: Se ha corregido un problema por el que algunos emojis no se mostraban en la pantalla de gestión de emojis. - Solución: Se ha resuelto un problema por el que el complemento «register_note_view_interruptor» no podía reescribir la información del servidor de notas. - Solución: al cambiar la configuración de la protección contra bots, los cambios no se pueden guardar a menos que superen la validación (n.º 15137). - Corrección: Se ha resuelto un problema por el que el campo de búsqueda de notas del canal aparecía incluso cuando la búsqueda de notas no estaba disponible. - Solución: Se ha resuelto un problema por el que los cambios de valor en «Ui:C:select» no se mostraban en pantalla. - Corrección: Se ha resuelto un problema por el que la pantalla de autorización de MiAuth redirigía a la URL de devolución de llamada incluso cuando el proceso de autorización fallaba. (Seleccionado de https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Solución: Se ha resuelto un problema por el que el botón de nota se podía seguir pulsando incluso cuando se superaba el número máximo de archivos que se podían adjuntar en la pantalla de creación de notas. - Solución: Se ha resuelto un problema por el que las cuentas para las que no se podía recuperar la información del usuario (como las cuentas eliminadas) no se mostraban en la pantalla «Administrar cuentas». - Solución: Se ha resuelto un problema por el que al cerrar Misskey en macOS mientras se utilizaban navegadores basados en Chrome se producía una interferencia con la funcionalidad de audio en otras pestañas. - Solución: Se ha resuelto un problema por el que los widgets incrustados podían no iniciarse correctamente dependiendo del estado de la caché de datos del idioma. - Corrección: Se ha resuelto un problema por el que no se podían eliminar citas de las notas utilizando «Eliminar y editar» (n.º 14476). - Corrección: Se ha resuelto un problema por el que el widget RSS no se mostraba correctamente (Cherry-picked de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Solución: Se ha resuelto un problema por el que los errores de API podían suprimirse cuando fallaba el guardado de Word Mute. - Corrección: Se ha resuelto un problema por el que los emojis remotos no se mostraban correctamente en las encuestas. (Cherry-picked de https://github.com/yojo-art/cherrypick/pull/153) - Corrección: Se ha resuelto un problema por el que el botón de menú de la pantalla de resumen del servidor podía no ser clicable cuando no se había iniciado sesión. (Cherry-picked de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Solución: Se ha resuelto un problema por el que el visor de imágenes no se podía cerrar con el botón Atrás del navegador cuando la URL contenía «#pswp» desde el principio. - Corrección: El número máximo de decoraciones de iconos que se pueden añadir en la pantalla de creación de roles se ha limitado a 16. - Solución: Se ha resuelto un problema por el que los iconos no se cargaban en Firefox Nightly y versiones similares. ### Servidor - Mejora: Realiza búsquedas de notas utilizando el operador LIKE con LOWER() aplicado al texto, en lugar del operador ILIKE, para habilitar el uso de pg_bigm. - Mejora: Compatibilidad con pgroonga como opción de búsqueda de notas ( #14730 ) - Mejora: Evita conexiones simultáneas a la base de datos durante las actualizaciones de gráficos (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Mejora: Se ha añadido la opción de configurar si se deben generar registros SQL completos desde config(default.yml) ( #15266 ) - Corrección: Se ha resuelto un problema por el que la pestaña de resumen no se mostraba al acceder directamente a la pantalla de perfil de un usuario a través de la entrada de dirección, etc. ( #15032 ) - Corrección: Se ha corregido un problema por el que la comprobación de conectividad previa al inicio ya no funcionaba. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Solución: Se ha resuelto un problema por el que las notas aparecían en el feed incluso cuando era necesario iniciar sesión para verlas. - Corrección: Federación Emoji para intercambiar campos de licencia mutuamente ( #10859, #14109 ) - Corrección: Se ha resuelto un problema por el que las notas con especificaciones de tiempo bloqueadas aparecían en LTL a través de Streaming (#15200) - Corrección: Se ha ajustado la lógica de inicialización cuando se establece disableClustering ( #15223 ). - Corrección: Se ha resuelto un problema por el que fallaba la consulta de entidades con URL y URI diferentes ( #15039 ). - Corrección: Se ha corregido un problema por el que la determinación de si una solicitud era una solicitud ActivityPub era incorrecta. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/869) - Corrección: Se ha resuelto un problema por el que se producía un error al solicitar `/api/pages/update` sin especificar `name`. - Solución: Se ha resuelto un problema por el que la detección de sensibilidad de la IA no funcionaba en entornos arm64. - Solución: Cuando se reciban notas que contengan etiquetas HTML `` procedentes de software que no sea Misskey, se convertirán y mostrarán utilizando la sintaxis rubí (furigana) de MFM. - Corrección: Se suprime el procesamiento redundante de las notas publicadas con Union OFF (n.º 15018). - Solución: Se ha resuelto un problema por el que la respuesta de `/api.json` se corrompía a partir de la segunda solicitud. ### Misskey.js - Característica: permite configurar `binaryType` de la conexión WebSocket. ## 2024.11.0 Fecha de lanzamiento: 22/11/2024 ### Notas - Node.js 20.x ya está obsoleto.Node.js 22.x (LTS) es ahora la versión recomendada. - Node.js 23.x aún no está soportado. - Node.js en Docker actualizado a 22.11.0 ### General - Característica: Habilitar el inicio de sesión obligatorio para mostrar contenido - Característica: Permite que las notas anteriores sean privadas o visibles solo para los seguidores. - Mejorar: Actualizaciones de dependencias - Mejora: Actualización de la localización - Corrección: Se ha corregido un problema por el que el campo de entrada de la URL de la imagen no se podía dejar en blanco al crear anuncios (n.º 14976). ### Cliente - Mejora: Permite ver el estado de la cola de relaciones en Bull Dashboard (Seleccionado de https://github.com/MisskeyIO/misskey/pull/751) - Mejorar: Habilitar la clasificación por unidad - Mejoras: Mejoras en la pantalla de gestión de la decoración de iconos. - Mejora: Se han modificado las condiciones de adquisición de «Pure Luck». - Mejora: al pulsar la tecla Esc en el formulario de publicación mientras se utiliza un IME, se evita que el formulario se cierre (n.º 10866). - Mejoras: Mejoras en las pantallas de autorización MiAuth y OAuth. - para que quede claro con qué cuenta está intentando autenticarse. - Para habilitar el cambio entre cuentas para la autenticación - Mejora: Se han añadido advertencias para evitar el auto-XSS. - Mejora: Compatibilidad con el catalán (ca-ES) - Mejorar: Asegurarse de que las metaetiquetas se muestren en las páginas de notificación individuales. - Mejora: Mostrar insignias de roles en la pantalla de detalles de la nota. - Mejora: Ver solicitudes de seguimiento enviadas anteriormente (Basado en https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Mejora: Permite expandir y contraer fácilmente la barra lateral ( #14981 ) - Mejorar: Añadir «Detalles de Renota» al menú Renota. - Mejorar: Mejorar el rendimiento al abrir Misskey sin haber iniciado sesión. - Solución: Se ha resuelto un problema por el que la configuración del ámbito de las notificaciones aparecía incluso en ajustes de notificaciones en los que no era necesaria. - Corrección: Se ha resuelto un problema por el que las operaciones fallidas o caducadas de Turnstile se trataban incorrectamente como exitosas. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/768) - Corrección: Se ha resuelto un problema por el que no se podía utilizar la configuración «Mostrar notas que contienen archivos confidenciales» en la columna de la línea de tiempo de la presentación. - Solución: codificar las URL RSS con secuencias de escape antes de recuperarlas, lo que permite utilizar parámetros de consulta. - Solución: Enlaces rotos reparados. - Corrección: Se ha corregido el problema por el que los estilos de desplazamiento no se aplicaban al botón de publicación de notas (Seleccionado de https://github.com/taiyme/misskey/pull/305) - Corrección: Se han revisado las condiciones de visualización del cuadro de diálogo «Completar» al habilitar el registro de direcciones de correo electrónico. - Corrección: Se ha resuelto un problema por el que el diseño se rompía en pantallas con anchura reducida. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/815) - Solución: Acelerar las compilaciones limitando la comprobación de tipos de TypeScript a archivos específicos (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Servidor - Mejorar: Actualizar Node.js de Docker a la versión 22.11.0 - Mejora: durante las comprobaciones de conectividad previas al lanzamiento, verifica también la comunicación con instancias Redis distintas de la base de datos y las principales. (Basado en https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Mejorar: Redirigir las consultas de los usuarios remotos a la fuente original. - Solución: No se puede consultar a los usuarios remotos "Actor" que carecen de una "inbox compartida" - Solución: La aprobación de la solicitud de GtS aparece con cierto retraso. - Solución: Incluir emojis en los mensajes a los seguidores. - Solución: Bloquear cuando se detecten solicitudes de proxy anidadas [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Corrección: Se ha resuelto un problema por el que el valor de la política de roles utilizada para calcular el número restante de códigos de invitación que se podían emitir era incorrecto. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Solución: Se ha resuelto un problema por el que las menciones no se procesaban correctamente durante la entrega a la federación debido a la distinción entre mayúsculas y minúsculas en los nombres de las cuentas. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Solución: Se ha resuelto un problema por el que las notas que contenían menciones a usuarios locales podían no convertirse a la URL correcta al federarse. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Corrección: Se ha resuelto un problema por el que la línea de tiempo de la lista de usuarios no estaba disponible cuando FTT estaba desactivado (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Corrección: Se ha corregido la carga útil simulada para la función de prueba de webhooks de usuario. - Corrección: Se ha solucionado el problema por el que los registros de moderación de eliminación de cuentas no funcionaban correctamente (#14996). - Solución: Se ha resuelto un problema por el que Renote Mute no funcionaba para las notificaciones de nuevas publicaciones. - Solución: Se ha resuelto un problema por el que los errores que se producían durante el procesamiento de la bandeja de entrada a veces se gestionaban incorrectamente como actividades. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Corrección: Correcciones relacionadas con la seguridad. ### Misskey.js - Corrección: al especificar un WebSocket independiente durante la inicialización de Stream, se modificó la definición del tipo. ## 2024.10.1 Fecha de lanzamiento: 15/10/2024 ### Notas - Como medida contra el spam, si no se detecta actividad alguna por parte de los usuarios con privilegios de moderador durante más de siete días, el sistema pasará automáticamente a un sistema de registro solo por invitación (Panel de control -> Moderación -> desactivar «Permitir que cualquiera se registre»). ( #13437 ) - Cuando se produzca el cambio, se enviará una notificación al moderador.Si desea mantener abierta la inscripción, reconfigure los ajustes a través del panel de control. ### General - Característica: Permite establecer palabras prohibidas para los nombres de usuario. ### Cliente - Mejorar: Mejorar el rendimiento al mostrar la línea de tiempo. - Mejorar: Permitir la visualización y edición de notificaciones personales archivadas. - Mejora: Actualización de traducciones - Solución: Se ha resuelto un problema por el que el inicio de sesión automático fallaba tras el registro de la cuenta cuando Captcha estaba habilitado sin requerir una dirección de correo electrónico. ### Servidor - Característica: Cambiar automáticamente al modo solo por invitación si todos los usuarios con privilegios de moderador han estado inactivos durante siete días ( #13437 ) - Mejora: Las notificaciones personales se archivarán automáticamente cuando pulses «Entendido». - Corrección: Se ha corregido un error por el que se producía un error no válido cuando solo se especificaba el ID en el punto final `admin/emoji/update`. - Corrección: Se ha corregido un problema por el que las renotes habilitadas para RBT no reflejaban las reacciones. - Corrección: Simplificar los registros de errores de la cola (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 Fecha de lanzamiento: 09/10/2024 ### Notas - Para mejorar la seguridad, ahora puede establecer una contraseña inicial que se utilizará durante la inicialización del servidor.Cuando configures un nuevo servidor Misskey en el futuro, te recomendamos que comentes la opción `setupPassword` en el archivo de configuración y establezcas una contraseña inicial antes del primer arranque.(Los servidores que ya hayan completado la configuración inicial no requieren ninguna acción en respuesta a este cambio). - Si usted opera un servicio de alojamiento, le recomendamos actualizar su sistema para establecer `setupPassword` en un valor aleatorio al crear el archivo de configuración y notificar a los usuarios al respecto. - Tenga en cuenta que la configuración inicial es posible incluso si no se ha establecido una contraseña inicial (puede continuar dejando el campo de contraseña inicial en blanco en la interfaz de usuario). - El tipo utilizado al cargar los datos del usuario se ha modificado parcialmente. - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: Estos ajustes ya no pueden ser recuperados por usuarios que no sean usted mismo y los moderadores. ### General - Característica: Permite establecer una contraseña inicial durante la inicialización del servidor. - Característica: Permite dejar notas de moderación en los informes. - Característica: Permite configurar el tipo de resolución para los informes. - Mejorar: Habilitar la resolución y el reenvío independientes de los informes. - Mejora: para mayor seguridad, ahora se requiere CAPTCHA durante el inicio de sesión. - Mejorar: Actualizaciones de dependencias - Mejora: Actualización de traducciones - Mejorar: Mostrar más de 10 elementos en la pestaña «Popular» de Play #14399. - Corrección: Se ha corregido un problema por el que la lista blanca de los servidores federados no se registraba correctamente. ### Cliente - Mejorar: Ajustes de diseño - Mejorar: Mejorar el flujo de autenticación en la pantalla de inicio de sesión. - Corrección: Se ha resuelto un problema por el que el comportamiento de adquisición de logros basados en el tiempo en el cliente persistía después de haber adquirido el logro. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Servidor - Mejorar: Para mayor seguridad, habilita las notificaciones por correo electrónico al iniciar sesión. - Mejorar: Impide la recuperación de datos relacionados con la autenticación de dos factores de usuarios que no sean usted mismo ni el moderador. - Mejora: incluir información del usuario en los SystemWebhooks enviados durante la notificación y resolución de informes ( #14697 ) - Solución: Se ha resuelto un problema por el que el endpoint final «admin/abuse-user-reports» era incorrecto. ## 2024.9.0 Fecha de lanzamiento: 29/09/2024 ### General - Característica: Funcionalidad de incrustación para notas independientes, notas de usuario y notas recortables. - Para obtener más información sobre el código de inserción y los métodos de implementación para sitios web, visite https://misskey-hub.net/docs/for-users/features/embed/. - Característica: Se ha implementado el botón de inicio de sesión con Passkey (#14574). - Característica: Permite configurar un mensaje que se enviará cuando se siga. - Logro: Adoptar un sistema de lista blanca para la federación entre servidores / instancias. - Característica: Se ha añadido la funcionalidad de envío de pruebas para UserWebhook y SystemWebhook (#14445). - Característica: Los moderadores pueden buscar notas con archivos adjuntos independientemente del usuario (Seleccionado de https://github.com/MisskeyIO/misskey/pull/680) - Característica: Emitir una notificación cuando se complete la exportación de datos. - Mejorar: Permitir controlar si los usuarios pueden importar contenido mediante políticas de roles. - Mejora: Actualización de dependencias - Mejora: Actualización de traducciones ### Cliente - Mejorar: Mostrar un error al intentar cargar archivos que superen el límite de tamaño. - Mejora: añadir vista previa a la pantalla de gestión de la decoración de iconos. - Mejorar: Distinguir más fácilmente los archivos confidenciales dentro de la lista de archivos del Panel de control. - Mejorar: añadir un inspector de interfaz de usuario al bloc de notas. - Mejorar: Rediseñar ligeramente la disposición de los elementos en la pantalla de edición de Play. - Mejorar: Opción para configurar si se muestran varios menús en un cajón. - Mejora: Se han añadido las opciones «borderStyle» y «borderRadius» a Mk:C:container de AiScript. - Mejorar: Habilitar la función de hacer clic en los emojis para mostrar los menús también en CW. - Solución: Se ha resuelto un problema por el que la pantalla se distorsionaba inmediatamente después de recargar cuando había dos o más métricas del servidor. - Solución: Se ha resuelto un problema por el que los gráficos de la sección «Solicitudes AP» del Panel de control se mostraban incorrectamente. - Corrección: Se ha corregido un problema por el que no se mostraban los separadores para el mismo día en diferentes meses. - Corrección: Se ha resuelto un problema por el que aparecían varias descripciones emergentes al manipular el control deslizante de rango en pantallas táctiles (Seleccionado de https://github.com/taiyme/misskey/pull/265) - Corrección: Se han resuelto los problemas de diseño al mostrar emojis personalizados con relaciones de aspecto extremas. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/725) - Solución: Se ha resuelto un problema por el que podían aparecer varios cuadros de diálogo de confirmación de recarga al cambiar la configuración. - Corrección: Se ha corregido un problema por el que los saltos de línea no se mostraban correctamente en la descripción del archivo en la página de detalles del archivo. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Corrección: Se han solucionado los problemas relacionados con el mal funcionamiento de la paginación en determinadas pantallas ( #12766 , #11449 ). ### Servidor - Característica: Misskey® Reactions Boost Technology™ (RBT) permite reducir la carga de trabajo que supone crear reacciones. - Solución: Lanzar un ApiError cuando no se proporcione ninguna palabra clave durante la escritura de la antena. - Este cambio significa que, en la interfaz oficial, los errores de entrada se notificarán mediante un cuadro de diálogo de error estándar, en lugar de como un error interno. - Corrección: Se ha corregido un problema por el que no se devolvía un error cuando se cargaba un archivo que superaba el límite de tamaño. - Corrección: Se ha resuelto un problema por el que los recursos relacionados vinculados a una página también se cargaban al analizar páginas externas. (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Solución: Continuar importando desde el archivo si falla la importación de un solo emoji. - Corrección: Se ha resuelto un problema por el que no se enviaba el encabezado «Retry-After» (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Corrección: Liberar recursos al completar el análisis DOM del lado del servidor (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Corrección: Solo se permite realizar consultas después de `` cuando se devuelve una respuesta OK (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Solución: Se ha resuelto un problema por el que los estilos no se aplicaban a los correos electrónicos. ## 2024.8.0 Fecha de lanzamiento: 18/08/2024 ### General - Mejora: los moderadores pueden ver la lista completa de seguidores y seguidos de todos los usuarios. - Mejora: Conservar los registros de moderación para las eliminaciones de cuentas. - Mejorar: Permitir a los administradores eliminar páginas, galerías y elementos de Play inapropiados. - Solución: Se ha resuelto un problema por el que la lista de seguidores y seguidos de los usuarios remotos podía mostrarse incluso cuando se había configurado como privada. ### Cliente - Mejora: en la página «Mi reproducción», deja claro de inmediato si una reproducción es privada o no. - Mejorar: Permitir la denuncia de páginas, galerías y Play inapropiados. - Corrección: Se ha resuelto un problema por el que la configuración de visibilidad se restablecía a «Público» durante la edición de Play. - Corrección: Se ha corregido un problema por el que, en ocasiones, las transiciones de página podían fallar. - Corrección: Se ha solucionado el problema por el que los nombres de usuario y textos similares se detectaban incorrectamente como enlaces en iOS. - Solución: Se ha resuelto el problema por el que las advertencias de protección contra bots persistían a pesar de utilizar mCaptcha. - Solución: Se ha resuelto un problema por el que los nombres de usuario que contenían puntos se mostraban como cuentas del sistema en la página de moderación de usuarios. - Corrección: Se ha corregido un problema por el que el botón para eliminar notas no aparecía en determinadas condiciones. ### Servidor - Mejorar: al realizar una consulta, si la URL es HTML y contiene una etiqueta «link» dentro de la etiqueta «head» con «rel="alternate"» y «type="application/activity+json"», habilitar la consulta posterior del destino vinculado. - Mejorar: No mostrar solicitudes de seguimiento de cuentas bloqueadas. - Corrección: El mensaje WS «readAllNotifications» no funciona cuando falta un «body» #14374 - Se ha solucionado el problema por el que las notificaciones recién recibidas no se marcaban como leídas mientras la página de notificaciones o la columna de notificaciones (deck) estaban abiertas. - Esto también resuelve el problema por el que las notificaciones push se producían constantemente en condiciones idénticas cuando estaban habilitadas. - Corrección: Se ha resuelto un problema por el que el campo «visibility» no se incluía en los valores de retorno de varios puntos finales de Play. - Corrección: Se ha resuelto un problema por el que, en ocasiones, no se podía recuperar la información exclusiva para moderadores al obtener los detalles del servidor. (CherryPick desde https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Solución: No utilices notas con visibilidad directa para generar gráficos de actividad de los usuarios. (CherryPick de https://github.com/MisskeyIO/misskey/pull/679) - Solución: Asegurarse de que el procesamiento continúe incluso cuando se reciba un tipo desconocido durante la determinación del tipo de entidad ActivityPub. - Se puede mejorar el cuello de botella en el procesamiento de colas. - Corrección: Se ha corregido un problema por el que no se aplicaban los cambios realizados en la configuración del juego Reversi. - Solución: Se ha resuelto el problema por el que los usuarios podían conectarse a canales de streaming sin restricciones. - Corrección: Se ha corregido un problema por el que los cambios en las políticas de roles básicos no se registraban en el registro de moderación. (Seleccionado de https://github.com/MisskeyIO/misskey/pull/700) - Corrección: Se ha corregido la fuga de memoria de las cachés de memoria (#14310). - Corrección: Expulsión más fiable de la memoria caché (#14311) ## 2024.7.0 Fecha de lanzamiento: 31/07/2024 ### Notas - Con la incorporación de la función para notificar nuevas notas en la interfaz de usuario de Deck mediante sonido (v2024.5.0), hemos eliminado los sonidos «Recepción de antena» y «Notificación de canal» de la configuración del cliente, ya que habían dejado de funcionar anteriormente. - La API de streaming ahora ignora los mensajes que contienen entradas no válidas. #14251 ### General - Característica: Habilita el envío de notificaciones a destinos preinscritos (correo electrónico o webhook) al recibir un informe o resolver un problema #13705. - Característica: Posibilidad de configurar si los usuarios pueden cambiar sus iconos/banners a través de roles. - Aunque esté marcado como no editable, puedes eliminar la configuración existente y volver a la imagen predeterminada. - Característica: Habilitar el envío de SystemWebhooks tras la creación de un usuario #14281 - Hazaña: Implementación del silencio mediático n.º 13842 - Los archivos pertenecientes a cuentas en servidores sujetos a silencio mediático se tratarán como confidenciales y se desactivará el uso de emojis personalizados. - Mejorar: Habilitar la visualización y edición de anuncios archivados dentro del panel de administración. - Solución: Se ha resuelto un problema por el que no se podía ver la lista de instancias con entrega suspendida. - Solución: Problema por el que el contenedor Docker podía bloquearse durante la instalación de `pnpm`. - Solución: Se ha resuelto un problema por el que, al introducir un código de tema no válido en el tema predeterminado, la interfaz de usuario quedaba inutilizable. - Actualización de traducciones - Actualización de dependencias ### Cliente - Característica: Se ha habilitado la búsqueda de las notas de este usuario desde su página de usuario (#14128). - Característica: Las páginas de búsqueda ahora aceptan consultas (#14128) - Mejora: Mejoras en la interfaz de usuario de la página de búsqueda (#14128) - Mejora: Mejorar el diseño y el rendimiento de la documentación integrada de la API. - Mejora: añadir una acción para pasar a otro servidor cuando no se ha iniciado sesión. - Mejora: Mejorar el diseño de la línea de tiempo resaltada cuando no se ha iniciado sesión - Mejora: Mejoras en la accesibilidad del front-end (Basado en https://github.com/taiyme/misskey/pull/226) - Mejora: Mejorar la página de información del servidor y la página de contacto (Cherry-picked de https://github.com/taiyme/misskey/pull/238) - Mejora: Actualizar AiScript a la versión 0.19.0. - Mejora: Permitir retraso negativo para elementos de animación MFM (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Mejorar: Habilitar diálogos de confirmación al abrir archivos multimedia confidenciales. - Mejora: al introducir una cadena que comience por «#» en el campo de búsqueda (Notas/Usuarios), habilitar la visualización de la página de lista de notas/usuarios asociados a ese hashtag. - Mejora: al realizar búsquedas (Notas/Usuarios), no se deben realizar consultas si la entrada contiene espacios - Mejora: al realizar una búsqueda (notas/usuarios), mostrar un cuadro de diálogo de confirmación preguntando si se desea realizar la consulta y si se desea mostrar la página de lista de notas/usuarios con el hashtag - Mejora: al realizar una búsqueda (Notas/Usuarios), al introducir una cadena que comience por «@» (por ejemplo, «@usuario@host») se puede consultar ese usuario - Mejora: Permite mover archivos y carpetas entre unidades sin necesidad de arrastrarlos (Cherry-Picked desde https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Mejorar: Permite la creación de nuevos elementos directamente desde la antena de la cubierta y las pantallas de selección de listas - Habilitar: Utilizar el menú contextual del navegador - Mejora: Excluir los servidores que se bloquean o han suspendido la entrega para los estados «Federación en curso», «Suscrito» y «Entrega en curso» de la federación - Solución: Se ha resuelto un problema por el que los gráficos de instancias individuales ya no se mostraban en páginas como `/about#federation` - Corrección: Mostrar etiquetas de información adicional en las páginas de usuario utilizando los emojis del servidor del autor (#13968) - Corrección: Se ha corregido un problema por el que, en ocasiones, las partidas de Reversi no se compartían correctamente - Solución: Se ha resuelto un problema por el que los cambios realizados en las directivas de roles básicos en el Panel de control no se reflejaban en la interfaz de usuario - Corrección: Se ha añadido espacio entre los botones de la pantalla de edición de la antena - Solución: Se ha resuelto el problema que impedía mostrar las vistas previas de los temas - Corrección: Se ha resuelto un problema por el que las teclas de acceso rápido podían pulsarse rápidamente varias veces seguidas. (Cherry-picked desde https://github.com/taiyme/misskey/pull/234) - Corrección: Se ha eliminado la reactividad de credentialRequest en MkSignin.vue (para evitar que el proxy se pase al proceso de autenticación de clave de acceso (Passkey) ) - Corrección: Se ha resuelto un problema por el que las imágenes del banner del servidor y las imágenes de fondo se animaban incluso cuando estaba habilitada la opción «No reproducir imágenes animadas». (Cherry-picked desde https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Solución: Se ha resuelto el problema que impedía abrir las incrustaciones de Twitch - Corrección: Se ha resuelto un problema por el que la altura de los submenús podía extenderse más allá de la ventana - Solución: Se ha resuelto un problema por el que las notificaciones personalizadas de tipo cuadro de diálogo no se mostraban inmediatamente - Solución: Se ha solucionado un problema por el que podía no aparecer nada en pantalla cuando determinadas imágenes se marcaban como sensibles - Solución: Se ha resuelto el problema por el que los nombres de usuario se desbordaban en la lista de usuarios que reaccionaban. (Cherry-picked desde https://github.com/MisskeyIO/misskey/pull/672) - Solución: Se ha resuelto un problema por el que no se podía abrir el selector de emojis en la página «/share» - Corrección: Problema de superposición de sonidos de notificación de la interfaz de usuario de la baraja (#14029) - Corrección: Se ha resuelto un problema por el que el destinatario no se conservaba al seleccionar «Eliminar y editar» para las publicaciones directas - Solución: Se ha resuelto un problema por el que las Url pegadas en el formulario de publicación no se guardaban en los borradores - Corrección: Se ha resuelto un problema por el que la configuración de aceptación de reacciones no se conservaba ni guardaba en «Eliminar y editar» ni en los borradores - Solución: Al introducir una cadena que comienza por «#» en el campo de búsqueda para mostrar la página del hashtag, si la entrada es solo «#», aparece el mensaje «No se ha encontrado ninguna página para la Url especificada».Se ha corregido un problema por el que se mostraba «」» - Solución: Se ha resuelto un problema por el que, al introducir una cadena que comenzaba por «@» para buscar un usuario, aparecía el mensaje «Se ha producido un error» si la entrada solo contenía «@» - Corrección: Se ha resuelto un problema por el que al adjuntar una Url de nota a un formulario de publicación como «archivo adjunto de cita» se impedía volver a escribir notas al dejar el texto de la publicación en blanco - Corrección: Se ha resuelto un problema por el que la configuración «Incluir respuestas a otros en tu cronología» para los usuarios a los que sigues no estaba clara - Corrección: Se ha corregido un problema por el que, al abrir la página Cronología, la opción «Incluir respuestas a otros en TL» desactivada impedía que se habilitara la opción «Solo archivos» - Solución: Se ha resuelto un problema por el que la configuración de la línea de tiempo no se actualizaba al cambiar de línea de tiempo en la interfaz de usuario de la baraja, y no se mostraba la opción «Incluir respuestas a otros en la línea de tiempo» - Corrección: Se ha resuelto un problema por el que se mostraban líneas de tiempo desactivadas en el campo de selección de líneas de tiempo del widget - Solución: Se ha resuelto un problema por el que no se podían modificar los ajustes cuando el audio de la unidad no se reproducía mientras se utilizaba el audio de la unidad para el sonido ### Servidor - Característica: Devuelve un encabezado «Retry-After» cuando se alcanzan las restricciones del límite de velocidad (#13949) - Mejora: Limita los campos obligatorios para el punto final «clips/update» solo a «clipId» - Mejora: Limitar los campos obligatorios para el punto final `admin/roles/update` solo a `roleId` - Mejora: Limita los campos obligatorios para el punto final «pages/update» solo a «pageId» - Mejora: Limita los campos obligatorios para el punto final «gallery/posts/update» solo a «postId» - Mejora: los campos obligatorios para el punto final `i/webhook/update` ahora se limitan únicamente a `webhookId` - Mejora: Limita los campos obligatorios para el punto final `admin/ad/update` solo a `id` - Mejorar: Habilitar la carga de «url», «db.db», «db.user» y «db.pass» desde variables de entorno dentro de «default.yml» - Mejora: El punto final «api/meta» ha adquirido la propiedad «noteSearchableScope», que devuelve un valor «string» de «local» o «global» - Solución: Se ha resuelto un problema por el que se hacía referencia a instance.isSuspended durante la generación de gráficos, que había sido sustituido por instance.suspensionState - Corrección: Expandir Mfm en la página de feed del usuario a Html (#14006) - Corrección: Se ha resuelto un problema por el que se podía crear un webhook de Antenna Clip List más que el límite establecido en la política de roll (#14036) - Corrección: Las instancias que dejaron de estar disponibles antes de que se implementara notRespondingSince no se dan de baja automáticamente (#14059) - Solución: Cuando FTT está habilitado, se ha resuelto el problema por el que los resultados no se devolvían correctamente al especificar un `sinceId` anterior a la entrada más antigua de la caché en el punto final de la línea de tiempo - Corrección: Se ha corregido un problema por el que, en ocasiones, se podía ver el número de notas en clips que pertenecían a otros usuarios - Corrección: Las reacciones con cadenas vacías ahora se replegarán - Solución: Prevenir reacciones a renotas - Solución: Omitir cualquier espacio al principio o al final del nombre de usuario - Corrección: Se ha resuelto un problema por el que el nombre solo se podía establecer como una cadena vacía durante la edición del perfil - Corrección: Se ha ajustado el contenido y el orden que se muestra durante las sugerencias de nombres de usuario (el orden ahora será el siguiente) #14149 1. Usuarios seguidos y activos 2. Usuarios a los que sigues y que están inactivos 3. Usuarios activos a los que no sigues 4. Usuarios inactivos a los que no sigues Además, ahora se sugiere tu propia cuenta. - Corrección: Se ha resuelto un problema por el que la lista de insignias visibles para los usuarios generales podía incluir aquellas que no se mostraban públicamente. (Cherry-picked desde https://github.com/MisskeyIO/misskey/pull/652) - Solución: La función Silenciar/Bloquear no funciona en la lista de reacciones de los usuarios - Solución: Se ha resuelto un problema por el que las notas de los usuarios remotos se almacenaban en caché en HTL cuando FTT estaba habilitado - Solución: Se ha resuelto un problema por el que algunas notificaciones se enviaban localmente a usuarios remotos - Corrección: Se ha corregido un error tipográfico en el mensaje de error (#14213) - Solución: Se ha resuelto un problema por el que las respuestas dirigidas a ti, visibles en tu cronología local, no se mostraban en la cronología social - Corrección: Se ha resuelto un problema por el que aplicar el silencio a una renota podía tardar algún tiempo. (Cherry-picked desde https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Solución: Problema con el comportamiento inestable cuando la API de Steaming recibe datos no válidos #14251 - Corrección: Se ha resuelto un problema por el que el procesamiento era incorrecto cuando se proporcionaba una cadena que comenzaba por «@» en «users/search» - Los usuarios cuyos nombres o presentaciones personales contengan texto que comience por «@» también podrán ser buscados - Solución: Problema por el que no se podían recibir archivos de determinados programas que no fueran Misskey. (Cherry-picked desde https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTA: El límite superior para «url», «uri» y «src» en «drive_file» cambiará de 512 a 1024. La migración solo modificará las definiciones de las columnas. Es posible que los administradores del servidor deseen reindexar «drive_file» «("uri")» según sea necesario para cada servidor con el fin de lograr búsquedas más estables en la base de datos.Para más detalles, consulta [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228) - Solución: Se ha resuelto un problema por el que, en ocasiones, las respuestas a publicaciones restringidas a seguidores no se veían en la cronología de inicio - Solución: Se ha resuelto un problema por el que las respuestas a publicaciones solo para seguidores realizadas por usuarios que no seguían la cuenta podían aparecer en la cronología social ### Misskey.js - Característica: Gestiona solicitudes para `/drive/files/create` (admite `multipart/form-data`) - Logro: Se ha corregido el tipo de política de roles para `/admin/role/create` ## 2024.5.0 Fecha de lanzamiento: 31/05/2024 ### Notas - La ubicación para configurar el proxy resumido dentro del Panel de control cambiará de Seguridad a General. - Hemos solucionado un problema por el cual terceros malintencionados podían recibir actividad suplantando la identidad de usuarios remotos.Para obtener más información, consulte el [aviso de seguridad de GitHub](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj). - El permiso de administrador «read:admin:show-users» se ha fusionado con «read:admin:show-user».Vuelve a emitir el token API según sea necesario. ### General - Característica: Sentry ya está disponible para el seguimiento de errores - Mejorar: Habilitar la configuración para activar o desactivar las vistas previas de URL #13569 - Mejora: Permite excluir las notas generadas por bots a través de la antena (Seleccionado de https://github.com/MisskeyIO/misskey/pull/545) - Mejora: Mostrar el número de notas en un clip - Mejora: Se ha añadido lo siguiente como nueva condición para los roles condicionales (#13667) - Usuarios que tienen marcada la opción "Soy un Gato" - Usuarios que tienen marcada la opción "Soy un Bot" - Usuarios suspendidos - Usuarios con cuenta privada - Usuarios para los que está habilitada la opción "Hacer visible la cuenta en explorar" - Mejora: Detener automáticamente la entrega a los servidores que se han cerrado sin enviar un mensaje "Gone" - Si llega un envío desde dicho servidor, se reanudará automáticamente la entrega - Mejora: Mostrar el motivo de la cancelación de la suscripción - Mejora: ahora puedes configurar la URL de contacto del servidor - Solución: Se ha resuelto un problema por el que la configuración de visibilidad establecida durante la creación de la reproducción no funcionaba correctamente - Solución: Se ha resuelto un problema por el que los hashtags en Html que contenían hashtags no normalizados no se restauraban correctamente como hashtags - Solución: Se ha resuelto un problema por el que las encuestas de canales se incluían en la sección de encuestas «Buscar» ### Cliente - Característica: Permite nombres de archivo aleatorios para los archivos cargados - Característica: Permite vincular notificaciones individuales (Basado en https://github.com/MisskeyIO/misskey/pull/639) - Mejora: Habilitar el acceso directo a las páginas de detalles de los archivos desde los archivos adjuntos dentro de tus propias notas - Mejora: Si el anuncio se encuentra en el mismo dominio que Misskey, asegúrate de que redirija a través del router - Mejora: Mostrar el número total de reacciones y «Me gusta» - Mejora: Cuando la aceptación de reacciones se establece en «solo me gusta», no mostrar la lista de emojis de reacción - Mejora: desde la página Configuración > Plugins, ahora puedes ver registros y errores simplificados para los Plugins - Debido a limitaciones de implementación, los plugins ahora se detienen inmediatamente al encontrar un solo error - Mejora: Modificar el diseño de la página - Mejora: Mejorar el campo de entrada para la autenticación de dos factores (contraseña de un solo uso) - Mejora: Habilitar la recarga manual del widget «Usuarios seguidos que cumplen años hoy» - Mejorar: Habilita el uso del reproductor nativo del navegador para la reproducción de vídeo y audio - Mejoras: Se han añadido las opciones «Velocidad de reproducción», «Reproducción en bucle» y «Imagen en imagen» al menú de reproducción de vídeo y audio - Mejorar: Habilitar atajos de teclado para la reproducción de vídeo y audio - Mejora: La reacción en la nota que dice «¡Más!»Desde [aquí], puedes mostrar una lista de reacciones - Mejora: Al responder y citar contenido, ahora se permite publicar la Nota aunque no se añada texto - Esto se puede lograr copiando la Url de la nota que desea citar y pegándola en la pantalla de respuesta como un archivo adjunto - Mejora: Habilitar la visualización de un cuadro de diálogo de confirmación para decidir si se sigue adelante - Mejorar: Habilitar la recarga manual de Play - Mejora: al hacer clic en un enlace dentro de un comentario del informe, se abre en una nueva ventana - Mejora: Habilitar la configuración «localOnly» y «visibility» para «Ui:C:postForm» y «Ui:C:postFormButton» - Mejora: AiScript se ha actualizado a la versión 0.18.0 - Mejora: Ahora se permite compartir (Re-Notear) Notas estándar en los canales marcados como favoritos - Mejora: al pegar texto largo, habilite la opción para adjuntarlo como archivo de texto - Mejora: Se ha añadido una función a la interfaz de usuario de la baraja que te avisa con un sonido cuando llegan nuevas notas - Mejora: Habilitar el acceso a archivos a través de las Acciones rápidas del Panel de control - Mejora: Habilitar consultas estándar desde las Acciones rápidas del Panel de control - Corrección: Se ha corregido un problema por el que algunos enlaces internos de la página no funcionaban correctamente - Solución: Se ha resuelto un problema por el que los logros de aniversario no tenían en cuenta los años bisiestos - Solución: La ventana emergente de vista previa para las Url locales se muestra en la esquina superior izquierda - Solución: Se ha resuelto un problema por el que Misskey no se iniciaba cuando se habilitaban los «efectos visuales estacionales» en navegadores que no admitían WebGL2. (Cherry-picked desde https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Corrección: Se ha resuelto un problema por el que los títulos de las páginas no distinguían entre usuarios locales y remotos. (Cherry-picked desde https://github.com/MisskeyIO/misskey/pull/528) - Solución: Recuperar los archivos de definición utilizados para resaltar la sintaxis en bloques de código desde la Cdn #13177 - Si desea incluirlo en el núcleo de Misskey en lugar de obtenerlo del CDN, modifique `packages/frontend/vite.config.ts`. - Solución: Se ha resuelto un problema por el que el widget «Usuarios seguidos que cumplen años hoy» no funcionaba correctamente en determinadas zonas horarias - Solución: Se ha resuelto un problema por el que las renotas citadas solo por CW se trataban incorrectamente como renotas puras en la página de detalles - Corrección: Se ha resuelto un problema por el que la etiqueta del botón advertencia (CW) en las notas citadas con advertencia (CW) en la página de detalles de la nota no incluía «Cita» - Solución: Se ha resuelto un problema por el que se podía pulsar la tecla Intro incluso cuando se superaba el límite de caracteres en los campos de entrada de diálogo - Solución: Se ha resuelto un problema por el que no se guardaba el destinatario de las notas directas (mensaje directo) - Solución: Se ha resuelto un problema por el que Play no se inicializaba correctamente al salir de la página Play - Corrección: Se ha corregido la URL OGP incorrecta de la página - Corrección: Se ha corregido un problema por el que, en ocasiones, las partidas de Reversi no se compartían correctamente - Solución: Se ha resuelto un problema por el que el número de personas no se mostraba correctamente al agrupar notificaciones - Corrección: Se ha corregido un problema que impedía leer y escribir en un estado no federado - Solución: Se ha resuelto un problema por el que las Url que contenían caracteres japoneses y otros caracteres no Ascii no se codificaban en Url en `/share` - Solución: Se ha resuelto un problema por el que las notas no se contraían al adjuntar cinco o más archivos sin texto ### Servidor - Mejora: Limitar los campos obligatorios para el punto final «antennas/update» solo a «antennaId» - Mejora: misskey-dev/summaly@5.1.0の取り込み (Optimización del procesamiento de generación de vistas previas) - Mejora: Habilitar la federación individual de archivos en la unidad para determinar si son Nsfw (#13756) - Siempre que sea posible, la evaluación de la sensibilidad de los archivos adjuntos de los cuadernos se realizará por cada archivo - Solución: aplicar la compactación JSON-LD a las actividades impartidas a distancia - Solución: al crear una solicitud de seguimiento, asegúrese de que se eliminen las existentes (Seleccionado de https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Solución: Se ha resuelto el error con el punto final «notes/translate». - Corrección: CleanRemoteFilesProcessorService informa del progreso desde el 100 % (#13632) - Solución: Se ha resuelto un problema por el que algunos archivos de audio se trataban como archivos de vídeo. - Corrección: Se ha resuelto un problema por el que las citas de solo respuesta y las citas de solo CW se trataban incorrectamente como citas puras - Solución: Cuando se requiera la verificación del correo electrónico para el registro, impedir la eliminación de la dirección de correo electrónico registrada (Extraído de https://github.com/MisskeyIO/misskey/pull/606) - Solución: añadir Cache-Control a Bull Board - Corrección: Se ha corregido un problema por el que nginx no respondía correctamente a las solicitudes Range realizadas a /files/ - Corrección: Se ha corregido un problema por el que el silenciamiento de instancias no funcionaba para la transmisión en algunas líneas de tiempo - Corrección: Se ha corregido un problema por el que, en ocasiones, las respuestas no se mostraban en la cronología global - Solución: Se ha resuelto un problema por el que las publicaciones compartidas de usuarios que habían silenciado las publicaciones compartidas también se silenciaban - Corrección: AP Link, etc., no deben tratarse como archivos adjuntos (#13754) - Solución: Se ha resuelto el problema por el que las respuestas devueltas cuando FTT estaba habilitado y solo se especificaba sinceId aparecían en orden inverso - Solución: Se ha resuelto un problema por el que al especificar «includeTypes» o «excludeTypes» en «/i/notifications» se podía devolver una matriz vacía a pesar de que existieran notificaciones - Corrección: Se ha resuelto un problema por el que al especificar varios Id en «users/show» se podían mostrar usuarios no relacionados - Solución: Evitar que los motores de búsqueda indexen «/tags» y «/user-tags» - Solución: Cuando un archivo originalmente federado como no confidencial se federara posteriormente como confidencial, se tratará dicho archivo como confidencial - Los archivos añadidos como confidenciales se tratarán como tales, incluso si se añaden como no confidenciales ## 2024.3.1 Fecha de lanzamiento: 02/03/2024 ### Cliente - Corrección: Se han resuelto los problemas relacionados con los emojis (#13485) - Cuando los emojis guardados en el historial o fijados se han eliminado del panel de control, el panel de reacciones deja de estar disponible - Si los emojis Unicode permanecen en tu historial o están fijados, la barra de reacciones ya no se mostrará - Solución: Cuando falle la carga de imágenes emoji personalizadas, mostrar una imagen de marcador de posición en lugar de texto #13487 ## 2024.3.0 Fecha de lanzamiento: 01/03/2024 ### General - Mejorar: Permitir establecer límites en el número de menciones y destinatarios de mensajes directos que se pueden incluir en una sola nota, dependiendo del rol del colaborador - El límite predeterminado de menciones es de 20 cuentas.(Los administradores pueden modificar esto en la configuración de roles básicos.) - Las menciones a usuarios remotos en servidores que no responden a consultas federadas no se contabilizan en el número máximo de usuarios de la implementación. - Mejora: ahora las notificaciones tienen en cuenta el silenciamiento y la congelación - Mejorar: Permitir que se dejen notas de moderación por servidor - Mejora: añadir «Asignación a rol manual» a las condiciones para los roles condicionales - Mejora: añadir «Seguidores o seguidos» a la configuración de notificaciones - Mejorar: Permitir restablecer el historial de notificaciones - Solución: Solo se pueden enviar respuestas directas a notas directas ### Cliente - Mejorar: ajustar la posición de la línea separadora en el menú de archivos adjuntos de la pantalla de creación de notas - Solución: Problema por el que las instancias existentes desde la era syuilo/misskey se identificaban erróneamente como versiones modificadas - Solución: Se ha resuelto un problema por el que, en ocasiones, la función de autocompletado MFM no aparecía cuando debía - Solución: Se ha resuelto el problema por el que desaparecían las etiquetas de los gráficos - Solución: Se ha resuelto un problema por el que la primera reproducción de audio tras la visualización de la pantalla podía resultar excesivamente alta - Corrección: Se ha corregido un problema por el que la localización se corrompía si no se introducía ningún nombre al crear una copia de seguridad de la configuración - Corrección: Se ha corregido un problema por el que la pantalla se bloqueaba al pulsar Aceptar sin seleccionar nada al añadir una «Función utilizable como reacción» en el cuadro de diálogo de edición de emojis de la página `/admin/emojis` - Corrección: Se ha resuelto un problema por el que, en las clasificaciones de sugerencias de emojis, los elementos que coincidían por etiqueta tenían prioridad sobre aquellos con nombres de emojis idénticos - Corrección: Se ha corregido un problema por el que la ventana emergente con la información del usuario podía no desaparecer ### Servidor - Mejora: Los parámetros distintos de `flashId` en el punto final `flash/update` ya no son obligatorios - Corrección: Se ha corregido la ausencia de enableMcaptcha y enableTurnstile en nodeinfo - Solución: Evitar el envío de notificaciones dañadas a los clientes - Es posible que se haya resuelto el problema por el que el panel de notificaciones se recargaba sin cesar - Corrección: Se ha corregido el problema por el que las notas que contenían palabras clave prohibidas se añadían a la cola de retraso y se volvían a procesar - Corrección: Se ha resuelto un problema por el que, en ocasiones, se podían ver notas restringidas a seguidores de cuentas que tú no seguías - Corrección: Se ha corregido un problema por el que las notas de citas que solo contenían votos no aparecían en la línea de tiempo cuando la opción «Mostrar notas» estaba desactivada en las opciones de la línea de tiempo - Corrección: Varias correcciones para el punto final `admin/emoji/update` - El parámetro requerido debe ser «id» o «name» - Permite especificar emojis utilizando «name» en lugar de «id» (cuando se especifican tanto «id» como «name», el comportamiento permanece sin cambios, modificando «name» como antes) - Se ha corregido el comportamiento por el que «category» y «licence» se sobrescribían automáticamente con null cuando no se especificaban - Solución: Se ha resuelto un problema por el que la configuración de notificaciones «Seguimiento mutuo» no funcionaba correctamente ## 2024.2.0 Fecha de lanzamiento: 17/02/2024 ### Notas - La ruta para instalar complementos desde sitios externos cambia de `/install-extentions` a `/install-extensions`.Ahora está habilitada la redirección automática desde la ruta anterior, pero recomendamos cambiar a la nueva ruta. ### General - Característica: Se ha añadido compatibilidad con [mCaptcha](https://github.com/mCaptcha/mCaptcha) - Característica: Añadida compatibilidad con TrueMail - Característica: Se ha añadido una funcionalidad para evitar infracciones involuntarias de la licencia AGPLv3 - Los administradores podrán cambiar la URL del repositorio o elegir distribuir el código fuente directamente - Cuando se realicen modificaciones en el código fuente del cuerpo principal, se mostrarán las instrucciones adecuadas basadas en la licencia. - Mejora: los moderadores pueden ver las listas de reacciones de todos los usuarios - Solución: Se ha resuelto un problema por el que la opción «Mostrar renotas» en la línea de tiempo de la lista no funcionaba correctamente - Corrección: Se ha corregido un problema por el que se podían ver las reacciones de todos los usuarios remotos - Ocultar la lista de reacciones para todos los usuarios remotos - Corrección: Se ha añadido una opción de configuración para habilitar el informe de errores cuando se publican notas que contienen cadenas que coinciden con palabras clave específicas o expresiones regulares #13207 - El valor predeterminado está en blanco, por lo que se comportará de forma idéntica a como lo hacía antes de la aplicación ### Cliente - Novedad: Nuevo juego añadido - Característica: Se ha añadido un reproductor de audio y vídeo - Característica: Se ha añadido un cuadro de diálogo con detalles sobre los emojis - Feat: Añadir un borde Mfm`$[border.width=1,style=solid,color=fff,radius=0 ...]` - De forma predeterminada, cualquier contenido que se extienda más allá de los bordes del marco ahora se oculta.Para restaurar el comportamiento original, se requiere `$[border.noclip` - Característica: Desliza el dedo para cambiar de pestaña - Mejora: Añadir un botón para copiar todo el texto a bloques de código como MFM - Mejora: al introducir un hashtag, no añadas un nuevo espacio si la última línea del cuerpo del texto está vacía - Mejora: Habilitar la fijación de notas de canal desde el menú de la nota - Mejora: Para los administradores, habilitar la concesión de permisos relacionados con las funciones de gestión en la pantalla de emisión de tokens Api - Mejora: Actualización de AiScript a la versión 0.17.0 [CHANGELOG] (https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - Ten en cuenta que ahora está totalmente prohibido asignar índices fuera de rango o no enteros - Mejora: En el selector de emojis y el autocompletado, dar prioridad a la visualización de emojis que coincidan exactamente - Mejora: Habilitar el uso de Mfm en la sección de descripción de Play - Mejora: Para las notas de canal, habilitar la visualización de las notas anteriores y posteriores desde la página de detalles - Mejora: Habilitar los efectos visuales estacionales para que también se puedan utilizar en el hemisferio sur - Mejora: Habilitar la retención de todos los ajustes del filtro de la línea de tiempo - La configuración anterior para incluir respuestas a otros usuarios en tu cronología se restablecerá - Mejora: Se ha añadido «Mostrar notas que contengan material sensible» al filtro de la línea de tiempo - Mejora: Permitir eliminar directamente archivos desde el menú de archivos adjuntos en la pantalla de creación de notas - Mejora: Habilitar el autocompletado para los atributos MFM #12735 - Mejora: Mostrar el cuadro de diálogo de edición de emojis como una ventana en lugar de un modal - Mejora: Los usuarios remotos pueden mostrarse directamente desde el menú - Mejora: No mostrar vistas previas de enlaces idénticos a los referenciados en notas remotas - Mejora: Habilitar la aplicación de temas para resaltar la sintaxis del código - Mejora: cuando no se disponga de permisos de reacción, impedir que se envíen reacciones a través del selector de reacciones, etc., en lugar de recurrir al corazón - Al intentar reaccionar con un emoji personalizado disponible solo localmente para un usuario remoto - Al intentar reaccionar con un emoji personalizado sensible a un usuario que no ha habilitado las reacciones sensibles - Al intentar reaccionar con un emoji que requiere un rol - Mejora: Cerrar el reproductor al pasar de una página a otra - Mejora: al hacer clic en un usuario en la página del informe, abrir el usuario en una ventana - Mejora: al informar sobre una nota, asegúrate de que, incluso en el caso de las notas remotas, se incluya el enlace a la nota dentro de tu propia instancia - Mejora: Mejorar el diseño de la pantalla sin conexión y habilitar la compatibilidad multilingüe - Solución: Evitar que los emojis en modo nativo aparezcan en monocromo - Solución: Se ha resuelto un problema por el que la función añadida en la versión 2023.12.0, que permite a los moderadores establecer el icono o la imagen de banner de un usuario en un estado no definido, no se mostraba correctamente en el panel de administración - Solución: El problema por el que la función «readline» de AiScript podía devolver valores no válidos se ha solucionado en la versión 2023.12.0, pero esta solución no se había aplicado fuera de Play. Ahora se ha rectificado - Corrección: Se ha corregido un problema por el que `$[clickable ...]` y `onClickEv`, añadidos en la versión 2023.12.1, no funcionaban correctamente - Solución: Se ha resuelto un problema por el que los atajos de teclado de una Renota no funcionaban - Solución: Se ha resuelto un problema por el que al volver a cargar el formulario de envío después de especificar la fecha y la hora de la encuesta no se restauraba la fecha límite - Solución: Se ha resuelto un problema por el que al configurar una nota como «Eliminar y editar» se restablecía la fecha límite de la encuesta en lugar de trasladarla - Corrección: Se ha corregido un problema por el que el nombre podía quedar en blanco al crear un perfil de mazo. - Corrección: Se ha resuelto un problema por el que se podían crear temas aunque se dejara en blanco el campo del nombre durante la creación - Corrección: Se ha resuelto un problema por el que se podían crear temas aunque se dejara en blanco el campo del nombre durante la creación - Solución: Se ha resuelto un problema por el que las imágenes de gran tamaño no se podían convertir ni cargar en iOS - Solución: Se ha resuelto un problema por el que las animaciones decorativas de los iconos no se detenían incluso cuando se activaba la opción «No reproducir imágenes animadas» o «Ahorro de datos (icono)» - Solución: Se ha resuelto un problema por el que al recortar una imagen se obtenía una resolución anormalmente baja tras el recorte. - Solución: Se ha resuelto un problema por el que el recorte de imágenes no se completaba correctamente - Solución: Se ha resuelto un problema por el que al recortar una imagen con un pie de foto vacío, el campo del pie de foto contenía la cadena «null» - Corrección: Se ha corregido un problema por el que los cambios realizados en el perfil no aparecían hasta que se recargaba la página - Solución: Se ha resuelto un problema por el que la imagen predeterminada no se mostraba después de configurar y eliminar una Url de imagen de error - Corrección: Se ha resuelto el problema por el que las líneas se desalineaban en MkCodeEditor - Corrección: Se ha resuelto un problema por el que el reproductor podía dejar de funcionar al utilizar el proxy Summaly #13196 ### Servidor - Mejora: ahora se realizarán reintentos cuando se supere el límite de velocidad del socio de la federación - Mejora: ActivityPub: procesar previamente el cuerpo en la cola de entrega (#12916) - Mejora: Habilitar la exportación de clips - Mejora: Permitir realizar solicitudes Http Range para los archivos de `/files` - Mejora: Actualización de la especificación OpenAPI de `api.json` a la versión 3.1.0 - Mejorar: Optimizar la distribución de notas para la federación #13192 - Solución: Se ha resuelto un problema por el que la validación de nombres de archivo no funcionaba correctamente en «drive/files/update» - Corrección: Se ha modificado la respuesta para las solicitudes en las que «text» consiste únicamente en caracteres de espacio en blanco o es «null», y en las que «text» es el único campo, para devolver un código de estado 400 en «notes/create» - Corrección: En «notes/create», donde el «texto» consiste únicamente en caracteres de espacio en blanco y la solicitud incluye renotas, archivos o votos, el «texto» de la respuesta se ha cambiado de «""» a «null» - Solución: Se ha resuelto un problema por el que no se realizaba la verificación de Ip privada cuando se configuraba allowedPrivateNetworks en entornos en los que estaban disponibles tanto Ipv4 como Ipv6 - Solución: gestionar correctamente los seguidores en copia (cc) - Corrección: Se ha corregido el nombre de la configuración relacionada con el trabajo relashionshipJobPerSec -> relationshipJobPerSec - Solución: Panel de control -> Moderación -> Se ha cambiado la configuración predeterminada de «Permitir que cualquiera se registre» de Activado a Desactivado #13122 - Solución: Se ha resuelto un problema por el que la actividad de un usuario remoto no se aceptaba debido al almacenamiento en caché, incluso después de que se hubiera restaurado el usuario. #13273 ## 2023.12.2 Fecha de lanzamiento: 28/12/2023 ### General - Se ha corregido un problema que impedía que los servidores se iniciaran utilizando Docker en la versión 2023.12.1 ### Cliente - Mejora: Habilitar la búsqueda pulsando la tecla Intro en la pantalla de búsqueda ## 2023.12.1 Fecha de lanzamiento: 27/12/2023 ### Notas - Debido a la reorganización de los permisos de los tokens de acceso, algunas Api dejarán de funcionar con tokens Api antiguos.Si los permisos son insuficientes, restablece los permisos y vuelve a generarlos. ### General - Mejora: Actualización de la localización - Solución: Mi nota directa no se añade a la cronología de la lista de usuarios ### Cliente - Característica: Se ha añadido la sintaxis MFM exclusiva de AiScript `$[clickable.ev=EVENTNAME ...]`.Al pasar una función a la opción `onClickEv` de `Mk:C:mfm`, esta se invocará al hacer clic, pasando `EVENTNAME` como argumento - Mejora: Habilitar la visualización de los botones de ayuda para la entrada MFM en el formulario de publicación n.º 12787 - Corrección: Se ha resuelto un problema por el que el color de visualización no cambiaba en determinados registros de mod (los que se muestran en logYellow) - Solución: Se ha resuelto un problema por el que al especificar palabras largas en `fg`/`bg` MFM se producía un desbordamiento sin desbordamiento ### Servidor - Mejora: la configuración de palabras sensibles ahora también se aplica a las tendencias de hashtags. - Mejora: Compatibilidad con Cors del punto final `oauth/token` - Corrección: 1702718871541-ffVisibility.jsのdown está dañado - Solución: Se ha resuelto un problema por el que los usuarios podían reaccionar a emojis personalizados marcados como sensibles, incluso cuando se había configurado «Solo no sensibles (los usuarios remotos solo pueden dar me gusta)» - Corrección: Se ha resuelto un problema por el que los iconos de roles se mostraban sin reducirse en las notificaciones durante la asignación de roles - Solución: Se ha resuelto un problema por el que aplicaciones de terceros podían acceder a la API WebSocket sin restricciones - Solución: Se ha resuelto un problema por el que aplicaciones de terceros podían ver información privada sin el permiso del usuario ## 2023.12.0 Fecha de lanzamiento: 23/12/2023 ### Notas - Tras la actualización de las dependencias, Node.js 20.10.0 es ahora el requisito mínimo - Si ya has instalado el diccionario adicional de emojis, te rogamos que lo vuelvas a instalar - Los ajustes de emojis fijados en el selector de emojis se han dividido en «Reacciones» y «Introducción de emojis».Se utilizarán los ajustes anteriores para las reacciones. **Impacto:** Esto puede dar la impresión de que los emojis fijados en el selector de emojis que se muestra en el formulario de publicación se han restablecido (ya que ahora se aplica la nueva configuración «Fijados (general)»). Para revertir el emoji fijado para publicar a su estado anterior a la actualización, sigue estos pasos. 1. Ve al menú Configuración y selecciona la pestaña Selector de emojis. 2. Seleccione la pestaña «Pin (General)». 3. Al pulsar el botón «Sobrescribir desde la configuración de reacción», se restaurarán los ajustes a su estado anterior a la actualización. ### General - Característica: Se ha habilitado el uso de verifymail.io para la verificación de direcciones de correo electrónico (seleccionado de https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Característica: Se ha añadido una funcionalidad que permite a los moderadores establecer el icono o la imagen de banner de un usuario en un estado no definido (seleccionado de https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Característica: Se ha añadido el silenciamiento duro, un silenciamiento de palabras que oculta las notas del TL - Mejorar: Habilitar el bloqueo de registros de direcciones de correo electrónico de dominios específicos - Mejorar: Asegurarse de que se generen notificaciones cuando se asigne una función pública - Mejorar: Permitir configurar múltiples decoraciones de iconos - Mejorar: Permite ajustar con precisión la posición de la decoración de los iconos - Mejora: ahora se puede configurar la visibilidad de las conexiones de forma individual para los seguidores y las personas a las que sigues #12072 - Mejora: Actualización de la localización - Mejora: Actualización de dependencias - Corrección: Se han corregido varios errores que se producían al introducir valores no válidos en MFM `$[unixtime ]` ### Cliente - Característica: Se ha añadido un widget que muestra una lista de los usuarios a los que sigues y que cumplen años hoy - Nuevo: Permite que nieve en la pantalla - Mejora: Se ha añadido una opción «delay» a los elementos de animación de MFM («tada», «jelly», «twitch», «shake», «spin», «jump», «bounce», «rainbow») - Mejorar: Ocultar miniaturas de sitios web considerados sensibles - El mecanismo para identificar sitios web como sensibles no está operativo, por lo que no funcionará a menos que se utilice summalyProxy. - Mejora: Utiliza el mismo selector de emojis para el formulario de publicación que el utilizado para las reacciones #12336 #12560 - Mejora: Permitir la configuración independiente de los emojis fijados para las reacciones y los emojis fijados para la introducción de datos durante la publicación #12560 - Mejora: Mejora de la funcionalidad de autocompletado de emojis #12364 - Mejora: Se ha restaurado la página que muestra los datos sin procesar de los usuarios - Mejora: Habilitar la reproducción de sonido al seleccionar reacciones - Mejora: Habilitar el uso de archivos de unidad para el sonido - Mejora: Añadir un elemento «Limpiar caché» a la barra de navegación - Mejorar: Al completar una publicación en la página Compartir, envía un mensaje postMessage a la ventana principal (marco principal) - Mejora: añadir un botón para copiar la Url a canales, clips, páginas, reproducción y galerías #11305 - Mejora: Asegúrate de que la opción «Ocultar contenido» se muestre en la vista previa de la nota - Mejora: Habilita el ahorro de datos para reducir la carga de los códigos resaltados - Mejora: Permitir la configuración individual del ámbito de aplicación del ahorro de datos - Se restablecerán los ajustes anteriores del ahorro de datos - Mejora: Permitir saltar a las páginas de gestión de listas, antenas y canales desde las pestañas de la línea de tiempo - Mejora: Habilitar Mfm y autocompletar emojis en las pantallas de edición de nombres de usuario, perfiles, anuncios y páginas - Mejora: Habilitar la visualización previa de MFM en las pantallas de edición de perfiles y anuncios - Mejora: añadir información que se mostrará en la página de detalles del emoji - Mejora: ahora se puede configurar la restricción del ancho de la pantalla de reacción - Mejora: Compatibilidad con Unicode 15.0 - Mejora: Se requiere una especificación explícita del lenguaje para utilizar la funcionalidad de resaltado de bloques de código - El resaltado involuntario ya no se produce al utilizar bloques de código en MFM - Por el contrario, cuando desee utilizar el resaltado de código en MFM, debe especificar explícitamente el lenguaje. (por ejemplo, ` ```js ` → JavaScript, ` ```ais ` → AiScript) - Mejora: al pulsar Shift+Tab en el autocompletado de emojis, etc., se puede seleccionar la opción anterior - Mejora: Mostrar una insignia cuando haya nuevas publicaciones en el canal - Mejora: Se ha añadido «No reproducir sonido» y «Reproducir sonido solo cuando Misskey esté activo» a la configuración de sonido - Mejora: Habilita la opción para evitar que determinadas etiquetas aparezcan en las tendencias a través de la interfaz de administración - Mejora: Añade una barra «/» a las categorías del selector de emojis para habilitar la visualización de la organización de carpetas - Corrección: Se ha corregido un problema por el que algunos elementos no se incluían en la copia de seguridad durante la «Configuración de la copia de seguridad» - Corrección: Se ha solucionado un problema por el que la cola de tareas del widget no se actualizaba al ritmo de los cambios en los métodos de pronunciación del habla #12367 - Corrección: Se ha corregido un problema por el que el editor de código no se mostraba correctamente - Corrección: ajuste del diseño cuando hay imágenes sensibles en la sección «Archivos» del perfil - Solución: Se ha resuelto un problema por el que los sonidos de notificación se distorsionaban cuando llegaban simultáneamente un gran número de notificaciones - Solución: Ocultar el botón para compartir en los navegadores que no admiten la función para compartir #11305 - Corrección: Se ha resuelto un problema por el que la configuración de agrupación de notificaciones no se aplicaba hasta que se recargaba la página #12470 - Solución: Se ha resuelto un problema por el que la visualización del formulario de publicación se distorsionaba en canales con nombres largos - Corrección: Se ha desactivado Mk:apiExternal de AiScript para mejorar la seguridad - Corrección: Se ha corregido un problema por el que no se reproducía el sonido de reacción al reaccionar a un emoji en una nota tocándolo y seleccionando «Reaccionar» - Corrección: Se ha ajustado la visualización de las reacciones dentro de las notas #12650 - Corrección: Se ha resuelto un problema por el que la función «readline» de AiScript podía devolver valores no válidos - Corrección: Se ha corregido un error por el que las respuestas de solo voto o solo imagen se identificaban incorrectamente como respuestas normales en la sección de notificaciones - Corrección: Se ha corregido un error por el que citar un RN con CW se trataba como un RN normal. - Corrección: Se ha corregido un error por el que las imágenes adjuntas en CW y similares no se podían ver cuando la configuración «Altura de la lista de medios con una sola imagen» estaba establecida en cualquier valor distinto de «Predeterminado» - Corrección: Se ha corregido el error por el que no se mostraba el interruptor de la cuenta Pro de DeepL Translation - Solución: Se ha resuelto un problema por el que no se podían abrir los enlaces dentro de las tarjetas incrustadas de Twitter - Solución: La función «Mantener siempre encendida la pantalla del dispositivo» ahora funciona correctamente en los navegadores WebKit - Corrección: Se han solucionado los problemas de visualización en la página de lista de páginas en entornos móviles - Corrección: Se ha resuelto un problema por el que el texto de las anotaciones nyantinizadas no se mostraba correctamente en MFM ### Servidor - Mejora: MFM `$[ruby ]` para federarse con otro software - Mejora: Cuando Meilisearch está habilitado, tener en cuenta a los usuarios que han silenciado o bloqueado a otros - Mejora: Mejorar el comportamiento al importar emojis personalizados - Solución: Al reactivar una antena que había estado desactivada durante un tiempo, el estado no se reflejaba hasta que se reiniciaba el servidor. Esto se ha solucionado. #12303 - Corrección: Se ha corregido un problema por el que no se guardaba la línea de tiempo del rol - Corrección: Se ha mejorado la lógica para generar api.json #12402 - Solución: Se ha resuelto el problema por el que se podían reutilizar los códigos de invitación - Solución: Se ha resuelto un problema por el que las notas más recientes no aparecían en las listas de notas de determinados canales o usuarios en determinadas condiciones - Solución: Se ha resuelto un problema por el que al acceder al feed de usuarios que no habían creado ninguna nota se producía un error - Solución: Se ha resuelto un problema por el que, en ocasiones, la función de silenciar no funcionaba en la cronología de la lista, y otro por el que las publicaciones del canal aparecían en la fuente de la transmisión #10443 - Corrección: Se ha resuelto un problema por el que los usuarios silenciados aparecían en la función «Buscar» #12383 - Corrección: Problema por el que el silenciamiento de instancias no funciona en la línea de tiempo social/local/inicial - Solución: Problema por el que el silenciamiento de la instancia no surte efecto en la lista de notas del usuario - Solución: Problema por el que el silenciamiento de la instancia no surte efecto en la lista de notas del canal - Solución: Se ha solucionado un problema por el que la función «Buscar» dejaba de funcionar durante el periodo de Año Nuevo - Solución: Se ha resuelto un problema por el que las notas se mostraban a la otra parte en su propia página de usuario cuando se bloqueaba una cuenta - Solución: Los moderadores ya no pueden ver los registros de moderación - Corrección: la configuración de exclusión de tendencias de hashtags ahora se aplica de forma inmediata - Corrección: Solo se puede utilizar «SHA-256» en mayúsculas en la parte del algoritmo del encabezado HTTP Digest - Solución: Se ha resuelto un problema por el que los permisos de acceso a la API del administrador no estaban configurados correctamente ## 2023.11.1 Fecha de lanzamiento: 17/11/2023 ### Notas - Hemos solucionado un problema por el cual un tercero malintencionado podía recibir cualquier actividad realizada suplantando la identidad de un usuario remoto.Para obtener más información, consulte el [aviso de seguridad de GitHub](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc). ### General - Característica: Los administradores ahora pueden ver las direcciones de correo electrónico desde el panel de control - Mejora: Actualización de la localización - Mejora: Actualización de dependencias ### Cliente - Mejora: Permitir la adición de Ruby en MFM - Ejemplo: `$[ruby Misskey Misskey]` - Mejora: Habilitar la visualización de fechas y horas especificando marcas de tiempo UNIX en MFM - Ejemplo: `$[unixtime 1701356400]` - Mejora: Mejorar la gestión de errores cuando los complementos encuentran problemas - Mejora: Perfeccionamiento de los detalles de la interfaz de usuario - Corrección: Se ha resuelto un problema por el que los vídeos o el audio que se reproducían en el dispositivo se pausaban cuando se reproducían efectos de sonido #12339 - Corrección: Se ha resuelto un problema por el que al cambiar el canal de destino de un canal mostrado en la plataforma no se aplicaba el cambio de forma inmediata #12236 - Solución: Se ha resuelto un problema por el que los plugins no podían modificar la visualización de las notas - Corrección: Se ha corregido un problema por el que las decoraciones de los iconos podían quedar cortadas - Corrección: Se ha corregido un problema por el que el mensaje de confirmación no funcionaba al pulsar el botón «Incluir/Excluir respuestas de todas las personas a las que sigues» - Corrección: Se ha modificado para que no se muestre «Añadir nota» cuando no se ha iniciado sesión #12309 - Corrección: Se ha corregido un problema por el que las búsquedas en el selector de emojis no se actualizaban - Solución: Se ha resuelto un problema por el que las notas no se convertían a nya en determinadas condiciones ### Servidor - Mejorar: Opción para configurar si se debe realizar un procesamiento de respaldo en la base de datos FTT - Solución: Evitar errores al desinstalar complementos sin tokens - Solución: Las publicaciones directas ya no notificarán a los usuarios, incluso cuando las notificaciones de publicaciones estén habilitadas - Corrección: Se ha resuelto un problema por el que, en ocasiones, podían aparecer renotas al seleccionar «Notas» en la cronología del usuario #12306 - Solución: Se ha resuelto un problema por el que, en determinadas condiciones, las publicaciones en los canales se mezclaban ocasionalmente en LTL - Corrección: ActivityPub: Se ha corregido un problema por el que los emojis personalizados de la información adicional no se incluían en la etiqueta de información del usuario - Corrección: Mejora de la seguridad relacionada con ActivityPub - Solución: Evitar respuestas a publicaciones privadas ## 2023.11.0 Fecha de lanzamiento: 05/11/2023 ### Notas - Si utiliza iOS 16.4 o una versión anterior, actualice a iOS 16.4 o posterior ### General - Característica: Función de decoración de iconos - Puedes superponer imágenes proporcionadas por el servidor sobre los iconos - La plantilla de la imagen se encuentra aquí: https://misskey-hub.net/brand-assets/#avatar-decoration - Recomendamos mantener las decoraciones dentro del área amarilla como máximo. - Lo ideal es que las imágenes tengan un tamaño de 512x512 píxeles. - Característica: Se ha añadido una opción a la configuración del canal para habilitar o deshabilitar las renotas/renotas citadas - Mejora: Establecer un período de validez de 30 minutos para la verificación de la dirección de correo electrónico durante el registro de la cuenta - Ahora hemos habilitado la opción de reutilizar el código de invitación utilizado durante el registro después de su fecha de caducidad. - Se ha resuelto el problema por el que los códigos de invitación dejaban de ser válidos si el usuario introducía una dirección de correo electrónico incorrecta. - Mejorar: Permite que las respuestas de todos los usuarios a los que ya sigues aparezcan en tu cronología - Mejora: Mostrar el número de notificaciones no leídas - Mejora: ahora es posible crear avisos sin notificación y sin necesidad de confirmación (silencio) - Mejora: Actualización de la localización - Mejora: Actualización de dependencias - Cambio: al utilizar CW, ya no se permite dejar las anotaciones en blanco ### Cliente - Característica: ahora se pueden instalar complementos y temas directamente desde sitios externos - Se requiere la implementación en un sitio externo.Para más detalles, consulta Misskey Hub. https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Característica: Opción para agrupar las notificaciones para su visualización (exclusión voluntaria) - Logro: Implementación de un tutorial básico para Misskey - Característica: Desliza el dedo para recargar la línea de tiempo - En un PC, también puedes recargar mediante el botón situado en la esquina superior derecha - Mejorar: Habilita la opción para desactivar las actualizaciones automáticas de la línea de tiempo - Mejorar: Cambiar el motor de resaltado de sintaxis del código a Shiki - Admite resaltado de sintaxis para AiScript - Al resaltar AiScript en MFM, utilice «is» o «aiscript» para indicar el inicio de los bloques de código - Mejorar: Cuando el ahorro de datos está activado, las imágenes animadas de los avatares deben pausarse - Mejora: cuando se elimina un complemento, cualquier token de acceso que estuviera en uso se eliminará simultáneamente - Mejora: al utilizar el complemento «Plugin:register_note_view_interruptor» para devolver null en lugar de una nota, ahora es posible ocultar las notas - Mejora: Se ha añadido la función AiScript «Mk:nyaize()» - Mejora: Información → Herramientas se ha convertido en un elemento independiente en la barra de navegación - Mejorar: haz clic en los emojis dentro de las notas para habilitar la copia y las reacciones - Mejora: Otros pequeños retoques - Solución: Se ha resuelto un problema por el que los cambios realizados por el usuario en el formulario de envío no se reflejaban en la vista previa - Solución: Las respuestas aparecen en la pestaña Notas > Archivos de las páginas de usuario - Solución: Se ha resuelto un problema por el que algunas palabras clave de búsqueda no se reconocían correctamente en la función «Buscar» de MFM - Corrección: Se ha resuelto un problema por el que Misskey Web se bloqueaba en determinados idiomas - Corrección: Se ha corregido un problema por el que no se mostraba ningún mensaje de error cuando fallaba la creación o actualización de un canal #11983 - Solución: Se ha resuelto el problema por el que los emojis de las tarjetas personales se mostraban como un icono de batería - Solución: Se ha resuelto un problema por el que era posible realizar la instalación utilizando el mismo Id que el tema predeterminado - Corrección: Se ha resuelto un problema por el que se mostraban varios emojis de batería en el selector de emojis #12197 - Corrección: Se ha resuelto un problema por el que el recuento de reacciones que se mostraba en la información sobre herramientas para reacciones con 11 o más era uno más alto de lo que debería ser #12174 - Corrección: Se ha resuelto un problema por el que se podía seleccionar «Público» para la configuración de visibilidad mientras se estaba en modo Silencio #12224 - Solución: En el diseño de la cubierta, la opción de respuestas no se guarda después de actualizar - Solución: Se ha resuelto un problema por el que los anuncios archivados se mostraban en el panel de control - Nota: Después de la actualización, se restablecerán los ajustes de sonido ### Servidor - Característica: La API del Registro ya está disponible para su uso por terceros - Mejora: Posibilidad de desactivar el almacenamiento en caché de TL en Redis (FTT) - Mejora: mejora el intervalo en el que aparecen en tu cronología los cambios en los canales que sigues (como dejar de seguir o volver a seguir) - Mejora: El Mfm en la sección de presentación personal del perfil ahora se combina - La otra parte debe estar utilizando Misskey v2023.11.0 o posterior - Mejora: Mejorar el rendimiento al adquirir canales - Mejorar: AP: Tratar las cuentas de tipo aplicación como isBot - Solución: Se ha resuelto un problema por el que las publicaciones restringidas a los seguidores no se incluían en la lista Tl - Solución: Se ha resuelto un problema por el que las respuestas a las publicaciones del propio autor no se incluían en la cronología local - Solución: Se ha resuelto un problema por el que las respuestas a publicaciones configuradas con «visibilidad: seguidores» por usuarios a los que sigues pero que no te siguen a ti aparecían en tu flujo - Solución: Se ha resuelto un problema por el que HTL/LTL/STL podían quedar vacíos cuando se habilitaba el almacenamiento en caché de TL en Redis - Corrección: Se ha resuelto un problema por el que se recuperaban canales que no se seguían en STL - Corrección: Se ha corregido el problema por el que se producía un error interno del servidor cuando no se podía obtener información sobre tendencias de Redis en `hashtags/trend` - Corrección: Se ha corregido un problema por el que las notas de los canales seguidos no se incluían al recargar o desplazarse hacia atrás por HTL #11765 #12181 - Corrección: Se ha corregido el problema por el que se podía cambiar el nombre de Renote - Solución: Se ha resuelto un problema por el que las notificaciones podían dejar de estar disponibles tras eliminar un token de acceso - Solución: Se ha resuelto un problema por el que las publicaciones directas sin destinatario no aparecían en el flujo - Corrección: Se ha corregido para habilitar las notificaciones de prueba adecuadas desde el lado del servidor - Corrección: Se ha corregido el problema por el que la opción «Mostrar Renote» en GTL no funcionaba #1223 ## 2023.10.2 Fecha de lanzamiento: 21/10/2023 ### General - Novedad: ahora puedes utilizar el feed para recopilar solo publicaciones locales - Característica: Se ha añadido la función «Silenciar el servidor» - Mejora: Se ha añadido una opción para incluir automáticamente las respuestas de los usuarios recién seguidos en tu cronología de forma predeterminada - Mejora: Permitir que HTL/LTL/STL se puedan rastrear hasta las actualizaciones anteriores a octubre de 2023 - Mejorar: al seguir o dejar de seguir, asegúrate de que se reflejen las publicaciones incluidas en los feeds HTL anteriores. - Mejora: Actualización de la localización - Mejora: Actualización de dependencias ### Cliente - Mejorar: Recordar opciones de visualización de respuestas TL - Mejorar: Dejar claro visualmente que la nota se publicó hace algún tiempo ### Servidor - Mejora: Mejorar el rendimiento al adquirir la línea de tiempo - Mejora: Mejorar el rendimiento de la Api de streaming - Corrección: se ha corregido el problema por el que, al consultar la base de datos en usuarios/notas, solo se obtenían las publicaciones del canal - Solución: Se ha resuelto un problema por el que la configuración del Panel de control no se guardaba correctamente - Solución: Se ha resuelto un problema por el que algunas Api podían no estar disponibles incluso cuando se disponía de privilegios de administrador - Cambio: Aunque el valor de isCat del usuario sea verdadero, ya no se ejecutará nyaize en el servidor - para los casos isCat, se recomienda que el cliente realice el procesamiento nyaize ## 2023.10.1 Fecha de lanzamiento: 12/10/2023 ### General - Mejora: Habilitar la configuración para incluir las respuestas en las líneas de tiempo locales y sociales ### Cliente - Corrección: Se ha corregido un problema por el que los emojis personalizados alargados horizontalmente se cortaban en el selector de emojis ### Servidor - Solución: Se ha resuelto un problema por el que las respuestas a tus publicaciones de los usuarios a los que sigues no aparecían en tu cronología - Corrección: se ha corregido el problema por el que en usuarios/notas podían aparecer publicaciones de canales sensibles ## 2023.10.0 Fecha de lanzamiento: 10/10/2023 ### NOTAS - La función de edición de notas introducida el 2 de septiembre de 2023 ha sido retirada, ya que resultó difícil implementarla con un alto nivel de calidad - La actualización restablecerá temporalmente tu cronología ### Cambios - API: Se ha eliminado la posibilidad de especificar el tipo de archivo en users/notes y notes/local-timeline - API: La paginación para notas/destacados ahora utiliza untilId, al igual que otras API ### General - Característica: ahora los usuarios pueden configurar si las respuestas a otros usuarios aparecen en su cronología - Característica: Ahora puedes configurar si las respuestas a otros usuarios aparecen en la cronología de la lista de usuarios para cada miembro dentro de la lista de usuarios - Característica: Aspectos destacados específicos del usuario - Novedad: ahora puedes especificar tu política de privacidad y el aviso legal (Impressum) - La política de privacidad requerirá su consentimiento al registrarse en el servidor - Característica: Ahora se pueden insertar anuncios en la línea de tiempo mientras se actualiza en tiempo real - El valor predeterminado es desactivado - La frecuencia se puede ajustar desde el panel de control.Observa el caudal del TL en el servidor operativo y especifica el valor óptimo. - Mejora: Se han integrado las funciones de silenciamiento de palabras suaves y palabras duras - Mejora: Mejora de la función de registro de moderación - Mejora: Actualización de la localización - Mejora: Actualización de dependencias - Corrección: Se ha resuelto el problema por el que las publicaciones directas podían volver a etiquetarse - Solución: Se ha resuelto el problema por el que las publicaciones del canal se incluían en la cronología de la lista de usuarios ### Cliente - Característica: Se ha añadido la página «Detalles del archivo» - Habilitar vistas previas ampliadas de los archivos en la unidad - Mostrar una lista de notas con archivos adjuntos - Mejora: Habilita la descarga de códigos de respaldo para la autenticación de dos factores como un archivo de texto - Mejorar: Establecer el volumen predeterminado durante la reproducción de vídeo al 30 % - Solución: Se ha resuelto un problema por el que la interfaz de usuario de la lista de usuarios que habían reaccionado permanecía ocasionalmente en la esquina superior izquierda ### Servidor - Mejora: drive/files/attached-notes ahora es compatible con la paginación - Mejora: Mejorar el rendimiento al adquirir la línea de tiempo - Mejora: Mejorar significativamente el rendimiento al adquirir los aspectos más destacados - Mejora: Mejorar significativamente el rendimiento al recuperar hashtags de tendencia - Mejorar: Mejorar el rendimiento cuando hay muchas conexiones WebSocket - Mejorar: Eliminar índices PostgreSQL innecesarios para mejorar el rendimiento - Corrección: Se ha corregido un problema por el que votar en una encuesta no relacionada con una alianza provocaba que se distribuyera una actualización de forma remota - Solución: los encabezados Cors no se configuraron en nodeinfo - Solución: Se ha resuelto un problema que impedía realizar varias conexiones al mismo tipo de transmisión TL - Solución: Se ha resuelto un problema por el que la paginación de la antena TL solo funcionaba parcialmente - Solución: Se ha resuelto el problema por el que aparecían notas nuevas sin archivos en la lista de tareas pendientes «Solo archivos» - Solución: Se ha resuelto el problema por el que el proceso no finalizaba o tardaba demasiado tiempo en completarse ## 2023.9.3 Fecha de lanzamiento: 30/09/2023 ### General - Mejorar: Habilitar la configuración de la disponibilidad de la funcionalidad de traducción de notas a través de roles. ### Cliente - Mejora: Se ha añadido la constante `SERVER_URL` en AiScript para hacer referencia a la dirección del host - Mejora: Mejora de la función de registro de moderación - Mejora: Actualización de la localización ### Servidor - Solución: Se ha resuelto un problema por el que las notificaciones dejaban de enviarse hasta que desaparecía la caché, en caso de que quedara una versión antigua de la caché en Redis - Corrección: Corrección de compatibilidad con versiones anteriores ## 2023.9.2 Fecha de lanzamiento: 29/09/2023 ### General - Característica: Habilitar la edición de notas - Los permisos de edición se pueden configurar por rol - Característica: Las notificaciones se pueden recibir por tipo: - De todos - Solo de los usuarios a los que sigues - Solo de tus seguidores - Solo de los que te siguen - Solo de los miembros de listas específicas - No recibir - Mejora: Se ha añadido una opción para excluir Renotas de la línea de tiempo - Mejora: Permitir la exclusión de Renotas de la lista de notas en las páginas de usuario - Mejora: Se ha añadido una opción para mostrar solo las notas con archivos adjuntos en la línea de tiempo - Mejora: Mejora de la función de registro de moderación - Mejora: Actualización de dependencias - Mejora: Actualización de la localización ### Cliente - Mejorar: Usar el plugin:register_post_form_action para permitir la recuperación y modificación de CW - Mejorar: Se puede filtrar los anuncios publicados en admin/ad/list - Mejora: Se ha añadido una función a AiScript para llamar a API de servidores remotos (`Mk:apiExternal`) ### Servidor - Mejorar: Permitir la exportación del PID del proceso maestro - Mejorar: Asegúrese de que el punto final admin/ad/create devuelva un código de estado 200 y la información publicitaria configurada ## 2023.9.1 Fecha de lanzamiento: 25/09/2023 ### General - Mejora: Mejora de la función de registro de moderación. ### Cliente - Solución: Se ha resuelto una inconsistencia en la visualización del botón «Detalles» dentro del menú Notas, dependiendo de si el usuario había iniciado sesión o no ### Servidor - Solución: La paginación de notificaciones no funciona - Solución: Al cambiar la configuración de notificaciones para «Publicaciones de nuevos usuarios» se produce un error interno del servidor ## 2023.9.0 Fecha de lanzamiento: 24/09/2023 ### Notas - Para utilizar meilisearch, se requiere la versión 1.2 o posterior ### General - Característica: Compatibilidad con OAuth 2.0 - Característica: Funcionalidad de notificación mejorada - Habilitar la creación de notificaciones individuales para los usuarios - Ahora se pueden mostrar banners de notificación y cuadros de diálogo - Ahora se pueden personalizar los iconos de notificación - Novedad: ahora puedes designar canales como confidenciales - Las renotas de canales confidenciales ahora aparecen en la línea de tiempo de inicio de forma predeterminada - Las notas de los canales confidenciales no aparecerán en los perfiles de usuario - Característica: Ahora se generan códigos de respaldo para la autenticación de dos factores - ref. https://github.com/MisskeyIO/misskey/pull/121 - Característica: Se ha añadido compatibilidad con Passkey para la autenticación de dos factores - Característica: Ahora puedes recibir notificaciones cuando determinados usuarios publiquen algo - Característica: Verificación del enlace del perfil - Característica: Función de registro de moderación - Novedad: ahora puedes probar las notificaciones - Característica: ahora se pueden configurar los iconos PWA - Mejora: ahora se pueden configurar las abreviaturas de los nombres de servidor - Mejorar: Añadir una opción para excluir a usuarios específicos de las fuentes de recepción de la antena - Mejorar: reforzar la seguridad al configurar la autenticación de dos factores - Al realizar operaciones que requieran la introducción de una contraseña, si la autenticación de dos factores está habilitada, también deberá introducir un código de verificación - Mejorar: Permitir que se sobrescriba manifest.json - Enhance: 依存関係の更新 - Mejora: Actualización de la localización ### Cliente - Función: fijar cualquier lista de usuarios a la página de la cronología - Configuración -> Configuración del cliente -> General se puede configurar desde aquí - Característica: Se puede incrustar el formulario de publicación directamente en Play (`Ui:C:postForm`) - Característica: Se ha añadido una opción para evitar que la pantalla del dispositivo se apague automáticamente mientras el cliente está en funcionamiento - Logro: Se han añadido nuevos logros - Mejora: añadir las pestañas «Lista de notas» y «Lista de reacciones» a la página «Detalles de la nota» - El elemento correspondiente se ha eliminado del menú contextual - Mejora: Se han añadido ajustes para resaltar los medios sensibles - Mejora: Mostrar una lista de las listas de reproducción que esa persona ha creado en su perfil - Mejorar: Mejorar el funcionamiento del interruptor del menú - Mejora: Aumentar a 100 el número de resultados de búsqueda que se muestran en el selector de emojis - Mejora: Recordar el estado de visualización de la vista previa del formulario de publicación - Mejora: Permitir añadir y eliminar usuarios de la lista de usuarios mediante un interruptor en el menú de usuario - Mejora: Mejorar el diseño de las reacciones que pulsas - Mejora: añadir una opción para buscar solo localmente dentro de la función de búsqueda de notas - Mejora: Habilitar la generación de informes de renotas - Mejora: Mejora del modo de ahorro de datos - Mejora: Las Renotas se puede eliminar con permisos de administrador - Mejora: ahora se puede utilizar la notación `$[rainbow ]` incluso cuando MFM animado está desactivado - Mejorar: Habilitar la emisión de tokens Api para realizar operaciones de Play a través de la consola Api - Mejorar: Permitir aumentar el tamaño de visualización de las reacciones - Mejora: Actualización de AiScript a la versión 0.16.0 - Mejorar: Eliminar restricciones al llamar a la Api del servidor Misskey desde AiScript - Mejora: Habilitar AiScript para recuperar el idioma de configuración actual como `LOCALE` - Mejorar: Cuando Mk:api falla, devuelve un valor de tipo de error (añadido en AiScript 0.16.0) - Mejora: Mostrar diálogos de error en Scratchpad para errores relacionados con funciones Async: y devoluciones de llamada de botones (aún no implementado en Play, etc., ya que es experimental) - Mejora: Se ha mejorado el rendimiento al cargar la página de detalles de la nota - Mejora: Rendimiento mejorado al seleccionar listas/antenas en la línea de tiempo - Mejorar: Permitir la localización de 「Moderation note」 y 「Add moderation note」 - Mejorar: Habilitar la visualización y copia del código fuente del complemento - Mejorar: ajustes de diseño detallados - Corrección: Se ha corregido el error que impedía bloquear en la pantalla de información del servidor (`/instance-info/{domain}`) - Corrección: Se ha corregido un problema por el que al hacer clic o tocar «Entendido» en las notificaciones no leídas no se eliminaba inmediatamente la notificación «Entendido» - Solución: Se ha resuelto el problema por el que el tamaño del texto cambiaba al girar la pantalla en iOS - Corrección: no se aplica la función de silenciar palabras para las notas secundarias - Corrección: Se ha corregido un problema por el que al desplazarse hacia abajo en la línea de tiempo hasta la pantalla de notas y luego volver atrás, se perdía la posición de desplazamiento anterior - Solución: Se ha resuelto un problema por el que la comprobación de la versión de AiScript durante la instalación del complemento Misskey no era compatible con las versiones 0.14.0 y posteriores - Corrección: Se ha resuelto un problema por el que el texto predeterminado de las menciones era incorrecto al enviar mensajes a usuarios de otros servidores - Solución: Se ha resuelto un problema por el que Misskey Web no se podía abrir en determinados entornos - Solución: Se ha resuelto el problema por el que no se podía ver la lista de permisos de plugins - Solución: Se ha resuelto un problema por el que los toques cortos podían no funcionar correctamente en menús de varios niveles - Solución: Se ha resuelto un problema por el que no se podían seleccionar los submenús en los teléfonos inteligentes cuando las animaciones estaban desactivadas - Solución: Se ha resuelto un problema por el que al pasar el ratón por encima de un elemento del menú principal en el menú lateral aparecía el menú secundario - Corrección: Se ha resuelto un problema por el que Mk:api podía comunicarse externamente en AiScript ### Servidor - Cambio: El valor predeterminado para `cacheRemoteFiles` ahora es false - Mejorar: Mejorar el comportamiento de la función (correctFilename) que modifica las extensiones de los archivos durante la carga de archivos, etc - Mejora: ahora la Url del servidor se incluye en la carga útil del webhook - Mejora: Permitir que el secreto se deje en blanco en la configuración de Webhook - Mejorar: Habilitar el apagado automático de antenas no utilizadas - Mejora: compatible con nodeinfo 2.1 - Mejorar: Mejorar el rendimiento al recuperar una lista de menciones dirigidas a uno mismo - Mejorar: Reducir el uso de memoria mediante el empleo de jemalloc en su entorno Docker - Mejorar: Añadir aidx como método de generación de ID y establecerlo como predeterminado - Mejora: añadir opción de configuración de enlace de direcciones (outgoingAddress) - Solución: Se ha resuelto el problema que provocaba fallos al especificar la opción MK_ONLY_SERVER - Corrección: se ha solucionado el problema por el que no funcionaba la paginación de notas/reacciones - Solución: al especificar un host en «notes/search», asegúrese de que aparezca reflejado en los resultados de búsqueda - Corrección: Se ha corregido el problema por el que no se podían consultar algunas notas destacadas - Solución: Se ha resuelto un problema por el que la función de silenciar no funcionaba al recuperar la cronología de la lista de usuarios desde la Api - Corrección: Se ha resuelto un problema por el que se podía eludir la autenticación en la pantalla de gestión de la cola de trabajos - Corrección: Se ha corregido un problema por el que ciertos errores internos del servidor no devolvían un seguimiento de la pila - Corrección: Se ha corregido un problema por el que algunos usuarios remotos no podían ser seguidos ## 13.14.2 Fecha de lanzamiento: 27/07/2023 ### Cliente - Cuando se añaden o eliminan usuarios de la lista TL, no restablezca la TL - Cambiar la variable de recuperación de URL a una función: CURRENT_URL → Mk:url() - Solución: Se ha resuelto un problema por el que la parte inferior de la página quedaba oculta por la barra de navegación durante la visualización en dispositivos móviles - Corrección: Se ha corregido un problema por el que no era posible desplazarse en algunos cuadros de diálogo modales - Solución: No es posible seleccionar todos los emojis en Emojis personalizados - Solución: Fuga de memoria causada por PhotoSwipe ### Servidor - Solución: Se ha resuelto el problema por el que el botón «Ver más» no mostraba contenido adicional debido a un desplazamiento API dañado - Solución: Se ha resuelto un problema por el que, en ocasiones, las publicaciones de servidores externos no se mostraban en la cronología ## 13.14.1 Fecha de lanzamiento: 21/07/2023 ### General - Hemos mejorado la función de invitación - Ahora puedes ver los códigos de invitación emitidos anteriormente - Ahora puedes establecer el número de códigos de invitación emitidos por función, el período restringido y la fecha de caducidad. - Ahora puedes ver qué usuarios crearon y utilizaron códigos de invitación - Cuando se asigna un rol a un usuario con una fecha de caducidad, ahora se puede ver la fecha de caducidad en la página de moderación del usuario - Ahora puedes desactivar la generación de identicons para mejorar el rendimiento - Ahora puede desactivar la divulgación de información sobre el servidor para mejorar el rendimiento ### Cliente - habilita el acceso a las pantallas de edición de antenas y listas desde el menú de la columna de la interfaz de usuario de la plataforma - Habilitar el recorte de imágenes en el menú Archivo de Drive - Para permitir ocultar imágenes tan fácilmente como vídeos - Mejora: Notas incrustadas para mostrar varias imágenes y vídeos - Al subir una imagen sin conservar la imagen original, asegúrate de que se suba como un archivo webp (excepto en Safari) - Al mostrar renotas abreviadas, omita las renotas de sus propias notas - Cuando utilices el modo desarrollador, también podrás copiar el ID de carpetas y archivos - Al expandir el contenido citado mediante «Ver más», debería ser posible contraerlo utilizando «Cerrar» - Añadir un botón para copiar la URL del perfil #11190 - Habilitar la recuperación de la URL actualmente mostrada a través de `CURRENT_URL` (AiScript) - Añadir un botón «Añadir a antena» al menú contextual del usuario - Al abrir un canal que no sigues ni has añadido a tus favoritos, se abrirá la página de resumen del canal - Al tocar el visor de pantalla, debería cerrarse el visor de imágenes de la misma manera que al hacer clic con el ratón - Añadir un botón de recarga a la pantalla sin conexión - Para garantizar que se apliquen los ajustes de visibilidad predeterminados al volver a anotar - Se ha añadido una configuración para evitar la visualización de la interfaz de usuario simplificada al acceder a páginas que no son de raíz a través de Deck - Para habilitar la confirmación del ID de rol en la pantalla de configuración de roles - Mejora del rendimiento al mostrar menús contextuales - Mejora de la visualización cuando los seguidores/seguidos son privados - La función que oculta automáticamente el texto que contiene MFM también debería aplicarse a las direcciones de respuesta y a los RN citados - La posición ya no está disponible - AiScript se ha actualizado a la versión 0.15.0 - Solución: Las métricas del servidor están inclinadas 90 grados - Solución: Se ha resuelto un problema por el que se producía un error al acceder a páginas que requerían credenciales sin haber iniciado sesión - Solución: Se ha resuelto el problema por el que los enlaces dentro de Sparkle no se podían seleccionar - Solución: Se ha solucionado un problema por el que las posiciones de las ventanas emergentes eran incorrectas en ZenUI - Solución: Se ha resuelto un problema por el que la posición de desplazamiento no se conservaba durante las transiciones de página - Solución: La paginación de carpetas no funciona #11180 - Solución: Se ha resuelto un problema por el que las vistas previas se extendían más allá de la pantalla al publicar textos largos - Solución: Se ha resuelto un problema por el que la configuración de fuentes del sistema no se aplicaba correctamente - Solución: Se ha resuelto un problema por el que las notificaciones push no se mostraban correctamente al completar la encuesta - Corrección: Se ha modificado para que `HTMLAudioElement.play` no se ejecute no solo cuando MasterVolume es 0, sino también cuando el ajuste de volumen para cada sonido de notificación es 0 ### Servidor - Hemos mejorado el rendimiento del streaming reduciendo el número de operaciones JSON.parse - Al hacer que la carga de los modelos nsfwjs sea exclusiva, el uso de memoria no aumentará debido a la carga duplicada - Mejorar el rendimiento de las tareas de entrega de la Unión (revisar el mecanismo de bloqueo, utilizar el almacenamiento en caché de Redis) - Se ha reducido el número de operaciones signedGet para las notas destacadas - Se ha cambiado la longitud de la clave de firma ActivityPub a 2048 bits para mejorar el rendimiento (solo en cuentas nuevas) - Se ha añadido una opción para desactivar el almacenamiento en caché solo para archivos confidenciales en servidores remotos - Habilitar la configuración del rango de notas para indexar en Meilisearch - Exportar notas con detalles del archivo - Añadir compatibilidad con sockets Unix - Todas las opciones de ioredis se pueden especificar en el archivo de configuración - Solución: Se ha resuelto un problema por el que los archivos ZIP de emojis personalizados exportados no se podían cargar si eran demasiado grandes - Solución: Se ha resuelto un problema por el que, en ocasiones, se enviaban publicaciones ActivityPub sin sentido a servidores remotos - Solución: Eliminar el índice Meilisearch cuando se borran las notas. - Corrección: Se ha corregido el manejo de errores de PostgreSQL en entornos que no son de habla inglesa. - Solución: Comportamiento cuando los iconos de instancia son base64 - Corrección: Se ha corregido un error al analizar la URI «acct» que apunta a una «Person» local - Solución: Se ha resuelto un problema por el que las antenas desactivadas podían no volver a activarse ## 13.13.2 Fecha de lanzamiento: 13/06/2023 ### General - Permitir a los administradores del servidor configurar imágenes de iconos para condiciones de error o cuando los elementos no existen - La lista de usuarios a los que se han asignado roles puede hacerse privada - Debido a la carga extremadamente alta del servidor, se ha eliminado la función de visualización de estadísticas de usuarios ### Cliente - Solución: Evitar que las transmisiones se desconecten cuando las pestañas están en segundo plano ### Servidor - Solución: Para evitar que la caché se acumule continuamente ## 13.13.1 Fecha de publicación: 06/06/2023 ### Cliente - Solución: Evitar que la transmisión se desconecte mientras la pestaña está activa ### Servidor - Solución: Se ha resuelto el problema por el que se producía el error «TypeError: JSON5.parse is not a function» en api/meta ## 13.13.0 Fecha de publicación: 06/05/2023 ### General - Habilita la configuración de funciones para cada emoji personalizado, de modo que pueda utilizarse como reacción - Habilita la opción para configurar si se deben combinar cada uno de los emojis personalizados - Habilitar la configuración de un indicador de contenido sensible para cada emoji personalizado - Ahora es posible configurar los ajustes para rechazar reacciones con emojis personalizados sensibles - Deja de guardar la configuración sobre si incluir las respuestas de tus seguidores a otras personas en tu cronología en tu cuenta - En el futuro, esto se configurará durante las llamadas a la Api y al establecer conexiones de streaming - La lista ya está disponible para su consulta pública ### Cliente - Mostrar un cuadro de diálogo de confirmación al cancelar o modificar reacciones - Añadir modo desarrollador - AiScript se ha actualizado a la versión 0.13.3 - Cuando se utiliza Deck UI, se muestra en Zen UI al acceder a cualquier cosa que no sea `/` - Resolución de problemas cuando la columna principal no está instalada - Añadir un botón para publicar utilizando ese hashtag desde la página de la lista de notas de hashtags - Añadir un botón para volver al asistente de configuración inicial de la cuenta - Añadir un botón «Más tarde» al asistente de configuración inicial de la cuenta - Mejoras en el rendimiento cuando el servidor tiene un gran número de tipos de emojis personalizados - Corrección: Comportamiento cuando no se pudo recuperar la información durante la vista previa de la URL - Solución: Se ha resuelto el problema por el que las direcciones de correo electrónico se guardaban en los gestores de contraseñas durante los nuevos registros en Safari y Firefox - Solución: Se ha resuelto el problema por el que las publicaciones seguían apareciendo en el feed incluso cuando la línea de tiempo de rollo estaba desactivada - Solución: Se ha resuelto el problema por el que se perdían todas las publicaciones en la cronología del rol - Solución: Se ha resuelto un problema por el que la información de la aplicación no se mostraba en la pantalla «Gestión de tokens de acceso» - Solución: Se ha resuelto el problema de enfoque de la tecla Tab con el selector de emojis en Firefox - Solución: Se ha resuelto un problema por el que el botón «Seguir» resultaba difícil de ver debido a la combinación de colores del tema - Se ha añadido una nueva propiedad, `fgOnWhite` ### Servidor - actualizar bull a bull-mq para mejorar el rendimiento de la cola de trabajos - Mejorar el rendimiento del streaming - Solución: Volver a habilitar la antena cuando se acceda a ella después de haberla deshabilitado - Solución: Se ha resuelto un problema por el que no se podía dejar en blanco la Url de la imagen para las notificaciones - Solución: Se ha resuelto el problema por el que el sinceId en i/notifications no funcionaba correctamente - Solución: Se ha resuelto el problema por el que no se podían desanclar páginas ## 13.12.2 Fecha de lanzamiento: 12/05/2023 ### NOTAS El parámetro «index» ahora es obligatorio en la configuración de Meilisearch.Recomendamos utilizar el nombre de host de tu servidor Misskey para este valor (solo se permiten caracteres alfanuméricos, guiones y guiones bajos).Ejemplo: `misskey-io` Los índices `notas` creados anteriormente deben renombrarse como `---notes`.Ejemplo: `misskey-io---notes` ### General - Se ha añadido una opción para reducir el entrenamiento de la IA sobre el contenido enviado ### Cliente - Ahora es posible buscar notas especificando un usuario - Añadir ajustes de privacidad al asistente de configuración inicial de la cuenta - Añadir un gráfico de líneas al gráfico de tasa de retención - Solución: Se ha resuelto un problema que provocaba una carga elevada cuando se activaba el efecto de desenfoque - Solución: Se ha resuelto un problema por el que no se podían configurar imágenes dentro de bloques de imágenes en la página - Solución: Las barras de color ya no aparecen en las respuestas - Solución: Se ha resuelto un problema por el que el cuadro de búsqueda del canal funcionaba de forma errática - Corrección: Representación del gráfico de retención - Corrección: Se ha resuelto un problema con la representación de los efectos de reacción ### Servidor - Ahora se permite el uso de «And» y expresiones regulares al registrar palabras sensibles. - Solución: Se ha resuelto el problema que impedía que un único servidor Meilisearch fuera utilizado por varios servidores Misskey ## 13.12.1 Fecha de lanzamiento: 09/05/2023 ### Cliente - Ajustar la visualización de las notas de moderación en la pantalla del perfil - Corrección: Se ha corregido un problema por el que algunos diálogos no se mostraban - Corrección: Se ha corregido el problema por el que el botón «Seguir» en MkUserInfo estaba colocado incorrectamente ### Servidor - Solución: Se ha resuelto un problema que impedía la actualización de la información del servidor remoto - Solución: Se ha resuelto un problema por el que las imágenes asociadas a los perfiles de usuario desaparecían al actualizar a la versión 13.12 sin haber utilizado previamente la versión 13.11 ## 13.12.0 Fecha de lanzamiento: 09/05/2023 ### NOTA - Ahora se requiere la versión 18.6.0 o posterior de Node.js ### General - Se admite la migración de cuentas (transferencia de seguidores) - Meilisearch ya está disponible para la búsqueda de texto completo - Se ha añadido una función de reglas del servidor que permite mostrar breves reglas a los usuarios antes de que se realicen nuevos registros - Función de notas personales para los usuarios - Ahora los usuarios pueden añadir notas que solo ellos pueden ver. (También puedes añadir notas para ti mismo.) - Puedes añadirlo desde el menú de usuario. (En la vista de escritorio, también puede añadirlo mediante el botón situado a la derecha del nombre de usuario) - Ahora puedes configurar los colores de los canales.Se mostrará el indicador de color establecido para cada nota. - Ahora puedes archivar canales. - Una vez archivado, el canal ya no aparecerá en la lista de canales ni en los resultados de búsqueda, y no se podrán realizar nuevas publicaciones. - La funcionalidad de exportación e importación de antenas ya está disponible - Ahora puede elegir si desea mostrar la línea de tiempo de cada rol. - La configuración predeterminada es «desactivado», así que, si quieres ver la línea de tiempo de los roles, tienes que activarlo. - Añadir una política para asignar de forma obligatoria Nsfw a los roles - Ten en cuenta que los archivos subidos no deben ser Nsfw. - Ahora se pueden ver y editar las notas de moderación desde la página de perfil del usuario. - Ahora se pueden configurar licencias de emojis personalizados en varios conjuntos. - Los administradores ahora pueden establecer nombres de usuario para las reservas. - Solución: Se ha resuelto el problema por el que las notificaciones de solicitudes de seguimiento permanecían ### Cliente - Mostrar el asistente de configuración inicial al crear una cuenta - Habilitar la búsqueda interna del canal - Habilitar la recuperación/visualización de todos los canales mediante la búsqueda de canales - para permitir la personalización de la visualización de notificaciones - Habilita la creación de notas directamente desde la lista de archivos en la unidad - Para habilitar la visualización de una lista de usuarios que han vuelto a publicar desde el menú de notas - En la página de emojis personalizados del Panel de control y en el campo de búsqueda de emojis personalizados de «Acerca de», puedes buscar emojis utilizando un formato como «:emojiname1::emojiname2:» - Podrás introducir datos desde el selector de emojis - Se ha añadido el modo Ahorro de datos - Las imágenes se mostrarán con todos los elementos ocultos - Las imágenes marcadas como contenido inadecuado para menores deben mostrar una indicación de que contienen dicho contenido, incluso cuando se muestran - Los moderadores pueden aplicar directamente la configuración Nsfw a las imágenes adjuntas a las notas - Habilitar la eliminación y reordenación de elementos en la sección «Información adicional» de la configuración del perfil - Se han añadido nuevos logros - AiScript se ha actualizado a la versión 0.13.2 - Corrección: La función Mk:dialog de la API AiScript anteriormente no devolvía ningún resultado; esto se ha modificado para que devuelva NULL - Corrección: Las insignias de notificación de reacciones para imágenes que no eran 1:1 estaban colocadas demasiado a la izquierda o arriba; esto se ha corregido para centrarlas - Corrección: Se ha corregido un problema por el que las orejas de gato se cortaban en la lista de usuarios al pasar el cursor por encima de las reacciones - Solución: Se ha resuelto un problema por el que era difícil pulsar el botón «Ver más» que aparecía sobre los contenidos NSFW ### Servidor - modificado para devolver todos los canales cuando la consulta en canal/búsqueda está vacía - La variable de entorno MISSKEY_CONFIG_YML permite cambiar el archivo de configuración predeterminado default.yml - Solución: Se ha resuelto un problema por el que, en ocasiones, no se podía recuperar la información de otros servidores - Solución: Se ha resuelto el problema por el que los archivos de datos exportados tenían una extensión desconocida - Solución: Se ha resuelto un problema por el que las descargas no se completaban cuando se producía un error durante el análisis del encabezado Content-Disposition - Corrección: API: Se ha resuelto un problema por el que las imágenes no se restablecían cuando se pasaban valores nulos a i/update avatarId y bannerId - Solución: Se ha resuelto el problema que impedía la reproducción de archivos .wav y .flac (solo los archivos recién subidos se verán afectados por esta solución) - Solución: Se ha resuelto un problema por el que los usuarios bloqueados se incluían en las respuestas de determinadas Api - Corrección: Calcular el uso de memoria como «total - disponible» en lugar de «usado - búferes - caché» (ya que no se podía medir correctamente dependiendo del entorno) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/es/docs/6.donate.md ================================================ # Donando al proyecto :::tip Si está interesado en apoyar (patrocinar) el proyecto como empresa, haga [clic aquí](/docs/become-a-sponsor/) ::: Misskey no es una empresa y su uso es gratuito, por lo que sus únicos ingresos proceden de tus donaciones.(Algunos servidores pueden ser como los ingresos por publicidad, pero eso es el ingreso del administrador y no va directamente al desarrollador). Tu donación nos ayudará a continuar con el desarrollo, y es tu contribución al proyecto. Su donación nos permitirá continuar el desarrollo de Misskey y será una contribución que mantendrá el Proyecto Misskey durante muchos años.Puede ayudarnos de las siguientes maneras:(Lea atentamente esta página antes de hacer una donación) - Donación continua - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Donación única - Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Bitcoin: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazon.co.jp Wishlist](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip Si va a hacer una donación cuantiosa (por ejemplo, más de 30.000 yenes), piense en Kyash o póngase en contacto con nosotros y le facilitaremos una cuenta bancaria, ya que PayPal y otros métodos tienen comisiones elevadas. ::: :::tip Según el importe, se pueden obtener las siguientes recompensas: - 1,000 JPY o más: Insignia exclusiva "mi" en tu cuenta de misskey.io - 3,000 JPY o más: Todo lo de arriba + tener tu nombre en los créditos de Misskey - 10.000 JPY o más: Todo lo anterior, más su crédito con su icono - 20.000 JPY o más: Todo lo anterior, más una [tarjeta de identificación física exclusiva de Misskey](/docs/mi-card/) ::: :::warning No se efectuarán reembolsos bajo ninguna circunstancia (incluida la no recepción de un regalo de agradecimiento por cualquier motivo).Por favor, téngalo en cuenta antes de hacer una donación. ::: :::warning **La insignia no se aplicará automáticamente y no aparecerá automáticamente en los créditos de Misskey, por lo que si desea recibir el privilegio, envíe una solicitud a `@syuilo@misskey.io` con la prueba de su donación.** (Si no recibe respuesta al cabo de un tiempo, vuelva a mencionarnos, ya que es posible que estemos desbordados con tantas consultas.Además, tenga en cuenta que es posible que no le localicemos desde otro servidor que no sea misskey.io.Si no puede localizarnos, póngase en contacto con nosotros a través del formulario de contacto del Proyecto Misskey). ::: Además, por lo general, los administradores de servidores tampoco obtienen ingresos.Como el funcionamiento de un servidor cuesta dinero, considere también la posibilidad de ayudar al administrador de su servidor. Esto no tiene una relación directa con el desarrollo de Misskey, pero la existencia de servidores es lo que compone el proyecto, lo que significa que la existencia continuada de servidores es tan importante como la del propio proyecto. ================================================ FILE: content/es/docs/7.become-a-sponsor.md ================================================ # Convertirse en Patrocinador (Sponsor) :::tip Si es usted un particular y desea apoyar el proyecto, haga clic aquí.](/docs/donate/) ::: El Proyecto Misskey también busca empresas patrocinadoras. Como patrocinador, tendrá el logo de su empresa en Misskey y en el Misskey Hub, así como soporte técnico exclusivo directamente de los desarrolladores de Misskey. Contáctanos para más información](/contact/) ================================================ FILE: content/es/docs/8.mi-card.md ================================================ # Tarjeta Misskey ID Como recompensa por tu generoso y valioso apoyo al Proyecto Misskey, ¡recibirás una tarjeta de identificación Misskey física! **La tarjeta de identificación Misskey es una tarjeta (placa) metálica muy resistente con un número de serie y un propietario vinculados a ella.** Se ha utilizado el mecanizado de precisión sobre metal pesado para crear una tarjeta de gran categoría. Tanto la superficie delantera como la trasera están cuidadosamente diseñadas por syuilo.¡Consiga la suya ahora y disfrútalo! Para ver un vídeo del producto real [haga clic aquí](https://www.youtube.com/shorts/AdzzwxEa-WE) (Parece dorado debido a la iluminación, pero en realidad es plateado). ## Especificaciones de la tarjeta - Dimensiones: 54.0 mm x 85.6 mm - Peso: aproximadamente. 34 g - Material: Acero inoxidable de 1,0 mm de grosor con acabado de espejo - Procesado: acabado espejo (superficie), grabado (otras superficies), serigrafía (logotipo), grabado láser (numeración) - Diseño: diseño de Syuilo con número de serie, código de barras, código QR y grabado de la firma de Ai-chan. Como opción, también podemos añadir una firma «syuilo» en el reverso de la tarjeta.(Gratis) ### Ver en 3D ::X__Docs__mi-card__InteractiveView :: Nota: Se omite el diseño del reverso.Este modelo 3D no es una réplica exacta del producto real. ## Quién puede conseguirla **Las personas que hayan contribuido con un total acumulado de 20.000 yenes o más podrán obtener una tarjeta.** :::g-details{summary='2枚以上ご希望の場合'} Si desea más de una, puede obtener una tarjeta adicional por cada 30.000 yenes. El número de copias adicionales que puede recibir es el importe de la ayuda menos 20.000 dividido por 30.000. Por ejemplo, se calcularía un total de dos tarjetas para un importe total de ayuda de al menos 50.000 yenes, tres tarjetas para un total de al menos 80.000 yenes, y así sucesivamente. Puedes calcular cuántas tarjetas puedes conseguir: ::X__Docs__mi-card__Calculator :: Tenga en cuenta que es posible que no podamos proporcionar el número de tarjetas solicitado en función de la disponibilidad. \*El formulario de solicitud sólo puede presentarse una vez, por lo que si desea presentar una segunda solicitud o solicitudes posteriores, envíe la misma información que en el formulario de solicitud a través del formulario "Contacto". ::: El soporte en USD se convertirá a 1USD = 150JPY independientemente de cuándo se dé el soporte.Para el tratamiento en otras monedas, póngase en contacto con nosotros. Aquellos que deseen recibir una tarjeta deben leer atentamente el contenido de esta página (incluidas las [Notas](#Notas)) y enviar una solicitud. Tenga en cuenta que, por motivos de envío, **sólo pueden obtener esta tarjeta los residentes en Japón.** :::warning **Esta tarjeta es una recompensa por apoyar el "Proyecto Misskey" (syuilo).** Tenga en cuenta que la asistencia para cada servidor Misskey no puede acogerse a esta oferta. [Haga clic aquí para apoyar el Proyecto Misskey](/docs/donate/) ::: :::tip Para calcular el importe acumulado de la ayuda se puede utilizar cualquier método de ayuda y cualquier periodo de tiempo. Por ejemplo, si recibiste un regalo de 5000 yenes a través de PayPal en 2023, 12000 yenes a través de Fanbox y 3000 yenes a través de Amazon Wishlist en 2024, tienes derecho a recibir 5000 + 12000 + 3000 = 20000. ::: ## ¿Cómo aplicar? Rellene el siguiente formulario.(Necesitas una cuenta de Google para rellenarlo). [Formulario de solicitud de la tarjeta MisskeyID](https://forms.gle/3EcRw21nUcGqGVk68) ## Entrega La entrega se realizará por Japan Post. **El envío es gratuito.** - Le enviaremos por correo electrónico un número de seguimiento cuando realicemos el envío. - La entrega puede realizarse los sábados y domingos. - En el momento de la recogida, es posible que se solicite un documento de identidad. La placa se embalará cuidadosamente y se enviará tras su inspección.Si se produce algún daño a la llegada, póngase en contacto con Japan Post. :::warning La placa se enviará a la dirección que nos hayas facilitado. Ten en cuenta que no es posible realizar envíos a direcciones distintas a la del solicitante. No puede especificar el método de envío. ::: ## Advertencias - Las especificaciones están sujetas a cambios sin previo aviso. - No se pueden seleccionar números de serie. - Tenga en cuenta que existe la posibilidad de que se produzcan pequeños arañazos en la tarjeta durante la producción y la entrega. - Existen ligeras diferencias individuales en cuanto a dimensiones y procesamiento.Disfrútalo como una individualidad. - La distribución puede suspenderse o darse por terminada sin previo aviso. - El umbral de subvención está sujeto a cambios sin previo aviso. - Guárdelo en un lugar seguro, ya que no podrá volver a expedirse en caso de pérdida, deterioro o robo. - Le agradeceríamos que se abstuviera de revenderla o transferirla. ================================================ FILE: content/es/docs/9.misskey-and-misskey-servers.md ================================================ # Servidores de Misskey y Misskey «Misskey» y «servidor Misskey» se refieren a cosas diferentes. Sin embargo, aparte de la similitud en el nombre, a menudo se abrevia simplemente como «Misskey» cuando se hace referencia a un «servidor Misskey», lo que lo hace muy propenso a la confusión. De hecho, con frecuencia recibimos consultas en las que la gente se refiere erróneamente a los «servidores Misskey» como simplemente «Misskey». (Misskey no es el operador de los servidores Misskey).Ten en cuenta que este sitio web es el sitio web oficial de "Misskey" y no es el sitio web de "servidores o instancias" de Misskey Por favor, asegúrate de no confundir ambos conceptos. ## 「Misskey」 Misskey es un software gratuito y de código abierto para crear servicios de redes sociales (SNS), desarrollado por la iniciativa comunitaria conocida como Misskey Project. El término «código abierto» se refiere al software cuyo código fuente (plan) está disponible públicamente. «Gratuito» significa que no se cobran tarifas por utilizar el código fuente (es gratuito) y que cualquiera puede utilizarlo libremente. Misskey se presenta a veces como una «red social», pero esto es incorrecto. あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip Por lo tanto, no existe tal cosa como "operación Misskey" como servicio. Si te registras o inicias sesión, eso lo haces en un servidor Misskey en lugar de con Misskey en sí. ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。Por favor tenlo en cuenta. ::: El código fuente de Misskey está disponible gratuitamente para cualquiera, por lo que varias personas han creado servicios de redes sociales (servidores o instancias Misskey) utilizando Misskey, a los que se puede acceder públicamente en Internet. Además, cualquiera puede participar en el desarrollo. ## Servidor Misskey Un servidor Misskey se refiere a una red social creada utilizando Misskey. Por ejemplo, las plataformas de redes sociales como «misskey.io», «misskey.design» y «nijimiss.moe» son servidores Misskey (servidores basados en Misskey). Cabe señalar que un servidor Misskey se construye combinando varios componentes de software, incluyendo no solo el propio Misskey, sino también software de bases de datos como PostgreSQL y Redis, y software de servidores web como Nginx. A partir de 2025, se han confirmado al menos 1000 servidores Misskey. Los servidores pueden ser operados por personas físicas o jurídicas. :::tip El Proyecto Misskey (comunidad de desarrollo de Misskey) no opera ningún servidor Misskey y no gestiona, supervisa ni participa en el funcionamiento de servidores Misskey individuales. El Proyecto Misskey (comunidad de desarrollo de Misskey) no opera ningún servidor Misskey y no está en condiciones de gestionar, supervisar ni participar en el funcionamiento de servidores Misskey individuales. Los emojis personalizados, los roles individuales, los anuncios y las listas de palabras no permitidas no están integrados en Misskey, sino que son configurados por el administrador de cada servidor. ::: Como se mencionó anteriormente, dado que los servidores Misskey (y relacionados) a menudo se denominan simplemente «Misskey», las referencias a «Misskey» con frecuencia se refieren en realidad a un servidor Misskey (o relacionado) específico.ご注意ください。 Además, para indicar que se ha «creado con Misskey», es posible que veas el logotipo o los iconos de «Misskey» en el servidor de Misskey, o que encuentres marcas como «Powered by Misskey». ### Servidores basados en Misskey Los servidores creados con software derivado de Misskey a veces se denominan colectivamente servidores basados en Misskey. Los servidores basados en Misskey a veces se denominan simplemente servidores Misskey. Por lo tanto, algunos servicios de redes sociales (SNS) denominados «servidores Misskey» pueden ser en realidad «servidores de estilo Misskey», es decir, plataformas SNS que en realidad no utilizan el software Misskey. ## [Proyecto Misskey] Esta es una comunidad de voluntarios que desarrollan «Misskey». ## Ilustración ![Imagen](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## Ejemplos ### Sitio web Misskey es, por hacer una analogía, el equivalente a WordPress, el software utilizado para crear sitios web. Los servidores Misskey corresponden a sitios web individuales reales creados con WordPress. ### Apartamentos Misskey es el «plano del edificio», mientras que los servidores Misskey son «apartamentos individuales construidos según ese plano». El Proyecto Misskey es una «práctica arquitectónica» que desarrolla planos de construcción, en la que los usuarios del servidor Misskey (usuarios) corresponden a los residentes de los apartamentos. Al igual que cada piso tiene un propietario (empresa gestora) diferente, cada servidor Misskey tiene su propio administrador y operador. El Proyecto Misskey solo publica planos; no construye apartamentos utilizando dichos planos, ni se convierte en propietario o empresa gestora de dichos apartamentos, ni participa en la gestión de los apartamentos que se han construido. #### Actualizaciones Los planos del apartamento se revisan y mejoran constantemente, incorporando nuevas características (como la adición de escaleras exteriores). El simple hecho de que se haya actualizado el plano no significa que los edificios de apartamentos ya construidos vayan a cambiar automáticamente. Para que el apartamento cumpla con las últimas especificaciones de diseño, el propietario debe renovar la propiedad basándose en los planos actualizados. La frecuencia con la que se realizan obras de renovación en un apartamento queda a discreción del propietario, por lo que el nivel de modernización varía de un apartamento a otro. #### Soporte Cuestiones como disputas entre vecinos o averías en los equipos que se produzcan dentro del apartamento solo pueden ser resueltas por el propietario. El Proyecto Misskey es únicamente una oficina de diseño y, por lo tanto, no tiene autoridad para intervenir en asuntos relacionados con el apartamento. ================================================ FILE: content/fr/.docs-legacy/admin/cdn.md ================================================ # Configurer un CDN En publiant votre instance Misskey, nous recommandons d’utiliser 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 ; - L’adresse IP de votre serveur est moins exposée, ce qui limite les risques d’attaque 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. L’API Misskey ne peut pas être mise en cache. Vous devez configurer l’option 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. :::: ================================================ FILE: content/fr/.docs-legacy/admin/default-reaction.md ================================================ # 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. ================================================ FILE: content/fr/.docs-legacy/admin/emoji.md ================================================ # Émoticônes personnalisées Les émoticônes personnalisées peuvent être modifiées par l’administration et la modération via les paramètres d’instance 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 l’alimenter de différentes manières. ## Copier depuis d’autres instances Les émoticônes peuvent être facilement copiées depuis d’autres instances. Pour cela, utiliser l’ongles « 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 l’importer. À noter que les droits d’auteur s’appliquent et qu’il est de votre responsabilité de vous assurer que vous pouvez l’utiliser. ## Import individuel Si vous disposez d’une 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 à l’instance et vous pourez la modifier ou supprimer. ## Import en masse Les émoticônes peuvent être importées en masse à partir d’un format spécial au sein d’une archive ZIP. Cette fonction est disponible dans le menu du coin supérieur droit de l’onglet d’émoticônes personnalisées. :::warning L’import en masse peut écraser les émoticônes existant et créer de nombreux problèmes sur l’instance. Assurez vous de n’importer que depuis des sources de confiance, voire que vous aurez-vous même exporté dans l’idé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 d’un import à l’exception 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 l’archive ; - `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` s’il 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 l’interface administration comme « étiquettes ». ## Modifier et supprimer Les propriétés d’une é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 l’assistant 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 d’ouvrir 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. ================================================ FILE: content/fr/.docs-legacy/admin/nginx.md ================================================ # Configuration Nginx 1. Créez `/etc/nginx/conf.d/misskey.conf` ou `/etc/nginx/sites-available/misskey.conf` et y insérer l’exemple 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 4 lignes à 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; } } ``` ================================================ FILE: content/fr/.docs-legacy/admin/push-docker-hub.md ================================================ # Comment utiliser GitHub Actions pour pousser vers un Docker Hub :::warning Cette page n’est pas encore traduite. Le contenu est disponible en [japonais exclusivement](/docs/admin/push-docker-hub.md). En attendant, essayez d’utiliser un traducteur automatique. ::: ================================================ FILE: content/fr/.docs-legacy/admin/troubleshooting.md ================================================ # Guide de dépannage :::warning Cette page n’est pas encore traduite. Vous trouverez le contenu dans la version [japonaise exclusivement](/docs/admin/troubleshooting.html). En attendant, veuillez utiliser un traducteur automatique. ::: ================================================ FILE: content/fr/.docs-legacy/api/app.md ================================================ --- 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', }); ``` ================================================ FILE: content/fr/.docs-legacy/api/common.json5 ================================================ { 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.', }, }, } ================================================ FILE: content/fr/.docs-legacy/api/index.md ================================================ --- description: 'Misskey offre une API pour développer son propre client Misskey, des services, des bots, etc… (« Applications ».' --- # API Misskey Misskey dispose d’une 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 l’API de manière à simplifier des étapes décrites dans ce document. Voir [ici](TODO) pour plus d’informations à propos des librairies. ::: Pour commencer à utiliser l’API vous aurez besoin une **clé d’accès** associée à un compte. Ce document vous accompagne dans l’obtention de cette clé et montre comment l’utiliser pour un usage basique. ## Obtenir une clé d’accès L’API requiert une clé d’accès pour ses requêtes. Une clé d’accès est un ensemble de données associée à une personne, l’identifiant comme utilisant l’API 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é d’accès](#Méthode-manuelle), ou une [clé pour une personne utilisant votre application](#Demander-une-clé-d’accès).. ### Méthode manuelle Vous pouvez créer votre propre clé d’accès via l’interface Misskey Web dans la section API des paramètres. :::warning Ne communiquez pas cette clé. ::: ### Demander une clé d’accès Pour obtenir une clé d’accè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 d’identification de l’application doit s’afficher dans le navigateur. Cela peut être fait via une URL de format : ```:no-line-numbers https://{host}/miauth/{session} ``` où - `{host}` est l’hôte de l’instance, généralement entré manuellement ; - `{session}` est l’ID session. Vous pouvez également ajouter des options telles que des paramètres dans l’URL : | nom | description | | ---- | ---- | | `name` | nom de l’application | | `icon` | URL de l’icône de l’application | | `callback` | L’URL de redirection après identificaton, avec l’ID session en tant que `session`. | | `permission` | Les permissions requises par l’application.
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 l’identification, une requête POST à une URL du format suivant retournera en un JSON contenant la clé d’accès : ```:no-line-numbers https://{host}/api/miauth/{session}/check ``` où - `{host}` est l’hôte de l’instance ; - `{session}` est l’ID session. Les propriétés incluses dans la réponse sont les suivantes : | nom | description | | ---- | ---- | | `token` | clé d’accès | | `user` | information sur la personne | ## Utilisation de l’API Une fois la clé en main, vous pouvez utiliser l’API pour faire des requêtes. :::tip - Toutes les API HTTP sont POST, et les requête comme les réponses sont au format JSON (à l’exception de drive/files/create ; - Indiquez `Content-Type: application/json` dans l’entête de requête ; - La clé d’accès est dans le corps de requête JSON avec comme valeur de name `i`. ::: Exemple de corps avec une clé d’accès pour meta : ```json { "i": "HogEFugA1341", "detail": false } ``` La clé d’accès est incluse dans le corps de requête JSON comme paramètre `i`. Pour plus d’informations à propos de l’API voir [référence API](./endpoints.html). :::warning Misskey n’utilise pas REST. ::: En plus de l’API HTTP, Misskey fourni un flux API. Plus d’informations à ce sujet [ici](.streaming/). :::tip Votre instance Misskey dispose de sa propre documentation d’API à `/api-doc`. ::: ================================================ FILE: content/fr/.docs-legacy/api/streaming/channel/global-timeline.md ================================================ --- description: "Canal des notes du fil public global." --- # `globalTimeline` Canal des notes venant du fil public global. ## Paramètres Aucun ## Évènements ### `note` Lorsqu’une nouvelle note est ajoutée dans le fil public global. ## Opérations Aucune ================================================ FILE: content/fr/.docs-legacy/api/streaming/channel/home-timeline.md ================================================ --- description: "Canal de notes du fil d’accueil." --- # `homeTimeline` Canal de notes du fil d’accueil. ## Paramètres Aucun ## Évènements ### `note` Lorsqu’une nouvelle note est ajoutée au fil d’accueil. ## Opérations Aucune ================================================ FILE: content/fr/.docs-legacy/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Canal de notes venant du fil social." --- # `hybridTimeline` Canal de notes venant du fil social. ## Paramètres Aucun ## Évènements ### `note` Lorsqu’une nouvelle note est ajoutée au fil social. ## Opérations Aucune ================================================ FILE: content/fr/.docs-legacy/api/streaming/channel/index.md ================================================ # Liste des canaux ================================================ FILE: content/fr/.docs-legacy/api/streaming/channel/local-timeline.md ================================================ --- description: "Canal de notes du fil public local." --- # `localTimeline` Canal de notes du fil public local. ## Paramètres Aucun ## Évènements ### `note` Lorsqu’une nouvelle note est ajoutée dans le fil public local. ## Opérations Aucune ================================================ FILE: content/fr/.docs-legacy/api/streaming/channel/main.md ================================================ --- description: "Ce canal fournit des informations basiques." --- # `main` Ce canal fournit des informations basiques. ## Paramètres Aucun ## Évènements ### `notification` Lorsque vous recevez une notification. ### `mention` Lorqu’un message est envoyé. ### `reply` Lors de la réception d’une réponse. ### `renote` Lorqu’une de vos notes est renotée. ### `follow` Lorqsue vous vous abonnez à une autre personne. ### `followed` Lorsqu’une autre personne vous suit. ### `unfollow` Lorsque vous arrêtez de suivre une autre personne. ### `messagingMessage` Lorsqu’un message instantané est reçu. ### `readAllNotifications` Lorsque toutes les notifications ont été lues. ### `unreadNotification` Lorsqu’il y a de nouvelles notifications. ### `unreadMention` Lorsqu’il y a une nouvelle mention. ### `readAllUnreadMentions` Lorsque toutes les mentions ont été vues. ### `unreadSpecifiedNote` Lorqu’il y a de nouvelles notes directes. ### `readAllUnreadSpecifiedNotes` Lorsque toutes les notes directes ont été lues. ### `unreadMessagingMessage` Lorsqu’il y a un nouveau message instantané. ### `readAllMessagingMessages` Lorsque ltous les messages instantanés ont été lus. ## Opérations Aucune ================================================ FILE: content/fr/.docs-legacy/api/streaming/index.md ================================================ --- description: 'L’API de flux fournit des informations en temps réel (ex : nouvelles notes, réactions, abonnements, etc…) ainsi que d’autres opérations.' --- # API de flux :::tip Assurez-vous d’avoir lu la [documention API Misskey](../index.md) au préalable. ::: L’API de flux fournit des informations en temps réel (ex : nouvelles notes, réactions, abonnements, etc…) ains que d’autres opérations. ## Se connecter au flux Pour utiliser l’API vous devez vous connecter au serveur Misskey via **websocket**. L’URL de celui-ci ressemble à : ```:no-line-numbers wss://{host}/streaming?i={token} ``` où - `{host}` est le nom de l’hôte de l’instance ; - `{token}` est la clé d’accès. :::tip Vous pouvez vous connecter sans clé d’accè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 n’est 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 L’API 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: { ... } } } ``` où - `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 n’en demande pas, alors cette propriété peut être laissée vide. :::tip L’identifiant n’est 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 d’un message indiquant une nouvelle publication sur un canal, vous saurez en temps réel qu’une 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' } } } ``` où - `id` est l’identifiant 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 d’envoyer des messages et d’effectuer d’autres 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' } } } ``` où - `id` est l’identifiant utilisé lors de la connexion au canal. Cela vous permet d’indiquer à 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 d’un canal Pour se déconnecter d’un canal, envoyez les données JSON suivantes : ```js { type: 'disconnect', body: { id: 'foobar' } } ``` où - `id` est l’identifiant utilisé lors de la connexion au canal. Cela permet d’indiquer 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 qu’une personne réagit à une des publications, le client ne peut pas savoir de quelle publication il s’agit et il n’est pas possible d’afficher 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 l’usage 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' } } ``` où - `id` est l’identifiant 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' } } } ``` où - `body.id` est l’identifiant 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 n’est plus affichée à l’écran. envoyez les données JSON suivantes : ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` où - `id` est l’identifiant de la note. Une fois ce message envoyé, les évènements liés à cette note ne vous seront plus transmises. ================================================ FILE: content/fr/.docs-legacy/api/streaming/note-capture-events.md ================================================ # Évènements de capture de note ## `reacted` Lorsqu’une personne réagit à une note. ## `pollVoted` Lorsque qu’une personne participe à un sondage. ## `deleted` Lorsqu’une note est supprimée. ================================================ FILE: content/fr/.docs-legacy/donate.md ================================================ # Donations à ce projet Misskey n’est pas une entreprise, et reste gratuit à utiliser grâce à vos dons. (Selon l’instance, des revenus peuvent être générés via des publicités, mais ceux-ci vont directement à l’administration de l’instance 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 s’ajoute que l’administration des serveurs n’est généralement pas rémunéré. La maintenance du serveur ayant un certain coût, nous vous invitons à également aider l’administration de votre serveur. Bien que n’ayant pas de lien direct avec le développement de Misskey, c’est l’existence de ces serveurs qui matérialise ce projet rendant leur activité aussi importante que Misskey même. ================================================ FILE: content/fr/.docs-legacy/faq.md ================================================ # Foire Aux Questions Ce document liste les réponses aux questions fréquentes au sujet de l’usage de Misskey. Les réponses concernant le projet Misskey dans son ensemble sont consultables [ici](../misskey#frequently-asked-questions). ## « Existe-t’il une application Android/iOS ? » Bien qu’il n’existe pas d’application Misskey officielle pour d’autres systèmes d’exploitations, 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 d’utiliser le client Web officiel. Celui-ci prend en charge PWA ce qui rend possible son utilisation en tant qu’application. Pour plus de détails, voir [ici](todo). ## « Est-il possible de se connecter via un client Mastodon ? » Misskey n’est pas compatible avec l’API Mastodon, sauf exceptions, il n’est pas possible d’utiliser un client Mastodon pour se connecter à Misskey. ## « Comment suivre des personnes d’autres 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 à l’aide de MFM. Un pense-bête MFM est constultable dans votre instance via l’URL `https://NomDeVotreInstance/mfm-cheat-sheet`. ## « Je veux ajouter des émoticônes personnalisés » Seule l’administration du serveur peut ajouter, modifier, et supprimer des émoticônes personnalisées. C’est auprès d’elle qu’il faut se renseigner. ## « Je veux développer un Bot » Le développement de Bot est possible via l’API 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. ================================================ FILE: content/fr/.docs-legacy/features/ads.md ================================================ # Publicités Misskey peut afficher des publicités dans les fils et d’autres emplacements de l’interface si activé par l’administration. Vous pouvez réduire la fréquence d’apparition d’une publicité en cliquant dans son coin supérieur droit. :::tip Si le nombre total de publicités d’une instance est limité, une publicité peut apparaître souvent même si vous choisissez de réduire sa fréquence d’apparition. ::: ## 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 l’image, l’URL de destination, la forme, et la fréquence d’apparition de la publicité. ================================================ FILE: content/fr/.docs-legacy/features/antenna.md ================================================ # 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 d’autres 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. ================================================ FILE: content/fr/.docs-legacy/features/charts.md ================================================ # Diagrammes Misskey peut générer et afficher des diagrammes à partir des nombreuses données fédérées d’une instance. Les diagrammes vous permettent d’avoir une interprétation visuelle de l’utilisation, l’état de fédération, et l’activité de chaque membre. Les diagrammes d’une instance sont consultables via la page d’*informations d’une instance* (acessible en cliquant sur le logo de l’instance 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 d’instances vers lesquelles sont transmises les activitées de cette instance. ### Abonnement Le nombre d’instances depuis lesquelles sont reçues les activités. ### Réception Le nombre d’instances qui ont envoyées des activités sur cette instance. ### Envoi Le nombre d’instances qui ont ont reçu une activité de cette instance. ### En pause Le nombre d’instance où une erreur empêche la reception d’activités. ## Diagramme de membres en activité Diagramme de l’activité 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 d’une semaine. ### < Mois Le nombre de comptes de moins d’un mois. ### < An Le nombre de comptes de moins d’un an. ### > Semaine Le nombre de comptes de plus d’une semaine. ### > Mois Le nombre de comptes de plus d’un mois. ### > An Le nombre de comptes de plus d’un an. ================================================ FILE: content/fr/.docs-legacy/features/clip.md ================================================ # Clip Clip est une fonction permettant de créer une collection de notes. Les notes peuvent être les votres ou celles des autres. Vous pouvez créer de multiples clips et leur donner un nom et une description à chacun. Vous pouvez également choisir de rendre vos clips publics et visibles aux autres. Pour créer un clip, cliquer sur « Ajouter » depuis la page de gestion de clips. Pour ajouter des notes à un clip, choisissez l’option « Clip » dans le menu d’une note. Sélectionnez ensuite le clip de destination. ================================================ FILE: content/fr/.docs-legacy/features/custom-emoji.md ================================================ # Émoticônes personnalisées Les émoticônes personnalisées sont une fonction permettant d’utiliser n’importe quelle image de votre instance en tant qu’émoticône. Vous pouvez les utiliser dans les notes, réactions, chat, votre profil, votre nom, etc… Pour l’utiliser, cliquez sur le bouton de sélection d’une émoticône (si disponible) ou taper `:` pour afficher des suggestions. Si une séquence de type `:foo` est trouvée dans le texte, la partie `foo` sera interprétée comme une émoticône personnalisée et remplacée par celle correspondante. Pour voir les émoticônes disponibles sur votre instance, consultez `/emojis` sur le site de votre instance Misskey. ================================================ FILE: content/fr/.docs-legacy/features/deck.md ================================================ # Interface Deck L’interface Deck est une des interfaces disponibles sur Misskey. Elle est caractérisée par la possiblité de contruire une interface personnalisable et pertinente à l’aide de multiples affichages, appelés « colonnes », côte à côte. L’option est seulement disponible si votre écran est de largeur suffisante, comme sur des ordinateurs portables. ## Ajouter des colonnes Ajoutez une colonne par un clic-droit sur l’arrière plan et sélectionner « Ajouter une colonne ». Vous pouvez également cliquersur l’icône « + » sur le bord droit de l’écran. ## Déplacer des colonner Les colonnes peuvent être déplacées par glisser-déposer ou via l’otpion « Déplacer » du menu de colonne (clic droit sur l’entête de colonne). ## Division horizontale des colonnes Les colonnes peuvent être arrangées verticalement et horizontalement. Ouvrez le menu de colonne et sélectionnez « Empiler avec la colonne de gauche » pour déplacer la colonne actuelle sous la colonne de gauche. Pour dés-empiler une colonne, sélectionner « Déplacer la colonne sur la droite » dans le menu d’une colonne. ## Disposition de colonnes Sélectionnez « Paramètres de colonne » dans le menu d’une colonne pour modifier sa disposition. Vous pouvez ainsi modifier son nom et sa largeur. Si la colonne est réglée sur adaptative elle s’étendra au delà de sa largeur pour remplir l’espace horizontal de l’écran. ## Options Deck Les options liées à Deck sont disponibles dans le menu accessible via l’icône de rouage dans le coin inférieur droit de l’écran. ## Profils Deck Vous pouvez créer/charger un profil Deck en cliquant sur le menu dans le coin supérieur droit de l’écran. Choisissez « Nouveau profil » pour en créer un vierge à personnaliser. Sélectionnez un autre profile pour en changer. Le bouton de corbeille supprime le profil actuel. ================================================ FILE: content/fr/.docs-legacy/features/drive.md ================================================ # Drive Drive est une fonction permettant de gérer vos fichiers sur Misskey. :::tip Techniquement, Drive est une interface centrale pour gérer tout le système Misskey qui est également disponible aux membres. ::: Vous pouvez téléverser n’importe quel fichier sur la page Drive de Misskey Web, et toutes les images que vous avez utilisées en tant qu’avatar ou attachées à vos notes y sont également rangées. Les fichiers téléversés sur Drive peuvent être téléchargés à tout moment, ou réutilisés à une note via la fonction « Attacher un fichier depuis le Drive ». Vous pouvez également créer des dossiers sur votre Drive pour rassembler des fichiers ensemble. :::warning Pour le moment, la suppression d’un fichier sur le drive entraîne la suppression de **tout contenu (note, pages, etc…)** rattaché. ::: ## Avertissement (NSFW) L’avertissement, ou NotSafeForWork est une étiquette que vous pouvez assigner à des fichiers de votre Drive. Ces fichiers seront cachés jusqu’à interaction. Cette étiquette peut être utilisée pour cacher du contenu sensible. Cette étiquette peut être activée ou désactivée manuellement, ou peut être assignée sur choix de la modération. ================================================ FILE: content/fr/.docs-legacy/features/favorite.md ================================================ # Favoris Cette fonction permet de marquer une [note](./note) comme favori. Vous pouvez consulter vos favories sur la page [Favoris](./my/favorites). Les autres personnes ne reçoivent pas de notification quand une note est placée en favori, seulement vous pouvez les voir. Pour ajouter un favori, cliquer sur « Ajouter aux favoris » dans le menu de la note. À l’inverse, sélectionner « Retirer des favoris » pour l’enlever. ================================================ FILE: content/fr/.docs-legacy/features/follow.md ================================================ # Abonnement En s’abonnant à une personne, vous verrez ses publications sur votre fil d’accueil, à l’exception des réponses. Pour vous abonner à une personne, cliquer sur le bouton « Suivre » de sa page de profil. Cliquer une nouvelle fois pour mettre fin à l’abonnement. ================================================ FILE: content/fr/.docs-legacy/features/index.md ================================================ # Fonctions ================================================ FILE: content/fr/.docs-legacy/features/mfm.md ================================================ --- description: 'MFM est un langage de balise spécifique à Misskey.' --- # MFM MFM, abréviation de Misskey Flavoured Markdown, est un langage de balise spécifique à Misskey. :::tip Une partie de la syntaxe est compatible avec Markdown. ::: ## Exemples de champs prenant en charge le MFM - corps de note ; - avertissement de contenu ; - pseudonyme ; - profil. ## Syntaxe ### Mentions :::tip Pour plus d’informations sur les mentions, voir [ici](./mention.md). ::: ```:no-line-numbers @alice ``` ```:no-line-numbers @alice@example.com ``` ### Mot-croisillon :::tip Pour plus d’informations sur les mots-croisillons, voir [ici](./hashtag). ::: ```:no-line-numbers #misskey ``` ### Émoticône personnalisé :::tip Pour plus d’informations sur les émoticônes personnalisés, voir [ici](./custom-emoji). ::: ```:no-line-numbers :misskey: ``` ### Liens ```:no-line-numbers [example link](https://example.com) ``` ### Gras ```:no-line-numbers **Bold** ``` --- :::tip Plus de détails sur la syntaxe sont disponibles sur le **pense-bête MFM** de l’interface web Misskey sur la page `/mfm-cheat-sheet` de votre instance. ::: ## Informations pour le développement L’analyse syntaxique de MFM est disponible comme librairie, facilitant son implémentation dans vos applications. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - Analyseur syntaxique en JavaScript. ================================================ FILE: content/fr/.docs-legacy/features/mute-and-block.md ================================================ # Ignorer et Bloquer Si une personne ne vous plaît pas, il vous est possible de l’ignorer de sorte à ce que son activité n’apparaîsse pas dans vos fils. Autrement, il est possible de bloquer une personne pour l’empêcher de voir votre activité et d’interagir de quelque façon que ce soit. Les personnes ne sont pas notifiée que vous les ignorez mais sauront si vous les avez bloqué. À vous de décider quelle option vous préférez. :::tip Ignorer et bloquer peuvent être utilisés ensemble. ::: :::warning Pensez à signaler à la modération toute personne qui violerait les conditions générales d’utilisation. ::: Dans Misskey Web, vous pouvez voir une liste des personnes que vous avez bloqué ou ignoré dans la section éponyme des paramètres. ## Ignorer En ignorant une personne, n’apparaîtront plus sur Misskey : - ses publications (et leurs réponses) dans votre fil et résultats de recherche ; - les notifications de cette personne ; - l’historique de messages instantanés avec cette personne ; - etc… Pour l’ignorer, ouvrez le menu sur son profil et cliquez sur le bouton « Ignorer ». :::tip Ces personnes ne sauront pas que vous les ignorez. ::: ## Bloquer Si vous bloquez une personne, elle ne pourra plus voir votre activité et ne pourra plus : - vous suivre ; - vous ajouter à une liste ; - vous répondre ou vous renoter ; - réagir ou voter sur une de vos publications ; - vous envoyer de message ; - etc… De plus ; - si la personne vous suit et que vous la bloquez, elle ne vous suivra plus ; - si la personne vous avait dans une liste, vous en serez automatiquement retiré. Pour bloquer une personne, ouvrez le menu sur son profil et cliquez sur le bouton « Bloquer ». :::warning Vous ne recevrez pas de notification si une personne vous bloque, vous le saurez indirectement en étant incapable d’interagir avec son contenu. ::: :::warning Une personne bloquée pourra tout de même voir votre contenu en se déconnectant ou changeant de compte. Bloquer est une fonction simple mais pratique. Vous pouvez modifier vos paramètres de manière à rendre la tâche plus difficile aux personnes bloquées en demandant systématiquement votre autorisation pour vous suivre et en limitant votre visibilité auxpersonnes qui vous suivent. ::: ================================================ FILE: content/fr/.docs-legacy/features/note.md ================================================ # Notes Les notes sont la brique élémentaire de Misskey et désignent tout contenu pouvant être du texte, des images, des sondages, et plus encore, publié sur la plateforme. « Noter » est également utilisé comme un verbe pour la création d’une note. En composant une note, celle-ci sera ajouté à votre [fil](./timeline).et envoyée aux personnes qui vous suivent ainsi que celles de votre serveur. Sur Misskey, il est aussi possible d’ajouter des [réactions](./reaction) aux notes. Vous pouvez également répondre et citer des notes. Ajouter une note à vos [favoris](./favorite) vous permet de la retrouver facilement par la suite. ## Composition de note Pour composer une note, cliquez sur l’un des boutons avec une icône de crayon de votre écran pour ovurir l’onglet (en tête de votre fil ou en pied de votre menu de navigation). Insérez le contenu souhaité et cliquez sur « Noter » pour la publier. Les notes peuvent contenir du texte, des fichiers multimédias, et des [sondages](./poll). De plus, vous pouvez utiliser le [MFM](./mfm) au sein de votre texte pour inclure des [mentions](./mention) et des [mots-croisillons](./hashtag). D’autres options comme l’avertissement de contenu (CW) ou la visibilité de note sont expliquées plus bas. :::tip Si vous êtes sur un ordinateur et qu’une image est dans votre presse-papier, vous pouvez l’insérer dans une note avec le raccourci usuel au sein du champ de texte. ::: :::tip Vous pouvez également utiliser Ctrl + Entrée dans le champ de texte pour publier la note. ::: ## ReNoter Désigne l’action de citer ou partager une note existante. La note résultante est appelée une Renote/RN du verbe renoter. Généralement, cette fonction est utilisée pour partager une note qui vous plait à votre propre cercle, ou pour republier une de vos anciennes notes. Bien que possible, renoter plusieurs fois la même note peut être mal vu. :::warning Si la visibilité de votre note est limitée à Directe ou aux personnes qui vous suivent, il ne sera pas possible de la renoter. ::: Pour retirer une renote, cliquez sur « … » à côté de sa date et sélectionner « Retirer la renote ». ## CW Une abréviation de « Content Warning » (avertissement de contenu), cachant le contenu d’une note sauf demande explicite. Principalement utilisé pour cacher le contenu de longues notes ou de ne pas divulgâcher publiquement. Pour l’activer, cliquez sur le bouton « Cacher le contenu » (icône en forme d’œil) dans l’onglet de composition de note. Un nouveau champ apparaîtra pour indiquer le contenu caché. ## Visiblilité Il est possible de régler la visibilité de chaque note. En cliquant sur l’icône à gauche du bouton « Noter », vous pourrez choisir une des options ci-dessous. ### Public Votre note sera visible pour tout le monde et sera affichée dans tous les fils. :::warning Cette option n’est pas disponible si votre compte est limité. ::: ### Accueil Votre note sera visible pour les autres, mais ne sera pas affichée sur les fils locaux, sociaux et globaux pour les personnes qui ne vous suivent pas. ### Personnes abonnées uniquement Votre note sera uniquement visible aux personnes qui vous suivent. La note sera affichée sur leurs fils. ### Directe Votre note sera visible par des personnes spécifiques. La note s’affichera sur leurs fils. ### L’option « Local seulement » Cette option permet à votre note de pas apparaître sur d’autres instances. ### Comparaison de visibilité
PublicAccueilPersonnes abonnéesDirecte
LTL/STL/GTL des personnes abonnées
LTL/STL/GTL des autres
## Épingler au profil En épinglant une note à votre profil, celle-ci sera constamment affichée en en-tête. Pour l’épingler, sélectionnez l’option dans le menu d’une note. :::tip Il est possible d’épingler plusieurs notes à son profil. ::: ## Suivre Vous pouvez recevoir les notifications de réponses, réactions, etc… d’une note qui n’est pas la votre en la suivant. Pour cela, sélectionnez l’option correspondante dans le menu de la note. ================================================ FILE: content/fr/.docs-legacy/features/online-status.md ================================================ # État de connexion L’**état de connexion** d’une personne est un indicateur de leur utilisation de Misskey. Votre état est affiché comme indicateur dans le coin de votre icône de profil.
Couleur État Description
🟢 vert en ligne Misskey est actuellement utilisé.
🟡 jaune actif Le membre est absent mais utilise Misskey.
🔴 rouge hors-ligne Misskey n’est pas utilisé.
⚫ gris inconnu L’état est privé ou non accessible depuis d’autres instances, etc…
Votre état de connexion change automatiquement et ne peut pas être réglé manuellement. Vous pouvez le rendre privé. :::warning Certaines fonctions comme les suggestions de membres, peuvent se baser sur votre état de connexion. Le rendre privé peut vous rendre difficile à trouver. ::: ================================================ FILE: content/fr/.docs-legacy/features/pages.md ================================================ # Pages La fonction Pages permet de créer des pages web personnalisées. Vous pouvez y inclure du contenu multimédia, du formatage, et même lancer des scripts. Comme les autres fonctions de Misskey, votre contenu peut utiliser le format [MFM](./mfm.md). Les pages sont composées de différents blocs, pouvant être déplacés par glisser-déposer. ## Blocs de contenu Les blocs de contenu affichent différent types de contenu. ### Section Un groupe de blocs pouvant contenir d’autres blocs. Chaque bloc de contenu possède un titre qui sera affiché comme en-tête. ### Texte Affiche un texte. Celui-ci peut être formaté et contenir des variables (Voir la section correspondante). ### Images Affiche une image depuis votre stockage. ### Zone de texte Affiche du texte avec une étiquette `text area`. Ce bloc ne prend pas en charge le MFM mais autorise l’interpolation de variable. ### Note interne TODO ### Canevas TODO ## Bloc d’entrée Les blocs d’entrée permettent de créer des pages interactives avec des formulaires. Ces blocs peuvent être utilisés pour interagir avec les variables et les script d’une page. ## Blocs spéciaux Les blocs spéciaux fournissent des fonctions uniques à votre page. Par exemple le fait un formulaire de publication de note et le contrôle de page. ## Variables Les variables sont utilisées pour des pages dynamiques. Vous pouvez indiquer la valeur d’une variable via { nom de variable } dans le texte. Par exemple dans Hello { thing } world!, si la valeur de la variable (thing) est ai, alors le texte deviendrait Hello ai world!. Les variables sont évaluées de haut en bas, et il n’est pas possible d’appeler une variable avant qu’elle ne soit définie.Par exemple, soit A, B, C définies dans cet ordre, A et B peuvent être appelées dans C mais B et C ne peuvent pas être appelées dans A. Pour recevoir une entrée, placez un bloc « Entrée » sur la page et utilisez le nom de variable pour indiquer la variable où enregistrer la valeur entrée (la variable sera automatiquement créée). La variable peut ensuite être utilisée pour réaliser des actions en fonction de l’entrée. Les fonctions peuvent être utilisées pour répéter des groupes de calculs. Pour cela, créez une variable de type « Fonction ». Une fonction peut avoir différents arguments, dont les valeurs sont disponibles comme variables au sein de la fonction. Il existe différentes fonctions d’ordre primaire, appelant d’autres fonctions comme arguments. Les fonctions peuvent être prédéfinies ou placées à même l’emplacement d’argument. ================================================ FILE: content/fr/.docs-legacy/features/plugin.md ================================================ # Extensions Misskey Web offre une fonction d’extension qui permet d’étendre les fonctionnalités de base. Pour plus d’informations sur la création d’extensions, vour [ici]((./advanced/create-plugin.md). ================================================ FILE: content/fr/.docs-legacy/features/reaction.md ================================================ # Réaction Cette fonction permet de partager votre émotion par rapport à une note en y ajoutant une émoticône. Sur Misskey Web, cliquez sur l’icône « + » de la note pour ouvrir le sélectionneur et choisir l’émoticône voulue. Vous pouvez également réagir à l’aide d’[émoticônes personnalisées](./custom-emoji.md). ## Personnaliser le sélectionneur de réaction Misskey Web vous permet de choisir les émoticônes qui apparaissent dans le sélectionneur et changer leur ordre. Cela est modifiable via la section « Réactions » de vos paramètres. ## Réactions à des publications distantes Les réactions étant exclusives à Misskey, l’action sera généralement traduite comme étant un « J’aime » (ActivityPub) à défaut de prise en charge. ## Réactions depuis d’autres instances Misskey ne possédant pas de « J’aime », ce type d’action depuis d’autres instances seront affichées comme un '👍'. :::tip L’administration de votre serveur peut modifier cela pour un '⭐'. Pour cela, voir [ici](../admin/default-reaction.md). ::: ## Consulter la liste de réactions Misskey Web vous permet de voir la liste de vos réactions dans l’onglet éponyme sur votre page de profil. Vous pouvez également choisir de rendre cette liste publique depuis les paramètres. ================================================ FILE: content/fr/.docs-legacy/features/share-form.md ================================================ # Formulaire de partage Depuis la page `/share` sur Misskey Web, vous accédez à un formulaire de partage. Celui-ci permet au contenu de vos pages Misskey d’être partagé vers des pages web externes. Différentes options sont disponibles dans l’URL, dont le contenu partagé, en tant que paramètres de requête. ## Paramètres de requête :::tip Tous les paramètres sont **facultatifs**. ::: | nom | description | | ---- | ---- | | `title` | titre, sera inséré avant le corps principal entre crochets | | `text` | corps principal | | `url` | URL, insérée après le corps principal | ### Information de réponse Vous pouvez faire d’une note une réponse à une autre en indiquant : | nom | description | | ---- | ---- | | `replyId` | ID de la note à laquelle répondre | | `replyUri` | URL de la note à laquelle répondre | ### Information de renote Vous pouvez faire d’une note une renote en iniquant : | nom | description | | ---- | ---- | | `renoteId` | ID de la note à renoter | | `renoteUri` | URL de la note à renoter | ### Portée de publication Les options suivantes vous permettent de sélectionner la portée : | nom | description | | ---- | ---- | | `visibility` | `public`, `home`, `followers`, ou `specified` | | `localOnly` | 0(false) ou 1(true) | | `visibleUserIds` | ID du profil cible | | `visibleAccts` | [acct](../glossary.md#acct) des profils cibles (séparés par des virgules) | :::warning Si `visibility` est réglé sur `specified`, `visibleUserIds` ou `visibleAccts` sont nécessaires. ::: ### Pièces-jointes Vous pouvez préciser des pièces-jointes avec les options suivantes : | nom | description | | ---- | ---- | | `fileIds` | ID des fichiers à joindre (séparés par des virgules) | ================================================ FILE: content/fr/.docs-legacy/features/silence.md ================================================ # Limité Un des états pouvant être appliqué à un compte. Lorsqu’un compte est limité, vous ne pouvez pas publier de notes publiques. Accueil, personnes abonnées, et directe, restent disponibles et même si votre compte est limité vos publications restent visibles sur votre profil et par les personnes abonnées. Il ne sera seulement pas possible de vour vos notes sur les fils globaux et locaux. Un compte peut être limité par la modération d’une instance. ================================================ FILE: content/fr/.docs-legacy/features/theme.md ================================================ # Thème Vous pouvez changer l’apparence et le comportement du client Misskey en appliquant un thème. ## Options de thème Paramètres > Themes ## Créer un thème Le code du thème utilise des fichiers JSONs. Chaque objet du thème sera de format : ``` js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` * `id` ... ID unique du thème, UUID recommandé ; * `name` ... Nom du thème ; * `author` ... Créateur·ice du thème ; * `desc` ... Description du thème (Objet) ; * `base` ... Thème clair ou sombre ; * Utilisez `light` pour un thème clair ou `dark` pour un thème sombre ; * Le thème hérite du thème de base décrit ici. * `props` ... Définition du style de thème. Expliqué ci-dessous. ### Définition du style de thème Défini le style de thème au sein des `props`. Les clés sont les noms des variables CSS, et les valeurs indiquent les contenus. L’objet `props` hérite du thème de base. Le thème de base est [_light.json5] si la `base` du thème est `light` et [_dark.json5] pour `dark`. À défaut de clé `props` nommée `panel` dans ce thème, celui du thème de base sera utilisé. [_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 #### Syntaxe des valeurs * Couleurs héxadécimales ; * exemple : `#00ff00` * Couleurs au format `rgb(r, g, b)` ; * exemple : `rgb(0, 255, 0)` * Couleurs contenant une valeur de transparence/alpha au format `rgb(r, g, b, a)` ; * exemple : `rgba(0, 255, 0, 0.5)` * Références à la valeur d’autres clés ; * `@{key name}` est une référence à la valeur d’une autre clé. Remplacez `{key name}` par le nom d’une de vos clé en référence. * exemple : `@panel` * Référence constante ; * `${constant name}` est une référence vers une constante. Remplacez `{constant name` par le nom d’une constante choisie en référence. * exemple : `$main` * Fonctions ; * `:{関数名}<{引数}<{色}` #### Constantes Les constantes permettent de définir des valeurs utiles pour d’autres variables CSS. #### Fonctions WIP ================================================ FILE: content/fr/.docs-legacy/features/thread-mute.md ================================================ # Ignore un fil :::tip Cette fonction est disponible depuis la version 12.95.0. ::: Cette fonction permet d’ignorer le fil lié à une note spécifique. Cela inclus les réponses à la note racine. En ignorant un fil, vous recevrez plus de notifications de nouvelles réponses, quand bien même celle-ci vous mentionnent. Pour ignorer un fil sur Misskey Web, ouvrez le menu d’une note du fil et sélectionner « Ignorer le fil ». :::warning Le fil entier sera ignoré, peu importe de la note que vous sélectionnez. ::: ================================================ FILE: content/fr/.docs-legacy/features/timeline.md ================================================ # Fil Le fil affiche les [notes](.note) dans l’ordre anti-chronologique. Les différents types de fil sont décit ci-dessous, chacun affichant certaines notes. À noter que certains fils peuvent être désactivés sur des instances. ## Accueil Les notes de personnes que vous suivez. Abrégé en HTL. ## Local Les notes de personnes de votre instance et que vous ne suivez pas. Abrégé en LTL. All local users' posts that do not have the visibility of "Accueil" will be shown. Abbreviated as LTL. ## Social Les notes de personnes que vous suivez ou qui font partie de votre instance. Abrégé STL, comprendre que STL = HTL + LTL. ## Global Toutes les notes accessibles depuis votre serveur. Abrégé GTL. ## Fils personnalisés Une des fonctions Misskey est de créer ses propres fils. Voir [listes](./list.md) et [antennes](./antenna.md) pour plus de détails. ## Comparaison | Source | | | Fil | | | |-----------------------|------------|-----------|----------|------------|------------| | Membre | Visibilité | Accueil | Local | Social | Global | | Local (Abonnés) | Public | ✔ | ✔ | ✔ | ✔ | | | Accueil | ✔ | | ✔ | | | | Abonnés | ✔ | | ✔ | | | Distant (Abonnés) | Public | ✔ | | ✔ | ✔ | | | Accueil | ✔ | | ✔ | | | | Abonnés | ✔ | | ✔ | | | Local (Non-Abonnés) | Public | | ✔ | ✔ | ✔ | | | Accueil | | | | | | | Abonnés | | | | | | Distant (Non-Abonnés) | Public | | | | ✔ | | | Accueil | | | | | | | Abonnés | | | | | ================================================ FILE: content/fr/.docs-legacy/features/webhook.md ================================================ # Webhook :::tip Cette fonction est disponible à partir de la version 12.109.0. ::: :::warning C’est une fonction expérimentale qui peut être instable ou être modifiée à l’avenir. ::: Misskey fournit un webhook qui vous permet de recevoir des évènements Misskey en temps réel. Vous pouvez les gérer via la section éponyme de vos paramètres. Une fois défini, une requête HTTP est envoyée à l’URL indiquée chaque fois qu’un évènement défini survient. La requête sera en POST et contiendra du JSON. De pluis, l’entête de requête contient une clé secrète définie lors de la création avec le nom `X-Misskey-Hook-Secret`. Celui-ci vous permet de vérifier l’authenticité de la requête. Les propriétés suivantes seront transmises : Si le serveur de destination retourne une erreur 5xx ou ne répond pas, la requête est renvoyée après un certain délai. Les webhooks peuvent être désactivés individuellement depuis le tableau d’administration pour arrêter les requêtes. ## Évènement Ci-dessous une description de chaque type d’évènement. ### follow Lorsque vous suivez une personne. ### followed Lorsqu’une personne vous suit. ### unfollow Lorsque vous arrêtez de suivre une personne. ### note Lorsque vous publiez une note. ### reply Lorsqu’une personne répond à votre note. ### renote Lorsque votre note est renotée. ### mention Lorsqu’une personne vous mentionne. ================================================ FILE: content/fr/.docs-legacy/features/widgets.md ================================================ # Widgets Un widget est un petit élément pouvant être jaouté à l’interface Misskey pour afficher des informations et interagir avec. Par défaut, ils sont affichés sur le bord droit de l’écran ou accessibles via l’icône d’empilement du menu de navigation dans l’application web mobile. Pour modifier les widgets, passez en mode modification de widgets en bas de chaque widget. Ce mode vous permet d’ajouter, supprimer et réarranger les widgets. Après avoir validé vos modifications, vous pourrez également configurer les options de comportement de chacun d’entre eux. ## Liste de widgets disponibles ### Notifications Affiche vos notifications en liste. Vous pouvez modifier les types de notifications via le menu du widget. En désactivant « Paramètres globaux » vous pouvez choisir le type de notifications affichées. ### Fil Affiche un fil. Vous pouvez choisir parmi les fils usuels (Accueil, Local, Social, et Global) ou vos propre [listes](./list.md) ou [antenne](./antenna.md). ### Lecteur RSS Affiche une liste d’éléments d’un flux RSS. Vous pouvez utiliser n’importe quelle URL valide de flux RSS. ### RSS-Ticker Comme le lecteur RSS mais affiche les éléments individuellement sur une line unique. Les options permettent également de personnaliser la fréquence de rafraîchissement du flux et son apparence. ### Tendance Affiche les [mots-croisillons](./hashtag.md) en tendance ainsi que les statistiques sur le nombre de personnes l’utilisant au cours du temps. ### Activité Affiche un diagramme d’activité au cours du temps. ### Personnes en ligne Affiche le nombre de personnes actives sur cette instance. ### Photos Affiche une gallerie de vos photos récentes. ### Diaporama Affiche un diaporama de photos à partir d’un de vos dossiers. Pour sélectionner le dossier, cliquez sur le widget après avoir quitté l’éditeur de widgets. ### Calendrier Affiche la date ainsi qu’un graphique de progression. ### Horloge Affiche une horloge analogique avec diverses options de personnalisation d’apparence. ### Horloge numérique Affiche une horloge numérique. ### Horloge UNIX Affiche les secondes écoulées depuis l’époque UNIX (1970-01-01T00:00:00Z). ### Féderation Liste d’instances fédérées et graphiques de leurs activités récentes. ### Nuage d’instances Animation interactive des instances fédérées. ### Notes adhésives Une zone de texte où vous pouvez inscrire de courtes notes pour vous même. Une fois enregistrée une note est disponible de n’importe quelle page de Misskey Web. ### Formulaire de publication Le menu de composition de [note](./note.md) sous forme de widget.. ### Métriques serveur Affiche des données sur le serveur. Le type de données peut être modifié à l’aide des flèches en entête. ### File de jobs Affiche les statistiques sur la file de jobs du serveur ### Console AiScript Permet d’utiliser des [AiScript](../advanced/aiscript.md). Équivalent au format widget du Scratchpad accessible depuis le menu d’aide. ### Bouton Bouton interactif qui permet de lancer des [AiScript](../advanced/aiscript.md) personnalisés. ### Ai Une version numérique de la mascotte Misskey qui vous suivra sur le site. ================================================ FILE: content/fr/.docs-legacy/features/word-mute.md ================================================ # Ignorer un mot Vous permet d’exclure de vos fils des notes contenant certains mots. Le filtre peut être strict ou libre. ## Filtre libre Avec un filtre libre, celui-ci a lieu au sein du client que vous utilisez. Quand une note rempli des conditions, elle est cachée par le texte « (membre) a dit quelquechose » Vous pouvez afficher le contenu de la note en cliquant sur ce texte. ## Filtre strict Avec un filtre strict, le serveur juge du contenu des notes et excluent de vos fils celles remplissant des conditions définies. Pour résumer, avec un filtre strict : - seulement les nouvelles notes sont affectées ; - si les conditions sont changées, les anciennes notes resteront exclues ; - les fils n’afficheront pas de note « (…) a dit quelquechose » ; - fonctionne peu importe l’application. ================================================ FILE: content/fr/.docs-legacy/getting-started.md ================================================ # Débuter avec Misskey Misskey est à la fois un logiciel et un projet. Le serveur utilisant Misskey, et accessible au public sur Internet, est appelé une **instance**. Pour utiliser Misskey, vous devez créer un compte sur une instance et vous y connecter. Vous pouvez sélectionner l’instance de votre choix depuis la [liste des instances](../instances.md). :::tip Peu importe l’importe choisie, vous serez en capacité de communiquer avec les autres instances. :::Détails Misskey est capable de fédération. Misskey prend en charge la fédération de manière native, cela permet à différentes instances d’échanger, se suivre, réagir, et citer comme pour des notes comme sur une instance unique. La fédération de Misskey est pasée sur le standard libre ActivityPub, et est compatible avec d’autres logiciels comme Mastodon et Pleroma. ::: ## Choisir une instance ### Instance thématique Certaines instances ont des thèmes spécifiques, par autour d’activités. Il est recommandé de choisir une instance dont le thème vous correspond. ### Membre d’une instance ================================================ FILE: content/fr/.docs-legacy/glossary.md ================================================ # Glossaire Glossaire des termes liés à Misskey. ## Acct TODO ## ActivityPub Le protocole sur lequel repose la nature distribuée de Misskey. En l’utilisant, la communication entre instances est possible de telle sorte à former le Fédivers. ## AiScript Un langage de programmation disponible sur Misskey. Pour les détails, voir [ici](../advanced/aiscript). ## API Une interface pouvant être utilisée pour interagir avec Misskey via un programme, disponible pour chaque instance. Pour plus de détails, voir [ici](../docs/api). ## Bot Un compte controlé par un programme. ## CW Une abbréviation de « Content Warning » (ou avertissement de contenu). Une fonction permettant de cacher le contenu d’une note à défaut de demande explicite. Généralement utilisé pour cacher le contenu de longues notes ou de divulgâcher publiquement. Pour plus de détails, voir [ici](../docs/features/note.html#cw). ## Fédivers/Fediverse Un réseau d’instances composés de différentes plateformes connectées entre-elles, dont fait partie Misskey. ## GTL Une abréviation de « Global TimeLine » (Fil public global). Pour plus d’informations sur les fils, voir [ici](../features/timeline). ## HTL Une abréviation de « Home TimeLine » (Fil d’accueil). Pour plus d’informations sur les fils, voir [ici](../features/timeline). ## LTL Une abréviation de « Locale TimeLine » (Fil public local). Pour plus d’informations sur les fils, voir [ici](../features/timeline). ## MFM Une abréviation de « Langage Markup pour Misskey », un langage balisé disponible sur Misskey. Pour plus de détails, voir [ici](../features/mfm). ## NSFW Une abréviation de « Not Safe For Work » (Contenu sensible). Une fonction permet d’ajouter cette étiquette à une image et la cacher sauf demande explicite. ## Renote L’action de citer une note existante, partager une note existante, ou la note créée par une de ces actions. Pour plus de détails, voir [ici](../docs/features/note.html#renote). ## STL Une abréviation de « Social TimeLine » (Fil public social). Pour plus d’informations sur les fils, voir [ici](../features/timeline). ## Ai(藍) Ai(藍) est la mascotte officielle de Misskey. ## Membres actifs Ces membres qui utilisent fréquemment leur compte. ## Instance TODO ## Émoticône personnalisée Les émoticônes proposées par votre instance. Celles non spécifique à votre instance sont appelées « Émoticônes Unicode ». Pour plus de détails, voir [ici](../docs/features/custom-emoji). ## Tableau de bord TODO ## Silence Un état dans lequel la visibilité des notes d’une personne ne peut plus être mise sur « Publique ». Peut être appliqué individuellement sur décision de la modération. Pour plus de détails voir [ici](../features/silence). ## Fil de Job Un système utilisé pour diffuser des activités à d’autres instances de manière ordonnée. ## Suspendu Un état dans lequel un compte est inutilisable. ## Drive Une fonction permettant à une personne d’organiser les fichiers téléversés sur Misskey. Pour plus de détails voir [ici](../features/drive). ## Notes Contenu pouvant contenir texte, images, sondages, et autres, ayant été publié sur Misskey. Pour plus de détails, voir [ici](../docs/features/note). ## Misskist Personne utilisant Misskey. ## Modérateur·rice Personne avec les pouvoirs de superviser la communauté d’une instance en désactivant des comptes de spam, mettant en sourdine, supprimant des publications innapropriées, etc… ## Licence TODO ## Remote Indique dans le cas d’une instance que celle-ci n’est pas la votre. Également utilisé comme préfixe pour d’autres termes en opposition à « Local ». ## Féderation L’action de partager des informations d’une instance vers d’autres. ## Local Utilisé pour indiquer ce qui est lié à votre propre instance en opposition à « Remote ». ================================================ FILE: content/fr/.docs-legacy/install/bash.md ================================================ # 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をインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/fr/.docs-legacy/install/docker.md ================================================ 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 ``` ================================================ FILE: content/fr/.docs-legacy/install/kubernetes.md ================================================ # 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. ================================================ FILE: content/fr/.docs-legacy/install/manual.md ================================================ 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 or later) * **[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; \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: :::g-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`: :::g-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` ================================================ FILE: content/fr/.docs-legacy/install.md ================================================ # Créer votre propre instance Misskey Merci de votre intérêt à créer votre instance Misskey 🚀 Il existe différentes façons de créer votre instance, choisissez en une en bas et suivez le guide. :::danger Ne changez jamais le nom de domaine (hostname) d’une instance une fois celle-ci lancée ! ::: :::danger Si vous utilisez Cloudflare, n'utilisez pas le paramètre Auto Minify. Misskey ne fonctionnera pas correctement car Cloudflare n'interprétera pas le dernier JavaScript et cassera le code source à l'intérieur. Pour plus d'informations [misskey-dev/misskey #9791](https://github.com/misskey-dev/misskey/issues/9791) ::: ## Via Docker [Voir ici](./install/docker.html). ## Via script Bash [Voir ici](./install/bash.html). ## Manuellement [Voir ici](install/manual.html). ## Via Yunohost Misskey peut être installé en tant qu’application sur YunoHost. Pour plus d’informations, voir le [dépot du paquet Misskey sur YunoHost](https://github.com/YunoHost-Apps/misskey_ynh). ## Via Kubernetes/TrueNAS Scale [Voir ici](./install/kubernetes.html). ================================================ FILE: content/fr/.docs-legacy/misskey-hub.md ================================================ # À propos de Misskey Hub Misskey Hub est le site officiel Misskey. On y trouve, entre autres, la documentation, les actualités, et le catalogue d’extensions. L’objectif est d’en faire un pilier central pour tout ce qui a lien avec Misskey. Misskey Hub est [libre](https://github.com/misskey-dev/misskey-hub). :::tip Misskey Hub est un site static construit via [VuePress](https://github.com/vuepress/vuepress-next). ::: - [Journal de modifications](../updates.md) ## Contribuer à Misskey Hub Tout aide à la documentation et la traduction est la bienvenue. ================================================ FILE: content/fr/.docs-legacy/misskey.md ================================================ # À propos de Misskey Misskey est une plateforme libre et distribuée de microblogage. Son développement a débuté en 2014 par syuilo au Japon. De nombreuses fonctions sont disponibles comme Drive ou Réactions ainsi qu’une grande flexibilité de l’interface. ## Historique D’abord pensé comme un tableau public, le gain en popularité suite à l’ajout d’un fil d’actualité (permettant aux membres de publier des messages courts et de les visualiser dans un ordre chronologique) a opéré un changement graduel du développement vers ce type de fonctionnalité. Misskey n’a pas toujours été un service décentralisé et l’est devenu avec l’adoption d’ActivityPub en 2018. C’est depuis lors un service utilisé et reconnu par la population. :::tip Le nom « Misskey » vient de la chanson « Brain Diver » d’un groupe, alors appelé May’n, que syuilo écoutait. ::: Tout le monde pouvant participer à son développement, Misskey est encore activement développé. ## Que signifie « Distribué » ? Un service distribué ou décentralizé, désigne un service où la communauté est divisée en différents serveurs capable de communiquer (fédération) entre eux pour partager leurs contenus, construisant ainsi un réseau (Fédivers). Les services reposant sur un serveur unique, ou des serveurs indépendants, sont considérés comme centralisés. La plupart font partie de cette dernière catégorie, comme Twitter ou Facebook. L’avantage de services distribués est de pouvoir librement choisir l’équipe d’administration ou le serveur qui nous correspond. Il est également possible de créer son propre serveur. Grâce à la fédération, il est possible d’accéder à la même communauté peu importe le serveur choisi. ## Code ouvert Misskey a toujours été, et sera toujours, libre. De manière simplifiée, cela signifie rendre visible au public le code source d’un logiciel.. Cela permet également de modifier ou redistribuer le code. L’intégralité du [code de Misskey](https://github.com/misskey-dev) est sous licence [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE), ce qui signifie que vous êtes libre de l’auditer, utiliser, modifier, et redistribuer de manière à assurer qu’il ne contient rien de dangereux et pouvoir participer à son développement. Pour concrétiser la nature distribuée de Misskey, cet aspect libre est indispensable. Comme précédemment, les services à but lucratif comme Twitter ou Facebook n’ont pas de code ouvert. :::tip Techniquement, le code source de Misskey est géré via Git, et son dépot est hébergé sur [GitHub.](https://github.com/misskey-dev). ::: ## Contribuer au développement et supporter le projet Si Misskey vous plaît, il est possible de supporter le projet de différentes manières, certaines étant décrites ci-dessous. Certaines ne nécessitent pas de compétence en programmation et tout le monde peut contribuer à sa manière. Nous vous accueillerons volontiers. ### Ajouter des fonctions ou résoudre des problèmes Si vous possédez des compétences logicielles, vous pouvez contribuer au projet en modifiant son code source. Pour les règles à ce sujet, voir [ici](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). ### Participer aux discussions Vous pouvez contribuer en partageant votre opinion sur des fonctions existantes ou en développement, ainsi qu’en signalant des problèmes. Ces discussions ont lieu sur [GitHub](https://github.com/misskey-dev) ou le [Forums](https://forum.misskey.io/). ### Traduction Misskey est disponible dans de multiples langues (également appelé i18n, une abréviation de Internationalisation). La langue initiale étant le japonais, des bénévoles l’ont traduit dans d’autres langues. Aider à la traduction est une forme de contribution, Misskey utilise pour cela le service [Crowdin](https://crowdin.com/project/misskey). ### Partager vos impressions Au delà des problèmes, n’hésitez pas à donner votre opinion sur les fonctions que vous appréciez ou trouvez amusantes. Cela constitue une motivation supplémentaire pour l’équipe de développement, et compte comme une forme indirecte de soutien du projet. ### Augmenter le nombre de Misskists « Misskist » est le nom donné aux personnes utilisant Misskey. En parlant de Misskey dans votre entourage, le nombre de Misskists augmente et constitue une motivation pour l’équipe de développmeent. ### Faire une donation [Voir ici](./donate.md) ## Foire Aux Questions ### Quel est l’objectif de ce projet ? En résumé, et bien que vague, Misskey vise à être une plateforme généraliste populaire. Contrairement aux autres plateformes, Misskey n’est pas fixé dans une idée (ex : anti-centralisation) ou une vision unique, ce qui est reflété dans son développement qui est parfois un peu « exploratoire ». À l’inverse, cela permet une flexibilité en n’ayant pas de direction unique. ### Est-ce que Misskey est développée par une entreprise ? Non. Misskey n’est pas développée par une personne unique et n’est pas commercialisée en lien avec quelqu’entreprise qu’il soit. Le développement est porté par des bénévoles. De plus, bien qu’il y ait des sponsors commerciaux, le développement est centré sur la communauté. ### Qui contrôle Misskey ? De part sa nature distribuée, chaque serveur a sa propre équipe d’administration. Misskey n’est ainsi pas contrôlé par une personne ou un une entreprise. Cela signifie que l’équipe de développement n’a pas de contrôle sur ces serveurs, pour les questions liées au management, c’est votre administration qu’il faut contacter. Vous retrouverez les informations sur votre serveur sur [cette page](/about). Créer votre propre serveur ferait de vous la tête de son équipe d’administration. ### Quel serveur choisir ? Vous trouverez une [liste incomplète des serveur ici](../instances.md). Selon votre serveur, sa communauté et son thème peuvent varier et il est pertinent de rejoindre un serveur qui vous corresponde. De la même façon, la taille du serveur, le nombre de membre, la langue parlé, la notoriété de l’administration et divers autres critères peuvent orienter votre choix. Il n’existe pas de serveur officiel unique. Vous pouvez également créer votre propre serveur. En général, peu importe le serveur que vous rejoignez, vous aurez accès au contenu de tous les autres serveurs. ### Comment créer son propre serveur ? Merci de votre intérêt dans la création d’un serveur Misskey. En 2022, il n’existe pas de service spécialisé dans l’hébergement Misskey, créer un serveur requiert un certain niveau de connaissances. Pour plus d’informations, voir [ici](./install.md). ### Sur quelle technologie repose Misskey ? Au fil du développement, Misskey a utilisé de nombreuses technologies. Originellement sur une combinaison de MySQL + PHP + jQuery, sont actuellement utilisés : - Server : Node.js - Base de données : PostgreSQL, Redis - Interface : Vue.js - Langage de programmation : TypeScript De plus, Misskey dispose de ses propres technologies dérivées comme MFM ou AiScript. ### Quelle différence avec Mastodon ? Misskey est un projet complètement différent de Mastodon et autres dérivés. Son développement est en cours depuis de nombreuses années déjà mais il n’est devenu un réseau distribué qu’après l’apparition de Mastodon. La seule similitude des deux projets est la prise en charge du protocole ActivityPub. ### Existe-t’il des applications Android/iOs ? Bien qu’il n’existe pas d’application Misskey officielle pour d’autres systèmes d’exploitation, il existe des applications tierces. Pour plus de détails, voir [ici](./apps). Seulement, les fonctionnalités de ces applications sera forcément en retard par rapport au client Web officiel. À moins de vouloir utiliser une application native, nous recommendons d’utiliser le client Web officiel. Celui-ci prenant en charge WPA, il est également possible d’en faire une application native. Pour plus de détails, voir [ici](todo]. ### Où télécharger le logo ou l’icône Misskoy ? Vous les trouverez dans les [ressources](../appendix/assets.html). ### Qui est cette fille aux oreilles de chat que l’on voit parfois ? C’est l’ange gardien de Misskey, Ai (On l’a trouvé mignonne, youpi !).
ℹ️ Pour plus d’informations sur Ai, voir ici (Japonais).
================================================ FILE: content/fr/.docs-legacy/releases.md ================================================ # 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 `/emoji/.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 `` 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.1(2022/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). ::: ================================================ FILE: content/fr/.docs-legacy/tips/disable-timelines.md ================================================ # Désactiver les LTL/STL/GTL Dans Misskey, il est possible d’activer ou désactiver individuellement les LTL/STL/GTL depuis le tableau de bord de l’instance. Toutes les publications de votre instance étant disponibles dans le LTL et le STL, ils permettent aux nouveaux membres de trouver des personnes qui les intéressent sans avoir à manuellement les rechercher. À l’inverse, cela rend moins important de suivre des personnes pour voir leur activité et les publications inappropriées peuvent apparaître plus fréquemment. De plus, l’expérience se rapproche d’un salon de discussion où il est plus difficile de trouver sa place parmi les personnes plus anciennes. Cette balance variant selon les serveurs, le choix a été laissé à chaque instance. Si vous penser que les coûts sont trop importants, nous vous invitons à désactiver ces fils. :::warning Désactiver ces fils peuvent amener une certaine confusion et entraîner une diminution temporaire du nombre de membres. Pensez à bien réflechir à cela avant tout action, et de l’expliquer à vos membres en leur laissant le temps de se préparer en s’abonnant aux personnes avec qui elles interagissent fréquemment. ::: L’administration et la modération aura toujours accès à ces fils même désactivés. ================================================ FILE: content/fr/.docs-legacy/troubleshooting.md ================================================ --- description: 'En cas de problème, d’abord consulter cette page.' --- # Dépannage :::Astuce Également voir la [Foire Aux Questions](./faq.md). ::: En cas de problème, d’abord consulter cette page. Si le problème n’est pas référencé, ou que les instructions ne permettent pas de le résoudre, contactez l’administration de votre serveur ou (signalez le problème](./report-issue). ## Le client ne démarre pas Dans la plupart des cas, cela vient de votre navigateur ou système d’exploitation qui peuvent être obsolètes. Essayez de les mettre à jour avec les dernières versions et réessayez. Bien que cela soit rare, si cela ne résoud pas votre problème il est possible que cela soit à cause du cache. En quel cas, essayez de vider votre cache avant de réessayer. ## Les pages ne se chargent pas Si votre client démarre mais qu’une erreur apparaît lors du chargement des pages, vérifiez votre connexion internet. En parallèle, vérifiez que le serveur que vous souhaitez consulter soit en ligne. Bien que cela soit rare, si cela ne résoud pas votre problème il est possible que cela soit à cause du cache. En quel cas, essayez de vider votre cache avant de réessayer. Tout autre problème vient probablement du serveur que vous cherchez à consulter, et c’est son administration qu’il faut contacter. ## Le client est lent Veuillez essayer de : - Activer « Réduire les animations » dans les paramètres ; - Désactiver « Effet de flou modal » dans les paramètres ; - Activer l’accélération matérielle de votre navigateur ; - Utiliser un appareil plus puissant. ## Des parties de l’interface sont étranges (ex : Fond transparent) Une interface cassée peut être due au cache système du thème lorsque l’interface est modifiée suite à une mise à jour. La fonction « Vider le cache » dans les paramètres résoudra ce problème. :::Attention Il est ici question du cache « Client », pas celui du « Navigateur ». ::: ## Le clignotement d’une notification ou Antenne ne s’arrête pas Un cignotement indique du contenu non-lu. Si celui-ci persiste, cela est généralement dû à du nouveau contenu. Si vous pensez avoir tout lu mais que le clignotement persiste, vous pouvez manuellement marquer tout le contenu comme lu dans les paramètres. ## La fonction « Renote » est bloquée Les notes adressées aux personnes abonnées uniquement ne pevent pas être renotées. ## Des parties spécifiques de l’interface Web Misskey ne s’affichent pas Ces problèmes peuvent survenir si vous utilisez un bloqueur de pub. Pour une expérience optimale, veuillez le désactiver. ## Certaines parties de l’intrface Web Misskey ne sont pas traduites Dans la plupart des cas c’est que la traduction n’a pas encore été faite. Merci de patientez pour qu’une personne s’en charge, ou [faites le](./misskey) vous même. ================================================ FILE: content/fr/contact-faq/0.cannot-create-account.md ================================================ --- question: アカウントが作成できません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/fr/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: アカウントにログインできません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/fr/contact-faq/2.delete-account.md ================================================ --- question: アカウントを削除したい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/fr/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 〇〇のサーバー上にあるコンテンツを削除してほしい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** 自サーバー・他サーバーのコンテンツのモデレーションについては、各サーバーのルールに則って行われますので、当該コンテンツの送信元サーバーの管理者に連絡するか、当該ユーザーやサーバーをブロックして自己防衛するなどして対応してください。 ================================================ FILE: content/fr/contact-faq/4.copyright-infringement.md ================================================ --- question: 著作権侵害を見つけた --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/fr/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/fr/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/fr/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskeyについてのドキュメントです。' --- # Misskeyについて Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## 歴史 開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にActivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 :::tip Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 ::: 誰でも開発に参加することができ、現在でも活発に開発が続いています。 [Misskey歴史資料館](/about-us/history/) ## 分散型とは何か? 分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 :::tip 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) ::: ## 開発に参加する、プロジェクトを支援する Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 ### 議論に参加する 新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 ### テキストを翻訳する Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) ### 感想を投稿する 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 ### ミスキストを増やす ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 ### 寄付をする [こちらをご覧ください](/docs/donate/) ## よくある質問 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 ### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 ### 誰が運営していますか? Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、サーバーの情報ページで確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 ### どのサーバーを選べばいいですか? [サーバー一覧が公開されています。](/servers/) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 Misskeyサーバーの作成には、専用のサービスを使う方法や、半自動で環境を構築する方法などがあります(もちろん手動でサーバーを構築することも可能です)。詳細については[こちら](/docs/for-admin/install/guides/)をご覧ください。 ### どのような技術を使用していますか? Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 - サーバーサイド: Node.js - データベース: PostgreSQL、Redis - UIフレームワーク: Vue.js - プログラミング言語: TypeScript また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 ### Mastodonのフォークですか? いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](/docs/for-users/resources/apps/)をご覧ください。 ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 :::tip PWAの設定方法については[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ::: ### Misskeyのロゴ、アイコンはどこで入手できますか? [こちら](/brand-assets/) ### 時折目にする猫耳の可愛い女の子は? :::fukidashi{chara="doya_ai" charaName="藍"} わたしについては[このホームページ](https://xn--931a.moe/)をご覧ください! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! ::: ================================================ FILE: content/fr/docs/2.for-users/1.index.md ================================================ # ユーザー向けガイド このセクションでは、Misskeyを初めて利用する方はもちろん、すでに利用されている方にも役立つ一般的な機能についてご紹介しています。 ================================================ FILE: content/fr/docs/2.for-users/2.onboarding/0.index.md ================================================ # Misskeyをはじめよう ここでは、Misskeyでの活動を始めるチュートリアルを掲載しています。 おもに、 - 分散型プラットフォームの注意点 - サーバーとは?サーバーの選び方は? - 登録の手順 - 最低限の基礎知識 などについて解説していますので、この通りに進めることで、とりあえずMisskeyを使い始めることができると思います。 それでは、早速始めましょう!(「次へ」を押して進んでください。) ================================================ FILE: content/fr/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Misskeyサーバーにアカウントを作成する前の基本的な注意事項です。' --- # 基本的な注意事項 Misskeyを使ったサービスを利用するにあたり、いくつか注意が必要な点があります。 - 分散型のため、一度アップロードしたデータは削除したとしても他の全てのサーバーから削除されることは保証されません。(ただし、これはインターネット全般に言えることでもあります。) - 非公開で行った投稿でも、相手のサーバーがそれを同じように非公開として扱うかは保証されません。個人情報、機密情報を投稿する際は十分注意してください。(ただし、これはインターネット全般に言えることでもあります。) - Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ノートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。 - アカウントの削除は負荷の高い処理であるため、長い時間がかかることがあります。アップロードしたデータが多いケースではアカウントの削除が不可能なこともあります。 - サーバーによっては、広告収入により運営費を賄っていることがあります。また、アドブロッカーは広告とは全く関係のないコンテンツや機能を誤ってブロックすることがよくあり、クライアントの動作に支障をきたし、正常にMisskeyを使用できなくなるおそれがあります。そのため、Misskeyではアドブロッカーやそれに類する機能はオフにしてご利用ください。 これらをご理解いただいたうえで、楽しくサービスをご利用ください。 ================================================ FILE: content/fr/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskeyサーバーへのユーザー登録や、基本的な操作について解説しています。" --- # Misskeyサーバーをさがす Misskeyはソフトウェアおよびそのプロジェクトです。 インターネットに公開されている、Misskeyを動かしているサーバーのことを**サーバー**と呼びます。 Misskeyを利用するには、どこかのサーバーにアカウントを作成し、そのサーバーを利用します。 [サーバー一覧](/servers/)から、好きなサーバーを選ぶことができます。 :::tip どのサーバーを選んでも、他のサーバーのユーザーとやり取りすることができます。 :::g-details{summary='詳細'} Misskeyには連合機能が備わっています。 連合機能によって、別のサーバーのユーザーであっても、同じサーバーのユーザーと同じようにフォローやリアクション、Renoteなどができるようになっています。 Misskeyが搭載している連合機能はActivityPubというオープンな共通規格に基づいていて、MastodonやPleromaといったほかのソフトウェアとも互換性があります。 ::: ::: ## Comment choisir un serveur ### サーバーのテーマ サーバーによっては、例えば「特定のこと、ものが好き」といったテーマが決まっている場合があります。 自分にあったテーマのサーバーを探すのもおすすめです。 :::tip Une liste de serveurs est disponible [ici](/servers/). ::: ================================================ FILE: content/fr/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # S'inscrire sur un serveur 登録するサーバーが決まったら、さっそくアカウントを作成しましょう。 :::tip ここでは、Misskey.ioを例にとって紹介していますが、他のサーバーでも登録方法はおおむね同じです。 ただし、入力事項はサーバーによって異なることがあります。詳しくは、サーバー管理者にお問い合わせください。 ::: ## 登録する まずは、トップページから「**このサーバーに登録する**」ボタンを探し、クリックします。 ![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png) 次に、画面の指示に従い、規約の確認や必要事項の記入を進めてください。 主に記入すべき事項は、以下の通りです。 - 招待コード(登録が招待制の場合のみ。お持ちでない場合は登録できません。) - ユーザー名(**後から変更はできません。一度退会すると同じユーザー名を取得することはできません。**) - メールアドレス(必要ないサーバーもあります) - パスワード ![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png) 必要事項の記入が終わると、メールアドレスを登録するサーバーの場合、確認メールが届きますので、速やかにメール内のリンクをクリックしてください。 ![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png) 以上で、Misskey サーバーへの登録が完了しました! これであなたも[ミスキスト](../resources/glossary/#ミスキスト)!楽しいコミュニケーションをお楽しみください。 ================================================ FILE: content/fr/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskeyの基礎知識 アカウントを作成したあなたにとりあえず知っておいてほしいことをまとめました! ## ノート Misskeyへの投稿は、「ノート」と呼ばれます。Twitterなどの一般的なSNSに比べたくさんの機能がありますので、初めての投稿を行う前に必ず確認して、上手に投稿しましょう! :::tip 詳細は、「[ノート](/docs/for-users/features/note/)」をご覧ください。 ::: ## タイムライン Misskeyは、複数のタイムラインを持っています。名前だけでは少々わかりにくいかと思いますので、それぞれがどのような働きをするのかを知っておきましょう。 :::tip 詳細は、「[タイムライン](/docs/for-users/features/timeline/)」をご覧ください。 ::: ## その他 その他にも、Misskeyには、使って楽しい機能が盛りだくさん!すべての機能に関する説明は[こちら](/docs/for-users/features/)に記載されていますので、ぜひご覧ください! ================================================ FILE: content/fr/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Misskeyの大きな特徴である、多彩な機能について解説しています。" --- # さまざまな機能 Misskeyの大きな特徴は、ほかのマイクロブログシステムには見られない多彩な機能にあります。ここでは、それらについて解説していきます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/ads.md ================================================ # 広告 Misskeyではサーバーによる広告をタイムラインなどに表示できる機能があります。 広告の右上に表示されるアイコンをクリックすることで、当該の広告の表示頻度を下げることができます。 :::tip 広告の総数が少ない場合は、表示頻度を下げた後も連続で表示される可能性があります。 ::: ## 広告の設定(管理者) サーバーのコントロールパネルから広告の追加、編集、削除を行えます。 広告には任意の画像、遷移先URL、形状、表示割合を設定できます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/antenna.md ================================================ # アンテナ アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/charts.md ================================================ # チャート Misskeyはサーバーの様々なデータソースに対するチャートを生成し表示する機能を備えています。 チャートを利用することで、サーバーの利用状況や連合の状況、各ユーザーのアクティビティなどを視覚的に把握することができます。 サーバーのチャートはサーバー情報ページから表示することができます。 以下は各チャートとその各項目の説明です。 ## 連合チャート 連合しているサーバーについてのチャートです。 ### Pub アクティビティを配送しているサーバーの数。 言い換えると、自サーバーのユーザーをフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Sub アクティビティを受信しているサーバーの数。 言い換えると、自サーバーのユーザーがフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Received アクティビティを送ってきたサーバーの数。 ### Delivered アクティビティを配送したサーバーの数。 ### Stalled アクティビティを配送する際、エラーになったサーバーの数。 ## アクティブユーザー数チャート 自サーバーのユーザーの利用状況についてのチャートです。 ### Read & Write 閲覧と書き込みを行ったユーザーの数。 ### Read 閲覧を行ったユーザーの数。 ### Write 書き込みを行ったユーザーの数。 ### < Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間未満であるユーザーの数。 ### < Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月未満であるユーザーの数。 ### < Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年未満であるユーザーの数。 ### > Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間以上前であるユーザーの数。 ### > Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月以上前であるユーザーの数。 ### > Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年以上前であるユーザーの数。 ================================================ FILE: content/fr/docs/2.for-users/3.features/clip.md ================================================ # クリップ クリップは、複数のノートをまとめることができる機能です。自分のノート・他者のノートは問いません。 クリップは複数作ることができ、それぞれに名前や説明を設定して管理することが可能です。また、クリップを他のユーザーに公開するかどうかも選択することができます。 クリップを作るには、[クリップ管理ページ](x-mi-web://my/clips)から「追加」をクリックします。 クリップにノートを追加するには、対象のノートのメニューから「クリップ」をクリックし、追加先のクリップを選択します。 ================================================ FILE: content/fr/docs/2.for-users/3.features/custom-emoji.md ================================================ # カスタム絵文字 カスタム絵文字は、サーバーで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 サーバーにどのようなカスタム絵文字が用意されているかは、Misskey Webの **サーバー情報** にある [**カスタム絵文字**](x-mi-web://about#emojis) にアクセスすると見ることができます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/deck.md ================================================ # デッキ デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 \ \ なお、メインカラムを追加しておくと、ノートやプロフィールをページで表示した際、メインカラムに内容が表示されます。 ## カラムの追加 デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 ## カラムの移動 カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 ## カラムの水平分割 カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 ## カラムの設定 カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 ## デッキの設定 デッキに関する設定は、[settings/deck](x-mi-web://settings/deck)で行えます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/fr/docs/2.for-users/3.features/drive.md ================================================ # ドライブ ドライブは、Misskey上でファイルを管理できる機能です。 :::tip 技術的に言うと、Misskeyのシステム上、すべてのファイルが一元管理されており、それをユーザーにも公開したインターフェイスがドライブと捉えることができます。 ::: Misskey Webの[ドライブページ](x-mi-web://my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 :::warning 現時点で、ドライブからファイルを削除すると、そのファイルが添付された **すべてのコンテンツ(ノート、ページなど)** も同時に消えます。 ::: ## センシティブ (NSFW) センシティブまたはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 センシティブフラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 ================================================ FILE: content/fr/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/favorite.md ================================================ # お気に入り [ノート](./note)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](x-mi-web://my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 ================================================ FILE: content/fr/docs/2.for-users/3.features/follow.md ================================================ # フォロー ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/hashtag.md ================================================ # ハッシュタグ ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。 世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、当時のTwitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。 ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png) FediverseでのハッシュタグはXやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。 ================================================ FILE: content/fr/docs/2.for-users/3.features/mention.md ================================================ # メンション アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFMは、Misskeyの様々な場所で使用できる専用のマークアップ言語です。' --- # MFM MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。 :::tip 実際にMFMをお試しいただける[MFMお試しコーナー](/tools/mfm-playground/)ができました! ::: ## MFMが使用可能な場所の例 - ノート本文 - CW注釈 - ユーザーの名前 - ユーザーの自己紹介 ## 構文 ### メンション アットマーク + ユーザー名で、特定のユーザーを示すことができます。 :::tip メンションについての詳細は[こちら](./mention.md)を参照してください。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### ハッシュタグ ナンバーサイン + タグで、ハッシュタグを示すことができます。 :::tip ハッシュタグについての詳細は[こちら](./hashtag.md)を参照してください。 ::: ``` #misskey ``` ### URL URLを示すことができます。 ``` https://example.com ``` ### リンク 文章の特定の範囲を、URLに紐づけることができます。 ``` [example link](https://example.com) ``` :::tip リンクテキストの前に`?`をつけると、リンクプレビューを非表示にすることができます。 ``` ?[example link](https://example.com) ``` ::: ### カスタム絵文字 コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。 :::tip カスタム絵文字についての詳細は[こちら](./custom-emoji.md)を参照してください。 ::: ``` :misskey: ``` ### 太字 文字を太く表示して強調することができます。 ``` **太字** ``` ### 目立たなくする 内容を小さく・薄く表示させることができます。 ``` MisskeyでFediverseの世界が広がります ``` ### 引用 内容が引用であることを示すことができます。 ``` > MisskeyでFediverseの世界が広がります ``` ### 中央寄せ 内容を中央寄せで表示させることができます。 ```
MisskeyでFediverseの世界が広がります
``` ### よみがな(ルビ) 内容によみがなを付けることができます。 ``` $[ruby Misskey ミスキー] ``` ### コード(インライン) プログラムなどのコードをインラインでシンタックスハイライトします。 ``` `<: "Hello, world!"` ``` ### コード(ブロック) 複数行のプログラムなどのコードをブロックでシンタックスハイライトします。 プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### 反転 内容を上下または左右に反転させます。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### フォント 内容のフォントを指定することができます。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### ぼかし 内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 検索 検索ボックスを表示できます。 ``` misskey 検索 ``` ### 文字色・背景色 文字色と背景色を変更することができます。 3,4,6桁のカラーコードで色を表現します。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 枠線 内容を枠線で囲むことができます。様々なスタイルを指定することができます。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度変更 指定した角度で回転させます。 ``` $[rotate.deg=30 misskey] ``` ### 位置変更 位置をずらすことができます。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 拡大 文字を引き延ばして表示します。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### アニメーション(びよんびよん) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### アニメーション(じゃーん) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### アニメーション(ジャンプ) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### アニメーション(バウンド) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### アニメーション(回転) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### アニメーション(ぶるぶる) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### アニメーション(ブレ) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### レインボー ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### キラキラ ``` $[sparkle 🍮] ``` ### プレーン 内側の構文を全て無効にします。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 開発者向け情報 MFMのパーサーや描画の実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js用コンポーネント - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlinパーサー実装 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dartパーサー実装 - [mfm](https://pub.dev/packages/mfm) - Flutter用描画ウィジェット ================================================ FILE: content/fr/docs/2.for-users/3.features/mute-and-block.md ================================================ # ミュートとブロック 好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 :::tip ミュートとブロックは併用できます。 ::: :::warning 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。 ::: Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 ## ミュート ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) - そのユーザーからの通知 - メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - など Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 :::tip ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 ::: ## リノートをミュート ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## ブロック ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - フォローする - ユーザーリストに追加する - 返信する、Renoteする - リアクションする、アンケートに投票する - メッセージを送信する - など また、 - ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 - ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 :::warning ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。 ::: :::warning 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。 ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/note.md ================================================ # ノート ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## ノートを作成する Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## リノート 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## 公開範囲 ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### フォロワー 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### 指名 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 ### 公開範囲の比較
パブリックホームフォロワー指名
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## 新規投稿の通知 ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/fr/docs/2.for-users/3.features/online-status.md ================================================ # オンラインステータス ユーザーの**オンラインステータス**は、そのユーザーのMisskey利用の状態を表すものです。 オンラインステータスは、ユーザーページなどでユーザーアイコンの隅にインジケーターとして表示されます。
状態 説明
🟢緑 オンライン 今まさにMisskeyを使用していると考えられる状態
🟡黄 アクティブ 今は退席しているものの、Misskeyの利用自体は行われている状態
🔴赤 オフライン Misskeyを利用していないと考えられる状態
⚫灰 不明 ステータスを非公開にしている、もしくはリモートユーザー等でステータスが不明の状態
オンラインステータスは自動的に変わり、手動で設定することは出来ません。 設定により、オンラインステータスを非公開にすることができます。 :::warning ユーザーのサジェストなど、一部の機能においてはオンラインステータスを元に処理される場合があるため、ステータスを非公開にすると他のユーザーから見つけにくくなることがあります。 ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/pages.md ================================================ # ページ Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## ページ設定 ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### タイトル このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### ページURL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### フォント **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### アイキャッチ画像 **アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。 ## コンテンツ ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。 - セクション - テキスト - 画像 - ノート埋め込み ### セクション タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。 ### テキスト テキスト本文を入力します。MFMやカスタム絵文字を使用できます。 ### 画像 画像を表示します。ドライブより画像を設定します。 ### ノート埋め込み ノート ID を入れる事で、そのノートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。 ================================================ FILE: content/fr/docs/2.for-users/3.features/plugin.md ================================================ # プラグイン Misskey Webにはプラグイン機能があり、ユーザーがMisskey Webの機能を拡張することができます。 プラグインの作成方法については[こちらのドキュメント](../../for-developers/plugin/create-plugin)を参照してください。 ================================================ FILE: content/fr/docs/2.for-users/3.features/poll.md ================================================ # アンケート アンケートは、他の人からの意見を簡単に聞くことができる機能です。 ## アンケートをノートに添付する アンケートは、[ノート](/docs/for-users/features/note)に添付する形で投稿することができます。ノートにアンケートを添付するには、投稿フォームの下部にある「アンケート」ボタンを選択します。 ## 選択肢を増やす アンケートには、選択肢を10個まで作ることができます。選択肢の入力欄は、「追加」ボタンを押すことで追加することができます。 追加しすぎてしまった入力欄は、入力欄の横の☓ボタンを押すことで削除することができます。 :::warning いずれかの入力欄が空白だった場合、そのアンケートが添付されたノートは投稿できません。 ::: ## 複数回答を可能にする 「複数回答可」スイッチをオンにすると、アンケートに回答する人が複数の選択肢に投票できるようになります。 ## アンケートの期限を設定する アンケートには、終了する期限を、日時指定か経過指定のいずれかで設定することができます。 設定するには、「期限」の欄から「日時指定」もしくは「経過指定」をクリックします。 一度設定した期限を取り消す場合には、「期限」の欄から「無期限」を選択します。 ## アンケートに投票する アンケートが添付されたノートがタイムラインに流れてきたときは、アンケートに投票してみましょう。 アンケートに投票するには、各選択肢をクリックします。アンケートを投稿したユーザーが複数回答可に設定していない場合は、その時点でのアンケートの結果が表示されます。 アンケートを投稿したユーザーが複数回答可に設定していた場合、他の選択肢にも投票することができます。この場合、結果は自動では表示されません。 複数回答の設定に関わらず、自動でアンケートの結果が表示されなかったり、投票前に結果を見たい時は、選択肢の下にある「結果を見る」をクリックしてアンケートの結果を表示することができます。 未投票のアンケートの結果を見たあと、もう一度隠すときは「投票する」をクリックします。 :::tip 未投票アンケートには、結果を表示した状態でも投票できます。 ::: 投票をすると、自分の投票した選択肢に✔がつきます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/reaction.md ================================================ # リアクション 他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 Misskey Webでリアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji.md)も使用できます。 ## リアクションピッカーのカスタマイズ Misskey Webでは、ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 ## リモート投稿へのリアクションについて リアクションはMisskeyオリジナルの機能であるため、リモートサーバーがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 ## リモートからのリアクションについて リモートから「Like」アクティビティを受信したとき、Misskeyでは「❤」のリアクションとして解釈されます。 ## 自分のリアクション一覧を見る Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。 設定から、このリアクション一覧を公開するようにすることもできます。 ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/fr/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/share-form.md ================================================ # 共有フォーム Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## クエリパラメータ :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ------- | ---------------------------------------------------------------------------- | | `title` | タイトル。本文の先頭に[ … ]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。 | 名前 | 説明 | | ---------- | ----------------------------- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ----------- | ------------------------------- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | --------- | -------------------------------------- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 \ こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/silence.md ================================================ # サイレンス サイレンスは、アカウントに設定される状態のひとつです。 アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、指名のノートは引き続き投稿可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 ================================================ FILE: content/fr/docs/2.for-users/3.features/theme.md ================================================ # テーマ テーマを設定して、Misskeyクライアントの見た目を変更できます。 ## テーマの設定 [設定 > テーマ](x-mi-web://settings/theme) ## テーマを作成する テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... テーマの一意なID。UUIDをおすすめします。 - `name` ... テーマ名 - `author` ... テーマの作者 - `desc` ... テーマの説明(オプション) - `base` ... 明るいテーマか、暗いテーマか - `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - テーマはここで設定されたベーステーマを継承します。 - `props` ... テーマのスタイル定義。これから説明します。 ### テーマのスタイル定義 `props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[\\_light.json5][_light.json5]で、`dark`なら[\\_dark.json5][_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### バリューで使える構文 - 16進数で表された色 - 例: `#00ff00` - `rgb(r, g, b)`形式で表された色 - 例: `rgb(0, 255, 0)` - `rgba(r, g, b, a)`形式で表された透明度を含む色 - 例: `rgba(0, 255, 0, 0.5)` - 他のキーの値の参照 - `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - 例: `@panel` - 定数(後述)の参照 - `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - 例: `$main` - 関数(後述) - `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/fr/docs/2.for-users/3.features/thread-mute.md ================================================ # スレッドミュート :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/fr/docs/2.for-users/3.features/timeline.md ================================================ # タイムライン タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## 比較
ソース 公開範囲 タイムライン
ホーム ローカル ソーシャル グローバル
ローカル(フォロー) 公開
ホーム
フォロワー
リモート(フォロー) 公開
ホーム
フォロワー
ローカル(未フォロー) 公開
ホーム
フォロワー
リモート(未フォロー) 公開
================================================ FILE: content/fr/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow ### followed ### unfollow ### note ### reply ### renote ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/fr/docs/2.for-users/3.features/widgets.md ================================================ # ウィジェット ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## 利用可能なウィジェット一覧 - プロフィール - サーバー情報 - 付箋 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するッフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/fr/docs/2.for-users/3.features/word-mute.md ================================================ # ワードミュート ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ワードミュートは、[設定 > ミュートとブロック](x-mi-web://settings/mute-block)から設定できます。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/fr/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/fr/docs/2.for-users/4.resources/_dir.yml ================================================ title: "その他のリソース" description: "機能面以外の知識や、困ったときの対処法を紹介しています。" ================================================ FILE: content/fr/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/fr/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/fr/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskeyに関する用語集です。' --- # 用語集 Misskeyに関する用語集です。 ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー todo ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/fr/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hubについて Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。 「Misskeyの全てがここにある」を目指しています。 Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub) :::tip Misskey HubはNuxtを使ってビルドされた静的サイトです。 ::: ## Misskey Hubに貢献する ドキュメントの追加や、翻訳など歓迎です。 ================================================ FILE: content/fr/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/fr/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/fr/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/fr/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/fr/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/fr/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/fr/docs/2.for-users/_dir.yml ================================================ title: "Misskeyユーザー向け" ================================================ FILE: content/fr/docs/3.for-admin/_dir.yml ================================================ title: "サーバー運営者向け" description: "サーバーの作成方法や、運営に際してのお役立ち情報を公開中。" ================================================ FILE: content/fr/docs/3.for-admin/features/1.index.md ================================================ --- description: "サーバー管理者向けの機能の説明です。" --- # サーバーの機能 Misskeyではサーバー運営に役立つ様々な機能が提供されています。 ================================================ FILE: content/fr/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/fr/docs/3.for-admin/features/announcement.md ================================================ # お知らせ お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。 お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。 :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/fr/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/fr/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/fr/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/fr/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/fr/docs/3.for-admin/features/role.md ================================================ # ロール ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## ベースロール 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ::: ## 権限 ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/fr/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/fr/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskeyのインストールと保守" description: "Misskeyのインストール方法や、その後の保守作業に役立つ情報を掲載しています。" ================================================ FILE: content/fr/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Misskeyサーバーの作成方法についての案内です。' --- # Misskeyサーバーの作成 Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## XServer SNSでインストール XServer SNSでは、サービスを申し込むだけでMisskeyのサーバーが自動で作成されます。 サーバーの管理やメンテナンスも運営元が対応してくれるので、難しい知識不要でサーバー運用が可能です。 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## インストール方法一覧 ================================================ FILE: content/fr/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/fr/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskeyを簡単にインストールするためのシェルスクリプトができました! いくつかの質問に答えるだけで、UbuntuサーバーへMisskeyを簡単にインストールできます! また、アップデートスクリプトもあります。 [v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\ [**English version**](./README.en.md) ## 準備するもの 1. ドメイン 2. Ubuntuがインストールされたサーバー 3. Cloudflareアカウント(推奨) :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。 ## Cloudflareの設定 Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 \ ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 \ (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. インストールをはじめる SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. アップデートする アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 \ [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 \ ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 \ また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 \ host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 \ アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 \ コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 \ (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 \ たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 \ 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/fr/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'このガイドはDockerを使ったMisskeyセットアップ方法を説明します。' --- # Docker Composeを使ったMisskey構築 このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::tip{label='前提条件'} - DockerおよびDocker Composeがインストールされていること。 ::: ## リポジトリの取得 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 設定 下記コマンドで、各種設定ファイルのサンプルをコピーします。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` `default.yml`と`docker.env`をファイル内の説明に従って編集してください。 \ また、必要に応じて、`docker-compose.yml`を編集します。(ポートを変更したい場合など) ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh sudo docker compose up -d ``` GLHF✨ ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 ## cliコマンドを実行する方法 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/fr/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/fr/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'このガイドではMisskeyのインストール・セットアップ方法について解説します。' --- # Misskeyを手動で構築する このガイドではMisskeyのインストール・セットアップ方法について解説します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: :::tip{label='前提条件'} #### 以下のソフトウェアがインストール・設定されていること - **[Node.js](https://nodejs.org/en/)** (v22.15.0 以降の v22 系 または v24.10.0 以降の v24 系) - **[pnpm](https://pnpm.io/)** (v10.16.0以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 ::: ## ユーザーの作成 Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskeyのインストール ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 設定 設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。 ```sh cp .config/example.yml .config/default.yml ``` `default.yml` をファイル内の指示に従って編集します。 ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` エディタで開き、以下のコードを貼り付けて保存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskeyサービスの起動 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 アップデートが終わり次第、Misskeyプロセスを再起動してください。 ```sh sudo systemctl restart misskey ``` :::tip ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ::: ================================================ FILE: content/fr/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https\://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. https\://dash.cloudflare.com/profile/api-tokens にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar\@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/fr/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskeyの保守・トラブルシューティング" description: "Misskeyサーバーの運営には定期的なメンテナンスが不可欠。役立つ情報や困ったときの対処法をご紹介します。" ================================================ FILE: content/fr/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/fr/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/fr/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/fr/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に\ GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 \ \ ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 \ \ 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 \ \ 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 \ \ それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 \ \ ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/fr/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/fr/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/fr/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "モデレーション上のお役立ち情報" description: "実際にサーバーを運営するにあたり役立つ情報についてまとめています。" ================================================ FILE: content/fr/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/fr/docs/4.for-developers/_dir.yml ================================================ title: "開発者向け" description: "プラグイン・Play開発者や、APIを利用した外部アプリケーションの開発者向けリソース。" ================================================ FILE: content/fr/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/)\ Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:`\ Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:`\ [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、Misskey Play、Scratchpadで使用できます。 ドキュメントは未整備(TODO)ですが、インターネット上に有志の方が執筆された解説記事があります。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str`\ 返り値: `str`\ Misskey内の全てのAiScript環境で使用できます。 \ 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any`\ 返り値: `null`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 \ コンソールに文字列を出力します。 \ `<:`構文も同様の働きをします。 ================================================ FILE: content/fr/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\\ ::: ================================================ FILE: content/fr/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/fr/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/fr/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # チャンネル一覧 ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/fr/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/fr/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/fr/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/fr/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/fr/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/fr/docs/4.for-developers/bot/1.index.md ================================================ # Botの作成 [Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 ## 関連リソース - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/fr/docs/4.for-developers/plugin/_dir.yml ================================================ title: "プラグイン・Playの作成" description: "プラグインやPlayを作成する方法・各種リファレンスを公開中。" ================================================ FILE: content/fr/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/fr/docs/4.for-developers/plugin/create-plugin.md ================================================ # プラグインの作成 Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/fr/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/fr/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/fr/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # リリースノート Misskeyのリリースノートを掲載しています。 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/fr/docs/6.donate.md ================================================ # プロジェクトへの寄付 :::tip 法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/) ::: Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(サーバーによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。以下の方法で受け付けています。(本ページの内容をよくお読みになったうえでご寄付をお願いします) - 継続支援 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 単発支援 - (おすすめ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 仮想通貨: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazonの欲しいものリスト](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 高額の寄付(例えば3万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。 ::: :::tip 額に応じて以下の返礼を用意しています。 - 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与 - 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載 - 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載 ::: - 20,000円以上: ↑ + [MisskeyIDプレートの交付](/docs/mi-card/) ::: :::warning いかなる場合(何らかの理由で返礼を受け取れなかった等も含む)も、返金を行うことはできません。ご了承の上、ご寄付をお願いいたします。 ::: :::warning \*\*バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて@syuilo\@misskey.ioまでお申し付けください。また、misskey.io以外のサーバーからはメンション届かない場合があります) ::: (メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります。どうしても連絡がつかない場合はMisskey Projectお問い合わせフォームよりご連絡ください) ::: また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 ================================================ FILE: content/fr/docs/7.become-a-sponsor.md ================================================ # スポンサーについて :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Misskey Projectはスポンサーを募集しています。 スポンサーになると、MisskeyやMisskey Hubへの会社ロゴ掲載や、技術サポートを受けることができます。 [詳細はこちらからお問い合わせください。](/contact/) ================================================ FILE: content/fr/docs/8.mi-card.md ================================================ # MisskeyIDプレート Misskey Projectへのご支援特典として、物理的な「MisskeyIDプレート」をご用意しています! **MisskeyIDプレートは、シリアルナンバーが刻印されたあなただけの金属製IDプレートです。** ずっしりと重厚な金属製プレートに精密な加工を施し、ステータス性の高いメタルプレートに仕上げました。 しゅいろによって表面、裏面ともに丁寧にデザインされています。一生モノとしてぜひお手元でお楽しみください! 実物の動画は[こちら](https://www.youtube.com/shorts/AdzzwxEa-WE) (照明の関係で金色にも見えますが実際は銀色です) ## プレート仕様 - 寸法: 54.0mm x 85.6mm - 質量: 約34g - 素材: 1.0mm厚鏡面仕上げステンレス鋼 - 加工: 鏡面加工(表面部)、エッチング加工(表面その他)、シルク印刷(ロゴ部)、レーザー刻印(ナンバリング部) - 意匠: しゅいろによるデザイン / シリアルナンバー、バーコード、二次元コード、藍ちゃんサイン刻印付き オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(無料) ### 3Dで見る ::X__Docs__mi-card__InteractiveView :: ※裏面のデザインは省略されています。モデルは実物を正確に再現するものではありません。 ## 交付対象 **累計の支援金額が2万円以上の方に1枚進呈させていただきます。** :::g-details{summary='2枚以上ご希望の場合'} 2枚以上ご希望の場合は、3万円ごとに1枚追加で進呈いたします。 追加で受け取り可能な枚数は、支援額から2万円を引いた額を3万円で割った数になります。 例えば、支援額の合計が5万円以上で合計2枚、8万円以上で合計3枚、というような計算になります。 合計で何枚受け取り可能かを計算できます: ::X__Docs__mi-card__Calculator :: なお、在庫状況によっては、ご希望の枚数をご用意することが叶わない場合があります。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: USドルでの支援は、いつ支援かにかかわらず 1USD = 150JPY 換算といたします。その他の通貨の場合の扱いについてはご相談ください。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 なお現在、大変申し訳ございませんが配送の都合上、**交付は日本国内に居住されている方のみ対象とさせていただいています。** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** 各Misskeyサーバーへの支援はこちらの特典の対象となりませんのでご注意ください。 [Misskey Projectへの支援はこちらから](/docs/donate/) ::: :::tip 累計支援額の計算には支援方法、期間は問いません。 例えば、2023年にPayPalで5000円の支援をいただき、2024年にFanboxで12000円、Amazonの欲しいものリストで3000円分のギフトを頂いたようなケースでも、5000 + 12000 + 3000 = 20000 となり受け取りの権利があります。 ::: ## 申請方法 お手数ですが以下のフォームから申請を行ってください。(Googleアカウントが必要です) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 配送は日本郵便にて行います。**送料は無料です。** - 発送時は追跡番号をメールにてご連絡いたします。 - 土日も配達されます。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。お手元に到着時、万が一損傷などありましたら日本郵便へお問い合わせお願いします。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 また、配送方法のご指定は承れません。 ::: ## 注意事項 - 仕様は予告なく変更することがあります。 - シリアルナンバーは選択いただけません。 - 細かなキズが製造上少なからず発生しますがご容赦ください。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 予告なく配布を一時停止または終了することがあります。 - 予告なく交付基準額を変更することがあります。 - 紛失・破損・盗難等された場合に再発行はできませんので大切に保管してください。 - 転売・譲渡はご遠慮いただけますと幸いです。 ================================================ FILE: content/fr/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/id/contact-faq/0.cannot-create-account.md ================================================ --- question: アカウントが作成できません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/id/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: アカウントにログインできません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/id/contact-faq/2.delete-account.md ================================================ --- question: アカウントを削除したい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/id/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 〇〇のサーバー上にあるコンテンツを削除してほしい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** 自サーバー・他サーバーのコンテンツのモデレーションについては、各サーバーのルールに則って行われますので、当該コンテンツの送信元サーバーの管理者に連絡するか、当該ユーザーやサーバーをブロックして自己防衛するなどして対応してください。 ================================================ FILE: content/id/contact-faq/4.copyright-infringement.md ================================================ --- question: 著作権侵害を見つけた --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/id/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/id/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/id/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Dokumentasi mengenai Misskey.' --- # Tentang Misskey Misskey merupakan platform mikroblog sumber terbuka dan terfederasi. Pengembangannya dimulai pada tahun 2014 oleh syuilo di Jepang. Terdapat fitur berlimpah seperti Drive atau Reaksi dan juga antarmuka yang sangat bisa diubah suaikan. ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## Sejarah Saat Misskey dimulai dari Papan Buletin sebagai fitur utamanya, pertumbuhan popularitas karena tambahan linimasa yang mengizinkan pengguna mengirim pesan pendek dan melihatnya secara urut waktu membuat pergeseran fokus pengembangan ke arah fungsionalitas tersebut. Saat itu, Misskey bukanlah layanan terdesentralisasi. Tetapi setelah mengadopsi ActivityPub pada tahun 2018, hal tersebut menjadikan Misskey sebagai layanan terdesentralisasi. Dimulai dari sana, Misskey akhirnya dikenal dan digunakan oleh banyak orang. :::tip Nama "Misskey" berasal dari lagu berjudul "Brain Diver" oleh band bernama May'n yang syuilo dengarkan saat itu. ::: Siapapun juga dapat bergabung ikut mengembangkan, pengembangan Misskey sendiri masih terus berlanjut hingga sekarang. [Misskey歴史資料館](/about-us/history/) ## Apa yang dimaksud dengan "Terdesentralisasi"? Terdesentralisasi, merujuk pada layanan yang fiturnya membagi komunitas ke dalam banyak peladen yang dapat saling berkomunikasi (federasi) untuk membagikan konten, membangun jaringan (Fediverse). Layanan yang hanya terdapat satu peladen, disebut sebagai tersentralisasi. Kebanyakan layanan masuk kategori tersentralisasi, termasuk Twitter atau Facebook. Manfaat dari layanan terdistribusi adalah kamu dapat memilih administrator atau tema peladen sesuai keinganan.Bisa juga kamu membuat peladen sendiri.Terima kasih kepada sifat alamiah desentralisasi, kamu dapat mengakses komunitas yang sama, tidak peduli server mana yang kamu pilih. ## Selalu sumber-terbuka Misskey akan selalu menjadi perangkat lunak sumber terbuka.Artinya, secara sederhana, kode sumber perangkat lunak (program) Misskey tersedia dan dapat diakses secara publik.Ini juga termasuk kemampuan untuk menyesuaikan atau mendistribusikan kembali kode sumber sesuai definisi. Seluruh kode sumber Misskey [dilisensikan](https://github.com/misskey-dev) di bawah lisensi sumber terbuka [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE), artinya siapa saja bebas menginspeksi, menggunakan, menyesuaikan, mengubah, atau mendistribusikan ulang jika memang sesuai. Sumber terbuka memiliki banyak kemampuan, termasuk mengizinkan siapa pun mengubah sesuai keinginan, untuk memastikan kode tidak menyertakan komponen berbahaya dan memudahkan orang berpartisipasi dalam pngembangannya. Untuk merealisasikan sifat alamiah terdistribusi Misskey, konsep sumber terbuka ini sangat diperlukan. Menggunakan contoh yang sama seperti sebelumnya, kebanyakan layanan berorientasi profit seperti Twitter, Facebook, dll bukanlah sumber terbuka. :::tip Secara teknis, kode sumber Misskey dikelola via Git, dan repositorinya disimpan di [GitHub](https://github.com/misskey-dev). ::: ## Bergabung di pengembangan dan mendukung proyek Jika kamu menyukai Misskey, harap dukung proyek ini.Mendukung proyek dapat dilakukan dengan banyak cara, beberapa di antaranya seperti di bawah ini.Beberapa tidak membutuhkan keahlian pemrograman, jadi siapa saja dapat mendukung Misskey dengan caranya sendiri.Kami selalu menunggu dukunganmu. ### Menambahkan fitur atau memperbaiki bug Jika kamu memiliki keahlian rekayasa perangkat lunak, kamu dapat berkontribusi dengan mengedit kode sumbernya. Sebagai panduan dari cara ini, silakan lihat [di sini](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). ### Berpartisipasi dalam diskusi Kamu dapat berkontribusi dengan membagikan opinimu pada fitur baru atau fitur yang sudah ada, dan juga melaporkan bug. Diskusi ini dapat dilakukan di [GitHub](https://github.com/misskey-dev), di [Forum](https://forum.misskey.io/), atau di tempat lain. ### Menerjemahkan teks Misskey tersedia dalam banyak bahasa (atau dijuluki dengan i18n, singkatan dari Internationalization).Meskipun bahasa asalnya merupakan bahasa Jepang, sukarelawan dapat menerjemahkan Misskey ke bahasa lainnya. Membantu penerjemahan juga merupakan sebuah bentuk kontribusi. Misskey menggunakan layanan [Crowdin](https://crowdin.com/project/misskey) untuk mengelola penerjemahannya. ### Membagikan kesanmu Di samping melaporkan bug, silakan bagikan kesan positif seperti bagian Misskey yang kamu sukai, atau apa pun tentang Misskey yang membuatmu senang.Kesan-kesan seperti ini memberikan motivasi kepada pengembang, dan itu terhitung mendukung proyek secara tidak langsung. ### Meningkatkan jumlah Misskist "Misskist" merujuk pada orang yang menggunakan Misskey. Dengan menyebarkan kabar seputar Misskey lewat pengenalan kepada kenalanmu, jumlah Misskist mungkin saja naik, yang bakal menjadi motivasi pengembang. ### Berdonasi [Silakan lihat ini](/docs/donate/) ## Pertanyaan Sering Diajukan ### Apa tujuan yang ingin dicapai dalam proyek ini? Terus terang saja, meski sedikit agak kabur, Misskey bertujuan dipakai lebih banyak orang sebagai platform umum. Tidak seperti platform lain, Misskey tidak didasari oleh visi atau gagasan khusus (contohnya, anti-sentralisasi) dan dikembangkan dengan prinsip seperti itu, jadi sebetulnya ia "tidak memiliki tujuan". Di lain makna, prinsip tersebut menciptakan fleksibilitas karena tidak terikat dengan arah tujuan spesifik. ### Apakah Misskey dikembangkan oleh perusahaan? Tidak.Misskey dikembangkan oleh perorangan dan tidak dikomersialisasi melalui hubungan dengan perusahaan tertentu. Anggota pengembangan umumnya adalah sukarelawan. Sebagai tambahan, ada beberapa sponsor perusahaan, tapi pengembangan masih terpusat di tengah komunitas. ### Siapa yang mengelola Misskey? Karena sifat alamiah Misskey yang terdesentralisasi, setiap peladen memiliki administratornya sendiri.Karena itu, tidak semua Misskey dikelola oleh seseorang atau sebuah perusahaan. Artinya, tim pengembangan tidak mengendalikan server individu, untuk menanyakan hal seputar pengelolaan, kamu harus menghubungi administrator servermu. Kamu dapat memverifikasi siapa saja pengelola server di halaman ini. Jika kamu membuat server Misskey, maka kamulah yang menjadi administratornya. ### Peladen mana yang seharusnya aku pilih? [Kamu dapat menemukan daftar peladen di sini](/servers/). Tergantung peladennya, komunitas atau tema beragam (contohnya, tentang menyukai acara tertentu), jadi bila terdapat peladen yang cocok dengan ketertarikanmu, bergabung di sana merupakan pilihan yang tepat. Di samping itu, ukuran peladen, basis pengguna, negara atau berbahasa sama, ketergantungan atau kepercayaan terhadap tim administrator, dan lainnya juga dapat termasuk sebagai kriteria. Jadi, tidak ada peladen tunggal yang menjadi peladen resmi Misskey.Kamu juga memiliki pilihan untuk membangun sendiri peladen baru. Pokoknya, tidak peduli peladen mana tempatmu bergabung, kamu akan tetap dapat terkoneksi dengan orang-orang dari peladen lainnya. ### Bagaimana cara membuat peladen sendiri? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 Misskeyサーバーの作成には、専用のサービスを使う方法や、半自動で環境を構築する方法などがあります(もちろん手動でサーバーを構築することも可能です)。詳細については[こちら](/docs/for-admin/install/guides/)をご覧ください。 ### Teknologi apa saja yang Misskey gunakan? Mengingat pengembangan Misskey terus berlanjut, teknologi yang digunakan berubah-ubah.Pada awalnya, Misskey menggunakan kombinasi MySQL + PHP + jQuery, tetapi sekarang menggunakan teknologi di bawah ini. - Peladen: Node.js - Basis data: PostgreSQL, Redis - Kerangka kerja antarmuka: Vue.js - Bahasa Pemrograman: TypeScript Sebagai tambahan, Misskey juga menggunakan teknologi turunan seperti MFM atau AiScript. ### Apakah ini fork dari Mastodon? Bukan.Misskey adalah proyek yang benar-benar sangat berbeda dari Mastodon atau proyek serupa lainnya dan sudah dikembangkan sejak lama.Namun setelah kemunculan Mastodon, Misskey akhirnya menjadi jaringan terdesentralisasi. Kedua proyek memang sama-sama menerapkan protokol ActivityPub, tapi sama sekali tidak memiliki hubungan antar satu sama lain. ### Apakah ada aplikasi untuk iOS / Android tersedia? Tidak ada aplikasi Misskey resmi yang eksis untuk kedua sistem operasi, tapi ada yang menyediakan aplikasi pihak ketiga. Rincinya, silakan lihat [di sini](/docs/for-users/resources/apps/). Bagaimana pun, fungsionalitas aplikasi pihak ketiga akan tertinggal dari klien Web resmi, kecuali kamu benar-benar ingin sekali menggunakan aplikasi murni, kami sarankan untuk menggunakan klien web resmi. Karena klien Web Misskey mendukung PWA, jadi sangat mungkin menjadikannya seperti aplikasi murni. :::tip PWAの設定方法については[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ::: ### Dimana aku dapat mengunduh logo atau ikon Misskey? Silakan rujuk ke [koleksi aset](/brand-assets/). ### Siapa gadis imut bertelinga kucing yang sering muncul di Misskey? :::fukidashi{chara="doya_ai" charaName="藍(Ai)"} Kalo mau tau lebih jauh tentang aku, lihat dan kunjungi aku ke [situs ini](https://xn--931a.moe/)! ::: ::: :::fukidashi{chara="syuilo" charaName="しゅいろ(syuilo)" direction="right"} Dia adalah dewa penjaga Misskey, Ai.(Hiyaaaaa, mereka menganggap Ai lucu!) ::: ================================================ FILE: content/id/docs/2.for-users/1.index.md ================================================ # ユーザー向けガイド このセクションでは、Misskeyを初めて利用する方はもちろん、すでに利用されている方にも役立つ一般的な機能についてご紹介しています。 ================================================ FILE: content/id/docs/2.for-users/2.onboarding/0.index.md ================================================ # Memulai dengan Misskey Pada tempat ini, kamu akan menemukan tutorial yang akan membantumu untuk memulai dengan Misskey. Utamanya adalah, - Poin kepada catatan mengenai platform desentralisasi - Apa itu peladen?Bagaimana caranya memilih sebuah peladen? - Proses pendaftaran (registrasi) - Pengetahuan dasar minimum Dengan mengikuti instruksi berikut, kamu dapat memulai menggunakan Misskey dengan cepat. Tunggu apa lagi, ayo kita mulai!(Tekan "Selanjutnya" untuk melanjutkan) ================================================ FILE: content/id/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Terdapat beberapa catatan sebelum membuat sebuah akun pada peladen Misskey.' --- # Catatan Penting Terdapat beberapa poin yang perlu diketahui ketika menggunakan layanan yang memakai Misskey. - Dikarenakan dari sifat desentralisasi itu sendiri, data yang telah terunggah tidak akan terjamin akan dihapus dari semua peladen lain yang terhubung, meskipun data tersebut telah terhapus.(Akan tetapi, pernyataan ini tentu jelas benar sekali untuk Internet secara umum) - Bahkan jika sebuah postingan yang dibuat sebagai privat, tidak ada jaminan bahwa peladen lain akan memperlakukannya sebagai privat juga.Jadi, mohon dengan sangat hati-hati ketika memposting informasi personal ataupun konfidensial yang bersifat rahasia.(Akan tetapi, sekali lagi pernyataan ini juga benar untuk Internet secara umum) - Fitur "Drive" yang terdapat di dalam Misskey, merupakan fitur yang fasilitasnya diperuntukkan mengganti layanan penyimpanan awan pada umumnya.Fungsionalitas dari Drive dikembangkan untuk peruntukan kemudahan dalam mengelola beserta penggunaan kembali dari berkas yang telah di unggah pada peladen Misskey. Data yang telah diunggah pada fitur Drive dapat diakses oleh siapa saja yang mengetahui URL data yang diunggah, terlepas dari apakah pengunggah pernah melampirkannya ke dalam catatan atau tidak.Mohon gunakan layanan yang telah diperuntukkan atau disesuaikan secara khusus untuk penggunaannya apabila kamu ingin membagikan/melakukan pertukaran data yang bersifat dan memiliki informasi sensitif. - Penghapusan akun merupakan proses yang intensif dan kemungkinan memakan waktu yang panjang.Pada kasus dimana terdapat banyak jumlah data yang terunggah, sangatlah tidak mungkin untuk menghapus akun secara sepenuhnya. - Beberapa peladen berkemungkinan menanggung dan membayar biaya operasinya melalui penghasilan dari iklan.Selain itu, aplikasi pemblokir iklan sering kali salah memblokir konten atau fitur yang sepenuhnya tidak terkait dengan iklan. Yang mana pemblokir iklan dapat mengganggu dengan operasi klien dan mencegahmu dari menggunakan Misskey dengan baik.Oleh karena itu, mohon untuk menggunakan Misskey dengan menonaktifkan aplikasi/ekstensi pemblokir iklan dan fitur semacamnya. Mohon untuk dipertimbangkan serta dipahami dari poin-poin yang disebutkan di atas dan bersenang-senanglah dengan menggunakan layanan kami. ================================================ FILE: content/id/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Pada bagian ini menjelaskan proses pendaftaran pengguna pada peladen Misskey dan operasi dasar-dasarnya." --- # Mencari Peladen Misskey Misskey merupakan sebuah perangkat lunak dan juga sebuah proyek. Peladen yang menjalankan Misskey dan tersedia untuk umum di Internet disebut dengan **server**. Untuk menggunakan Misskey, kamu perlu membuat akun di salah satu peladen dan menggunakan server dari penyedia jasa layanan hosting yang menyewakan server tersebut. Kamu dapat memilih peladen manapun dari [daftar peladen](/servers/) :::tip Dengan memilih peladen manapun, kamu dapat terhubung dengan pengguna lain di peladen yang berbeda. ::::g-details{summary='Detil'} Misskey memiliki fungsionalitas federasi. Fungsionalitas dari federasi ini memungkinkan pengguna dari peladen yang berbeda dapat mengikuti, mereaksi ataupun mencatat ulang dengan cara yang sama seperti pengguna pada peladen yang sama. Fungsionalitas federasi dalam Misskey didasarkan atas teknologi standar terbuka umum yang disebut ActivityPub dan kompatibel dengan piranti lunak lainnya seperti Mastodon dan Pleroma ::: ::: ## Bagaimana caranya memilih sebuah peladen? ### Tema Peladen Beberapa peladen memiliki tema mereka masing-masing dan terkadang spesifik. Hal ini dikarenakan setiap peladen memiliki hal yang spesial atau yang mereka sukai dari isi para penggunanya. Seperti contohnya, "Peladen berisi penggemar anime", "Peladen berisi pengguna yang bekerja sebagai ilustrator", dsb. :::tip Daftar dari peladen dapat kamu lihat di [sini](/servers/). ::: ================================================ FILE: content/id/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # Bergabung dengan peladen Setelah kamu memutuskan untuk mendaftar ke peladen mana yang kamu inginkan, sekarang saatnya untuk membuat akun pada peladen tersebut. :::tip Pada panduan ini, kita gunakan Misskey.io sebagai contoh, namun metode pendaftaran pada umumnya semua sama di peladen lain. Namun, informasi yang kamu masukkan kemungkinan bervariasi bergantung dengan peladen itu sendiri.Untuk lebih detilnya, mohon hubungi admin peladen kamu untuk informasi lebih lanju. ::: ## Mendaftar Pertama, cari dan klik tombol "**Gabung ke peladen ini**" pada halaman labuh utama peladen. ![Tombol gabung ke peladen ini](/img/docs/for-users/onboarding/join-server/1.ja.png) Selanjutnya, ikuti pentunjuk pada layar untuk memastikan serta membaca syarat ketentuan dan aturan peladen sebelum melanjutkan. Setelah syarat ketentuan serta aturan peladen disepakati. Selanjutnya adalah mengisi beberapa item yang diperlukan untuk mendaftar. Item utama yang perlu diisi merupakan berikut - Kode undangan (hanya diperlukan apabila pendaftaran dibuka hanya melalui jalur undangan.Apabila kamu tidak memiliki kode undangan, kamu tidak dapat mendaftar ke peladen.) - Nama pengguna (**Tidak dapat diubah seterusnya.Apabila dan setelah kamu menghapus akun kamu yang sudah didaftarkan, kamu tidak dapat mendaftarkan akun dengan nama pengguna yang sama kembali.**) - Alamat surel (beberapa peladen tidak membutuhkannya) - Kata sandi ![Isi informasi yang dibutuhkan](/img/docs/for-users/onboarding/join-server/2.ja.png) Setelah kamu mengisi informasi yang dibutuhkan, kamu akan menerima surel konfirmasi pada alamat surel kamu bagi peladen yang meminta alamat surel pada pendaftaran. Maka mohon untuk mengklik tautan pada isi surel tersebut secepatnya agar akun kamu dapat segera digunakan. ![Surel konfirmasi](/img/docs/for-users/onboarding/join-server/3.ja.png) Dengan ini, pendaftaran ke peladen Misskey telah selesai! Sekarang kamu adalah seorang [Misskist](../resources/glossary/#misskist)!Nikmati terus komunikasi yang menyenangkan bersama Misskey. ================================================ FILE: content/id/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Dasar-dasar Misskey Berikut beberapa hal yang seharusnya kamu tahu sebagai akun kreator dalam Misskey. ## Catatan Postingan pada Misskey disebutnya adalah "Catatan".Terdapat beberapa banyak fitur yang dibandingkan dengan Twitter maupun situs jejaring sosial populer lainnya, maka pastikan untuk mengecek semuanya sebelum kamu membuat postingan pertama kamu. :::tip Untuk informasi lebih lanjut, lihat "[catatan](/docs/for-users/features/note/)." ::: ## Lini masa Misskey memiliki beberapa macam lini masa.Nama dari lini masa tersebut mungkin sedikit membingungkan, maka dari itu sangatlah penting untuk mengetahui bagaimana cara masing-masing dari lini masa tersebut bekerja. :::tip Untuk informasi lebih lanjut, lihat "[Lini masa](/docs/for-users/features/timeline/)." ::: ## Lainnya Misskey juga memiliki banyak fitur lainnya yang membuatnya makin menyenangkan untuk digunakan!Deskripsi dari semua fitur yang terdaftar ada di [sini](/docs/for-users/features/), jadi pastikan untuk melihat dan mencoba semuanya! ================================================ FILE: content/id/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Kami akan menjeleskan beberapa banyak fungsi yang menjadi fitur utama dari Misskey." --- # Fitur Karakteristik utama dari Misskey adalah beberapa fiturnya yang tidak dimiliki oleh sistem mikroblog lain.Kami akan menjelaskan fitur-fitur tersebut beserta fungsinya di sini. ================================================ FILE: content/id/docs/2.for-users/3.features/ads.md ================================================ # Iklan Misskey dapat menampilkan iklan di dalam lini masa instansi dan tempat lainnya apabila diaktifkan oleh administrator instansi. Kamu dapat mengurangi seberapa sering iklan akan dimunculkan dengan mengeklik di bagian pojok kanan dari iklan. :::tip Jika angka total dari iklan ditampilkan dari instansi lebih kecil, maka iklan kemungkinan akan tetap ditampilkan sering kepada kamu meskipun kamu telah memilih untuk mengurangi seberapa sering iklan dimunculkan. ::: ## Mengatur Iklan (Admin) Kamu dapat menambahkan, menyunting, dan menghapus iklan dari panel kendali instansi kamu. Dalam bilah panel tersebut kamu dapat mengatur gambar, URL tujuan, bentuk, dan presentasi penampilan untuk iklan. ================================================ FILE: content/id/docs/2.for-users/3.features/antenna.md ================================================ # Antena Antena merupakan fitur yang memperbolehkanmu mengatur kondisi set secara bebas untuk lini masa kustom dan secara otomatis mengumpulkan catatan yang cocok. Kondisi antena bisa termasuk kondisi untuk mencakup/mengecualikan kata kunci tertentu dan tag dalam kombinasi berbeda serta opsi lainnya. Ketika catatan yang diposting cocok dengan sebuah kondisi antena, catatan akan ditambahkan secara otomatis ke dalam lini masa antena tersebut. ================================================ FILE: content/id/docs/2.for-users/3.features/charts.md ================================================ # Bagan Misskey dapat menghasilkan dan menampilkan bagan untuk sumber data berbagai instansi yang terfederasi. Bagan memungkinkan kamu untuk mendapatkan representasi gambaran dari penggunaan, status federasi, dan aktivitas setiap pengguna. Bagan instansi dapat dilihat dari halaman informasi instansi (dapat diakses dengan mengeklik logo instansi dalam menu navigasi). Berikut di bawah ini merupakan deskripsi dari setiap bagan dan isinya. ## Bagan Federasi Bagan ini menampilkan informasi tentang instansi yang terfederasi. ### Pub Jumlah instansi luar yang menerima aktivitas publikasi dari instansi ini. Dengan kata lain, menampilkan angka dari pengguna instansi luar unik yang mengikuti pengguna dari instansi sendiri. ### Sub Jumlah instansi luar yang mempublikasikan aktivitasnya ke instansi ini. Dengan kata lain, menampilkan angka dari pengguna instansi luar unik dari instansi peladen luar yang diikuti oleh pengguna dari instansi sendiri. ### Received Jumlah instansi yang telah mengirim aktivitasnya ke instansi ini. ### Delivered Jumlah instansi yang menerima aktivitas dari kiriman instansi ini. ### Stalled Jumlah instansi dimana kesalahan ditemukan ketika mengirimkan aktivitas. ## Bagan Pengguna Aktif Bagan dari aktivitas pengguna pada instansi ini. ### Read & Write Jumlah pengguna yang telah melihat dan menulis konten. ### Read Jumlah pengguna yang telah melihat konten. ### Write Jumlah pengguna yang telah menulis konten. ### < Week Jumlah pengguna yang telah melihat konten dan umur akunnya kurang dari satu minggu. ### < Month Jumlah pengguna yang telah melihat konten dan umur akunnya kurang dari satu bulan. ### < Year Jumlah pengguna yang telah melihat konten dan umur akunnya kurang dari satu tahun. ### > Week Jumlah pengguna yang telah melihat konten dan umur akunnya lebih dari satu minggu. ### > Month Jumlah pengguna yang telah melihat konten dan umur akunnya lebih dari satu bulan. ### > Year Jumlah pengguna yang telah melihat konten dan umur akunnya lebih dari satu tahun. ================================================ FILE: content/id/docs/2.for-users/3.features/clip.md ================================================ # Klip Klip merupakan fitur yang memperbolehkanmu untuk membuat koleksi dari sebuah catatan.Catatan tersebut bisa dari yang kamu buat ataupun orang lain yang membuatnya. Kamu dapat membuat banyak klip dan mengelolanya dengan memberikan nama serta deskripsi masing-masing.Kamu juga dapat memilih untuk membuat klipmu menjadi publik agar dapat dilihat oleh pengguna lain. Untuk membuat klip, klik "Tambah" pada [halaman kelola klip](x-mi-web://my/clips). Untuk menambahkan catatan ke dalam klip, pilih opsi "Klip" pada menu catatan. Lalu pilih salah satu klip untuk menambahkan catatan tersebut ke dalam klip. ================================================ FILE: content/id/docs/2.for-users/3.features/custom-emoji.md ================================================ # Emoji kustom Emoji Kustom merupakan fitur yang dapat membolehkan kamu untuk menggunakan gambar apapun yang disediakan oleh instansimu sebagai emoji. Kamu dapat menggunakan emoji tersebut di tempat seperti catatan, reaksi, obrolan, profil kamu, nama kamu, dll. Untuk menggunakan emoji kustom di salah satu tempat tersebut, tekan tombol pemilih emoji (jika tersedia) atau ketik `:` untuk menampilkan saran emoji. Jika string dari bentuk `:foo:` ditemukan dalam teks, bagian `foo` akan diinterpretasikan sebagai nama emoji kustom dan akan digantikan dengan emoji kustom terkait ketika ditampilkan. Kamu dapat melihat emoji kustom mana yang tersedia pada instansimu dengan mengunjungi menu [**emoji kustom**](x-mi-web://about#emojis) pada **informasi instansi** dari web instansi peladen Misskey kamu. ================================================ FILE: content/id/docs/2.for-users/3.features/deck.md ================================================ # Antarmuka Deck Antarmuka Deck merupakan salah satu antarmuka yang tersedia di dalam Misskey.Antarmuka ini dikarakterisasikan dengan kemampuannya untuk membuat antarmuka yang informatif dan sangat disesuaikan dengan menampilkan beberapa tampilan yang disebut "kolom" secara berdampingan. Opsi deck hanya tersedia pada layar yang membutuhkan ukuran besar seperti komputer/laptop. ## Menambahkan Kolom Kamu dapat menambahkan kolom dengan mengeklik kanan pada bagian latar deck dan memilih "Tambah Kolom". Kamu juga dapat mengeklik ikon '+' pada sisi kanan layar. ## Pindahkan Kolom Kolom dapat diposisikan ulang dengan seret dan lepas atau dengan menggunakan menu kolom opsi "Pindah" (klik kanan pada kepala kolom). ## Pembagian Kolom Secara Horisontal Kolom dapat disusun secara vertikal maupun horisontal. Buka menu kolom dan pilih "Tumpuk dengan kolom kiri" untuk memindahkan kolom saat ini ke bawah kolom yang ada di sebelah kiri kolom. Untuk membongkar kolom, pilih "Lepaskan kolom ke kanan" dari menu kolom. ## Atur Tata Letak Kolom Pilih "Atur Kolom" dalam menu kolom untuk menyunting aturan tata letak kolom. Jika kolom diatur ke fleksibel, maka kolom akan memperluas di luar aturan lebar untuk mengisi ruang horisontal pada layar.Dalam pengaturan ini kamu juga dapat mengubah nama dan lebar kolom. ## Pengaturan Deck Pengaturan yang terkait dengan Deck dapat diubah pada menu [pengaturan](x-mi-web://settings/deck) (klik pada ikon gir di bawah kanan layar). ================================================ FILE: content/id/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/id/docs/2.for-users/3.features/drive.md ================================================ # Drive Drive merupakan fitur yang memungkinkan kamu untuk mengelola berkasmu di dalam Misskey. :::tip Secara teknis, drive dapat dilihat sebagai antarmuka dimana semua berkas secara sentral dikelola oleh sistem Misskey, yang mana juga terbuka untuk pengguna. ::: Kamu dapat mengunggah berkas apapun secara langsung ke [halaman Drive](x-mi-web://my/drive) pada Misskey Web, dan gambar apapun yang kamu atur sebagai avatarmu atau berkas yang kamu lampirkan pada catatanmu juga akan diunggahkan ke Drive. :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: Berkas yang diunggah ke drive dapat diunduh kapan saja, atau berkas dapat digunakan kembali dengan menggunakan 'lampirkan berkas dari drive' ketika membuat catatan. Kamu juga dapat membuat folder di dalam drivemu untuk mengorganisir banyak berkas secara bersamaan. :::warning Untuk saat ini, ketika kamu menghapus sebuah berkas dari drive milikmu, semua konten (catatan, halaman, dll.) yang terlampirkan pada berkas tersebut juga akan dihapus. ::: ## Peringatan (NSFW) Peringatan atau NSFW (Not Safe For Work) merupakan tanda yang dapat diatur pada berkas di dalam drivemu. Berkas yang telah ditandai sebagai tidak aman untuk dilihat tidak akan ditampilkan tanpa interaksi pengguna. Penandaan ini dapat digunakan, sebagai contoh untuk mencegah gambar yang tidak sesuai untuk dilihat dan muncul tiba-tiba ketika sedang berada tempat kerja atau tempat publik. Penandaan ini dapat dinyalakan dan dimatikan secara manual, atau dapat ditetapkan berdasarkan kebijakan moderator. ================================================ FILE: content/id/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/id/docs/2.for-users/3.features/favorite.md ================================================ # Favorit Fitur ini memperbolehkanmu untuk menandai sebuah [catatan](./note) sebagai favorit. お気に入り登録したノートは、[お気に入りページ](x-mi-web://my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 ================================================ FILE: content/id/docs/2.for-users/3.features/follow.md ================================================ # Ikuti Ketika kamu mengikuti seorang pengguna, kamu akan melihat postingan mereka di lini masa berandamu.Akan tetapi, balasan mereka ke pengguna lain tidak akan diikutkan. Untuk mengikuti seorang pengguna, klik tombol "Ikuti" pada halaman profil pengguna. ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。Untuk batal mengikuti pengguna, klik tombol tersebut kembali. フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/id/docs/2.for-users/3.features/hashtag.md ================================================ # Tagar Tagar merupakan fitur yang memperbolehkanmu untuk menambahkan penanda pada postingan yang kamu buat. Tagar pertama di dunia #barcamp, dibuat oleh Chris Messina [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina) pada [24 Agustus 2007 jam 4:25 AM](https://twitter.com/chrismessina/status/223115412?lang=en).Setelah itu, ide dari menggunakan huruf pagar `#` untuk mencari pencarian lebih mudah dilahirkan kembali sebagai "tagar", sebuah kata yang dicetuskan dengan menggabungkan kata "tanda" yang berarti "penanda" atau "label", dan "pagar" dari bentuk hurufnya yang terlihat membagi dan memisah beberapa bagian. Kata tagar ini akhirnya diadopsi oleh Twitter secara resmi pada waktu itu.Secara tidak sengaja, Chris Messina memilih huruf `#` karena teringan dengan nama kanal IRC yang biasanya dimulai dengan `#`. ![Tangkapan layar dari utas tagar pertama yang mengatakan "bagaimana perasaanmu dengan menggunakan # (pagar) untuk grup. Sebagaimana dalam [psn] #barcamp?"](/img/docs/for-users/features/hashtag/1.ja.png) Cara menggunakan tagar dalam Fediverse sedikit berbeda dari bagaimana digunakan pada layanan tersentral seperti X dan Instagram.Dalam Fediverse, pencarian teks penuh terkadang susah, yang mana membuatnya sulit untuk menemukan postingan spesifik. Namun, apabila sebuah postingan memiliki sebuah tagar, kamu dapat menemukannya dengan mudah dengan cara mengikuti tagar tersebut.Sebagai tambahan, terdapat juga beberapa layanan di Fediverse yang disebut sebagai relay tagar. Relay tagar dapat mengirimkan postingan ke beberapa situs secara otomatis hanya dengan menambahkan tagar ke dalam relay tersebut. Oleh karena itu tagar merupakan fitur yang cukup penting. ================================================ FILE: content/id/docs/2.for-users/3.features/mention.md ================================================ # Sebutan アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/id/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM, yang merupakan singkatan dari Misskey Flavoured Markdown, adalah bahasa markup yang dapat digunakan pada berbagai tempat di dalam Misskey.' --- # MFM MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。 :::tip Beberapa dari sintaks MFM memiliki kompatibilitas dengan Markdown. ::: ## Contoh dimana MFM diperbolehkan dalam Misskey - Konten dalam catatan - Spoiler konten peringatan - Nama Pengguna - Profil Bio Pengguna ## Sintaks ### Sebutan `@` + nama pengguna dapat digunakan untuk menampilkan pengguna spesifik. :::tip Untuk informasi lebih lanjut mengenai sebutan, lihat di [sini](./mention.md). ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### Tagar `#` + penanda dapat digunakan untuk menampilkan tagar. :::tip Untuk informasi lebih lanjut mengenai tagar, lihat di [sini](./hashtag.md). ::: ``` #misskey ``` ### URL URL dapat ditampilkan. ``` https://example.com ``` ### Tautan Bagian tertentu dari teks dapat ditampilkan sebagai URL. ``` [contoh tautan](https://example.com) ``` :::tip Kamu dapat menyembunyikan pratinjau tautan dengan cara memprefiks teks tautan dengan `?`. ``` ?[contoh tautan](https://example.com) ``` ::: ### Emoji kustom Emoji kustom dapat ditampilkan dengan mengurung nama emoji kustom menggunakan tanda titik dua. :::tip Untuk informasi lebih lanjut mengenai emoji, lihat di [sini](./custom-emoji.md). ::: ``` :misskey: ``` ### Huruf Tebal Sorot tulisan dengan membuatnya tebal. ``` **Huruf Tebal** ``` ### Huruf Kecil Menampilkan konten menjadi kecil dan tipis. ``` Misskey membentangkan dunia Fediverse ``` ### Kutip Menampilkan konten sebagai kutipan. ``` > Misskey membentangkan dunia Fediverse ``` ### Tengah Menampilkan konten menjadi di tengah. ```
Misskey membentangkan dunia Fediverse
``` ### Yomigana (karakter Ruby) Yomigana dapat dilampirkan pada teks. ``` $[ruby Misskey ミスキー] ``` ### Kode (Dalam baris) Menampilkan sorotan sintaks untuk kode program secara dalam baris. ``` `<: "Halo, dunia!"` ``` ### Kode (Blok) Menampilkan sorotan sintaks dari kode program dalam sebuah blok. プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ``` ~ (#i, 100) { <: ? ((i % 15) = 0) "FizzBuzz" .? ((i % 3) = 0) "Fizz" .? ((i % 5) = 0) "Buzz" . i } ``` ### Putar Balik Balikkan konten secara horizontal atau vertikal. ``` $[flip Misskey membentangkan dunia Fediverse] $[flip.v Misskey membentangkan dunia Fediverse] $[flip.h,v Misskey membentangkan dunia Fediverse] ``` ### Font Setel font yang ditampilkan untuk konten. ``` $[font.serif Misskey membentangkan dunia Fediverse] $[font.monospace Misskey membentangkan dunia Fediverse] $[font.cursive Misskey membentangkan dunia Fediverse] $[font.fantasy Misskey membentangkan dunia Fediverse] ``` ### Buram/Kabur Konten dapat diburamkan.Ketika mouse diarahkan ke konten dan berada di atasnya, konten tersebut akan ditampilkan dengan jelas. ``` $[blur Misskey membentangkan dunia Fediverse] ``` ### Kotak Pencarian Sebuah kotak pencarian dapat ditampilkan. ``` misskey cari ``` ### Warna Latar/Karakter Warna dari latar depan dan latar belakang dapat diubah. Warna diekspresikan dengan menggunakan kode warna 3, 4, atau 6 digit. ``` $[fg.color=f00 Huruf Merah] $[bg.color=ff0 Latar Kuning] ``` ### Tepian/Bingkai Konten dapat dikelilingi oleh tepian/bingkai.Gaya dari tepian/bingkai juga dapat ditampilkan bermacam-macam. ``` $[border.style=solid,width=4 Bawaan] $[border.style=hidden Tanpa tepian] $[border.style=dotted,width=2 Titik-titik] $[border.style=dashed,width=2 Garis putus] $[border.style=double,width=4 Ganda] $[border.style=groove,width=4 Timbul A] $[border.style=ridge,width=4 Timbul B] $[border.style=inset,width=4 Set dalam A] $[border.style=outset,width=4 Set dalam B] $[border.color=d00 Warna tepian] $[border.width=5 Lebar tepian] $[border.radius=6,width=2 Radius tepian] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 Cukup paham]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 Cukup paham]] ``` ### Rotasi Putar konten sesuai sudut yang ditentukan. ``` $[rotate.deg=30 misskey] ``` ### Posisi Konten tidak dapat digeser. ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### Skala Menampilkan teks yang dibesarkan. ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### Animasi (Jelly) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### Animasi (Tada) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### Animasi (Lompat) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### Animasi (Memantul) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### Animasi (Putar) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### Animasi (Goyang) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### Animasi (Cubit) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### Pelangi ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow Huruf Tanpa Warna] $[rainbow $[fg.color=f0f Huruf Dengan Warna]] ``` ### Kelap-kelip ``` $[sparkle 🍮] ``` ### Polos Menonaktifkan pemformatan pada konten. ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## Informasi untuk Pengembang Implementasi penguraian dan perenderan MFM telah dipublikasikan sebagai _library_, yang mana memudahkan kamu untuk menggabungkan MFM ke dalam klien. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - Implementasi JavaScript dari MFM Parser - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - komponen Vue.js - [mfm.kt](https://github.com/samunohito/mfm.kt) - Implementasi parser Kotlin - [mfm_parser](https://pub.dev/packages/mfm_parser) - Implementasi parser Dart - [mfm](https://pub.dev/packages/mfm) - Gawit perenderan Flutter ================================================ FILE: content/id/docs/2.for-users/3.features/mute-and-block.md ================================================ # Bisukan dan Blokir Jika kamu tidak menyukai seorang pengguna, kamu dapat membisukan mereka untuk membuat mereka hilang dari lini masamu. Sebagai alternatif, kamu juga dapat memblokir pengguna untuk mencegah mereka melihat kontenmu atau berinteraksi dengan kamu dalam cara apapun. Orang tidak akan tahu bahwa kamu telah membisukan mereka, tetapi mereka tahu jika kamu memblokir mereka.Semua terserah pada keputusanmu untuk memilih opsi mana yang akan kamu pilih. :::tip Bisukan dan blokir dapat digunakan secara bersamaan. ::: :::warning Mohon pertimbangkan untuk melaporkan pengguna manapun yang melanggar Syarat dan Ketentuan ke moderator. ::: Dalam Misskey Web, kamu dapat melihat daftar pengguna yang telah kamu bisukan atau kamu blokir dengan menuju ke menu Pengaturan > Bisukan dan Blokir. ## Bisukan Jika kamu membisukan seorang pengguna, konten berikut mengenai pengguna tersebut tidak akan muncul kembali di Misskey: - Postingan pengguna (balasan serta renote dari postingan tersebut) dalam lini masa dan hasil pencarian postingan - Notifikasi dari pengguna tersebut - Riwayat pesan dengan pengguna di dalam obrolan Misskey - dan lain-lain. Untuk membisukan pengguna dalam Misskey Web, buka menu pada halaman profil pengguna dan tekan tombol "Bisukan". :::tip Pengguna yang dibisukan tidak akan diberi tahu bahwa kamu telah membisukan mereka, dan mereka tidak akan tahu bahwa kamu telah membisukan mereka. ::: ## リノートをミュート ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## Blokir Jika kamu memblokir pengguna, mereka tidak akan dapat melihat konten kamu dan mereka tidak akan dapat melakukan aksi berikut: - Mengikuti kamu - Menambahkanmu ke dalam daftar - Membalas atau merenote kamu - Memberikan reaksi atau memilih dari salah satu jajak pendapatmu - Mengirim pesan ke kamu - dan lain-lain. Serta juga, - Jika pengguna telah mengikuti kamu ketika kamu memblokir mereka, mereka akan membatalkan mengikuti kamu. - Jika pengguna telah memasukkan kamu ke daftar mereka ketika kamu memblokir mereka, kamu tidak akan dihapus dari daftar tersebut. Untuk memblokir pengguna pada Misskey Web, buka menu pada halaman profil pengguna dan tekan tombol "Blokir". :::warning Kamu tidak akan diberitahu bahwa kamu telah diblokir oleh seseorang, namun kamu tahu secara tidak langsung bahwa kamu telah diblokir karena kamu tidak dapat melakukan berbagai aksi yang disebutkan di atas, seperti mengikuti seseorang. ::: :::warning Orang lain tidak dapat melihat konten kamu, namun mereka akan tetap dapat melihat konten kamu jika mereka beralih akun atau keluar.Mohon pertimbangkan aksi ini hanya sebagai tindakan pencegahan tambahan dan sederhana. ::: ================================================ FILE: content/id/docs/2.for-users/3.features/note.md ================================================ # ノート ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## ノートを作成する Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## リノート 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## 公開範囲 ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### フォロワー 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### 指名 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 ### 公開範囲の比較
パブリックホームフォロワー指名
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## 新規投稿の通知 ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/id/docs/2.for-users/3.features/online-status.md ================================================ # Status Online **Status Online** adalah indikasi status penggunaan Misskey pengguna. Status online ditampilkan sebagai indikator di sudut ikon pengguna, Misalnya pada halaman pengguna
Warna Status Deskripsi
Hijau Online Pengguna Misskey dianggap sedang digunakan saat ini.
Kuning Aktif 今は退席しているものの、Misskeyの利用自体は行われている状態
Merah Offline Misskeyを利用していないと考えられる状態
Abu Tidak diketahui Status diatur menjadi privat atau status tidak diketahui
オンラインステータスは自動的に変わり、手動で設定することは出来ません。 設定により、オンラインステータスを非公開にすることができます。 :::warning ユーザーのサジェストなど、一部の機能においてはオンラインステータスを元に処理される場合があるため、ステータスを非公開にすると他のユーザーから見つけにくくなることがあります。 ::: ================================================ FILE: content/id/docs/2.for-users/3.features/pages.md ================================================ # Halaman Kamu dapat membuat Halaman di Misskey yang terpisah dari Catatan.Pada versi 13 kami membuat Halaman menjadi halaman statis. :::warning Mulai dari versi 13, Misskey Play dapat digunakan untuk menggantikan halaman dinamis yang dibuat oleh Halaman. ::: ## Pengaturan Halaman ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### Judul Masukkan judul dari halaman.Akan tampil dalam daftar. ### Ringkasan Halaman Masukkan deskripsi singkat.Akan tampil dalam daftar. ### URL Halaman Secara opsional atur `●●●` dalam `https://nama-peladen/@namapengguna/pages/●●●`. ### Rata tengah Ketika diaktifkan, konten akan diratakan pada posisi tengah. ### Font Pilih dari **serif** atau **sans-serif**. ### Sembunyikan judul halaman saat disematkan Menyembunyikan judul halaman saat disematkan. ### Gambar yang menarik Kamu dapat mengatur sebuah gambar dari **Pengaturan Gambar Unggulan**.Dapat ditampilkan dalam tampilan daftar, dll. ## Konten Sunting badan halaman.Halaman dapat dihasilkan dengan menggabungkan salah satu blok berikut atau lebih. - Bagian - Teks - Gambar - Catatan yang ditanam ### Bagian Ketika mengatur judul, akan ditampilkan sebagai heading.Selanjutnya, blok dapat diatur di dalam. ### Teks Masukkan badan teks.MFM serta emoji kustom dapat digunakan. ### Gambar Menampilkan gambarMenampilkan gambar dari Drive ### Catatan yang ditanam Dengan memasukkan ID catatan, konten dari catatan dapat ditampilkan.Apabila kamu ingin menanamkan catatan dari peladen lain, masukkan URL-nya ke dalam pencarian dan tempelkan ID catatan yang ditampilkan. ================================================ FILE: content/id/docs/2.for-users/3.features/plugin.md ================================================ # Plugin Misskey Web memiliki fasilitas plugin yang membolehkan pengguna untuk memperluas fungsionalitas Misskey Web. Untuk informasi mengenai bagaimana cara membuat plugin, [lihat dokumen ini](../../for-developers/plugin/create-plugin). ================================================ FILE: content/id/docs/2.for-users/3.features/poll.md ================================================ # Kuesioner Kuesioner merupakan fitur yang dapat digunakan untuk mengetahui opini orang lain dengan mudah. ## Melampirkan kuesioner dalam catatan Kuesioner dapat diposting sebagai sebuah lampiran pada sebuah [catatan](/docs/for-users/features/note).Untuk melampirkan kuesioner pada catatan, pilih tombol "Kuesioner" di bagian bawah form posting. ## Menambahkan pilihan Kuesioner dapat dibuat hingga memiliki 10 buah pilihan.Untuk menambahkan opsi pilihan dalam kolom kuesioner, tekan tombol "Tambahkan". Apabila kolom opsi pilihan yang dibuat berlebihan, kamu dapat menghapusnya dengan menekan tombol `X` di sebelah bagian kanan dari input teks pilihan. :::warning Apabila terdapat kolom pilihan yang kosong di dalam kuesioner, catatan tidak akan dapat disubmit. ::: ## Bolehkan memilih banyak Apabila opsi "Bolehkan memilih banyak" diaktifkan, responden dari kuesioner diperbolehkan untuk memilih opsi dalam kuesioner lebih dari satu pilihan. ## Menetapkan batas waktu untuk kuesioner Kuesioner dapat diberi batas waktu dengan menentukan dengan tanggal dan waktu atau ditentukan dengan selang waktu. Untuk mengatur batas waktu kuesioner, klik pilihan mode batasan waktu dalam bidang menu di bawah "Batas akhir" dan tentukan "Tanggal batas akhir" atau "Durasi". Untuk membatalkan batas waktu kuesioner, ubah mode batasan waktu ke "Selamanya" dari bidang menu "Batas akhir". ## Mengisi Kuesioner Ketika kuesioner dalam catatan terlihat pada lini masa, kamu dapat mengisi kuesioner tersebut untuk memberikan suara pendapatmu. Untuk mengisi kuesioner, klik pada salah satu pilihan yang tersedia di dalam kuesioner.Apabila pengguna yang membuat kuesioner belum mengatur untuk memperbolehkan memilih pilihan lebih dari satu, maka hasil dari kuesioner pada saat itu juga dapat langsung ditampilkan. Apabila pengguna yang membuat kuesioner mengaturnya untuk dapat dipilih lebih dari satu pilihan, maka hasil dari kuesioner secara tidak otomatis tidak akan ditampilkan langsung saat itu juga.Namun, kamu masih dapat memilih pilihan lainnya yang tersedia. Terlepas dari pengaturan pilihan lebih dari satu, apabila kamu tidak melihat hasil kuesioner secara otomatis dan hanya ingin melihat hasilnya tanpa memberikan suara pendapatmu. Kamu dapat mengklik opsi "Lihat hasil" di bawah kuesioner untuk melihat hasil dari kuesioner tersebut. Setelah melihat hasil dari kuesioner yang belum dipilih, klik "Beri suara" untuk menyembunyikan hasilnya dan kembali ke pilihan yang tersedia. :::tip Kuesioner yang belum dipilih masih dapat dipilih dengan hasil yang telah ditampilkan. ::: Ketika kamu memilih, pilihan yang kamu pilih nantinya akan diberi tanda centang ✔. ================================================ FILE: content/id/docs/2.for-users/3.features/reaction.md ================================================ # Reaksi Fitur ini memungkinkan kamu untuk mengutarakan reaksimu kepada catatan orang lain dengan mudah melalui penambahan emoji. Untuk mereaksi di Misskey Web, klik ikon + pada catatan untuk menampilkan jendela pengambil emoji dan pilih emoji. Kamu juga dapat mereaksi menggunakan [emoji kustom](./custom-emoji.md). ## Mengubahsuaikan Pengambil Reaksi Dalam Misskey Web kamu dapat memilih emoji mana yang seharusnya muncul di dalam pengambil dan mengubah urutan kemunculan mereka. Kamu dapat mengatur ini di bagian "Reaksi" dalam menu pengaturan. ## Reaksi ke Postingan Luar Peladen Karena reaksi merupakan fitur asli dari Misskey, sering kali aktivitas reaksi yang dikirimkan ke instansi peladen lain akan dikirimkan sebagai "Suka" kecuali instansi peladen luar mendukung fitur reaksi tersebut.Biasanya, "Suka" dari ActivityPub diimplementasikan sebagai favorit. ## Reaksi dari Instansi Peladen Luar Karena Misskey tidak memiliki suka, "Suka" dari instansi remote akan ditampilkan sebagai reaksi '👍'. ## Lihat Semua Reaksimu Dalam Misskey Web, kamu dapat melihat daftar dari semua reaksi yang telah kamu buat dengan membuka tab "Reaksi" di halaman profilmu. Kamu juga dapat memilih untuk membuat daftar ini menjadi publik di pengaturan. ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/id/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/id/docs/2.for-users/3.features/share-form.md ================================================ # Form Bagikan Ketika kamu membuka `/share` di Misskey Web, kamu membuka form submisi bagikan.Form bagikan ini berguna jika kamu ingin pengguna membagikan konten dari halamanmu dengan Misskey dari halaman web eksternal. Kamu dapat menentukan berbagai opsi di dalam URL, termasuk konten yang dibagikan sebagai parameter kueri. ## Parameter Kueri :::tip Semua parameter merupakan **opsional** dan tidak wajib. ::: | Nama | Deskripsi | | ------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `title` | Judul,[ … ] akan dimasukkan sebelum badan teks utama dalam tanda kurung. | | `text` | badan teks utama | | `url` | URL.dimasukkan setelah badan teks utama. | ### Informasi Balasan Kamu dapat membuat catatan menjadi balasan ke catatan yang diberikan dengan menentukan salah satu dari berikut. | Nama | Deskripsi | | ---------- | ---------------------------------------------------------------------------------- | | `replyId` | ID dari catatan yang kamu balas | | `replyUri` | URL untuk membalaske (tentukan objek catatan dari peladen luar) | ### Informasi Renote Kamu dapat membuat catatan menjadi renote ke catatan yang diberikan dengan menentukan salah satu dari berikut. | Nama | Deskripsi | | ----------- | ------------------------------------------------------------------------------------------------- | | `renoteId` | ID dari catatan yang ingin direnote | | `renoteUri` | URL dari catatan yang ingin direnote(tentukan objek catatan dari peladen luar) | ### Lingkup Publikasi Opsi berikut memungkinkan kamu untuk memilih lingkup publikasi. | Nama | Deskripsi | | ---------------- | ----------------------------------------------------------------------------------------------- | | `visibility` | salah satu dari `public`, `home`, `followers`, `specified` | | `localOnly` | 0(false) atau 1(true) | | `visibleUserIds` | ID pengguna target (dipisahkan dengan koma) | | `visibleAccts` | [acct](../resources/glossary/#acct) pengguna target (dipisahkan dengan koma) | :::warning Jika `visibility` diatur ke `specified`, sebaiknya `visibleUserIds` atau `visibleAccts` harus diatur juga. ::: ### Lampiran Berkas Kamu dapat menentukan lampiran berkas dengan opsi di bawah berikut. | Nama | Deskripsi | | --------- | --------------------------------------------------------------------------------- | | `fileIds` | ID dari berkas yang ingin dilampirkan (dipisahkan dengan koma) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/id/docs/2.for-users/3.features/silence.md ================================================ # Senyapkan Senyapkan adalah salah satu kondisi dimana sebuah akun dapat diatur menjadi senyap. Ketika akun kamu disenyapkan, kamu tidak dapat mengatur visibilitas dari catatanmu ke Publik. Beranda, Pengikut, dan Pesan Langsung masih tetap dapat dipilih. Jadi meskipun jika akun kamu disenyapkan, pengikut serta pengunjung langsung dari halaman profil kamu masih dapat melihat postingan kamu. Mereka hanya tidak dapat melihat catatan kamu tersebut di lini masa global (LMG) atau lini masa lokal (LML). Status Disenyapkan dari sebuah akun dapat diatur oleh moderator instansi. ================================================ FILE: content/id/docs/2.for-users/3.features/theme.md ================================================ # Tema Kamu bisa mengubah tampilan klien Misskey dengan mengatur temanya. ## Pengaturan Tema [Pengaturan > Tema](x-mi-web://settings/theme) ## Membuat Tema Kode objek tema ditulis menggunakan JSON5. Tema memiliki tibe objek seperti yang ditunjukkan di bawah. ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... テーマの一意なID。UUIDをおすすめします。 - `name` ... テーマ名 - `author` ... テーマの作者 - `desc` ... テーマの説明(オプション) - `base` ... 明るいテーマか、暗いテーマか - `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - テーマはここで設定されたベーステーマを継承します。 - `props` ... テーマのスタイル定義。これから説明します。 ### Definisi Gaya Tema Definisikan gaya tema di dalam `props`. Kunci merupakan nama dari variabel, dan nilai menentukan konten. Selanjutnya, objek `props` ini mewariskan dari tema dasar. Tema dasarnya adalah [\_light.json5][_light.json5] jika `base` dari tema ini adalah `light` dan [\_dark.json5][_dark.json5] jika `dark`. Artinya, jika tidak ada kunci `props` yang bernama `panel` dalam tema ini, maka nilai `panel` akan diatur menggunakan nilai dari tema dasar. - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### バリューで使える構文 - 16進数で表された色 - 例: `#00ff00` - `rgb(r, g, b)`形式で表された色 - 例: `rgb(0, 255, 0)` - `rgba(r, g, b, a)`形式で表された透明度を含む色 - 例: `rgba(0, 255, 0, 0.5)` - 他のキーの値の参照 - `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - 例: `@panel` - 定数(後述)の参照 - `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - 例: `$main` - 関数(後述) - `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/id/docs/2.for-users/3.features/thread-mute.md ================================================ # Senyapkan Utas :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/id/docs/2.for-users/3.features/timeline.md ================================================ # Lini masa タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## Beranda 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## Lokal 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## Sosial 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## Global 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## Perbandingan
ソース Visibilitas Lini masa
Beranda Lokal Sosial Global
ローカル(フォロー) Publik
Beranda
Pengikut
リモート(フォロー) Publik
Beranda
Pengikut
ローカル(未フォロー) Publik
Beranda
Pengikut
リモート(未フォロー) Publik
================================================ FILE: content/id/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow 自分が誰かをフォローした際に発生します。 ### followed 自分が誰かからフォローされた際に発生します。 ### unfollow 自分が誰かをフォロー解除した際に発生します。 ### note 自分がノートを投稿した際に発生します。 ### reply 自分のノートに返信された際に発生します。 ### renote 自分のノートがRenoteされた際に発生します。 ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/id/docs/2.for-users/3.features/widgets.md ================================================ # Gawit ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## Daftar gawit yang tersedia - プロフィール - サーバー情報 - 付箋 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するッフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/id/docs/2.for-users/3.features/word-mute.md ================================================ # Bisukan kata ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ワードミュートは、[設定 > ミュートとブロック](x-mi-web://settings/mute-block)から設定できます。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/id/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/id/docs/2.for-users/4.resources/_dir.yml ================================================ title: "その他のリソース" description: "機能面以外の知識や、困ったときの対処法を紹介しています。" ================================================ FILE: content/id/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # Aplikasi Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/id/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/id/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Kosakata yang terkait dengan Misskey.' --- # Kosakata Kosakata yang terkait dengan Misskey. ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー todo ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/id/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Tentang Misskey Hub Misskey Hub adalah situs web resmi Misskey, yang menyediakan dokumentasi, blog dokumentasi, toko plugin, dan lainnya. Kami bertujuan menjadi tempat "semua tentang Misskey". Misskey Hub adalah [sumber terbuka](https://github.com/misskey-dev/misskey-hub) :::tip Misskey Hub adalah situs yang dibangun menggunakan Nuxt ::: ## Berkontribusi di Misskey Hub Kami menyambut dokumentasi tambahan dan penerjemahan. ================================================ FILE: content/id/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/id/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/id/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/id/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/id/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/id/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/id/docs/2.for-users/_dir.yml ================================================ title: "Untuk Pengguna Misskey" ================================================ FILE: content/id/docs/3.for-admin/_dir.yml ================================================ title: "Untuk Pengelola Peladen" description: "Panduan serta sumber daya mengenai bagaimana cara untuk membuat peladen Misskey beserta tips berguna dalam mengelola peladen." ================================================ FILE: content/id/docs/3.for-admin/features/1.index.md ================================================ --- description: "Fitur untuk admin peladen." --- # Fitur Peladen Misskey menawarkan bermacam fitur untuk membantumu menjalankan peladenmu. ================================================ FILE: content/id/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/id/docs/3.for-admin/features/announcement.md ================================================ # Pengumuman Pengumuman (announcement) adalah salah satu fitur yang tersedia pada Misskey. Dengan menggunakan fitur pengumuman, kamu dapat memposting pengumuman kepada pengguna di dalam peladen yang kamu kelola, termasuk juga mengirimkan pesan dari peladen ke pengguna secara individu. :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/id/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/id/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/id/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/id/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/id/docs/3.for-admin/features/role.md ================================================ # Peran ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## Templat peran 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ## Hak akses ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## Kebijakan ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### Prioritas 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### Gunakan nilai templat peran この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## Buat peran コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## Memastikan kebijakan pengguna ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/id/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/id/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskeyのインストールと保守" description: "Misskeyのインストール方法や、その後の保守作業に役立つ情報を掲載しています。" ================================================ FILE: content/id/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Panduan tentang bagaimana cara membuat peladen Misskey.' --- # Membuat Peladen Misskey Terima kasih atas ketertarikanmu untuk membuat peladen Misskey.Terdapat beberapa metode untuk membuat peladen Misskey, mohon untuk pastikan membaca dan memilih panduan di bawah ini dengan seksama. :::danger Jangan pernah membuat ulang atau mengubah database dengan nama domain (hostname) dari instansi peladen ketika kamu sudah mulai menggunakannya! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## Pemasangan Pada Xserver VPS [Xserver VPS](https://vps.xserver.ne.jp/) menyediakan _image_ aplikasi Misskey yang dapat mempermudah untuk pemasangan peladen Misskey. Untuk informasi lebih lanjut, lihat pada ["Menggunakan _image_ Misskey"](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php). 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## Daftar Metode Pemasangan ================================================ FILE: content/id/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/id/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Pasang Misskey dengan mudah hanya menggunakan satu shell script! Kamu dapat memasang misskey pada peladen Ubuntu hanya dengan menjawab beberapa pertanyaan saja. Terdapat juga script untuk memutakhirkan. [Untuk v12](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md) [**Versi Bahasa Inggris**](./README.en.md) ## Bahan Yang Perlu Disiapkan 1. Domain 2. Peladen Ubuntu 3. Akun Cloudflare (Direkomendasikan) :::danger Jangan pernah mengganti nama domain (hostname) peladen ketika kamu sudah mulai menggunakannya! ::: Pastikan pengaturan jaringan peladen DNS anda telah benar secara menyeluruh sebelum memulai instalasi. Apabila tidak, proses otentikasi Let's Encrypt akan terhambat dikarenakan percobaan permintaan sertifikat Let's Encrypt dibatasi dalam jumlah yang kecil. ## Pengaturan Cloudflare Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 ネームサーバーの適用には最大で3日程度かかる場合があります。 Jika kamu menggunakan nginx dan Cloudflare, kamu harus mengatur Cloudflare terlebih dahulu untuk: - Mengatur DNS. - Pada tab pengaturan SSL/TLS, ubah mode enkripsi menjadi "Full". ## Prosedur ### 1. SSH Menyambung ke peladen melalui SSH. (Jika kamu memiliki peladen dengan lingkungan desktop terpasang, buka Terminal/shell) ### 2. Perbaharui Lingkungan Peladen Pastikan semua paket telah termutakhirkan dan boot ulang. ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. Jalankan Pemasangan Hubungkan ulang SSH dan mulai pemasangan Misskey. Pastikan untuk membaca [Tips](#tips) sebelum memulai proses pemasangan. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` Ubah domain example.com menjadi domain milik kamu. ### 4. Untuk memutakhirkan Terdapat juga script untuk memutakhirkan peladen Misskey. Script pemutakhiran tidak memutakhirkan lingkungan peladen.Mohon untuk merujuk ke CHANGELOG (Bahasa Jepang) dan [Daftar rilis di GitHub (Bahasa Inggris)](https://github.com/joinmisskey/bash-install/releases) serta lakukan operasi migrasi sesuai arahan. Pertama, unduh script. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` Jalankan ini ketika kamu ingin memutakhirkan Misskey. ```sh sudo bash update.sh ``` - Pada lingkungan systemd, opsi `-r` dapat digunakan untuk memutakhirkan dan memboot ulang sistem. - Pada lingkungan docker, kamu dapat menentukan repository:tag sebagai argumen. ## Lingkungan dimana operasi ini telah diuji ### Oracle Cloud Infrastructure Script ini bekerja dengan baik pada bentuk compute berikut yang disediakan oleh Oracle Cloud Infrastructure Always Free services. - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB atau lebih] Pastikan untuk menggunakan iptables. ## Isu & PRs Dipersilahkan Apabila script ini tidak dapat bekerja pada lingkungan diatas, kemungkinan karena bug.Kami mengapresiasi apabila kamu dapat melaporkan hal tersebut sebagai isu dengan syarat tertentu yang telah kamu input ke dalam script. Sangat sulit untuk memberikan bantuan untuk lingkungan selain yang disebutkan di atas, namun kami masih dapat membantu mencarikan solusi dari masalah kamu apabila kamu memberikan informasi detil mengenai lingkungan peladenmu. Saran untuk fitur juga dipersilahkan. # Tips Cara memilih opsi dan spesifikasi. ## Systemd or Docker? Mulai dari v1, terdapat metode pemasangan systemd atau Docker yang dapat dipilih. Ketika memilih metode pemasangan Docker, **Misskey akan dipasang dan dijalankan melalui Docker** sedangkan Redis, Postgres dan sebagainya akan dipasang dan dijalankan pada host peladen langsung. [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Apabila kamu memilih menggunakan image dari Docker Hub, kebutuhan untuk build Misskey tidak diperlukan dan pilihan ini merupakan **rekomendasi dari kami**. Namun ketika melakukan pemutakhiran, migrasi tetap dibutuhkan dan downtime tetap tidak dapat terhindarkan. Selain itu, dengan menggunakan image dari Docker Hub tidak perlu lagi menyiapkan lingkungan untuk build Misskey (tidak ada `git pull`). Dengan kata lain, apabila ingin menyiapkan dan menjalankan fork akan lebih merepotkan. Karena alasan performa, metode build Docker secara lokal tidak dipergunakan lagi. Metode pemasangan systemd sangat direkomendasikan apabila kamu ingin menggunakan ataupun menjalankan fork. Metode pemasangan ini juga tidak mengharuskan kamu untuk mengunggah image ke Docker Hub. Urutan rekomendasi yang disarankan adalah sebagai berikut: 1. Docker Hub 2. systemd 3. Docker Build ## Gunakan nginx atau tidak? Apabila kamu ingin membuat peladen Misskey pada satu peladen, disarankan untuk menggunakan nginx. - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Tambahkan swap! Apabila kamu menggunakan swap, pastikan swap kamu memiliki hingga ruang hingga 3GB. Karena script akan dapat berjalan lancar apabila memiliki memori dengan minimal 3GB. ## Jika script gagal dan kamu ingin menjalankannya kembali Perhatikan arahan berikut ini: - Apabila Redis atau Postgres telah terpasang, atur `install locally` ke "No". Biarkan pengaturan `host・port` apa adanya lalu tekan Enter. Masukkan nama pengguna dan kata sandi seperti yang telah ditentukan pada proses sebelumnya. ## Mengenai berkas .env Script pemasangan membuat dua berkas.env yang dipergunakan untuk memutakhirkan Misskey. Berkas ini dipergunakan pada saat memutakhirkan. ### /root/.misskey.env Diperlukan untuk mengingat pengguna yang menjalankan proses misskey ### /home/(pengguna_misskey)/.misskey.env Dibuat untuk systemd yang dipertujukan mengingat direktori . ### /home/(pengguna_misskey)/.misskey-docker.env Dibuat untuk Docker dengan tujuan menyimpan nomor kontainer beserta image yang sedang berjalan. Nomor kontainer akan diperbarui selama pemutakhiran. Image lama akan dihapus. ## Manajemen Mandiri Setelah pemasangan, ada beberapa catatan yang cukup berguna pada saat ingin mengubah konfigurasi. Ganti domain "example.com" dengan domain kamu sendiri. ### Direktori Misskey Sumber kode akan diklon pada direktori `/home/pengguna/direktori`. (nilai default untuk pengguna dan direktori adalah misskey) Kamu dapat menavigasi ke direktori Misskey dengan melakukan perintah berikut. ```sh sudo -iu pengguna cd direktori ``` Untuk kembali ke pengguna sebelumnya, jalankan perintah `exit`. ```sh exit ``` ### systemd Nama proses dalam systemd adalah `example.com`. Sebagai contoh untuk memulai ulang proses, jalankan perintah berikut. ```sh sudo systemctl restart example.com ``` Kamu dapat memeriksa logs dengan menggunakan `journalctl`. ```sh journalctl -t example.com ``` Berkas konfigurasi systemd disimpan pada `/etc/systemd/system/example.com.service`. ### Docker Docker menggunakan pengguna Misskey untuk dijalankan secara tanpa root. Saat masuk ke pengguna Misskey menggunakan `sudo`, kamu perlu mengubah `XDG_RUNTIME_DIR` dan `DOCKER_HOST` terlebih dahulu. ```sh sudo -iu pengguna export XDG_RUNTIME_DIR=/run/user/$UID export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock # Tampilkan daftar Proses docker ps # Build (Repositori: local/misskey:latest) docker build -t local/misskey:latest ./misskey # Menjalankan Docker 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" # Menampilkan log docker logs --tail 50 -f ID Kontainer ``` Proses diatas dapat dilakukan dengan perintah satu baris berikut. ```sh sudo -u pengguna XDG_RUNTIME_DIR=/run/user/$(id -u pengguna) DOCKER_HOST=unix:///run/user/$(id -u pengguna)/docker.sock docker ps ``` ### nginx Pengaturan situs pada nginx disimpan di `/etc/nginx/conf.d/example.com.conf`. ### Redis Parameter `requirepass` dan `bind` diatur di `/etc/redis/misskey.conf`. ## Q. Error 502 tidak dapat diakses setelah melakukan pemutakhiran Apabila proses migrasi sedang berlangsung, Docker tidak dapat memberikan izin akses langsung. Pastikan dan periksa apakah proses migrasi telah selesai. Pada kasus menggunankan systemd, perintah `pnpm install` kemungkinan gagal. Coba jalankan perintah berikut ini di direktori Misskey lalu jalankan pemutakhiran kembali. ```sh pnpm run clean-all ``` Apabila kamu memeriksa log dengan `journalctl`, umumnya kamu akan menemukan pernyataan dalam log yang menampilkan `re2`. ## Q. Membangun instansi Misskey lebih dari 1 di peladen yang sama Script ini tidak dapat melakukan pemasangan instansi Misskey lebih dari 1 pada peladen yang sama. Hal ini dikarenakan beberapa pengaturan nantinya akan ditimpa dan kamu akan mendapatkan banyak galat dan kesalahan dalam proses menjalankan script ini. ================================================ FILE: content/id/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'Panduan ini akan menjelaskan tentang bagaimana cara memasang dan menyetel instansi Misskey dengan menggunakan Docker Compose.' --- # Buat instansi Misskey dengan Docker Compose Panduan ini akan menjelaskan tentang bagaimana cara memasang dan menyetel instansi Misskey dengan menggunakan Docker Compose. :::danger Jangan pernah mengubah nama domain (hostname) instansi peladen ketika kamu sudah mulai menggunakannya! ::: :::tip{label='前提条件'} - `docker` dan `dockercompose` terpasang ::: ## Mengunduh repositori Misskey ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## Mengatur penyetelan Misskey Salin berkas konfigurasi dengan menjalankan perintah berikut: ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./docker-compose_example.yml ./docker-compose.yml ``` Sunting `default.yml` dan `docker.env` sesuai dengan instruksi yang terdapat di dalam berkas. Pastikan kembali penyetelan telah benar dan sunting `docker-compose.yml` bila perlu.(Misal: Apabila kamu ingin mengganti port peladen dengan nomor port yang berbeda). ## Bangun dan inisialisasi Perintah berikut akan membangun Misskey dan menginisialisasi basis data. Proses ini akan memakan waktu sesaat. ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## Jalankan Selamat!Kamu sudah dapat memulai peladen Misskey dengan menjalankan perintah berikut. ```sh sudo docker compose up -d ``` GLHF✨ ## Panduan memutakhirkan peladen Misskey ke versi terbaru :::warning Ketika memutakhirkan, pastikan untuk mengecek [catatan rilisan](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) agar dapat mengetahui lebih awal akan perubahan ataupun tambahan pekerjaan yang nantinya dibutuhkan (biasanya tidak perlu). ::: ```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 ``` Perintah tersebut di atas akan memakan waktu sesaat bergantung dengan konten dari pemutakhiran dan ukuran basis data. ## Bagaimana cara mengeksekusi perintah CLI di dalam docker? ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/id/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 [TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/id/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'Panduan ini akan menjelaskan bagaimana cara memasang dan menyetel peladen Misskey.' --- # Panduan Pemasangan dan Penyetelan Misskey Panduan ini akan menjelaskan bagaimana cara memasang dan menyetel peladen Misskey. :::danger Jangan pernah mengubah nama domain (hostname) peladen ketika kamu sudah mulai menggunakannya! ::: :::tip{label='前提条件'} #### Mohon pasang dan setel aplikasi berikut: - **[Node.js](https://nodejs.org/en/)** (versi 20.4.x atau di atasnya) - **[PostgreSQL](https://www.postgresql.org/)** (versi 15 atau di atasnya) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Jika kamu menggunakan Debian/Ubuntu, kamu harus memasang paket `build-essential`. ::: ## Buat pengguna Menjalankan Misskey sebagai root bukanlah ide yang bagus. Oleh karena itu, kita akan membuat pengguna baru untuk menangani masalah tersebut. Sebagai contoh dalam distribusi Debian: ```sh adduser --disabled-password --disabled-login misskey ``` ## Pasang Misskey ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## Atur Salin berkas `.config/example.yml` dan ubah namanya ke `default.yml`. ```sh cp .config/example.yml .config/default.yml ``` Sunting `default.yml`. ## Bangun dan inisialisasi Perintah berikut akan membangun Misskey dan menginisialisasi basis data. Proses ini akan memakan waktu sesaat. ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## Jalankan Selamat!Kamu sudah dapat memulai peladen Misskey dengan perintah berikut. ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="Menjalankan dengan systemd"} Buat berkas layanan systemd di sini `/etc/systemd/system/misskey.service` Sunting, tempelkan konfigurasi berikut dan simpan: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning Apabila kamu ingin menggunakan Misskey dengan port di bawah 1024 pada sistem operasi CentOS, kamu perlu mengubah `ExecStart=/usr/bin/sudo /usr/bin/npm start`. ::: Nyalakan ulang systemd dan nyalakan layanan misskey. ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` Jalankan layanan misskey. ```sh sudo systemctl start misskey ``` :::tip Kamu dapat mengecek apakah layanannya berjalan dengan memasukkan perintah `systemctl status misskey`. ::: :::: ## Panduan memutakhirkan peladen Misskey ke versi terbaru :::warning Ketika memutakhirkan, pastikan mengecek [catatan rilisan](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) untuk mengetahui lebih awal akan perubahan ataupun tambahan pekerjaan yang nantinya dibutuhkan (biasanya tidak perlu). ::: Lakukan `pull` pada branch `master`, pasang, bangun dan migrasi basis data: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` Perintah tersebut akan memakan waktu sesaat bergantung dengan konten dari pemutakhiran dan ukuran basis data. Setelah pemutakhiran selesai, mulai ulang proses Misskey. ```sh sudo systemctl restart misskey ``` :::tip Apabila kamu menemukan masalah pada saat memutakhirkan, coba jalankan perintah berikut: - `pnpm run clean` atau `pnpm run clean-all` - `pnpm rebuild` ::: ::: ================================================ FILE: content/id/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudflareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/id/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskeyの保守・トラブルシューティング" description: "Misskeyサーバーの運営には定期的なメンテナンスが不可欠。役立つ情報や困ったときの対処法をご紹介します。" ================================================ FILE: content/id/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/id/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/id/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/id/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/id/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/id/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!** [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/id/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "モデレーション上のお役立ち情報" description: "実際にサーバーを運営するにあたり役立つ情報についてまとめています。" ================================================ FILE: content/id/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/id/docs/4.for-developers/_dir.yml ================================================ title: "開発者向け" description: "プラグイン・Play開発者や、APIを利用した外部アプリケーションの開発者向けリソース。" ================================================ FILE: content/id/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/) Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:` Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:` [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:` [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、[Misskey Play](./plugin/create-play/)、Scratchpadで使用できます。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Ui:`とついた部分を参照して下さい。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str` 返り値: `str` Misskey内の全てのAiScript環境で使用できます。 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any` 返り値: `null` [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 コンソールに文字列を出力します。 `<:`構文も同様の働きをします。 ================================================ FILE: content/id/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\ ::: ================================================ FILE: content/id/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/id/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/id/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/id/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/id/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # Melihat Kanal ================================================ FILE: content/id/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/id/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/id/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/id/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/id/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/id/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/id/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/id/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/id/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/id/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/id/docs/4.for-developers/bot/1.index.md ================================================ # Botの作成 [Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 ## 関連リソース - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/id/docs/4.for-developers/plugin/_dir.yml ================================================ title: "Membuat Plugin/Play" description: "Panduan mengenai bagaimana cara untuk membuat Plugin dan Play dapat kamu temukan di sini." ================================================ FILE: content/id/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/id/docs/4.for-developers/plugin/create-plugin.md ================================================ # Pembuatan Plugin Fitur plugin dalam klien Misskey Web memperbolehkan kamu untuk memperluas fungsionalitas klien dan menambah fitur lain. Dokumen ini akan menjelaskan bagaimana cara membuat plugin Misskey. ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript Plugin merupakan script yang dituliskan menggunakan bahasa pemrograman AiScript. ## Metadata Plugin harus mendefinisikan metadata plugin dengan menggunakan bawaan fitur sematan metadata AiScript.Contoh Metadata dapat dilihat pada kode di bawah ini. ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "Penulis" description: "Deskripsi" } ``` Metadata merupakan objek yang berisi properti di bawah ini. ### name Nama Plugin ### author Pembuat Plugin ### version Versi Plugin.Mohon tentukan nilai numerik. ### description Deskripsi Plugin ### permissions Izin yang dibutuhkan oleh plugin.Digunakan ketika membuat permintaan ke Misskey API. APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config Objek merepresentasikan informasi konfigurasi plugin. `key` merupakan nama konfigurasi dan `value` berisi properti di bawah ini. #### type String yang merepresentasikan tipe dari nilai konfigurasi.Pilih salah satu dari berikut. string number boolean #### label Nama dari konfigurasi yang ditampilkan ke pengguna #### description Deskripsi konfigurasi #### default Nilai bawaan dari konfigurasi ## API Misskey Web menyediakan API untuk plugin yang mana dapat digunakan dan dimanfaatkan untuk memperluas fungsionalitas dari klien. Untuk melihat API yang tersedia, mohon merujuk pada [Referensi API Plugin](./plugin-api-reference/) ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/id/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/id/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/id/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # Catatan Rilis Berikut daftar catatan rilis untuk Misskey ## 2025.11.1 リリース日: 2025/11/28 ### Klien - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Peladen - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### Umum - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Klien - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Peladen - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Klien - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### Umum - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Klien - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### PENTING - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### Umum - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Klien - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Peladen - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Klien - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Peladen - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Penting - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Peladen - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### Umum - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Klien - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Klien - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Klien - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Peladen - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Peladen - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Catatan - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### Umum - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Klien - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Penting - DockerのNode.jsが22.15.0に更新されました ### Klien - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### Umum - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Peladen - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Peladen - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Peladen - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### Umum - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Klien - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Peladen - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### Umum - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Klien - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Peladen - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Penting - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### Umum - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Klien - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Peladen - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Penting - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### Umum - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Penting - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### Umum - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Peladen - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Penting - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### Umum - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Peladen - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### Umum - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Klien - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Peladen - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### Umum - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Klien - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Peladen - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Klien - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### Umum - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Klien - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 Tanggal Rilis: 02 Maret 2024 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 Tanggal Rilis: 01 Maret 2024 ### Umum - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 Tanggal Rilis: 17 Februari 2024 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### Umum - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Peladen - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 Tanggal Rilis: 28 Desember 2023 ### General - Perbaikan pada versi 2023.12.1 dimana tidak dapat memulai peladen dengan menggunakan Docker ### Client - Peningkatan: Dapat melakukan pencarian dengan menekan tombol Enter pada laman pencarian ## 2023.12.1 Tanggal Rilis: 27 Desember 2023 ### Note - Ijin akses token telah ditata ulang, maka beberapa API tidak dapat bekerja dengan token API lama.\ Apabila otorisasi telah hilang/tidak memungkinkan, tetapkan kembali dan lakukan regenerasi pada otorisasi tersebut. ### General - Peningkatan: Pembaharuan lokalisasi - Perbaikan: Catatan langsung (DM) milik sendiri tidak ditambahkan pada lini masa daftar pengguna ### Client - Fitur: Penambahan sintaks MFM untuk AiScript `$[clickable.ev=EVENTNAME ...]`.Meneruskan opsi `onClickEv` ke fungsi `Mk:C:mfm` dengan memanggil `EVENTNAME` sebagai argumen ketika diklik - Peningkatan: Tombol asisten masukan MFM dapat ditampilkan pada form submisi #12787 - Perbaikan: Masalah warna pada beberapa log moderasi (ditampilkan dengan logYellow) tidak berubah - Perbaikan: Masalah dengan kata panjang pada `fg`/`bg` MFM yang menyebabkan tidak dapat overflow ### Server - Peningkatan: Pengaturan kata sensitif sekarang juga berlaku pada trend tagar - Peningkatan: dukungan CORS pada titik akhir `oauth/token` - Perbaikan: Kerusakan pada down di 1702718871541-ffVisibility.js - Perbaikan: Masalah dimana emoji kustom diatur ke sensitif dapat direaksi meskipun "hanya non-sensitif (Hanya suka dari instansi luar)" telah diatur - Perbaikan: Masalah dimana ikon peran ditampilkan tanpa dikecilkan pada notifikasi ketika peran telah ditetapkan - Perbaikan: Masalah dimana aplikasi pihak ketiga dapat mengakses API Websocket tanpa syarat apapun - Perbaikan: Masalah dimana aplikasi pihak ketiga diperbolehkan untuk melihat informasi non-publik tanpa izin dari pengguna ## 2023.12.0 Tanggal Rilis: 23 Desember 2023 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### Umum - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Peningkatan: Pembaharuan lokalisasi - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 Tanggal Rilis: 17 Desember 2023 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 Tanggal Rilis: 05 Desember 2023 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 Tanggal Rilis: 21 Oktober 2023 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 Tanggal Rilis: 12 Oktober 2023 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 Tanggal Rilis: 10 Oktober 2023 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Perubahan - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 Tanggal Rilis: 30 September 2023 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 Tanggal Rilis: 29 September 2023 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 Tanggal Rilis: 25 September 2023 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 Tanggal Rilis: 24 September 2023 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 Tanggal Rilis: 27 Juli 2023 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 Tanggal Rilis: 21 Juli 2023 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 Tanggal Rilis: 13 Juni 2023 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 Tanggal Rilis: 06 Juni 2023 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 Tanggal Rilis: 05 Juni 2023 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 Tanggal Rilis: 12 Mei 2023 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 Tanggal Rilis: 09 Mei 2023 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 Tanggal Rilis: 09 Mei 2023 ### PENTING - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 Tanggal Rilis: 13 April 2023 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 Tanggal Rilis: 11 April 2023 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 Tanggal Rilis: 09 April 2023 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 Tanggal Rilis: 08 April 2023 ### PENTING - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 Tanggal Rilis: 25 Maret 2023 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 Tanggal Rilis: 22 Maret 2023 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 Tanggal Rilis: 22 Maret 2023 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 Tanggal Rilis: 22 Maret 2023 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 Tanggal Rilis: 06 Maret 2023 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 Tanggal Rilis: 03 Maret 2023 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 Tanggal Rilis: 03 Maret 2023 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Perbaikan Bug - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 Tanggal Rilis: 26 Februari 2023 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 Tanggal Rilis: 26 Februari 2023 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 Tanggal Rilis: 23 Februari 2023 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 Tanggal Rilis: 22 Februari 2023 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Peningkatan - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 Tanggal Rilis: 12 Februari 2023 ### Peningkatan - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 Tanggal Rilis: 11 Februari 2023 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Perbaikan Bug - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 Tanggal Rilis: 10 Februari 2023 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 Tanggal Rilis: 09 Februari 2023 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 Tanggal Rilis: 09 Februari 2023 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Perubahan - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 Tanggal Rilis: 08 Februari 2023 ### Perubahan - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 Tanggal Rilis: 05 Februari 2023 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 Tanggal Rilis: 04 Februari 2023 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Perbaikan Bug - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 Tanggal Rilis: 03 Februari 2023 ### Perubahan - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 Tanggal Rilis: 01 Februari 2023 ### Perubahan - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Perbaikan Bug - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 Tanggal Rilis: 27 Januari 2023 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 Tanggal Rilis: 26 Januari 2023 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 Tanggal Rilis: 25 Januari 2023 ### Improvements - サーバーのパフォーマンスを改善 ### Perbaikan Bug - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 Tanggal Rilis: 24 Januari 2023 ### Peningkatan - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 Tanggal Rilis: 23 Januari 2023 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 Tanggal Rilis: 22 Januari 2023 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 Tanggal Rilis: 21 Januari 2023 ### Peningkatan - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Perbaikan Bug - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 Tanggal Rilis: 16 Januari 2023 ### 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 ### Fitur-fitur penting - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、Pagesに比べてはるかに柔軟なアプリケーションを作成可能です。 ### Perubahan #### Untuk pengelola peladen - 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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### Untuk pengguna - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### Untuk pengembang aplikasi - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @syuilo - Client: improve overall performance of client @syuilo - Client: ui tweaks @syuilo - Client: clicker game @syuilo ### Perbaikan Bug - Server: Fix @tensorflow/tfjs-core's MODULE_NOT_FOUND error @ikuradon - Server: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @syuilo - Client: fix wrong link in tutorial @syuilo ### Terima kasih dikhususkan kepada - All contributors - All who have created instances for the beta test - All who participated in the beta test ## 12.119.1 Tanggal Rilis: 12 Desember 2022 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 Tanggal Rilis: 10 September 2022 ### 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 Tanggal Rilis: 07 Agustus 2022 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 Tanggal Rilis: 19 Juli 2022 ### Peningkatan - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 Tanggal Rilis: 18 Juli 2022 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 Tanggal Rilis: 17 Juli 2022 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 Tanggal Rilis: 16 Juli 2022 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 Tanggal Rilis: 16 Juli 2022 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 Tanggal Rilis: 15 Juli 2022 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 Tanggal Rilis: 13 Juli 2022 ### Peningkatan - Support `` syntax for MFM ### Perbaikan Bug - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 Tanggal Rilis: 09 Juli 2022 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 Tanggal Rilis: 08 Juli 2022 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 Tanggal Rilis: 07 Juli 2022 same as 12.112.0 ## 12.112.0 Tanggal Rilis: 07 Juli 2022 ### Masalah yang diketahui - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Perubahan - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### Peningkatan - 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 Tanggal Rilis: 13 Juni 2022 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 Tanggal Rilis: 11 Juni 2022 ### Note - Node.js 16.15.0 or later is required ### Peningkatan - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 Tanggal Rilis: 23 April 2022 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 Tanggal Rilis: 11 April 2022 ### Improvements - Improve webhook @syuilo - Client: Show loading icon on splash screen @syuilo ### Bugfixes - API: parameter validation of users/show was wrong - Federation: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 Tanggal Rilis: 03 April 2022 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 Tanggal Rilis: 02 April 2022 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 Tanggal Rilis: 02 April 2022 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 Tanggal Rilis: 12 Maret 2022 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 Tanggal Rilis: 09 Maret 2022 ### PENTING ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Perubahan - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 Tanggal Rilis: 12 Februari 2022 ### Peningkatan - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 Tanggal Rilis: 11 Februari 2022 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 Tanggal Rilis: 11 Februari 2022 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 Tanggal Rilis: 11 Februari 2022 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 Tanggal Rilis: 09 Februari 2022 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 Tanggal Rilis: 09 Februari 2022 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 Tanggal Rilis: 02 Februari 2022 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 Tanggal Rilis: 02 Februari 2022 ### Peningkatan - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 Tanggal Rilis: 27 Januari 2022 ### Penting ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Perubahan - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 Tanggal Rilis: 29 Desember 2021 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 Tanggal Rilis: 18 Desember 2021 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 Tanggal Rilis: 17 Desember 2021 ### Perbaikan Bug - クライアント: デザインの調整 ## 12.100.0 Tanggal Rilis: 17 Desember 2021 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 Tanggal Rilis: 14 Desember 2021 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 Tanggal Rilis: 14 Desember 2021 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 Tanggal Rilis: 03 Desember 2021 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 Tanggal Rilis: 19 November 2021 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 Tanggal Rilis: 13 November 2021 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 Tanggal Rilis: 13 November 2021 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Perubahan - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 Tanggal Rilis: 31 Oktober 2021 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 Tanggal Rilis: 23 Oktober 2021 ### Perbaikan Bug - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 Tanggal Rilis: 23 Oktober 2021 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Perubahan - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 Tanggal Rilis: 16 Oktober 2021 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Perubahan - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 Tanggal Rilis: 22 September 2021 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 Tanggal Rilis: 05 September 2021 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 Tanggal Rilis: 04 September 2021 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Perbaikan Bug - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 Tanggal Rilis: 24 Agustus 2021 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 Tanggal Rilis: 24 Agustus 2021 ### Improvements - クライアントのデザインの調整 ### Perbaikan Bug - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 Tanggal Rilis: 21 Agustus 2021 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Perbaikan Bug - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 Tanggal Rilis: 17 Agustus 2021 ### Fitur - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Perbaikan Bug - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 Tanggal Rilis: 12 Agustus 2021 ### Peningkatan - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Perbaikan Bug - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 Tanggal Rilis: 11 Agustus 2021 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/id/docs/6.donate.md ================================================ # Berdonasi ke proyek ini :::tip 法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/) ::: Misskey bukanlah sebuah bisnis, dan akan tetap gratis dipakai dengan cara memperoleh pemasukan lewat donasi dari siapa saja.(Tergantung instansi, sebagian pemasukan mungkin diperoleh dari iklan yang ditampilkan, tetapi pendapatan ini tidak langsung menuju administrator instansi dan pengembang Misskey.) Karena donasi dapat membantu proyek ini tetap bertahan, akan memungkinkan kami untuk melanjutkan pengembangan dan terus berkontribusi pada proyek ini di masa depan. 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。Kami menerima beberapa metode donasi yang ada di bawah berikut:(本ページの内容をよくお読みになったうえでご寄付をお願いします) - Dukungan Berlangganan - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Dukungan Satu Kali - Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - Mata uang kripto: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Daftar barang Amazon yang diinginkan](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 高額の寄付(例えば3万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。 ::: :::tip 額に応じて以下の返礼を用意しています。 - 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与 - 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載 - 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載 - 20,000円以上: ↑ + [MisskeyIDプレートの交付](/docs/mi-card/) ::: :::warning いかなる場合(何らかの理由で返礼を受け取れなかった等も含む)も、返金を行うことはできません。ご了承の上、ご寄付をお願いいたします。 ::: :::warning **バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて `@syuilo@misskey.io` までお申し付けください。** (メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります。どうしても連絡がつかない場合はMisskey Projectお問い合わせフォームよりご連絡ください) ::: また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 ================================================ FILE: content/id/docs/7.become-a-sponsor.md ================================================ # Menjadi Sponsor :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Proyek Misskey membuka bagi siapa saja yang ingin menjadi sponsor. Dengan menjadi sponsor, logo perusahaan kamu akan ditampilkan di Misskey beserta Misskey Hub. Tidak hanya itu, dukungan teknis juga kami berikan bagi yang telah menjadi sponsor kami. [Informasi lebih mengenai menjadi sponsor, hubungi kami lebih lanjut.](/contact/) ================================================ FILE: content/id/docs/8.mi-card.md ================================================ # MisskeyIDプレート Misskey Projectへのご支援特典として、物理的な「MisskeyIDプレート」をご用意しています! **MisskeyIDプレートは、シリアルナンバーが刻印されたあなただけの金属製IDプレートです。** ずっしりと重厚な金属製プレートに精密な加工を施し、ステータス性の高いメタルプレートに仕上げました。 しゅいろによって表面、裏面ともに丁寧にデザインされています。一生モノとしてぜひお手元でお楽しみください! 実物の動画は[こちら](https://www.youtube.com/shorts/AdzzwxEa-WE) (照明の関係で金色にも見えますが実際は銀色です) ## プレート仕様 - 寸法: 54.0mm x 85.6mm - 質量: 約34g - 素材: 1.0mm厚鏡面仕上げステンレス鋼 - 加工: 鏡面加工(表面部)、エッチング加工(表面その他)、シルク印刷(ロゴ部)、レーザー刻印(ナンバリング部) - 意匠: しゅいろによるデザイン / シリアルナンバー、バーコード、二次元コード、藍ちゃんサイン刻印付き オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(無料) ### 3Dで見る ::X__Docs__mi-card__InteractiveView :: ※裏面のデザインは省略されています。モデルは実物を正確に再現するものではありません。 ## 交付対象 **累計の支援金額が2万円以上の方に1枚進呈させていただきます。** :::g-details{summary='2枚以上ご希望の場合'} 2枚以上ご希望の場合は、3万円ごとに1枚追加で進呈いたします。 追加で受け取り可能な枚数は、支援額から2万円を引いた額を3万円で割った数になります。 例えば、支援額の合計が5万円以上で合計2枚、8万円以上で合計3枚、というような計算になります。 合計で何枚受け取り可能かを計算できます: ::X__Docs__mi-card__Calculator :: なお、在庫状況によっては、ご希望の枚数をご用意することが叶わない場合があります。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: USドルでの支援は、いつ支援かにかかわらず 1USD = 150JPY 換算といたします。その他の通貨の場合の扱いについてはご相談ください。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 なお現在、大変申し訳ございませんが配送の都合上、**交付は日本国内に居住されている方のみ対象とさせていただいています。** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** 各Misskeyサーバーへの支援はこちらの特典の対象となりませんのでご注意ください。 [Misskey Projectへの支援はこちらから](/docs/donate/) ::: :::tip 累計支援額の計算には支援方法、期間は問いません。 例えば、2023年にPayPalで5000円の支援をいただき、2024年にFanboxで12000円、Amazonの欲しいものリストで3000円分のギフトを頂いたようなケースでも、5000 + 12000 + 3000 = 20000 となり受け取りの権利があります。 ::: ## 申請方法 お手数ですが以下のフォームから申請を行ってください。(Googleアカウントが必要です) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 配送は日本郵便にて行います。**送料は無料です。** - 発送時は追跡番号をメールにてご連絡いたします。 - 土日も配達されます。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。お手元に到着時、万が一損傷などありましたら日本郵便へお問い合わせお願いします。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 また、配送方法のご指定は承れません。 ::: ## 注意事項 - 仕様は予告なく変更することがあります。 - シリアルナンバーは選択いただけません。 - 細かなキズが製造上少なからず発生しますがご容赦ください。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 予告なく配布を一時停止または終了することがあります。 - 予告なく交付基準額を変更することがあります。 - 紛失・破損・盗難等された場合に再発行はできませんので大切に保管してください。 - 転売・譲渡はご遠慮いただけますと幸いです。 ================================================ FILE: content/id/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/it/.docs-legacy/admin/cdn.md ================================================ # Impostare una CDN Quando pubblichi la tua istanza Misskey, ti raccomandiamo che avvenga dietro ad una CDN, come ad esempio [Cloudflare](https://www.cloudflare.com/). Usare Misskey dietro alla CDN, ti permette di avere i contenuti statici cachati, in maniera che le richieste non arrivino al tuo server. L'indirizzo IP del server non viene esposto, diminuendo il rischio di un attacco DDOS. ## Copia cache L'interfaccia web di Misskey è completamente statica e non necessita del server per funzionare. Questa è la parte migliore per cui funziona la **copia cache**. Però non tutta Misskey può essere "cachata", le API non devono esserlo. Dunque, devi configurare la seguente eccezione nella tua CDN: - Metti in cache tutte le richieste, tranne: `/api/*`. :::tip Non è necessario svuotare la cache quando aggiorni Misskey. :::: ================================================ FILE: content/it/.docs-legacy/admin/default-reaction.md ================================================ # Cambiare la reazione predefinita Puoi cambiare la reazione predefinita che viene utilizzata quando si riceve un Like nello standard di ActivityPub. Per ottenere ⭐ _stelline_ anziché 👍 _pollicioni_, modifica nel database, il valore booleano di `meta.useStarForReactionFallback`. ================================================ FILE: content/it/.docs-legacy/admin/emoji.md ================================================ # Gestione delle emoji personalizzati Possono essere gestiti solamente da amministratori o moderatori, tramite il **Pannello di controllo**, nel menu **Emoji Personalizzati**. La pagina di mostra l'elenco delle emoji attualmente installate. All'inizio l'elenco sarà vuoto ma puoi aggiungerne in vari modi. ## Copiare le Emoji Puoi copiarle da altre istanze, scegli il pannello **Remoto** nel menu **Emoji Personalizzati**. Puoi cercarli per nome della emoji o della istanza di provenienza. Quando hai trovato quella che ti piace, clicca per aprire il menu di importazione. Considera che quella emoji potrebbe essere soggetta al diritto d'autore e marchi brevettati, gli amministratori sono legalmente responsabili per qualsiasi violazione. ## Importazione individuale Se hai una immagine che vuoi convertire in una emoji personalizzata, puoi importarla. Funziona come allegare una immagine ad una nota. Carichi un nuovo file, scegli dal tuo Drive o indichi la URL dove si trova l'immagine. :::danger Quando importi la emoji dal tuo Drive, il file rimarrà lì dove si trova. Misskey non lo copia, se fosse eliminato la emoji risulterebbe rotta. ::: ## Importazione massiccia Le emoji possono essere importate in modo massiccio da pacchetti in formato ZIP, organizzate in modo speciale. Questa funzionalità si trova nel menu a pallini (...) in alto a destra nella pagina **Emoji Personalizzati**. :::warning Una importazione massiccia potrebbe sovrascrivere quelle esistenti oppure danneggiare la tua istanza. Assicurati di importare emoji solamente da fonti affidabili. L'ideale sarebbe che fossero importate solo quelle esportate da te. ::: ### Formato del pacchetto emoji Alla radice c'è il file `meta.json` che contiene informazioni sulle emoji contenute nel pacchetto. Segue un esempio di un ipotetico pacchetto, in cui `Meta` è la struttura del file completo. ```typescript class Meta { metaVersion: number; host: string; /** * Rappresentazione del giorno e orario, come restituito da 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[]; }; } ``` Gli attributi di `Meta` in questo momento non vengono utilizzati o controllati in fase di importazione, tranne che per l'attributo `emojis`. Per ogni `Emoji`: - `downloaded`: dovrebbe essere sempre _True_, se il valore è mancante o diverso, non verrà importata - `fileName`: nome dell'immagine all'interno del pacchetto - `emoji`: metadati associati alla emoji come stanno nel database. Attualmente, alcuni non vengono nemmeno verificati. Ad esempio: - `name`: nome della emoji `sorrisone` se occorre scrivere `:sorrisone:` per attivarla. Attenzione: Se esiste già una con lo stesso nome, questa verrà sovrascritta! - `category`: categoria di emoji - `aliases`: lista di parole sinonimi del nome. Nella interfaccia web sono i: "tags". ## Modificare ed eliminare Le proprietà di una emoji si modificano cliccandola nella lista di quelle _Locali_ Comparirà una finestra di dialogo in cui modificare i parametri oppure eliminare la emoji. :::danger Quando elimini una emoji personalizzata, le vecchie note che la contenevano inizieranno a mostrare invece il testo (campo `name`). E non potranno essere più rappresentate correttamente. ::: Le emoji remote non si possono modificare, né eliminare. Ogni emoji può avere solo un nome, una categoria ma più tag. La categoria si usa per raggrupparle nella finestrella di selezione. I tag possono essere usati come alternativa ai nomi, poiché sono ricercabili. Quando hai finito con le modifiche, ricordati di salvare cliccando il baffetto di spunta (✔️) nell'angolo in alto a destra. ### Modifiche massiccie Le emoji si possono modificare in modo massiccio attivando la selezione multipla **"Select Mode"** In questo modo, cliccando le emoji non si aprirà la finestra di dialogo, ma verranno evidenziate, indicando quali siano selezionate per la modifica. Le modifiche che si possono svolgere vengono mostrate come bottoni. Ogni bottone avvia la modifica massiccia di quel parametro, per tutte le emoji evidenziate. Per terminare le modifiche, disattivare il campo _Select Mode_ ================================================ FILE: content/it/.docs-legacy/admin/nginx.md ================================================ # Configurazione di Nginx 1. Crea il file `/etc/nginx/conf.d/misskey.conf` oppure `/etc/nginx/sites-available/misskey.conf` copiaci dentro il contenuto dell'esempio. (il nome del file può cambiare) 2. Modifica come segue: 1. Sostituisci `example.tld` col nome del tuo dominio.\ `ssl_certificate` e `ssl_certificate_key` dovrebbero essere i percorsi ai file ottenuti con Let's Encrypt. 2. Se usi una [CDN come Cloudflare](./cdn.md), elimina 4 linee partendo da: "If it's behind another reverse proxy or CDN, remove the following." 3. Se hai creato il file `/etc/nginx/sites-available/misskey.conf`, crea anche il symlink `/etc/nginx/sites-enabled/misskey.conf` usando il seguente comando:\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. Esegui `sudo nginx -t` per verificare che la configurazione sia ok. 5. Esegui `sudo systemctl restart nginx` per ricaricare Nginx. # Esempio di configurazione 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; add_header X-Cache $upstream_cache_status; } } ``` ================================================ FILE: content/it/.docs-legacy/admin/push-docker-hub.md ================================================ # Come pubblicare su Docker Hub usando le GitHub Actions La [descrizione del Workflow per pubblicare su Docker Hub usando le GitHub Actions](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) si trova nel repository. Il repository originale verrà pubblicato su Docker Hub con i tag `latest` e `nome-della-release`, potrebbe esserci il tag `nome-del-branch` ma non è soggetto a pubblicazione automatica. Il Workflow fallirà se avviato da un fork. Di seguito indichiamo come pubblicare un fork sul proprio Docker Hub. ## Come configurare il Workflow 1. Crea un repository su Docker Hub 2. Sostituisci le [image](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) del Workflow con il repository creato 3. Crea i [secret](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) ti occorre creare la coppia `DOCKER_USERNAME` e `DOCKER_PASSWORD`, che saranno le tue credenziali Docker Hub ## Come pubblicare Con la configurazione indicata in precedenza, il repository verrà _pushato_ su Docker Hub, ad ogni nuova release. Nello specifico, avrà i tags `latest` e `nome-della-release`. Puoi anche pubblicare manualmente da GitHub. Seleziona il _branch_ in `Actions => Publish Docker Image => Run Workflow`. In questo caso però il tag creato sarà `nome-del-branch` ================================================ FILE: content/it/.docs-legacy/admin/troubleshooting.md ================================================ --- description: "Leggi questa pagina quando ci sono degli errori" --- # Soluzione agli errori di installazione :::tip Per prima cosa, leggi attentamente la [guida di installazione](../install/manual.html). ::: ## Script automatico per Ubuntu Per chi non volesse seguire i passi dell'installazione su Ubuntu, con _systemd_ c'è a disposizione uno [script automatizzato di installazione](https://github.com/joinmisskey/bash-install/blob/main/README.en.md) ## Installazione manuale Leggi la [guida di installazione](../install/manual.html) ## La build fallisce In generale, per creare Misskey sono necessari almeno 2GB di memoria. Assicurati di averne abbastanza sul server, oppure puoi crearlo sul tuo PC e distribuirlo successivamente sul server. ## Qualcosa va storto - Leggi attentamente la [guida di installazione](../install/manual.html). - Verifica che la versione di NodJS sia la più recente. - Errori o WARN possono apparire durante l'installazione o la compilazione, ma di solito non sono veri problemi. Per il momento, esegui `npm start` e controlla l'operazione. - Verifica l'installazione di `node-gyp` - Installa con `apt install build-essential` - Su Windows, fare riferimento a [questo articolo](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7) (in giapponese) - Se non dovesse funzionare, riprova dall'inizio seguendo i passaggi nella [guida di installazione](../install/manual.html). ## Fallimento dell'aggiornamento - Assicurati che abbiano funzionato sia `pnpm install` che `pnpm run migrate` durante l'aggiornamento di Misskey. Se non funzionano, prova con `pnpm run clean-all && pnpm install` e `pnpm run build && pnpm run migrate && pnpm start`. - Se non sembra funzionare, riprova dall'inizio seguendo i passaggi nella [guida di installazione](../install/manual.html). ## Configurazione ambiente Leggi attentamente la [guida di installazione](../install/manual.html). Configura le impostazioni in `.config/default.yml`. Copia [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml) e modifica seguendo le indicazioni che trovi nei commenti. (Nel formato YAML, qualsiasi linea che inizia con cancelletto (#) viene trattata come un commento.) ================================================ FILE: content/it/.docs-legacy/api/app.md ================================================ --- 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', }); ``` ================================================ FILE: content/it/.docs-legacy/api/common.json5 ================================================ { 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.', }, }, } ================================================ FILE: content/it/.docs-legacy/api/index.md ================================================ --- description: ' Misskey espone una API che puoi usare per sviluppare client mobile, servizi web connessi a Misskey, bot, altre applicazioni.' --- # Le API di Misskey Misskey espone una API che puoi usare per sviluppare client mobile, servizi web connessi a Misskey, bot e altre applicazioni. Abbiamo anche una **API di streaming** per ccreare applicazioni con caratteristiche push, in realtime. :::tip Usando la SDK ufficiale di Misskey, o librerie di terze parti, puoi fruire della API in modo più conveniente. Per esempio semplificando alcuni dei passi descritti in questa pagina. ::: Tanto per cominciare, ti occorre ottenere il **token di accesso** associato all'account che intendi usare per fruire delle API. Questa pagina ti spiega passo passo come ottenerlo e le basi per fruire delle API. ## Ottenere un token di accesso Le API, in generale, richiedono l'accesso autenticato da un token. Si tratta di un set di credenziali associate ad un profilo, che lo identificano e controllano quali operazioni sia autorizzato a svolgere quello specifico token. :::tip Tra il profilo e i token c'è la relazione uno-a-molti, significa che per ogni profilo si possono creare più token (anche con diversi livelli di privilegi) ::: Ci sono due modi per ottenere il token: - [Richiederlo per se stessi](#richiedere-un-token-di-accesso-manualmente) - [Richiederlo per un altro profilo che userà l'applicazione](#richiedere-l-emissione-di-un-token-di-accesso) ### Richiedere un token di accesso manualmente Per ottenere un token per il proprio profilo, è sufficiente aprire il proprio profilo in Misskey e, nelle impostazioni, scegliere il menu API. Da lì, seguire le indicazioni. :::danger Fai attenzione! Non condividere il token con nessuno, deve rimanere segreto, altrimenti qualcuno potrebbe ottenere l'accesso del profilo. ::: ### Richiedere l'emissione di un token di accesso Per richiedere il token di accesso per un altro profile, occorre inizializzare la richiesta come indicato. :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app) ::: #### Passo 1 Genera un UUID (identificativo unico dell'utente). Da ora in poi lo chiameremo _ID Sessione_. :::danger L'**ID Sessione** dovrebbe essere generato ogni volta e mai riutilizzato. ::: #### Passo 2 Nel browser della persona utilizzatrice dovrebbe comparire il modulo di autenticazione. Il modulo di autenticazione può essere aperto usando una URL simile a questa: ```:no-line-numbers https://{host}/miauth/{session} ``` - `{host}` è il nome dell'istanza (di solito lo ha digitato la persona stessa) - `{session}` è il valore **ID Sessione** Si possono anche aggiungere alcune opzioni, come parametri GET nella URL: | Nome | Descrizione | | ------------ | ------------------------------------------------------------------------------------------------------------------------------ | | `name` | Nome dell'applicazione | | `icon` | Indirizzo URL dell'icona (immagine) | | `callback` | Indirizzo URL a cui reindirizzare dopo l'autenticazione (con **ID Sessione** aggiunto come parametro GET denominato `session`) | | `permission` | I permessi richiesti dall'applicazione. Permessi multipli vanno suddivisi con la virgola `,` | :::tip Esempio concreto ```: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 ``` ::: #### Passo 3 Dopo che la persona ha autorizzato l'accesso alla tua applicazione, una richiesta HTTP, di tipo `POST` alla seguente risorsa restituirà il **token di accesso** come risposta. ```:no-line-numbers https://{host}/api/miauth/{session}/check ``` - `{host}` è il nome dell'istanza della persona utilizzatrice (di solito lo ha digitato egli stessa) - `{session}` è il valore **ID Sessione** Le proprietà incluse nella risposta sono le seguenti: | Parametro | Descrizione | | --------- | ------------------------ | | `token` | token di accesso | | `user` | informazioni sul profilo | ## Fruire delle API Una volta che hai ottenuto il **token di accesso** puoi usare le API inviando richieste HTTP alle varie risorse. :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 ::: アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` Il **token di accesso** deve essere incluso nel corpo nella richiesta, in un parametro chiamato `i`. Per avere maggiori informazioni sulle API, vedere il catalogo. In aggiunta alle API HTTP, Misskey mette a disposizione anche le [Streaming API](./streaming/). :::warning Le API di Misskey non sono RESTful. ::: :::tip La tua istanza Misskey mette a disposizione il **Catalogo delle API** e la documentazione, al seguente indirizzo: `/api-doc` ::: ================================================ FILE: content/it/.docs-legacy/api/streaming/channel/global-timeline.md ================================================ --- description: "Canale in cui è convogliato il flusso di Note della Timeline Federata" --- # `globalTimeline` Canale in cui è convogliato il flusso di Note della Timeline Federata ## Parametri nessuno ## Eventi ### `note` Avviene quando una nuova Nota si aggiunge alla Timeline Federata ## Operazioni nessuna ================================================ FILE: content/it/.docs-legacy/api/streaming/channel/home-timeline.md ================================================ --- description: "Canale in cui è convogliato il flusso di Note della Timeline Home" --- # `homeTimeline` Canale in cui è convogliato il flusso di Note della Timeline Home ## Parametri nessuno ## Eventi ### `note` Avviene quando una nuova Nota si aggiunge alla Timeline Home ## Operazioni nessuna ================================================ FILE: content/it/.docs-legacy/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Canale in cui è convogliato il flusso di Note della Timeline Sociale" --- # `hybridTimeline` Canale in cui è convogliato il flusso di Note della Timeline Sociale ## Parametri nessuno ## Eventi ### `note` Avviene quando una nuova Nota si aggiunge alla Timeline Sociale ## Operazioni nessuna ================================================ FILE: content/it/.docs-legacy/api/streaming/channel/index.md ================================================ # Elenco dei canali ================================================ FILE: content/it/.docs-legacy/api/streaming/channel/local-timeline.md ================================================ --- description: "Canale in cui è convogliato il flusso di Note della timeline locale" --- # `localTimeline` Canale in cui è convogliato il flusso di Note della Timeline Locale ## Parametri nessuno ## Eventi ### `note` Avviene quando una nuova Nota si aggiunge alla Timeline Locale ## Operazioni nessuna ================================================ FILE: content/it/.docs-legacy/api/streaming/channel/main.md ================================================ --- description: "Questo canale fornisce informazioni di base" --- # `main` Questo canale fornisce informazioni di base ## Parametri nessuno ## Eventi ### `notification` Avviene quando ricevi una notifica ### `mention` Avviene quando il profilo viene nominato ### `reply` Avviene quando si riceve una risposta ### `renote` Avviene quando è _"Rinotata"_ una delle tue Note ### `follow` Avviene quando segui un altro profilo ### `followed` Avviene quando un altro profilo ti segue ### `unfollow` Avviene quando un altro profilo smette di seguirti ### `messagingMessage` Avviene alla ricezione di un messaggio di chat ### `readAllNotifications` Avviene quando sono state lette tutte le notifiche ### `unreadNotification` Avviene quando c'è una nuova notifica ### `unreadMention` Avviene quando c'è una nuova menzione ### `readAllUnreadMentions` Avviene quando sono state lette tutte le menzioni ### `unreadSpecifiedNote` Avviene quando c'è una nuova Nota diretta ### `readAllUnreadSpecifiedNotes` Avviene quando sono state lette tutte le Note dirette ### `unreadMessagingMessage` Avviene quando c'è un nuovo messaggio nella chat ### `readAllMessagingMessages` Avviene quando sono stati letti tutti i messaggi in chat ## Operazioni nessuna ================================================ FILE: content/it/.docs-legacy/api/streaming/index.md ================================================ --- description: "La Streaming API mette a disposizione informazioni in real-time (es: nuovi post nella timeline, reazioni, followers ecc...) oltre ad altre attività." --- # Streaming API :::tip Prima di continuare, dovresti aver già letto [Le API di Misskey](../index.md). ::: La Streaming API mette a disposizione informazioni in real-time (es: nuovi post nella timeline, reazioni, followers ecc...) oltre ad altre attività. ## Conttettersi al flusso. Per usare la Streaming API, occorre connettersi al server tramite **websocket**. La URL di tipo websoket è simile a questa: ```:no-line-numbers wss://{host}/streaming?i={token} ``` - `{host}` È il dominio dell'istanza a cui connettersi - `{token}` È il token di accesso ottenuto in precedenza :::tip Puoi anche connetterti senza il token di accesso, ma in questo caso otterrai informazioni limitate e svolgere attività limitate. ::: Dopo aver aperto la connessione al flusso, potrai iscriverti ai post come descritto di seguito, ma in questo momento ancora no. Se intendi ricevere i post dalla tua timeline devi entrare in un **canale** del flusso, come descritto di seguito. **Tutti i dati dovrebbero essere codificati come JSON** ## Canale La Streaming API di Misskey ha il concetto dei canali. Con questo stratagemma si possono separare le informazioni da spedire e ricevere. Entrando in un canale del flusso potrai ricevere vari tipi di informazione e spedirne di altre. :::tip Puoi entrare in più canali contemporaneamente con una unica connessione al flusso. ::: Di seguito descriviamo come usare i canali. Per sapere quali siano disponibili, consulta la [Lista dei canali](./channel/index.md). ### Entrare in un canale Per entrare in un canale del flusso, spedisci i seguenti dati in formato JSON: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` - `channel` è il nome del canale in cui vuoi entrare. I tipi di canale verranno descritti dopo. - `id` è un identificativo arbitrario pe interagire col canale. Necessario per indentificare da quale canale proviene il messaggio, perché il flusso contiene più canali. Potrebbe essere un UUID oppure un numero casuale. - `params` sono i parametri richiesti per entrare nel canale. Ogni canale necessita dei suoi paremtri specifici. Quando entri in un canale che non necessita di parametri, questo valore può essere ommesso (opzionale) :::tip L' ID non è per canale ma _per ingresso al canale_, poiché potrebbe essere neccessario entrarci più volte ma con parametri diversi. ::: ### Ricevere messaggi dai canali Mettiamo che un _canale timeline_ spedisca un messaggio quando arriva una nota. Ricevendo il messaggio, sarai al corrente, in tempo reale, della presenza di una nuova nota nella tua timeline. Quando un canale spedisci un messaggio, ottieni i seguenti dati JSON: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` - `id` è l'identificativo che hai impostato entrando nel canale, come indicato in precedenza. Questo ti permette di capire da quale ingresso al canale arriva il messaggio. - `type` il tipo di messaggio. Dipende dal canale che lo ha spedito. - `body` contenitore del messaggio. Il contenuto dipende dal canale che lo ha spedito. ### Spedire un messaggio al canale Ad alcuni canali è possibile spedire messaggi e svolgere altre operazioni oltre alla ricezione di messaggi. Per spedire un messaggio nel canale, spedisci il seguente JSON al flusso: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` - `id` è l'identificativo che hai impostato entrando nel canale, come indicato in precedenza. Questo ti permette di capire da quale ingresso al canale arriva il messaggio. - `type` tipo di messaggio. Ogni canale accetta diversi tipi di messaggi. - `body` Contenitore del messaggio. Ogni canale accetta diversi contenuti. ### Uscire da un canale Per uscire da un canale, spedisci il seguente JSON al flusso: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` - `id` è l'identificativo che hai impostato entrando nel canale, come indicato in precedenza. Questo ti permette di capire da quale ingresso al canale arriva il messaggio. ## Capturing Notes Misskey mette a disposizione uno stratagemma chiamato **cattura nota** che ti mette in condizione di ricevere un flusso di eventi per una nota specifica. Ad esempio, mettiamo che vorresti mostrare le reazioni ad una nota in tempo reale. Di solito, è il client che inizia le richieste dati, non può sapere dei cambiamenti lato server, prima di averli richiesti. Per aggirare questo ostacolo Misskey mette a disposizione lo stratagemma **cattura nota**, con cui puoi ottenere anche tutti gli eventi correlati e quindi mostrare le reazioni in tempo reale. Nel prossimo capitolo leggerai come attuare lo stratagemma. Per sapere quali altri eventi si possono catturare, leggi la [Lista di eventi catturabili](./note-capture-events.md). ### Catturare una Nota Per catturare una nota e i suoi eventi, spedisci il seguente JSON al flusso: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` - `id` è l'identificativo della Nota che vuoi catturare Inviando questo messaggio, chiedi a Misskey di catturare la Nota, gli eventi correlati verranno quindi indirizzati al tuo flusso. Mettiamo il caso che una nota ottiene una reazione, vedrai un messaggio simile a questo: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` - `body.id` sarà l'identificativo della nota che ha innescato l'evento - `body.type` sarà il tipo di evento che si è innescato - `body.body` sarà il contenitore dei dettagli dell'evento innescato ### Interrompere la cattura della Nota Se vuoi interrompere la ricezione di eventi di una Nota, ad esempio quando scompare dallo schermo, puoi annullare la richiesta di cattura. Spedisci il seguente JSON al flusso: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` - `id` è l'identificativo della Nota di riferimento Una volta spedito questo messaggio, non riceverai più alcun evento relativo a quella Nota. ================================================ FILE: content/it/.docs-legacy/api/streaming/note-capture-events.md ================================================ # Gli eventi di _cattura Nota_ ## `reacted` Avviene quando c'è una reazione alla Nota specificata ## `pollVoted` Avviene quando c'è un voto alla nota con sondaggio ## `deleted` Avviene quando la Nota specifica viene eliminata ================================================ FILE: content/it/.docs-legacy/faq.md ================================================ # FAQ domande frequenti Questa pagina raccoglie le domande poste di frequente, sia sul progetto Misskey, sia sull'uso che se ne fa di una istanza. ## Qual'è l'obiettivo del progetto? Francamente Misskey mira soltanto ad essere una buona piattaforma di comunicazione a tutto tondo. Diversamente da altre, non è fondata su idee specifiche, per esempio l'anti-centralizzazione, né viene sviluppata con quello scopo. Sotto questo aspetto è un po' "senza obiettivi", il che permette di cambiare facilmente i piani se necessario. ## Misskey è sviluppato da una azienda? No. Misskey è sviluppato da una singola persona e non viene commercializzato tramite alcuna azienda. I membri del team di sviluppo di solito sono volontari. Dovessero presentarsi alcuni sponsor, lo sviluppo rimane comunque incentrato sulla comunità di utilizzatori. ## Chi gestisce Misskey? Essendo un sistema distribuito, ogni istanza, individualmente, è governata da uno o più amministratori. Per tanto non c'è una singola persona o azienda che controlla Misskey. Significa anche che il team di sviluppo non ha alcun controllo delle istanze individuali. Le questioni specifiche vanno risolte con gli amministratori di questa o quella istanza. Per scoprire chi sono gli amministratori di una istanza, occorre visitare la pagina: [Informazioni sull'istanza](/about). I creatori di una istanza, sono essi stessi gli amministratori. ## Quale istanza dovrei scegliere? Abbiamo un [elenco di istanze Misskey](../instances.md), sebbene non sia completo. La risposta è: dipende. Dall'istanza, dalla grandezza della community o dal motivo che la anima. Scegliere una istanza che coincide con i tuoi interessi è probabilmente una buona scelta. Anche se, la quantità di persone, la velocità del servizio, l'area in cui è posizionata o la lingua parlata, potrebbero essere criteri validi per la scelta. Nessuna istanza è quella **ufficiale**, anche tu potresti avere la capacità di aprire la tua istanza. In generale, qualsiasi istanza scegli, avrai modo di connetterti con tutti gli utenti in modo trasparente. ## Come installo la mia istanza? Grazie per l'interesse ad avviare una nuova istanza di Misskey. Fino al 2022 non ci sono servizi di hosting specializzati nella fornitura di Misskey chiavi in mano. Quindi avviare la propria istanza richiede un certo quantitativo di competenza tecnica. La [guida di installazione](./install.md) ti aiuterà con ulteriori informazioni a riguardo. ## Quale tecnologia usa Misskey? Durante lo sviluppo di Misskey, la tecnologia è cambiata enormemente. All'inizio si usava una combinazione di MySQL + PHP + jQuery (denominata LAMP), ma oggi le cose sono cambiate: - Applicazione: Node.js - Base dati: PostgreSQL, Redis - Interfaccia utente: Vue.js - Linguaggio di programmazione: TypeScript In aggiunta a tutto ciò, c'è MFM e AiScript, che sono due tecnologie Open Source originali di Misskey. ## È una derivazione di Mastodon? No. Misskey è un progetto completamente diverso da Mastodon o altri progetti simili. Lo sviluppo si protrae da molto più tempo. Sebbene sia diventato federato e distribuito soltanto dopo l'apparizione di Mastodon. Entrambi i progetti implementano il protocollo ActivityPub, anche se non c'è relazione tra entrambi. ## Mi serve il logo e l'icona di Misskey, come si scaricano? Abbiamo a disposizione diverse [risorse grafiche](../appendix/assets.html). ## Chi è quella ragazza carina con le orecchie da gatto? Si tratta della dea guardiana di Misskey, si chiama Ai.
ℹ️ Per ulteriori informazioni su Ai sul sito dedicato, in giapponese.
## È disponibile la App per iOS o Android? Sebbene non esista alcuna App ufficiale di Misskey, esistono alcune [applicazioni sviluppate da terzi](./apps). Comunque, la funzionalità di App terze, inevitabilmente rimane al passo della versione ufficiale via web. Se puoi fare a meno dalla App nativa per il tuo device, noi ti raccomandiamo di usare la versione ufficiale via web. Essa infatti supporta PWA ed è possibile fare in modo che si comporti come una App nativa. ## Posso entrare usando una App Mastodon? Siccome Misskey non è compatibile con le API Mastodon, tranne poche eccezioni, l'uso dei client Mastodon non è possibile. ## Cosa devo fare per seguire un profilo su un altra istanza? Nel menu laterale, scegli **"Cerca"** e digita il nome utente comprensivo dell'indirizzo della istanza. Ad esempio: `@syuilo@misskey.io` ## Come annullo una "Rinota"? Premi il bottone coi tre puntini ("...") in alto a destra, vicino all'orario della tua [Rinota](../features/note#renote) e scegli la voce di menu **"Annulla Rinota"**. ## Vorrei nascondere l'anteprima della URL quando c'è un link Puoi evitare di mostrare l'anteprima usando MFM. Sulla tua istanza, puoi avere gli esempi cliccando il logo in alto a sinistra e segliendo questo menu: **"Guida > Bigliettino MFM"** ## Voglio una emoji particolare Le emoji possono essere gestite solamente dagli amministratori della istanza. Chiedi supporto a loro e faranno del loro meglio per aiutarti. ## Vorrei sviluppare un BOT Per sviluppare un profilo di tipo BOT occorre fare uso delle [API Misskey](../docs/api) della tua istanza. ## Che servizio di traduzione viene utilizzato? Le istanze Misskey possono usare il servizio di traduzione [DeepL](https://www.deepl.com/) ## Posso pubblicare un servizio con «Misskey» nel nome? Il marchio «Misskey» è in attesa di registrazione (2022-054788) a partire da novembre 2022. Viene concesso di pubblicare un servizio che riporta la parola «Misskey» nel nome, non è previsto alcun pagamento. ================================================ FILE: content/it/.docs-legacy/features/ads.md ================================================ # Gli annunci promozionali Misskey ha una funzione che permette agli amministratori di mostrare annunci promozionali nell'istanza locale. Selezionando l'icona (i), visibile nell'angolo in alto a destra dell'annuncio, si può ridurre la frequenza di visualizzazione. :::tip Anche riducendo la frequenza, è possibile che gli annunci rimangano comunque visibili. ::: ## Impostazioni annunci (amministratore) Puoi aggiungere, modificare o rimuovere annunci dal pannello di controllo della tua istanza. Puoi impostare qualsiasi immagine, URL di destinazione, forma e rapporto di visualizzazione per l'annuncio. ================================================ FILE: content/it/.docs-legacy/features/antenna.md ================================================ # Le Antenne Consente di impostare alcuni parametri che permettono di raccogliere automaticamente Note che li soddisfano. Senza la necessità di seguire profili. Quando viene creata un'antenna con particolari condizioni, vengono pubblicate le Note che corrispondono alle condizioni desiderate. Le Antenne sono vere e proprie Timeline personalizzate, composte secondo determinate condizioni. ================================================ FILE: content/it/.docs-legacy/features/charts.md ================================================ # I grafici Misskey ha la capacità di generare grafici che descrivono i dati dell'istanza. Puoi comprendere intuitivamente l'andamento della federazione e lo svolgimento delle attività. Puoi raggiungerli visitando la pagina con le informazioni sull'istanza. ## Aggregato Il primo riquadro mostra i grafici aggregati sulla federazione dell'istanza. ### Pub Andamento delle istanze che consegnano messaggi sulle attività. Si tratta del conteggio univoco di istanze remote che seguono profili sull'istanza locale. ### Sub Numero di istanze che ricevono messaggi sulle attività. Si tratta del conteggio univoco di istanze remote che i profili locali stanno seguendo. ### Received Numero di istanze remote che hanno spedito attività a quella locale. ### Delivered Numero di istanze remote che hanno ricevuto attività da quella locale. ### Stalled Numero di istanze remote che soffrono malfunzionamenti durante la consegna delle attività. ## Utenti attivi Il grafico che mostra l'andamento dei profili attivi sull'istanza locale. ### Letture e scritture Quantità di profili che hanno spedito o ricevuto note. ### Lettura Quantità di profili che hanno ricevuto note. ### Scrittura Quantità di profili che hanno spedito note. ### < Week Profili più recenti di una settimana fa. ### < Month Profili più recenti di un mese fa. ### < Year Profili più recenti di un anno fa. ### > Week Profili creati da più di una settimana. ### > Month Profili creati da più di un mese. ### > Year Profili creati da più di un anno. ================================================ FILE: content/it/.docs-legacy/features/clip.md ================================================ # Le clip Consente di elencare più note insieme, a prescindere da chi le abbia pubblicate. È possibile creare e gestire più clip impostando nomi personalizzati e descrizioni per ognuna di esse. Puoi anche scegliere se l'elenco sia pubblico, cioè visibile a tutti, o meno. Per creare una clip, fai clic su «Aggiungi», visitando la pagina di gestione delle clip, nel menu «Altro». Per aggiungere una Nota in un elenco Clip, seleziona la voce Clip nel menu della Nota prescelta e scegli il nome della Clip che dovrà contenerla. ================================================ FILE: content/it/.docs-legacy/features/custom-emoji.md ================================================ # Le emoji personalizzate Si tratta di una caratteristica che ti permette di usare come emoji qualsiasi immagine fornita dalla tua istanza. Puoi usarli nelle Note, reazioni, chat, nella descrizione del profilo, nel campo nome, ecc... Per usare un emoji personalizzato, utilizza il selettore di emoji, se è disponinile, altrimenti digita `:` (due punti) per vedere un elenco di suggerimenti. Ogni volta che verrà trovata una parte di testo, ad esempio, identica a `:gattino_rosa:`, verrà sostituita con l'emoji corrispondente. Per scoprire quali emoji personalizzati siano disponibili nella tua istanza, visita la pagina `/emojis`. ================================================ FILE: content/it/.docs-legacy/features/deck.md ================================================ # Il deck Questa modalità permette di organizzare le informazioni in colonne. Permette di ricevere un flusso notevole in tempo reale. ## Aggiungi una colonna Puoi aggiungere una colonna contenitiva cliccando lo sfondo della pagina col tasto secondario del mouse, nel menu scegli «Aggiungi colonna». Oppure usando il bottone (+) in alto a destra. ## Sposta la colonna Puoi invertire l'ordine delle colonne, semplicemente trascinandole a destra o sinistra, una sull'altra. Oppure col tasto secondario del mouse sull'intestazione della colonna. Nel menu scegli la direzione in cui andare (destra/sinistra). ## Divisione orizzontale Due colonne possono dividersi lo spazio di una unica colonna. Col click secondario, seleziona nel menu: «Impila a sinistra» per spostare la colonna attuale sotto alla precedente. Per annullare la suddivisione, seleziona dal menu: «Sposta a destra». ## Impostazioni colonna Selezionando «Modifica» con il click secondario, puoi alterare la larghezza delle colonne. Alcune delle quali permettono anche di personalizzare ulteriori caratteristiche. ## Impostazioni del Deck Puoi controllare le impostazioni della modalità, visitando la pagina `/settings/deck` sulla tua istanza. ================================================ FILE: content/it/.docs-legacy/features/drive.md ================================================ # Il drive Il **Drive** è una caratteristica che ti permette di gestire i file caricati su Misskey. :::tip Tecnicamente, il drive può essere visto come uno strumento gestito in modo centralizzato da Misskey ma anche aperto ai vari profili locali ::: Puoi caricare qualsiasi file direttamente nella pagina Drive di Misskey. Contiene anche le immagini che hai caricato sul tuo profilo e quelle allegate alle Note. I file caricati nel Drive possono essere scaricati sempre. Possono anche essere riutilizzati quando pubblichi nuove Note, usando la funzionalità **allega dal Drive** Per comodità puoi organizzare i file in cartelle, anche solo per raggrupparli. :::warning Quando elimini un file dal Drive, **verranno eliminati anche i contenuti a cui è allegato** (Note, pagine, ecc...) ::: ## Content Warning (NSFW) Il **Content Warning** indica un allerta sulla presenza di allegati sensibili o espliciti (NSFW, Not Safe For Work). Si tratta di una caratteristica che puoi selezionare per ogni file contenuto nel Drive. I file segnati come NSFW vengono occultati alle persone, affinché non siano immediatamente visibili. Occorre quindi che, volontariamente, le persone richiedano di vedere di che si tratta. L'impostazione è attivabile manualmente oppure può essere impostata a discrezione degli amministratori o moderatori. ================================================ FILE: content/it/.docs-legacy/features/favorite.md ================================================ # I preferiti Consentono di ricordarsi di alcune [Note](./note) specifiche. Le Note preferite saranno visibili nella pagina `/my/favorites`. Nessuno saprà che hai preferito la Nota, tranne te. L'impostazione avviene cliccando il «menu Nota», selezionando la relativa voce di menu. ================================================ FILE: content/it/.docs-legacy/features/follow.md ================================================ # Il follow Seguire un profilo permette di leggere le Note che ha scritto. Tuttavia, non sono incluse le risposte che ha inviato ad altre conversazioni. Per seguire un utente, seleziona il bottone «Segui», visitando il profilo stesso. Clicca di nuovo, per interrompere il follow. :::tip Se compare la scritta «in elaborazione...» significa che quel profilo valuterà se approvare o meno la tua richiesta. Oppure che si sono verificati degli impedimenti causati dalla istanza remota. ::: ================================================ FILE: content/it/.docs-legacy/features/index.md ================================================ # Funzionalità ================================================ FILE: content/it/.docs-legacy/features/mfm.md ================================================ --- description: "MFM è uno speciale linguaggio di marcatura del testo che può essere usato in varie zone di Misskey." --- # MFM, Misskey Flavoured Markdown Uno speciale linguaggio di marcatura del testo che può essere usato in varie zone di Misskey. :::tip Alcune parti sono compatibili con MarkDown ::: ## Elenco delle zone in cui è accettato - Testo della Nota - Testo del Content Warning - Nome del profilo - Biografia del profilo ## Sintassi ### Menzioni Puoi nominare utenti locali o remoti, usando il carattere `@` (at oppure chiocciola) ```:no-line-numbers @ai ``` ```:no-line-numbers @ai@misskey.io ``` ### Hashtag Puoi taggare le parole chiave usando `#` il cancelletto ```:no-line-numbers #misskey ``` ### Emoji personalizzati Puoi utilizzarli includendo il nome tra il simbolo `:` due punti. ```:no-line-numbers :misskey: ``` ### Link Puoi indicare link senza mostrare l'url completa. ```:no-line-numbers [Sito Example](https://example.com) ``` ### Grassetto Il testo racchiuso da `**` due asterischi, diventerà grassetto, o bold. ```:no-line-numbers **Grassetto** ``` --- :::tip Puoi trovare più esempi nella pagina **Bigliettino MFM** che trovi presso la tua istanza, all'indirizzo `/mfm-cheat-sheet` ::: ## Informazioni per sviluppatori L'implementazione del parser MFM è una libreria disponibile sotto licenza opensource, per facilitare l'integrazione nel tuo client personalizzato. - Implementazione JavaScript del parser: [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) ================================================ FILE: content/it/.docs-legacy/features/mute-and-block.md ================================================ # Silenziare e Bloccare Se non ti piace un profilo, puoi silenziarlo e farlo scomparire dalla timeline. In alternativa, puoi bloccarlo per impedirgli di vedere i tuoi contenuti o interagire in qualsiasi modo. Le persone non sapranno che le hai silenziate, ma sapranno di esser state bloccate. Sta a te decidere. :::tip Silenziare e Bloccare, non si escludono. Possono essere usati simultaneamente. ::: :::warning Considera l'eventualità di segnalare contenuti fastidiosi da altri profili, se violano il regolamento della tua istanza. ::: Puoi vedere l'elenco dei profili Silenziati e Bloccati, nella pagina **Impostazioni » Silenziati/Bloccati** ## Silenziare Quando silenzi un profilo, smetterai di vedere i seguenti contenuti: - le note da quel profilo (compresi i Rinota e le risposte nelle conversazioni), verranno rimosse dalla timeline e dai risultati di ricerca - le notifiche da quel profilo - lo storico dei messaggi nella chat - e tutto il resto... Per silenziare un profilo, visita la pagina del profilo e apri il menu, in fine scegli **Silenzia** :::tip Il profilo Silenziato non riceverà alcuna notifica e non saprà mai di essere stato silenziato. ::: ## Bloccare Quando blocchi un profilo, questi non sarà più in grado di vedere i tuoi contenuti e nemmeno di: - seguirti - aggiungerti ad una lista - risponderti o Rinotare i tuoi contenuti - inviare una Reazione o votare un sondaggio - inviarti un messaggio in chat - e il resto delle iterazioni Inoltre... - Se quel profilo ti stava seguendo, smetterà di seguirti quando viene Bloccato - Se quel profilo ti aveva tra i follower, il tuo profilo verrà rimosso dai suoi follower. Per **Bloccare** un profilo, apri il menu nella pagina e scegli Blocca dal menu. :::warning Il profilo bloccato non riceverà alcuna notifica ma indirettamente ne sarà consapevole, poiché non sarà in grado di svolgere alcuna azione nei tuoi confronti. ::: :::warning L'altra persona non sarà in grado di vedere i tuoi contenuti tramite quel profilo, ma potrebbe riuscirci cambiando profilo oppure scollegandosi. ::: ================================================ FILE: content/it/.docs-legacy/features/note.md ================================================ # Le Note Le Note sono il concetto centrale a cui ruota intorno Misskey. Si riferiscono al contenuto che può includere testo, immagini, sondaggi e altro che viene pubblicato su Misskey. In questo contesto _«Notare»_ viene utilizzato come verbo, per riferirsi alla creazione di una Nota. Componendo una Nota, verrà aggiunta alla [Timeline](./timeline) e diventerà visibile ai tuoi follower e agli altri profili nella istanza. Su Misskey, è possibile anche aggiungere [Reazioni](./reaction) alle Note. Inoltre, puoi Rispondere o Citare una Nota. Inserendo una Nota tra le [Preferite](./favorite), potrai trovarla facilmente in futuro. ## Comporre una Nota Per comporre la Nota premi il bottone con l'icona della matita, si aprirà il modulo di composizione. Digita il contenuto che desideri pubblicare e premi il bottone **Nota** per pubblicarla. Le note possono contenere testi o allegati, come immagini o video. Oppure anche [Sondaggi](./poll). Inoltre, sfruttando [MFM](./mfm) nel testo, puoi anche includere [Menzioni](./mention) e [Hashtag](./hashtag). C'è anche la funzionalità ContentWarning e la scelta per l'ambito di pubblicazione. :::tip Se sei al computer e hai copiato una immagine nel blocco appunti, poi allegarla semplicemente usando **Incolla** all'interno del campo di testo. ::: :::tip Puoi anche premere Ctrl + Invio mentre digiti, per pubblicare immediatamente la Nota. ::: ## Rinotare L'azione di _Citare_ una Nota esistente, di condividere un'altra, o la Nota stessa, risultato di queste azioni, sono chiamate **Rinota** (anche come verbo). Il più delle volte lo si fa per ricondividere una Nota che avevi scritto in passato. Siccome è possibile "Rinotare" più volte, fai attenzione poiché potresti infastidire le altre persone. :::warning Se hai impostato l'ambito di visibilità a **Solo Followers**, o **Diretto**, allora non è possibile _Rinotare_. ::: Per annullare un "Rinota", premi `...` vicino all'orario della Nota (angolo in alto a destra) e seleziona: **Annulla Rinota** ## Content Warning (CW NSFW) Avviene quando il contenuto di una Nota è nascosto, affinché debba esserne richiesta esplicitamente la visibilità. Questo per evitare che allegati espliciti o sensibili siano visti involontariamente. Puoi anche utilizzarlo per pubblicare degli **Spoiler** oppure Note che sarebbero troppo lunghe. Attiva il bottone "Nascondere media", quello con l'icona di un occhio sbarrato. Comparirà un nuovo campo in cui indicare un riassunto del contenuto nascosto. ## Ambito di visibilità Puoi impostare individualmente per ogni Nota in che ambito sarà visibile. Scegli premendo l'icona alla sinistra del bottone "Nota". ### Pubblico La Nota sarà visibile a tutti i profili del fediverso e non (sul web). Comparirà in tutte le Timeline (home, locale, sociale, globale). :::warning Questa opzione non è disponibile se il tuo profilo è stato Silenziato. ::: ### Home La Nota sarà visibile a tutti i profili del fediverso e non (sul web), ma comparirà solamente nella **Timeline Home** dei tuoi follower. ### Followers La Nota sarà visibile soltanto ai tuoi follower. Comparirà in tutte le loro Timeline, soltanto a loro. ### Diretta La Nota sarà visibile soltanto ai profili indicati come destinatari. Comparirà in tutte le Timeline dei profili indicati. ### L'opzione "Soltanto locale" Se abiliti questa opzione, la Nota non verrà federata nel fediverso, ma limitata alla tua istanza. ### Tabella comparativa
PubblicaHomeFollowersDiretta
LTL/STL/GTL dei Followers
LTL/STL/GTL degli altri
## Fissata in cima Una Nota fissata in cima al profilo, ottiene visibilità costante, poiché compare prima delle altre. Per attivare questa opzione, scegli la voce ** Fissa sul profilo** dal menu Nota. :::tip Puoi fissarne più di una. ::: ## Osserva Di una Nota che non è tua, puoi ottenere notifiche delle risposte, reazioni, ecc, osservandola. Per attivare questa opzione, seleziona "Osserva" dal menu Nota. ================================================ FILE: content/it/.docs-legacy/features/online-status.md ================================================ # Status di presenza Lo **Status di presenza** di un profilo indica se sta usando Misskey. Viene indicato tramite un pallino colorato all'angolo dell'immagine profilo.
Colore Status Descrizione
🟢 Verde Presenza Sta usando Misskey proprio adesso
🟡 Giallo Assenza Persona assente ma profilo connesso
🔴 Rosso Disconnessione Il profilo non è connesso
⚫ Grigio Sconosciuto Stato di presenza non disponibile (privato)
Il tuo **Stato di presenza** cambia automaticamente, non può essere impostato manualmente. Anche se puoi impostare che sia privato (grigio). :::warning Attenzione alcune funzionalità come suggerirti alle persone, potrebbero essere basate sullo stato di presenza, dunque essere in stato privato (grigio) potrebbe rendere più difficile trovarti agli altri. ::: ================================================ FILE: content/it/.docs-legacy/features/pages.md ================================================ # Le pagine Sono vere e proprie pagine, tipo un blog, organizzate gerarchicamente sotto al tuo profilo, es: `/@sysop/pages/regolamento` ## Le variabili Puoi anche creare pagine dinamiche utilizzando le variabili. Scrivendo **{nome variabile}** nel testo, puoi assegnare il valore di una variabile. Ad esempio, se il testo è `Ciao { cosa } mondo!` e il valore della variabile **cosa** è _Ai_, allora il testo visualizzato sarà: `Ciao Ai mondo!`. Le variabili vengono interpretate calcolandone i valori dall'alto verso il basso. Quindi non è possibile che una variabile faccia riferimento a una variabile sottostante. Ad esempio, se definisci tre variabili come `A, B e C`, puoi richiamare il valore di `B` da `C` ma non puoi richiamare il valore di `B` e `C` da dentro `A`, poiché esse non sono state dichiarate prima di essa. Per ricevere testo immesso dai visitatori, posiziona un blocco **Input utente** nella pagina e assegna il nome di una variabile in **Nome variabile** indicando la variabile in cui desideri memorizzare l'input (la variabile verrà creata automaticamente). Puoi usare quella variabile per interagire con il testo immesso dal visitatore. ## Le Funzioni Consentono di svolgere il calcolo dei valori in modo riutilizzabile. Per creare una funzione, crea una variabile di tipo **funzione**. Una funzione può avere slot (argomenti) e i valori degli slot possono essere usati come variabili all'interno della funzione. Esistono anche funzioni che accettano altre funzioni come argomenti. ================================================ FILE: content/it/.docs-legacy/features/plugin.md ================================================ # 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). ================================================ FILE: content/it/.docs-legacy/features/reaction.md ================================================ # Le reazioni Questa funzionalità permette di interagire con le Note scritte da altri profili per mezzo delle emoji. Per reagire, premere il bottone `+` (più), visibile sotto ogni nota. Apparirà lo strumento per selezionare una emoji. Si può reagire anche usando [emoji personalizzate](./custom-emoji.md). ## Personalizzare la selezione delle reazioni Puoi scegliere quali emoji dovrebbero apparire nello strumento e gestire l'ordine in cui dovrebbero apparire. La configurazione avviene nel menu **Impostazioni » Reazioni** del tuo profilo. ## Reazioni a istanze remote Poiché le Reazioni sono una caratteristica personalizzata di Misskey, il più delle volte, alle altre istanze verrà inviato un semplice 👍 (Like), a meno che l'istanza remota sia in grado supportarle. Nello standard ActivityPub, di solito, viene implementato come ⭐ (Preferito) ## Reazioni da istanze remote Poiché **Misskey non ha i Like**, quelli provenienti da istanze remote verranno rappresentati come una Reazione 👍 (Like). :::tip Gli amministratori della tua istanza, potrebbero cambiare una impostazione per rappresentare i Like remoti come Reazione ⭐ (Preferito). [Informazioni per amministratori](../admin/default-reaction.md). ::: ## Elenco di tutte le tue Reazioni Puoi vedere lo storico, aprendo il tab **Reazioni** nella propria pagina profilo. Puoi anche scegliere di renderle visibili pubblicamente nelle _Impostazioni Generali » Reazione_ ================================================ FILE: content/it/.docs-legacy/features/share-form.md ================================================ # Modulo di condivisione Quando apri la pagina `/share` sulla tua istanza Misskey, apri un modulo per la condivisione via web. Utile, ad esempio, se vuoi che le persone iscritte possano condividere contenuti da un sito esterno. Puoi specificare alcune opzioni sui contenuti, tramite la configurazione dei parametri della URL. ## Parametri della URL :::tip Tutti i parametri sono facoltativi ::: | chiave | valore | | ------- | --------------------------------------------------------------- | | `title` | Il titolo, verrà inserito prima del testo, tra parentesi quadre | | `text` | testo della Nota | | `url` | URL, inserito al termine della Nota | ### Informazioni sulla risposta Puoi decidere che la Nota venga composta come risposta ad una Nota specifica, indicando uno dei seguenti parametri | chiave | valore | | ---------- | -------------------------------------------------------------- | | `replyId` | ID della Nota locale a cui vuoi rispondere | | `replyUri` | URL a cui rispondere (specifica l'indirizzo di un post remoto) | ### Informazioni sul Rinota Puoi decidere che la Nota venga composta come un Rinota di una Nota specifica, indicando uno dei seguenti parametri | chiave | valore | | ----------- | --------------------------------------------------------- | | `renoteId` | ID della Nota locale che vuoi Rinotare | | `renoteUri` | URL da Rinotare (specifica l'indirizzo di un post remoto) | ### Ambito di pubblicazione Queste opzioni ti permettono di scegliere in che ambito pubblicare | chiave | valore | | ---------------- | ---------------------------------------------------------- | | `visibility` | deve essere `public`, `home`, `followers` o `specified` | | `localOnly` | 0 (Falso) oppure 1 (Vero) | | `visibleUserIds` | target user IDs | | `visibleAccts` | target user [acct](../glossary.md#acct)s (comma separated) | :::warning Se `visibility` viene impostato a `specified`, allora occorre inviare anche uno dei parametri `visibleUserIds` o `visibleAccts`. ::: ### Allegati Puoi specificare allegati caricati nel Drive. | chiave | valore | | --------- | --------------------------------------------- | | `fileIds` | ID dei file da allegare (separati da virgole) | ================================================ FILE: content/it/.docs-legacy/features/theme.md ================================================ # I temi Servono per cambiare l'aspetto del client Web di Misskey. ## Impostazioni tema Per configurarli occorre visitare la pagina «Impostazioni» alla voce «Tema». ## Creare un tema Il tema è un oggetto JSON5 che assomiglia a questo: ```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)', }, } ``` ## Parametri - `id`: codice identificativo univoco, possibilmente un UUID - `name`: nome - `author`: autore - `desc`: descrizione (facoltativa) - `base`: riferimento sul tema di partenza - `light`: se estendi un tema chiaro; `dark`: se ne estendi uno scuro - il tuo tema erediterà le caratteristiche di uno dei due. - `props`: proprietà del tema, spiegate di seguito ### Definizione degli stili `props`下にはテーマのスタイルを定義します。 キーが CSS の変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5]で、`dark`なら[_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### Sintassi per i valori - Colore esadecimale - es: `#00ff00` - Colore `rgb(r, g, b)` - es: `rgb(0, 255, 0)` - Colore con trasparenza alpha `rgb(r, g, b, a)` - es: `rgba(0, 255, 0, 0.5)` - Riferimenti ad altre variabili - Scrivendo `@{variabile}` si farà riferimento al valore di quella variabile. - es: `@panel` - Riferimenti alle costanti (vedi sotto) - Scrivendo `${costante}` si farà riferimento al valore di quelal costante. - es: `$main` - Riferimenti alle funzioni (vedi sotto) - `:{funzione}<{argomento}<{colore}` #### Costanti Le costanti sono utili quando si ha un valore che non si desidera restituire come variabile CSS, ma si desidera riutilizzarlo come valore di un'altra variabile CSS. Se il nome della chiave inizia con `$`, la chiave non verrà esportata come variabile CSS. #### Funzioni TODO ================================================ FILE: content/it/.docs-legacy/features/thread-mute.md ================================================ # Silenziare una conversazione :::tip Funzionalità disponibile dalla versione 12.95.0 ::: **Silenzia la conversazione** permmette di nascondere le risposte ad una specifica Nota (quella che ha originato tutta la discussione). Si può attivare anche da una delle risposte. Silenziando la conversazione, non otterrai più le relative notifiche di risposta, nemmeno se qualcuno ti menziona. Per attivare l'opzione, apri il menu di una Nota compresa nella discussione che vuoi silenziare e scegli **Silenzia la conversazione**. :::warning Attenzione: Verrà silenziata tutta la conversazione, a prescindere da quale risposta sia stata selezionata. ::: ================================================ FILE: content/it/.docs-legacy/features/timeline.md ================================================ # La Timeline Si tratta di una pagina che visualizza [le Note](./note) in ordine cronologico. Dalla più recente alla più antica. Abbiamo a disposizione i seguenti tipi con caratteristiche diverse. A seconda della configurazione della tua istanza, alcune di queste potrebbero essere state disabilitate dagli amministratori ## Home Contiene le Note pubblicate dai profili che segui. Abbreviazione: HTL ## Locale Contiene le Note pubblicate dagli altri profili iscritti alla tua stessa istanza (che non stai seguendo). Abbreviazione: LTL ## Sociale Contiene la somma delle due precedenti Timeline, tutti i profili che segui e tutti i profili della istanza locale. Abbreviazione: STL ## Federata Contiene tutte le Note provenienti dalle altre istanze del Fediverso, escluse le Timeline precedenti. Abbreviazione: GTL ## Tabella comparativa Questa tabella riassume la visibilità delle Note, in base alle loro caratteristiche. | Fonte | | | Timeline | | | | ------------------ | ---------- | ---- | -------- | ------- | -------- | | Profilo | Visibilità | Home | Locale | Sociale | Federata | | Locale (che segui) | Pubblico | ✔ | ✔ | ✔ | ✔ | | | Home | ✔ | | ✔ | | | | Follower | ✔ | | ✔ | | | Remoto (che segui) | Pubblico | ✔ | | ✔ | ✔ | | | Home | ✔ | | ✔ | | | | Follower | ✔ | | ✔ | | | Locale (non segui) | Pubblico | | ✔ | ✔ | ✔ | | | Home | | | | | | | Follower | | | | | | Remoto (non segui) | Pubblico | | | | ✔ | | | Home | | | | | | | Follower | | | | | ================================================ FILE: content/it/.docs-legacy/features/widgets.md ================================================ # Riquadri Sono piccole informazioni che possono essere visualizzate e gestite sull'interfaccia web di Misskey. Per modificare i riquadri, occorre attivare la modalità di modifica. In che modo farlo, dipende dal tipo di interfaccia utente (Predefinita, Deck, classica). La modalità di modifica dei riquadri consente di aggiungere, rimuovere, elencarli e configurarne le impostazioni. ## Elenco dei widget disponibili ### Memo Questo riquadro serve come blocco appunti. ### Notifiche Elenca le notifiche in poco spazio. Si possono filtrare quelle necessarie. ### Timeline TODO ### Calendario Indica la data di oggi e quanto manca alla prossima scadenza temporale. ### Aggregatore RSS Raccoglie informazioni da siti esterni ### RSS Ticker Visualizza notizie da siti esterni, ma impegna le risorse del dispositivo. ### Tendenze Indica gli hashtag citati nelle note federate sull'istanza locale ### Orologio Indica l'ora nel fuso orario prescelto, con personalizzazione grafica. ### Attività TODO ### Foto TODO ### Orologio digitale Indica l'ora in cifre ### UNIX clock Indica quanti secondi sono passati dalla EPOCH, in formato Unix. ### Federazione TODO ### Cloud Istanze Rappresentazione grafica delle istanze federate. ### Finestra di pubblicazione Per scrivere note immediatamente ### Diapositive TODO ### Statistiche server Grafico con l'andamento del consumo risorse ### Utenti online Numero di persone collegate ### Coda di lavoro Quantità di attività durante la federazione ### Pulsante Bottone cliccabile a cui assegnare una funzione ### Console Ai Script Editor di Script Ai ### Ai La mascotte animata di Misskey ================================================ FILE: content/it/.docs-legacy/features/word-mute.md ================================================ # Filtri parole Filtrando alcune parole si può evitare che le Note che includono determiante parole evitino di comparire nella Timeline. Ci sono due tipi di filtri per le parole: - Leggero - Pesante ## Leggero Col filtro parole Leggero, il filtraggio avviene nell'ambito del client o App che stai usando su quel dispositivo. Quando la Nota coincide con le condizioni, verrà nascosta e al suo posto comparirà il testo: «(nome profilo) ha detto qualcosa». Cliccandola, diventerà visibile. ## Pesante Col filtro parole Pesante, l'istanza decide quando una Nota in arrivo coincide con le condizioni indicate ed evita di spedirla al client. Come succede con le «Antenne». Verrà proprio esclusa dalla Timeline. Per riassumere: - Scompariranno solo le nuove Note create dopo la configurazione del filtro Pesante - Se cambiano le condizioni, le Note precedenti non saranno comunque disponibili - Nelle Timeline non vedrai nemmeno il testo «(nome profilo) ha detto qualcosa» - I filtri Pesanti funzionano anche se la App che stai usando non ha la funzionalità di filtraggio ================================================ FILE: content/it/.docs-legacy/getting-started.md ================================================ # Inizia con Misskey Misskey è un sito web decentralizzato. Viene chiamato Istanza di Fediverso. Per entrare subito nel Fediverso, crea il tuo profilo su una delle [Istanze Misskey](../instances.md). :::tip Qualsiasi Istanza tu scelga, potrai interagire con i profili delle persone registrate su altre istanze. :::g-details Misskey ha la capacità di federarsi e scambiare informazioni tramite protocollo ActivityPub. In questo modo puoi comunicare con istanze di tipo Mastodon, Pixelfed, PeerTube, Soapbox o Pleroma. ::: ## Consigli per scegliere una istanza Se non hai le idee chiare, ti spieghiamo alcuni modi comunemente utilizzati per decidere come procedere. Decidi tu. Se qualcosa non esiste ancora, potresti decidere di avviare anche una nuova tua istanza! ### Geografia Alcune istanze accomunano le persone della stessa posizione geografica. ### Linguaggio Altre istanze accomunano le persone che parlano la stessa lingua. ### Tematica Alcune istanze ospitano persone che hanno gli stessi particolari interessi. ================================================ FILE: content/it/.docs-legacy/glossary.md ================================================ # Glossario Quel che segue è un glossario di termini correlati a Misskey, tradotti in italiano. ## ActivityPub Il protocollo usato per rendere Misskey distribuito. Aderendo a questo protocollo di comunicazione si garantisce all' [istanza](#istanza) di poter comunicare con il [Fediverso](#fediverso) 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 [Linguaggio di programmazione](../advanced/aiscript) per estendere le funzioni nell'interfaccia web di Misskey. ## API Interfaccia di programmazione dell'applicazione, serve per interagire con Misskey in modo programmato e automatizzato. [Informazioni sulle API](../docs/api) ## Bot Contrazione di: Robot. Si tratta di un profilo non presidiato, programmato per svolgere attività automatizzate. ## CW Abbreviazione di [Content Warning](../docs/features/note.html#cw). Una funzionalità per nascondere i contenuti espliciti o sensibili, affinché non risultino visibili inavvertitamente ma solo su richiesta. ## Fediverso Network di [istanze](#istanza) composto da varie piattaforme intercomunicanti, incluso Misskey. ## GTL Abbreviazione di [Global TimeLine](../features/timeline) ## HTL Abbreviazione di [Home TimeLine](../features/timeline) ## Istanza Piattaforma aggregatrice di profili, che dialoga con altre istanze nel [Fediverso](#fediverso) mediante il protocollo di comunicazione [ActivityPub](#activitypub) ## LTL Abbreviazione di [Local TimeLine](../features/timeline) ## MFM Abbreviazione di [Markup For Misskey](../features/mfm), si tratta di un linguaggio di marcatura di tipo _MarkDown_ usabile nella interfaccia web di Misskey. ## NSFW Abbreviazione di [Not Safe For Work]. Pubblicando una nota con questa parola in un hashtag: `#nsfw` si permette al fediverso di nascondere i contenuti espliciti e renderli visibili solamente a chi ne fa richiesta. ## Rinota L'azione di citare una nota esistente, condividendola per intero. [Maggiori informazioni](../docs/features/note.html#renote). ## STL Abbreviazione di [Social TimeLine](../features/timeline) ## Ai(藍) Ai(藍) è un personaggio di fantasia, la mascotte di Misskey. ## Profili attivi Sono i profili che producono attività recente. ## Emoji personalizzati Emoticon messe a disposizione sull'istanza. Alcuni di essi sono disponibili automaticamente, come sui dispositivi mobili, si chiamano _"Emoji Unicode"_. [Maggiori informazioni](../docs/features/custom-emoji) ## Pannello di controllo Una interfaccia web amministrativa che permette di gestire l'istanza, come le segnalazioni, l'andamento delle federazioni, l'assistenza ai profili. ## Silenziare Caratteristica del profilo. Un [profilo silenziato](../features/silence) non potrà più aggiungere _note pubbliche_ finché non otterrà la revoca. ## Job Queue - Coda di lavoro Sistema per la distribuzione delle attività da e verso altre istanze. ## Sospensione Caratteristica reversibile che rende un profilo inutilizzabile. Di solito viene attribuita dagli amministratori di una istanza nei confronti di profili che violano il regolamento. ## Drive Funzionalità che permette ai profili di [organizzare i file caricati](../features/drive) su Misskey. ## Note Contenuto inserito su Misskey, che può includere: testo, immagini, audio, video, sondaggio. [Maggiori informazioni](../docs/features/note) ## Misskist Nome di fantasia usato per riferirsi alle persone che utilizzano Misskey ## Moderatore Persone autorizzate dagli amministratori a gestire la comunità di una istanza. Possono attivare-disattivare i profili, silenziarli, eliminare note inappropriate. ## Remoto Un profilo o una nota, che risiedono su un'altra istanza. L'opposto di _Locale_. ## Federazione L'attività di condividere le informazioni tra istanze ## Locale Un profilo o una nota, che risiedono sulla propria istanza. L'opposto di _Remoto_. ================================================ FILE: content/it/.docs-legacy/install/docker.md ================================================ --- description: "Questa guida spiega come installare Misskey dentro Docker" --- # Costruire Misskey tramite Docker Compose Questa guida spiega come installare Misskey dentro Docker Compose :::danger Never change the domain name (hostname) of an instance once you start using it! ::: :::tip Requisiti iniziali: installare **Docker** e **Docker Compose** ::: ## Ottieni il codice sorgente ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## Variabili d'ambiente Copia la configurazione d'esempio, su quella di default. ```sh cp .config/example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./docker-compose.yml.example ./docker-compose.yml ``` Modificare sia `default.yml` che `docker.env` come indicato nei file. Modificare `docker-compose.yml` secondo le necessità (ad esempio se intendi cambiare porta) ## Costruzione e inizializzazione Costruisci i container necessari e popola il database. ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## Avvio Questo comando avvia i container e li imposta come servizio al riavvio. ```sh sudo docker compose up -d ``` ## Aggiornare Misskey in Docker :::warning Prima di procedere, leggiti le [Note di rilascio](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) per verificare se ci siano attività aggiuntive da svolgere. ::: ```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 ``` L'attività potrebbe richiedere del tempo, a seconda della grandezza del database e del contenuto dell'aggiornamento. ## Eseguire comandi dentro ai Container Per eseguire uno script nel container `web` ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/it/.docs-legacy/install/manual.md ================================================ --- description: "Questa guida spiega come installare e configurare Misskey" --- # Guida alla costruzione di Misskey Questa guida spiega come installare e configurare Misskey :::danger Never change the domain name (hostname) of an instance once you start using it! ::: :::tip Occorre installare il seguente software - **[Node.js](https://nodejs.org/en/)** (20.4 o successivo) - **[PostgreSQL](https://www.postgresql.org/)** (15 o successivo) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 corepackが有効化されていること ```sh sudo corepack enable ``` ::: ## Creazione utente Misskey non va eseguito tramite l'utente amministratore _root_. Occorre creare un utente ad-hoc, esempio per Debian/Ubuntu: ```sh adduser --disabled-password --disabled-login misskey ``` ## Installazione Misskey ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## Variabili d'ambiente Copia il file `.config/example.yml` in un file chiamato `default.yml` ```sh cp .config/example.yml .config/default.yml ``` Modifica `default.yml` seguendo le indicazioni nel file. ## Costruzione e inizializzazione Avvia la build e inizializza il DB, potrebbe richiedere un po' di tempo. ```sh NODE_ENV=production pnpm run build pnpm run init ``` :::tip Chi usa Debian/Ubuntu ha bisogno del pacchetto `build-essential` ::: ## Avviamento Al termine avvia Misskey usando: ```sh NODE_ENV=production pnpm run start ``` ::::Configurazione di systemd Crea il file `/etc/systemd/system/misskey.service` Incollaci questa configurazione: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning Se usi Misskey su CentOS e una porta inferiore a 1024, Devi configurare `ExecStart=/usr/bin/sudo /usr/bin/npm start` ::: Ricarica systemd, abilita e avvia il servizio ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` :::tip Per controllare lo stato del servizio: `systemctl status misskey` ::: :::: ## Aggiornamento di Misskey :::warning Leggi sempre le [Note di rilascio](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) per sapere se ci siano attività aggiuntive da svolgere. ::: Ottieni il codice sorgente dal branch `master` e le migrazioni del database: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` A seconda della grandezza del database e dal contenuto degli aggiornamenti, potrebbe impiegarci più o meno tempo. Riavvia il servizio Misskey al termine dell'aggiornamento. ```sh sudo systemctl restart misskey ``` :::tip Se ricevi errori in fase di compilazione, prova i seguenti comandi: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/it/.docs-legacy/install/ubuntu-manual.md ================================================ # Come installare Misskey su Ubuntu ## Altri tipi di installazione - [Installazione manuale](./manual.html) - [Tutti i tipi di installazione](../install.html) ## Script per il terminale bash :::tip Questa installazione non è destinata alla installazione di ambienti di sviluppo. ::: Smetti di fare copia incolla, è fastidioso, noioso, richiede tempo! Vuoi svolgere una installazione automatica? C'è lo [script per il terminale bash](./bash.html) che fa quasi tutto! Ti serve soltanto: un dominio, la configurazione di Cloudflare e la protezione del server. ## A proposito Il tipo di [Installazione manuale](./manual) prevede l'esecuzione di Misskey tramite `systemd` Il tipo di installazione tramite [docker-compose](./docker) è la più facile e ti permette di eseguire Misskey in un ambiente virtuale, senza modificare il sistema che la ospita. ## Introduzione Questa pagina indica come [Installare Misskey](./manual) su sistema operativo GNU/Linux Ubuntu. Occorre soltanto eseguire alcuni comandi _bash_, modificare alcuni file di configurazione e usare il browser. Le indicazioni sono specifiche per il sistema operativo Ubuntu, alcune parti potrebbero cambiare in futuro, rendendo inutile la guida. Ce ne scusiamo. ## Ambiente e requisiti - Sistema operativo **Ubuntu 22.04.1 LTS**. - Requisiti hardware, occorre una CPU moderna, di architettura amd64 o arm64. - Memoria RAM necessaria, circa 1.5GB. - Dominio web già configurato e account Cloudflare attivo. :::tip Se prepari un ambiente di sviluppo, dominio e Cloudflare non servono ::: :::danger Never change the domain name (hostname) of an instance once you start using it! ::: ## Come usare l'editor Nano L'editor di testo si apre con questo comando. `nano /percorso/al/file`. Il cursore si muove coi tasti freccia, home, end ecc... Per uscire, premi `CTRL+x`, successivamente, decidi se salvare le modifiche, premi `Y` per accettare. ## Creare un utente Crea un utente di sistema, poiché Misskey non dovrebbe girare con privilegi di super utente _root_. `sudo adduser --disabled-password --disabled-login misskey` :::tip Se prepari un ambiente di sviluppo, non importa crearlo. ::: ## Installazione software iniziale Occorre del software per svolgere le prossime attività, per favore installalo se non è già presente. ### Node.js Si tratta di un linguaggio di programmazione lato server, basato su JavaScript. Necessario per eseguire Misskey. ``` sudo apt install -y curl curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs node -v sudo corepack enable ``` Ti occorre la versione `v20.x.y`. Se appare un'altra versione, come la `v8.x.y` allora l'installazione non è andata a buon fine. Potresti usare il [progetto Node Version Manager](https://github.com/nvm-sh/nvm#about). ### PostgreSQL Questo è il Data Base Management System. Il gestore della base dati relazionale, ad oggetti. Essenziale per il funzionamento di Misskey. #### Installazione DBMS Occorre avere l'ultima versione, `v.15` ``` sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; systemctl status postgresql ``` Se tutto è andato bene, leggerai: **OK** #### Configurazione DBMS Esegui il client che si connette al DBMS. `sudo -u postgres psql` Ora devi creare una utenza per Misskey. Se scegli username **misskey** e password **gattino**, dovrai digitare la query: `CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'gattino';` Poi occorre il database: `CREATE DATABASE mkdb OWNER misskey;` Per uscire da `psql` scrivi `\q` ### Redis Si tratta di un database non relazionale (noSQL), gestito nella memoria. Necessario per gestire la connessione tra le federazioni e il database. Installa Redis seguendo la [documentazione ufficiale](https://redis.io/docs/getting-started/installation/install-redis-on-linux/). ``` sudo apt install -y curl ca-certificates gnupg2 lsb-release curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt update sudo apt install -y redis systemctl status redis-server ``` Se tutto è andato bene, leggerai : **Ok** ### Nginx Si tratta di un Application Web Server. Anche se non è essenziale, svolge comunque un compito importante, come il caching e la crittografia SSL (https). :::tip Se configuri un ambiente di sviluppo, non serve. ::: Installa Nginx seguendo la [documentazione ufficiale](http://nginx.org/en/linux_packages.html#Ubuntu]. ``` sudo apt install ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` Controlla se ottieni `573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62` come risposta. ``` echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx systemctl status nginx ``` Se tutto è andato bene, leggerai : **Ok** Attiva il servizio e abilita la partenza automatica al riavvio. ``` sudo systemctl start nginx sudo systemctl enable nginx curl http://localhost ``` Se leggi **Welcome to ngnix!** allora tutto è andato bene. ### Altri software Occorrono due pacchetti aggiuntivi. Servono per la creazione di Misskey. ``` sudo apt update sudo apt install -y git build-essential ``` ## Altre configurazioni Preparati ad esporre il servizio su internet :::tip se stai preparando un ambiente di sviluppo, queste configurazioni non sono necessarie. ::: ### Firewall Useremo 'ufw' come firewall per bloccare le connessioni non autorizzate. Si configura una whitelist e si aprono le porte dei servizi SSH 22, HTTP 80, HTTPS 443. ``` sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` Controlla la configurazione con: `sudo ufw status` Attiva la partenza automatica al riavvio: `sudo systemctl enable ufw` :::tip ufw semplifica l'uso di Netfilter (IPTABLES) ::: ### CloudFlare Si tratta di un servizio utile per gestire DNS, Reverse Proxy e CDN sul tuo dominio. Si può anche evitare ma è consigliato, oltre che comodo. [Configurazione CDN](../admin/cdn) [Iscrizione a CloudFlare](https://dash.cloudflare.com/sign-up) segui le indicazioni per configurare il dominio prescelto. Digita l'indirizzo IP del server nella schermata DNS. A seconda del servizio, potrebbero essere necessarie fino a 48 ore prima della ricezione delle configurazioni. ### Configurazione Certbot (Let’s Encrypt) Per attivare la protezione SSL su **https**, ti occorre un certificato. Installa il plugin che integra Certbot e Cloudflare: `sudo apt install -y certbot python3-certbot-dns-cloudflare` Ottieni una APIKey dal sito Cloudflare 1. [Apri la pagina](https://dash.cloudflare.com/profile/api-tokens) 2. Seleziona: visualizza API Key Globale 3. Inserisci la password e indica che sei una persona umana Crea un file di configurazione con le informazioni di Cloudflare. ``` mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` Scrivi questi parametri dentro al file di configurazione: ``` dns_cloudflare_email = tuo.accountn@registrato.su.cloudflare dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` Salva il file e imposta i privilegi di lettura: `sudo chmod 600 /etc/cloudflare/cloudflare.ini` Esegui il seguente comando, modificando `example.tld` con il tuo dominio: `sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld` Se leggi **Congratulations!** è andato tutto bene. Annota il percorso dei file `.pem`, ti serviranno dopo. ## Installazione Misskey Ora che i preparativi sono finiti, puoi installare Misskey. Diventa l'utente `misskey` preparato in precedenza: `sudo su - misskey` Ottieni il codice sorgente tramite git: ``` git clone -b master https://github.com/misskey-dev/misskey.git` cd misskey git checkout master ``` Installa le librerie necessarie: ``` NODE_ENV=production pnpm install --frozen-lockfile ``` ## Configurazione di Misskey ### Il file default.yml Crea il file e scrivici i contenuti indicati di seguito: `nano .config/default.yml`. I parametri col pallino ● vanno modificati. I parametri col cerchietto 〇 sono i valori che hai configurato fino ad ora. Puoi vedere un [esempio di configurazione](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml) :::tip Se stai configurando un ambiente di sviluppo, indica `url: http://localhost:3000` ::: ``` # ● URL pubblico di Misskey url: https://example.tld/ # Imposta la porta numero 3000 port: 3000 # ● Configurazione PostgreSQL。 db: host: localhost port: 5432 db : mkdb # 〇 Nome del database PostgreSQL user: misskey # 〇 Nome utente PostgreSQL pass: gattini # ● Password di PostgreSQL # Configurazione Redis redis: host: localhost port: 6379 # Configurazione del tipo di ID id: 'aid' #   syslog syslog: host: localhost port: 514 ``` Ricordati di salvare le modifiche. ### Configurazione di Nginx Configurare usando i privilegi di super utente _root_. Smetti di essere l'utente misskey: `exit` Crea la configurazione: `sudo nano /etc/nginx/conf.d/misskey.conf` Copia la [configurazione di Nginx](../admin/nginx) e incollala dentro a Nano. Svolgi le seguenti modifiche indicando le tue configurazioni: - Righe 18 e 30 URL del dominio - Righe 34-35 Sostituisci il percorso al file Certificato di Certbot (.pem) - Se usi la CDN o un altro Reverse Proxy, elimina 4 righe a partire dalla 56 Ricordati di salvare le modifiche. Controlla il funzionamento: `sudo nginx -t` Se ottieni **OK** riavvia il servizio: `sudo systemctl restart nginx` poi verifica il funzionamento: `sudo systemctl status nginx` Se ottieni **OK** va tutto bene. ## Costruire Misskey Adesso torna ad essere utente misskey: `sudo su - misskey` Avvia la build: ``` cd misskey NODE_ENV=production npm run build ``` :::tip Se stai preparando un ambiente di sviluppo, `NODE_ENV=production` non serve. ::: ### Se non riesci a costruire la build sul server Potresti avere a disposizione meno di 2GB di memoria RAM. Servono per costruire Misskey e svolgere gli aggiornamenti. Possibili soluzioni: - Aggiungi memoria swap al server - Trasferisci i file del repository git sul tuo pc e avvia la build da lì. ## Inizializza il Database `npm run init` ## Avvia Misskey `NODE_ENV=production pnpm run start` Quando leggi: **Now listening on port 3000 on**, accedi alla URL indicata. Dovresti vedere la pagina iniziale di Misskey. Inizia a verificare se funziona. ### Se non riesci ad accedere #### Controlla il DNS di CloudFlare Visita il sito Cloudflare e verifica che la configurazione DNS punti verso l'indirizzo IP che hai indicato. #### Controlla il router Se hai installato Misskey in un server che stà dietro una sottorete, verifica che le porte 80 e 443 siano raggiungibili dall'esterno. ## Creazione servizio Misskey :::tip Se stai preparando un ambiente di sviluppo, non è necessario ::: Termina Misskey premendo `CTRL+c`. poi torna ad essere utente super amministratore: `exit` Crea la configurazione del servizio: `sudo nano /etc/systemd/system/misskey.service` Incolla il seguente testo e salva: ``` [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 ``` Abilita la configurazione e riavvia il servizio: ``` sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` Aspetta circa 15 secondi e verifica il funzionamento: `sudo systemctl status misskey`, se ottieni **Ok** va tutto bene. Per finire registra il primo utente, amministratore e accedi per completare la configurazione. ## Aggiornare Misskey C'è uno [script automatico per aggiornare](https://github.com/joinmisskey/bash-install/blob/main/update.ubuntu.sh) [Aggiornamento manuale](./manual#) Misskey deve essere spento per svolgere queste azioni: ``` sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Opzione 1: aggiorna anche il sistema ``` sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` In questo caso Misskey tornerà disponibile dopo il riavvio. ### Opzione 2: avvia subito Misskey `sudo systemctl start misskey` ================================================ FILE: content/it/.docs-legacy/install.md ================================================ # Crea la tua istanza Misskey Grazie per il tuo interesse nel costruire una istanza Misskey 🚀 Ci sono vari modi per crearne una, scegli tra quelli elencati e segui la relativa guida. :::danger Never change the domain name (hostname) of an instance once you start using it! ::: :::danger Se si utilizza Cloudflare per il proprio server, non utilizzare l'impostazione Auto Minify. Misskey non funzionerà correttamente perché Cloudflare non interpreterà il JavaScript più recente e romperà il codice sorgente al suo interno. Per maggiori informazioni [misskey-dev/misskey #9791](https://github.com/misskey-dev/misskey/issues/9791) ::: ## Usando Docker Compose Se vuoi eseguire l'istanza in un container segui la [guida di installazione con Docker](./install/docker.html) ## Usando uno script bash Se vuoi usare uno script automatico, segui la [guida installazione con script bash](./install/bash.html) ## In modo manuale Se vuoi svolgere l'installazione passo passo, segui la [guida installazione manuale](./install/manual.html) ## Usando YunoHost Misskey può essere installato come App di YunoHost, la documentazione si trova nel [repository della versione Misskey per YunoHost](https://github.com/YunoHost-Apps/misskey_ynh). ================================================ FILE: content/it/.docs-legacy/misskey-hub.md ================================================ # Informazioni su Misskey Hub Misskey Hub è il sito ufficiale di Misskey. Distribuisce la documentazione, notizie tramite il blog, e plugin tramite lo store. Ci auguriamo che sia il punto centrale per tutto quel che è Misskey. Anche il codice sorgente di questo sito è [open source](https://github.com/misskey-dev/misskey-hub). :::tip Le pagine statiche di Misskey Hub vengono realizzate dinamicamente tramite [VuePress](https://github.com/vuepress/vuepress-next). ::: - [Cronologia aggiornamenti](../updates.md) ## Contribuire alla redazione del sito Accettiamo ulteriore documentazione e traduzioni. ================================================ FILE: content/it/.docs-legacy/misskey.md ================================================ # Informazioni su Misskey Misskey è una piattaforma di microblog distribuita. Lo sviluppo è stato iniziato da **@syuilo** nel 2014, in Giappone. La caratteristica principale di questa piattaforma federata è l'abbondanza di funzionalità, come ad esempio il Drive per salvare e riusare i media caricati, come immagini, audio e video. Le reazioni, non limitate alla sola stellina o pollicione. Come anche la capacità di modificare l'interfaccia a piacere dell'utilizzatore, senza dover scrivere una linea di codice. ## Storia Sebbene Misskey fosse nato come Forum/Chan, la crescita di popolarità è dovuta all'aggiunta della **timeline**. Questa permette, alle persone che utilizzano la piattaforma, di leggere e scrivere "piccoli" messaggi in ordine cronologico. Presto la funzionalità _timeline_ divenne la caratteristica principale e, nel 2018, con l'adozione del protocollo **ActivityPub**, Misskey divenne una vera e propria istanza federata decentrata. Da quel giorno, sempre migliorando, è divenato tra i sistemi più apprezzati dalle persone nel fediverso. :::tip GOSSIP! Il nome **"Misskey"** deriva da una canzone intitolata _"Brain Diver"_, composta dalla band _"May'n"_ che @syuilo ascoltava durante i periodi di sviluppo ::: Finché ci saranno sviluppatori capaci di intervenire, Misskey verrà sempre sviluppato attivamente. ## Cosa significa _"Distribuito"_ Un servizio **Distribuito**, o **Decentralizzato** si riferisce a quella caratteristica che permette di suddividere l'insieme totale della comunità in più parti, più o meno grandi, chiamate istanze. Le istanze comunicano in maniera mutuale, si dice che sono **federate** da cui deriva il neologismo **Fediverso**. Il fediverso compone, dunque, la rete di piattaforme che mettono in comunicazione tra loro persone provenienti da istanze diverse. Al contrario dei servizi _centralizzati_, gestiti da una sola persona o compagnia, come ad esempio Twitter o Facebook. Il vantaggio dei sistemi distribuiti è quello di selezionare l'istanza, le cui regole di policy più si adattano alle esigenze di libertà ed espressione delle persone. Trattandosi di software Open Source, chiunque è in grado di avviare una propria istanza, che, grazie alla capacità di federarsi, permetterà l'accesso alla community indifferentemente dalla provenienza. ## Per sempre Open Source Misskey, da sempre e per sempre, rimarrà software Open Source, ovvero a sorgente aperto. Il software Open Source è disponibile a tutti, permette, oltre alla capacità di usarlo, la capacità di correggerlo, modificarlo e ri-distribuirlo. L'interezza del codice sorgente di Misskey è protetto dalla licenza [Affero General Public License](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) che garantisce _le quattro libertà_. - Libertà 0: eseguire il programma, per qualsiasi scopo - Libertà 1: studiare come funziona e modificarlo a piacimento - Libertà 2: ridistribuire copie in modo solidale - Libertà 3: migliorare il programma e ridistribuire le modifiche affinché il pubblico possa fruirne Il vantaggio del codice studiabile da tutti è che tutti possono assicurarsi che il funzionamento non provochi danneggiamento e contribuire a migliorarne la sicurezza. Per la natura distribuita di Misskey, la necessità che sia Open Source, è basilare. Al contrario dei sistemi centralizzati citati poc'anzi. :::tip In linguaggio tecnico, il codice sorgente di Misskey viene gestito tramite **Git** e il codice viene ospitato sul sito [GitHub.](https://github.com/misskey-dev) ::: ## Unirsi allo sviluppo e supportare il progetto Se ti piace Misskey, per favore supporta il progetto. Si può fare in vari modi, di seguito speghiamo come. Alcuni di questi non richiedono la capacità di saper programmare, così tutti possono partecipare a loro modo, senza limitazioni tecniche. ### Aggiungere funzionalità o correggere malfunzionamenti Sei in grado di programmare sfruttando le tue capacità di sviluppo software? Allora puoi contribuire al progetto modificando il codice sorgente. Le [linee guida per contribuire](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md) ti indicheranno come fare. ### Partecipare ai dialoghi Puoi contribuire condividendo la tua opinione sul funzionamento di Misskey o proponendo nuove funzionalità, come, non meno importante la segnalazione di malfunzionamenti. Questo avviene su [GitHub](https://github.com/misskey-dev) oppure nei [Forum](https://forum.misskey.io/). ### Traduzione dei testi Misskey è disponibile in vari linguaggi (i18n, abbreviazione di Internationalization). Sebbene il linguaggio originale sia il giapponese, tanti volontari stanno traducendo Misskey nelle altre lingue, tra cui l'italiano. Aiutare col lavoro di traduzione è un altro modo per contribuire. L'attività si svolge su un servizio chiamato [Crowdin](https://crowdin.com/project/misskey). ### Condividere le proprie impressioni Oltre alla segnalazione dei malfunzionamenti, puoi condividere impressioni positive, indicando ad esempio, quali funzionalità preferisci o quelle che ti divertono di più. Sembrerà una banalità ma cose come queste aiutano a motivare gli sviluppatori e contano come supporto morale al progetto. ### Aumentare il numero di Misskist "Misskist" si usa per indicare le persone che usano Misskey. Spargendo la voce col passa parola, parlandone ai propri conoscenti, il numero può aumentare e contribuisce a migliorare la motivazione degli sviluppatori. ### Le donazioni Sviluppare Misskey non è un lavoro, lo sviluppo continuativo è determinato dalle donazioni di tutti quanti. Alcune istanze guadagnano mostrando piccoli annunci ma questi arrivano direttamente nelle tasche degli amministratori della istanza, non agli sviluppatori. Poiché le donazioni danno continuità allo sviluppo del progetto, sono un ulteriore modo di supportare Misskey. Si accettano donazioni tramite [Patreon](https://www.patreon.com/syuilo). Raggiungendo un certo corrispettivo, puoi ottenere il riconoscimento di avere la tua username in mostra nella pagina intitolata: [Informazioni sulla istanza](/about-misskey). In aggiunta a tutto ciò, non è detto che gli amministratori di una istanza riescano a guadagnare, poiché mantenerne una funzionante ha dei costi. Supportare gli amministratori non è direttamente correlato allo sviluppo della piattaforma Misskey, ma la sopravvivenza dei server è quel che mantiene in piedi il progetto. ================================================ FILE: content/it/.docs-legacy/releases.md ================================================ # Note di rilascio Elenco delle note su ogni rilascio di Misskey, tradotte in italiano. :::tip Attenzione, i rilasci non tradotti in italiano, sono visibili nella pagina [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) del progetto. Abbiate cura di prenderne visione, per ottenere informazioni aggiornate puntualmente. ::: ## Rilascio 12.119.2 (2022-12-03) ### Soluzioni - Server: Mitigazione rischio DoS su ActivityPub @skehmatics ## Rilascio 12.119.0 (2022-09-10) ### Miglioramenti - Client: Aggiunto il badge "stai seguendo", nella preview popup del profilo, @nvisser - Client: Si può usare come Riquadro la url Twitter Mobile, @caipira113 - Client: Riquadro orologio migliorato, @syuilo ### Soluzioni - Risolto un problema che causava il fallimento delle migrazioni - Server: Risolto il problema con la possibilità di contrassegnare le notifiche di altre persone come lette, @syuilo - Client: Risolto il problema con la schermata di gestione del token di accesso, la schermata di gestione dell'account non può essere visualizzata, @futchitwo ================================================ FILE: content/it/.docs-legacy/tips/disable-timelines.md ================================================ # Disabilitare le timeline In Misskey si possono disabilitare individualmente le Timeline tramite interfaccia web, nel **pannello di controllo** Poiché tutte le Note nell'istanza si possono vedere sia sulla _Timeline Locale_ che sulla _Timeline Sociale_, esse sono comode alle nuove persone che arrivano, per trovare altri profili a cui sono interessate, senza dover svolgere ricerche. Tuttavia questo diluisce la visibilità dei profili che si seguono, aumentando il rischio di esporsi a contenuti irrilevanti. In più l'effetto è più simile a quello di una Chatroom in cui si intersecano una moltitudine di dialoghi, risultando difficile entrare in comunicazione con chi sta dialogando da parecchio tempo nella conversazione. Poiché il valore di questi vantaggi o svantaggi varia in ogni istanza, la scelta di utilizzare le **Timeline** o meno viene lasciata agli amministratori di ogni singola istanza. Dunque considera se sia meglio attivarle o disattivarle. :::warning Disabilitare le **Timeline** potrebbe portare confusione e rinuncia da parte delle persone utilizzatrici della piattaforma. Quindi, fai molta attenzione a considerare gli effetti che possono succedere disabilitandone una. Spiega chiaramente le motivazioni in anticipo, affinché le persone si possano preparare al cambiamento. Ad esempio iniziando a seguire profili con cui dialogano spesso sulla **Timeline Locale** oppure sulla **Timeline Social**. ::: Attenzione, perché amministratori e moderatori, continueranno comunque a vedere le timeline, anche se sono state disattivate. ================================================ FILE: content/it/.docs-legacy/troubleshooting.md ================================================ --- description: "Se ti capita un problema, prima di tutto leggi questa pagina" --- # Risoluzione autonoma dei problemi :::tip Per favore, leggi anche le [FAQ, domande frequenti](./faq.md) ::: Se ti capita un problema, prima di tutto leggi questa pagina. Se non trovi suggerimenti utili o la procedura non risolve il problema, contatta l'amministratore dell'istanza oppure [apri una segnalazione](./report-issue) in inglese o giapponese. ## Il client non si avvia Probabilmente è successo perché la versione del browser o del sistema operativo non è aggiornata. Riprova dopo aver aggiornato. Capita raramente, se comunque non si avvia, potrebbe essere dovuto alla memorizzazione _cache_. Svuota la cache del browser e riprova. ## La pagina non può essere caricata Se il client si avvia, ma viene visualizzato un errore che indica di non riuscire a caricare la pagina, verificare la presenza di problemi nella rete. Inoltre, controlla se il server è online. Capita raramente, ma potrebbe essere dovuto alla memorizzazione _cache_. Svuota la cache del browser e riprova. Se hai ancora problemi, contatta l'amministratore dell'istanza poiché sembra essere un problema del server. ## Il client è lento Controllare la connessione col provider di servizi Internet, controllare la velocità di comunicazione della rete e le impostazioni di rete, quindi verificare se si sono verificati guasti o interventi di manutenzione al server. Successivamente, controllare le seguenti impostazioni. ### Impostazioni Generali Nel _Menu impostazioni_, apri _Impostazioni client_, alla voce **Generali** e controlla le seguenti impostazioni: - Attiva "Ridurre le animazioni dell'interfaccia" - Disattiva "Usa effetto sfocatura per i modali" - Attiva "Usa carattere predefinito del sistema" - Attiva "Usare le emoji native del sistema" Si prega di controllare eventualmente anche le seguenti impostazioni, con la consapevolezza che mancheranno alcune funzioni di Misskey: - Attiva "Disabilita AIscript nelle pagine" - Attiva "Disabilita i MFM animati" ### Impostazioni del browser - Attiva l'accelerazione hardware nelle impostazioni del tuo browser - Controlla le impostazioni dei componenti aggiuntivi e delle estensioni del browser o disattivale ### Altre impostazioni Controlla le impostazioni di sistema sul tuo PC o smartphone, ad esempio che non ci siano altre applicazioni a consumare risorse. ## La segnalazione lampeggiante di una Antenna non vuole andare via La segnalazione lampeggiante indica note non lette. Nel caso in cui non scomparisse, significa che qualche ulteriore nota viene spedita in fondo da nuove note in arrivo. Se pensi che sia un conteggio errato, puoi **indicare tutto come letto** tramite le impostazioni utente. ## Il bottone _Rinota_ è bloccato Le note con livello di privacy _Per i soli follower_ non possono essere rinotate. ## Non si vedono parti specifiche della interfaccia web Potrebbero sorgere provlemi di questo tipo quando usi una estensione AdBlocker, di blocco pubblicità. Per un uso ottimale, per favore disattiva il tuo AdBlocker. ## Alcune parti risultano non tradotte Potrebbe essere che effettivamente quella parte non sia stata ancora tradotta, anziché un malfunzionamento. Aspetta qualche tempo, oppure [partecipa alla traduzione](./misskey). ================================================ FILE: content/it/contact-faq/0.cannot-create-account.md ================================================ --- question: アカウントが作成できません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/it/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: アカウントにログインできません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/it/contact-faq/2.delete-account.md ================================================ --- question: アカウントを削除したい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/it/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 〇〇のサーバー上にあるコンテンツを削除してほしい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** 自サーバー・他サーバーのコンテンツのモデレーションについては、各サーバーのルールに則って行われますので、当該コンテンツの送信元サーバーの管理者に連絡するか、当該ユーザーやサーバーをブロックして自己防衛するなどして対応してください。 ================================================ FILE: content/it/contact-faq/4.copyright-infringement.md ================================================ --- question: 著作権侵害を見つけた --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/it/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/it/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/it/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskeyについてのドキュメントです。' --- # Misskeyについて Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## 歴史 開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にActivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 :::tip Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 ::: 誰でも開発に参加することができ、現在でも活発に開発が続いています。 [Misskey歴史資料館](/about-us/history/) ## 分散型とは何か? 分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 :::tip 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) ::: ## 開発に参加する、プロジェクトを支援する Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 ### 議論に参加する 新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上で行われます。 ### テキストを翻訳する Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) ### 感想を投稿する 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 ### ミスキストを増やす ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 ### 寄付をする [こちらをご覧ください](/docs/donate/) ## よくある質問 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 ### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 ### 誰が運営していますか? Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、サーバーの情報ページで確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 ### どのサーバーを選べばいいですか? [サーバー一覧が公開されています。](/servers/) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 Misskeyサーバーの作成には、専用のサービスを使う方法や、半自動で環境を構築する方法などがあります(もちろん手動でサーバーを構築することも可能です)。詳細については[こちら](/docs/for-admin/install/guides/)をご覧ください。 ### どのような技術を使用していますか? Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 - サーバーサイド: Node.js - データベース: PostgreSQL、Redis - UIフレームワーク: Vue.js - プログラミング言語: TypeScript また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 ### Mastodonのフォークですか? いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](/docs/for-users/resources/apps/)をご覧ください。 ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 :::tip PWAの設定方法については[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ::: ### Misskeyのロゴ、アイコンはどこで入手できますか? [こちら](/brand-assets/) ### 時折目にする猫耳の可愛い女の子は? :::fukidashi{chara="doya_ai" charaName="藍"} わたしについては[このホームページ](https://xn--931a.moe/)をご覧ください! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! ::: ================================================ FILE: content/it/docs/2.for-users/1.index.md ================================================ # ユーザー向けガイド Questa sezione contiene un'anteprima delle caratteristiche generali che sono utili sia per i nuovi utenti di Misskey che per quelli esistenti. ================================================ FILE: content/it/docs/2.for-users/2.onboarding/0.index.md ================================================ # Misskeyをはじめよう ここでは、Misskeyでの活動を始めるチュートリアルを掲載しています。 おもに、 - 分散型プラットフォームの注意点 - サーバーとは?サーバーの選び方は? - 登録の手順 - 最低限の基礎知識 などについて解説していますので、この通りに進めることで、とりあえずMisskeyを使い始めることができると思います。 それでは、早速始めましょう!(「次へ」を押して進んでください。) ================================================ FILE: content/it/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Misskeyサーバーにアカウントを作成する前の基本的な注意事項です。' --- # 基本的な注意事項 Misskeyを使ったサービスを利用するにあたり、いくつか注意が必要な点があります。 - 分散型のため、一度アップロードしたデータは削除したとしても他の全てのサーバーから削除されることは保証されません。(ただし、これはインターネット全般に言えることでもあります。) - 非公開で行った投稿でも、相手のサーバーがそれを同じように非公開として扱うかは保証されません。個人情報、機密情報を投稿する際は十分注意してください。(ただし、これはインターネット全般に言えることでもあります。) - Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ノートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。 - アカウントの削除は負荷の高い処理であるため、長い時間がかかることがあります。アップロードしたデータが多いケースではアカウントの削除が不可能なこともあります。 - サーバーによっては、広告収入により運営費を賄っていることがあります。また、アドブロッカーは広告とは全く関係のないコンテンツや機能を誤ってブロックすることがよくあり、クライアントの動作に支障をきたし、正常にMisskeyを使用できなくなるおそれがあります。そのため、Misskeyではアドブロッカーやそれに類する機能はオフにしてご利用ください。 これらをご理解いただいたうえで、楽しくサービスをご利用ください。 ================================================ FILE: content/it/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskeyサーバーへのユーザー登録や、基本的な操作について解説しています。" --- # Misskeyサーバーをさがす Misskeyはソフトウェアおよびそのプロジェクトです。 インターネットに公開されている、Misskeyを動かしているサーバーのことを**サーバー**と呼びます。 Misskeyを利用するには、どこかのサーバーにアカウントを作成し、そのサーバーを利用します。 [サーバー一覧](/servers/)から、好きなサーバーを選ぶことができます。 :::tip どのサーバーを選んでも、他のサーバーのユーザーとやり取りすることができます。 :::g-details{summary='詳細'} Misskeyには連合機能が備わっています。 連合機能によって、別のサーバーのユーザーであっても、同じサーバーのユーザーと同じようにフォローやリアクション、Renoteなどができるようになっています。 Misskeyが搭載している連合機能はActivityPubというオープンな共通規格に基づいていて、MastodonやPleromaといったほかのソフトウェアとも互換性があります。 ::: ::: ## サーバーの選び方 ### サーバーのテーマ サーバーによっては、例えば「特定のこと、ものが好き」といったテーマが決まっている場合があります。 自分にあったテーマのサーバーを探すのもおすすめです。 :::tip サーバーの一覧は[こちら](/servers/)からご覧いただけます。 ::: ================================================ FILE: content/it/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # サーバーに登録する 登録するサーバーが決まったら、さっそくアカウントを作成しましょう。 :::tip ここでは、Misskey.ioを例にとって紹介していますが、他のサーバーでも登録方法はおおむね同じです。 ただし、入力事項はサーバーによって異なることがあります。詳しくは、サーバー管理者にお問い合わせください。 ::: ## 登録する まずは、トップページから「**このサーバーに登録する**」ボタンを探し、クリックします。 ![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png) 次に、画面の指示に従い、規約の確認や必要事項の記入を進めてください。 主に記入すべき事項は、以下の通りです。 - 招待コード(登録が招待制の場合のみ。お持ちでない場合は登録できません。) - ユーザー名(**後から変更はできません。一度退会すると同じユーザー名を取得することはできません。**) - メールアドレス(必要ないサーバーもあります) - パスワード ![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png) 必要事項の記入が終わると、メールアドレスを登録するサーバーの場合、確認メールが届きますので、速やかにメール内のリンクをクリックしてください。 ![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png) 以上で、Misskey サーバーへの登録が完了しました! これであなたも[ミスキスト](../resources/glossary/#ミスキスト)!楽しいコミュニケーションをお楽しみください。 ================================================ FILE: content/it/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskeyの基礎知識 アカウントを作成したあなたにとりあえず知っておいてほしいことをまとめました! ## ノート Misskeyへの投稿は、「ノート」と呼ばれます。Twitterなどの一般的なSNSに比べたくさんの機能がありますので、初めての投稿を行う前に必ず確認して、上手に投稿しましょう! :::tip 詳細は、「[ノート](/docs/for-users/features/note/)」をご覧ください。 ::: ## タイムライン Misskeyは、複数のタイムラインを持っています。名前だけでは少々わかりにくいかと思いますので、それぞれがどのような働きをするのかを知っておきましょう。 :::tip 詳細は、「[タイムライン](/docs/for-users/features/timeline/)」をご覧ください。 ::: ## その他 その他にも、Misskeyには、使って楽しい機能が盛りだくさん!すべての機能に関する説明は[こちら](/docs/for-users/features/)に記載されていますので、ぜひご覧ください! ================================================ FILE: content/it/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Misskeyの大きな特徴である、多彩な機能について解説しています。" --- # さまざまな機能 Misskeyの大きな特徴は、ほかのマイクロブログシステムには見られない多彩な機能にあります。ここでは、それらについて解説していきます。 ================================================ FILE: content/it/docs/2.for-users/3.features/ads.md ================================================ # 広告 Misskeyではサーバーによる広告をタイムラインなどに表示できる機能があります。 広告の右上に表示されるアイコンをクリックすることで、当該の広告の表示頻度を下げることができます。 :::tip 広告の総数が少ない場合は、表示頻度を下げた後も連続で表示される可能性があります。 ::: ## 広告の設定(管理者) サーバーのコントロールパネルから広告の追加、編集、削除を行えます。 広告には任意の画像、遷移先URL、形状、表示割合を設定できます。 ================================================ FILE: content/it/docs/2.for-users/3.features/antenna.md ================================================ # アンテナ アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 ================================================ FILE: content/it/docs/2.for-users/3.features/charts.md ================================================ # チャート Misskeyはサーバーの様々なデータソースに対するチャートを生成し表示する機能を備えています。 チャートを利用することで、サーバーの利用状況や連合の状況、各ユーザーのアクティビティなどを視覚的に把握することができます。 サーバーのチャートはサーバー情報ページから表示することができます。 以下は各チャートとその各項目の説明です。 ## 連合チャート 連合しているサーバーについてのチャートです。 ### Pub アクティビティを配送しているサーバーの数。 言い換えると、自サーバーのユーザーをフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Sub アクティビティを受信しているサーバーの数。 言い換えると、自サーバーのユーザーがフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Received アクティビティを送ってきたサーバーの数。 ### Delivered アクティビティを配送したサーバーの数。 ### Stalled アクティビティを配送する際、エラーになったサーバーの数。 ## アクティブユーザー数チャート 自サーバーのユーザーの利用状況についてのチャートです。 ### Read & Write 閲覧と書き込みを行ったユーザーの数。 ### Read 閲覧を行ったユーザーの数。 ### Write 書き込みを行ったユーザーの数。 ### < Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間未満であるユーザーの数。 ### < Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月未満であるユーザーの数。 ### < Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年未満であるユーザーの数。 ### > Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間以上前であるユーザーの数。 ### > Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月以上前であるユーザーの数。 ### > Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年以上前であるユーザーの数。 ================================================ FILE: content/it/docs/2.for-users/3.features/clip.md ================================================ # クリップ クリップは、複数のノートをまとめることができる機能です。自分のノート・他者のノートは問いません。 クリップは複数作ることができ、それぞれに名前や説明を設定して管理することが可能です。また、クリップを他のユーザーに公開するかどうかも選択することができます。 クリップを作るには、[クリップ管理ページ](x-mi-web://my/clips)から「追加」をクリックします。 クリップにノートを追加するには、対象のノートのメニューから「クリップ」をクリックし、追加先のクリップを選択します。 ================================================ FILE: content/it/docs/2.for-users/3.features/custom-emoji.md ================================================ # カスタム絵文字 カスタム絵文字は、サーバーで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 Per vedere quali emoji personalizzate sono disponibili sul server, vai a "Emoji personalizzate" nella sezione [**Informazioni server**](x-mi-web://about#emojis) di Misskey Web. ================================================ FILE: content/it/docs/2.for-users/3.features/deck.md ================================================ # デッキ デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 \ \ なお、メインカラムを追加しておくと、ノートやプロフィールをページで表示した際、メインカラムに内容が表示されます。 ## カラムの追加 デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 ## カラムの移動 カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 ## カラムの水平分割 カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 ## カラムの設定 カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 ## デッキの設定 デッキに関する設定は、[settings/deck](x-mi-web://settings/deck)で行えます。 ================================================ FILE: content/it/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/it/docs/2.for-users/3.features/drive.md ================================================ # ドライブ ドライブは、Misskey上でファイルを管理できる機能です。 :::tip 技術的に言うと、Misskeyのシステム上、すべてのファイルが一元管理されており、それをユーザーにも公開したインターフェイスがドライブと捉えることができます。 ::: Misskey Webの[ドライブページ](x-mi-web://my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 :::warning 現時点で、ドライブからファイルを削除すると、そのファイルが添付された **すべてのコンテンツ(ノート、ページなど)** も同時に消えます。 ::: ## センシティブ (NSFW) センシティブまたはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 センシティブフラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 ================================================ FILE: content/it/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/it/docs/2.for-users/3.features/favorite.md ================================================ # お気に入り [ノート](./note)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](x-mi-web://my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 ================================================ FILE: content/it/docs/2.for-users/3.features/follow.md ================================================ # フォロー ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/it/docs/2.for-users/3.features/hashtag.md ================================================ # ハッシュタグ ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。 世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、当時のTwitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。 ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png) FediverseでのハッシュタグはXやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。 ================================================ FILE: content/it/docs/2.for-users/3.features/mention.md ================================================ # メンション アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/it/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFMは、Misskeyの様々な場所で使用できる専用のマークアップ言語です。' --- # MFM MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。 :::tip 実際にMFMをお試しいただける[MFMお試しコーナー](/tools/mfm-playground/)ができました! ::: ## MFMが使用可能な場所の例 - ノート本文 - CW注釈 - ユーザーの名前 - ユーザーの自己紹介 ## 構文 ### メンション アットマーク + ユーザー名で、特定のユーザーを示すことができます。 :::tip メンションについての詳細は[こちら](./mention.md)を参照してください。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### ハッシュタグ ナンバーサイン + タグで、ハッシュタグを示すことができます。 :::tip ハッシュタグについての詳細は[こちら](./hashtag.md)を参照してください。 ::: ``` #misskey ``` ### URL URLを示すことができます。 ``` https://example.com ``` ### リンク 文章の特定の範囲を、URLに紐づけることができます。 ``` [example link](https://example.com) ``` :::tip リンクテキストの前に`?`をつけると、リンクプレビューを非表示にすることができます。 ``` ?[example link](https://example.com) ``` ::: ### カスタム絵文字 コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。 :::tip カスタム絵文字についての詳細は[こちら](./custom-emoji.md)を参照してください。 ::: ``` :misskey: ``` ### 太字 文字を太く表示して強調することができます。 ``` **太字** ``` ### 目立たなくする 内容を小さく・薄く表示させることができます。 ``` MisskeyでFediverseの世界が広がります ``` ### 引用 内容が引用であることを示すことができます。 ``` > MisskeyでFediverseの世界が広がります ``` ### 中央寄せ 内容を中央寄せで表示させることができます。 ```
MisskeyでFediverseの世界が広がります
``` ### よみがな(ルビ) 内容によみがなを付けることができます。 ``` $[ruby Misskey ミスキー] ``` ### コード(インライン) プログラムなどのコードをインラインでシンタックスハイライトします。 ``` `<: "Hello, world!"` ``` ### コード(ブロック) 複数行のプログラムなどのコードをブロックでシンタックスハイライトします。 プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### 反転 内容を上下または左右に反転させます。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### フォント 内容のフォントを指定することができます。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### ぼかし 内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 検索 検索ボックスを表示できます。 ``` misskey 検索 ``` ### 文字色・背景色 文字色と背景色を変更することができます。 3,4,6桁のカラーコードで色を表現します。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 枠線 内容を枠線で囲むことができます。様々なスタイルを指定することができます。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度変更 指定した角度で回転させます。 ``` $[rotate.deg=30 misskey] ``` ### 位置変更 位置をずらすことができます。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 拡大 文字を引き延ばして表示します。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### アニメーション(びよんびよん) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### アニメーション(じゃーん) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### アニメーション(ジャンプ) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### アニメーション(バウンド) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### アニメーション(回転) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### アニメーション(ぶるぶる) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### アニメーション(ブレ) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### レインボー ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### キラキラ ``` $[sparkle 🍮] ``` ### プレーン 内側の構文を全て無効にします。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 開発者向け情報 MFMのパーサーや描画の実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js用コンポーネント - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlinパーサー実装 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dartパーサー実装 - [mfm](https://pub.dev/packages/mfm) - Flutter用描画ウィジェット ================================================ FILE: content/it/docs/2.for-users/3.features/mute-and-block.md ================================================ # ミュートとブロック 好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 :::tip ミュートとブロックは併用できます。 ::: :::warning 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。 ::: Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 ## ミュート ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) - そのユーザーからの通知 - メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - など Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 :::tip ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 ::: ## リノートをミュート ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## ブロック ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - フォローする - ユーザーリストに追加する - 返信する、Renoteする - リアクションする、アンケートに投票する - メッセージを送信する - など また、 - ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 - ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 :::warning ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。 ::: :::warning 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。 ::: ================================================ FILE: content/it/docs/2.for-users/3.features/note.md ================================================ # ノート ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## ノートを作成する Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## リノート 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## 公開範囲 ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### フォロワー 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### 指名 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 ### 公開範囲の比較
パブリックホームフォロワー指名
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## 新規投稿の通知 ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/it/docs/2.for-users/3.features/online-status.md ================================================ # オンラインステータス ユーザーの**オンラインステータス**は、そのユーザーのMisskey利用の状態を表すものです。 オンラインステータスは、ユーザーページなどでユーザーアイコンの隅にインジケーターとして表示されます。
状態 説明
🟢緑 オンライン 今まさにMisskeyを使用していると考えられる状態
🟡黄 アクティブ 今は退席しているものの、Misskeyの利用自体は行われている状態
🔴赤 オフライン Misskeyを利用していないと考えられる状態
⚫灰 不明 ステータスを非公開にしている、もしくはリモートユーザー等でステータスが不明の状態
オンラインステータスは自動的に変わり、手動で設定することは出来ません。 設定により、オンラインステータスを非公開にすることができます。 :::warning ユーザーのサジェストなど、一部の機能においてはオンラインステータスを元に処理される場合があるため、ステータスを非公開にすると他のユーザーから見つけにくくなることがあります。 ::: ================================================ FILE: content/it/docs/2.for-users/3.features/pages.md ================================================ # ページ Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## ページ設定 ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### タイトル このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### ページURL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### フォント **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### アイキャッチ画像 **アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。 ## コンテンツ ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。 - セクション - テキスト - 画像 - ノート埋め込み ### セクション タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。 ### テキスト テキスト本文を入力します。MFMやカスタム絵文字を使用できます。 ### 画像 画像を表示します。ドライブより画像を設定します。 ### ノート埋め込み ノート ID を入れる事で、そのノートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。 ================================================ FILE: content/it/docs/2.for-users/3.features/plugin.md ================================================ # プラグイン Misskey Webにはプラグイン機能があり、ユーザーがMisskey Webの機能を拡張することができます。 プラグインの作成方法については[こちらのドキュメント](../../for-developers/plugin/create-plugin)を参照してください。 ================================================ FILE: content/it/docs/2.for-users/3.features/poll.md ================================================ # アンケート アンケートは、他の人からの意見を簡単に聞くことができる機能です。 ## アンケートをノートに添付する アンケートは、[ノート](/docs/for-users/features/note)に添付する形で投稿することができます。ノートにアンケートを添付するには、投稿フォームの下部にある「アンケート」ボタンを選択します。 ## 選択肢を増やす アンケートには、選択肢を10個まで作ることができます。選択肢の入力欄は、「追加」ボタンを押すことで追加することができます。 追加しすぎてしまった入力欄は、入力欄の横の☓ボタンを押すことで削除することができます。 :::warning いずれかの入力欄が空白だった場合、そのアンケートが添付されたノートは投稿できません。 ::: ## 複数回答を可能にする 「複数回答可」スイッチをオンにすると、アンケートに回答する人が複数の選択肢に投票できるようになります。 ## アンケートの期限を設定する アンケートには、終了する期限を、日時指定か経過指定のいずれかで設定することができます。 設定するには、「期限」の欄から「日時指定」もしくは「経過指定」をクリックします。 一度設定した期限を取り消す場合には、「期限」の欄から「無期限」を選択します。 ## アンケートに投票する アンケートが添付されたノートがタイムラインに流れてきたときは、アンケートに投票してみましょう。 アンケートに投票するには、各選択肢をクリックします。アンケートを投稿したユーザーが複数回答可に設定していない場合は、その時点でのアンケートの結果が表示されます。 アンケートを投稿したユーザーが複数回答可に設定していた場合、他の選択肢にも投票することができます。この場合、結果は自動では表示されません。 複数回答の設定に関わらず、自動でアンケートの結果が表示されなかったり、投票前に結果を見たい時は、選択肢の下にある「結果を見る」をクリックしてアンケートの結果を表示することができます。 未投票のアンケートの結果を見たあと、もう一度隠すときは「投票する」をクリックします。 :::tip 未投票アンケートには、結果を表示した状態でも投票できます。 ::: 投票をすると、自分の投票した選択肢に✔がつきます。 ================================================ FILE: content/it/docs/2.for-users/3.features/reaction.md ================================================ # リアクション 他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 Misskey Webでリアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji.md)も使用できます。 ## リアクションピッカーのカスタマイズ Misskey Webでは、ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 ## リモート投稿へのリアクションについて リアクションはMisskeyオリジナルの機能であるため、リモートサーバーがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 ## リモートからのリアクションについて リモートから「Like」アクティビティを受信したとき、Misskeyでは「❤」のリアクションとして解釈されます。 ## 自分のリアクション一覧を見る Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。 設定から、このリアクション一覧を公開するようにすることもできます。 ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/it/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/it/docs/2.for-users/3.features/share-form.md ================================================ # 共有フォーム Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## クエリパラメータ :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ------- | ---------------------------------------------------------------------------- | | `title` | タイトル。本文の先頭に[ … ]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。 | 名前 | 説明 | | ---------- | ----------------------------- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ----------- | ------------------------------- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | --------- | -------------------------------------- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 \ こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/it/docs/2.for-users/3.features/silence.md ================================================ # サイレンス サイレンスは、アカウントに設定される状態のひとつです。 アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、指名のノートは引き続き投稿可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 ================================================ FILE: content/it/docs/2.for-users/3.features/theme.md ================================================ # テーマ テーマを設定して、Misskeyクライアントの見た目を変更できます。 ## テーマの設定 [設定 > テーマ](x-mi-web://settings/theme) ## テーマを作成する テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... テーマの一意なID。UUIDをおすすめします。 - `name` ... テーマ名 - `author` ... テーマの作者 - `desc` ... テーマの説明(オプション) - `base` ... 明るいテーマか、暗いテーマか - `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - テーマはここで設定されたベーステーマを継承します。 - `props` ... テーマのスタイル定義。これから説明します。 ### テーマのスタイル定義 `props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[\\_light.json5][_light.json5]で、`dark`なら[\\_dark.json5][_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### バリューで使える構文 - 16進数で表された色 - 例: `#00ff00` - `rgb(r, g, b)`形式で表された色 - 例: `rgb(0, 255, 0)` - `rgba(r, g, b, a)`形式で表された透明度を含む色 - 例: `rgba(0, 255, 0, 0.5)` - 他のキーの値の参照 - `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - 例: `@panel` - 定数(後述)の参照 - `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - 例: `$main` - 関数(後述) - `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/it/docs/2.for-users/3.features/thread-mute.md ================================================ # スレッドミュート :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/it/docs/2.for-users/3.features/timeline.md ================================================ # タイムライン タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## 比較
ソース 公開範囲 タイムライン
ホーム ローカル ソーシャル グローバル
ローカル(フォロー) 公開
ホーム
フォロワー
リモート(フォロー) 公開
ホーム
フォロワー
ローカル(未フォロー) 公開
ホーム
フォロワー
リモート(未フォロー) 公開
================================================ FILE: content/it/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow ### followed ### unfollow ### note ### reply ### renote ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/it/docs/2.for-users/3.features/widgets.md ================================================ # ウィジェット ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## 利用可能なウィジェット一覧 - プロフィール - サーバー情報 - 付箋 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するッフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/it/docs/2.for-users/3.features/word-mute.md ================================================ # ワードミュート ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ワードミュートは、[設定 > ミュートとブロック](x-mi-web://settings/mute-block)から設定できます。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/it/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/it/docs/2.for-users/4.resources/_dir.yml ================================================ title: "その他のリソース" description: "機能面以外の知識や、困ったときの対処法を紹介しています。" ================================================ FILE: content/it/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/it/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/it/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskeyに関する用語集です。' --- # 用語集 Misskeyに関する用語集です。 ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー todo ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/it/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hubについて Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。 「Misskeyの全てがここにある」を目指しています。 Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub) :::tip Misskey HubはNuxtを使ってビルドされた静的サイトです。 ::: ## Misskey Hubに貢献する ドキュメントの追加や、翻訳など歓迎です。 ================================================ FILE: content/it/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/it/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/it/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/it/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/it/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/it/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/it/docs/2.for-users/_dir.yml ================================================ title: "Per utenti di Misskey" ================================================ FILE: content/it/docs/3.for-admin/_dir.yml ================================================ title: "サーバー運営者向け" description: "サーバーの作成方法や、運営に際してのお役立ち情報を公開中。" ================================================ FILE: content/it/docs/3.for-admin/features/1.index.md ================================================ --- description: "サーバー管理者向けの機能の説明です。" --- # サーバーの機能 Misskeyではサーバー運営に役立つ様々な機能が提供されています。 ================================================ FILE: content/it/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/it/docs/3.for-admin/features/announcement.md ================================================ # お知らせ お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。 お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。 :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/it/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/it/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/it/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/it/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/it/docs/3.for-admin/features/role.md ================================================ # ロール ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## ベースロール 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ::: ## 権限 ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/it/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/it/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskeyのインストールと保守" description: "Misskeyのインストール方法や、その後の保守作業に役立つ情報を掲載しています。" ================================================ FILE: content/it/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Misskeyサーバーの作成方法についての案内です。' --- # Misskeyサーバーの作成 Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## XServer SNSでインストール XServer SNSでは、サービスを申し込むだけでMisskeyのサーバーが自動で作成されます。 サーバーの管理やメンテナンスも運営元が対応してくれるので、難しい知識不要でサーバー運用が可能です。 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## インストール方法一覧 ================================================ FILE: content/it/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/it/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskeyを簡単にインストールするためのシェルスクリプトができました! いくつかの質問に答えるだけで、UbuntuサーバーへMisskeyを簡単にインストールできます! また、アップデートスクリプトもあります。 [v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\ [**English version**](./README.en.md) ## 準備するもの 1. ドメイン 2. Ubuntuがインストールされたサーバー 3. Cloudflareアカウント(推奨) :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。 ## Cloudflareの設定 Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 \ ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 \ (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. インストールをはじめる SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. アップデートする アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 \ [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 \ ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 \ また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 \ host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 \ アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 \ コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 \ (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 \ たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 \ 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/it/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'このガイドはDockerを使ったMisskeyセットアップ方法を説明します。' --- # Docker Composeを使ったMisskey構築 このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::tip{label='前提条件'} - DockerおよびDocker Composeがインストールされていること。 ::: ## リポジトリの取得 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 設定 下記コマンドで、各種設定ファイルのサンプルをコピーします。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` `default.yml`と`docker.env`をファイル内の説明に従って編集してください。 \ また、必要に応じて、`docker-compose.yml`を編集します。(ポートを変更したい場合など) ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh sudo docker compose up -d ``` GLHF✨ ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 ## cliコマンドを実行する方法 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/it/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/it/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'このガイドではMisskeyのインストール・セットアップ方法について解説します。' --- # Misskeyを手動で構築する このガイドではMisskeyのインストール・セットアップ方法について解説します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: :::tip{label='前提条件'} #### 以下のソフトウェアがインストール・設定されていること - **[Node.js](https://nodejs.org/en/)** (v22.15.0 以降の v22 系 または v24.10.0 以降の v24 系) - **[pnpm](https://pnpm.io/)** (v10.16.0以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 ::: ## ユーザーの作成 Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskeyのインストール ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 設定 設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。 ```sh cp .config/example.yml .config/default.yml ``` `default.yml` をファイル内の指示に従って編集します。 ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` エディタで開き、以下のコードを貼り付けて保存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskeyサービスの起動 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 アップデートが終わり次第、Misskeyプロセスを再起動してください。 ```sh sudo systemctl restart misskey ``` :::tip ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ::: ================================================ FILE: content/it/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https\://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. https\://dash.cloudflare.com/profile/api-tokens にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar\@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/it/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskeyの保守・トラブルシューティング" description: "Misskeyサーバーの運営には定期的なメンテナンスが不可欠。役立つ情報や困ったときの対処法をご紹介します。" ================================================ FILE: content/it/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/it/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/it/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/it/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に\ GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 \ \ ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 \ \ 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 \ \ 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 \ \ それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 \ \ ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/it/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/it/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/it/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "モデレーション上のお役立ち情報" description: "実際にサーバーを運営するにあたり役立つ情報についてまとめています。" ================================================ FILE: content/it/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/it/docs/4.for-developers/_dir.yml ================================================ title: "開発者向け" description: "プラグイン・Play開発者や、APIを利用した外部アプリケーションの開発者向けリソース。" ================================================ FILE: content/it/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/)\ Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:`\ Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:`\ [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、Misskey Play、Scratchpadで使用できます。 ドキュメントは未整備(TODO)ですが、インターネット上に有志の方が執筆された解説記事があります。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str`\ 返り値: `str`\ Misskey内の全てのAiScript環境で使用できます。 \ 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any`\ 返り値: `null`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 \ コンソールに文字列を出力します。 \ `<:`構文も同様の働きをします。 ================================================ FILE: content/it/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\\ ::: ================================================ FILE: content/it/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/it/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/it/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/it/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/it/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # チャンネル一覧 ================================================ FILE: content/it/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/it/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/it/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/it/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/it/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/it/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/it/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/it/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/it/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/it/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/it/docs/4.for-developers/bot/1.index.md ================================================ # Botの作成 [Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 ## 関連リソース - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/it/docs/4.for-developers/plugin/_dir.yml ================================================ title: "プラグイン・Playの作成" description: "プラグインやPlayを作成する方法・各種リファレンスを公開中。" ================================================ FILE: content/it/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/it/docs/4.for-developers/plugin/create-plugin.md ================================================ # プラグインの作成 Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/it/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/it/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/it/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # リリースノート Misskeyのリリースノートを掲載しています。 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/it/docs/6.donate.md ================================================ # プロジェクトへの寄付 :::tip 法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/) ::: Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(サーバーによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。以下の方法で受け付けています。(本ページの内容をよくお読みになったうえでご寄付をお願いします) - 継続支援 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 単発支援 - (おすすめ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 仮想通貨: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazonの欲しいものリスト](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 高額の寄付(例えば3万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。 ::: :::tip 額に応じて以下の返礼を用意しています。 - 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与 - 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載 - 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載 ::: - 20,000円以上: ↑ + [MisskeyIDプレートの交付](/docs/mi-card/) ::: :::warning いかなる場合(何らかの理由で返礼を受け取れなかった等も含む)も、返金を行うことはできません。ご了承の上、ご寄付をお願いいたします。 ::: :::warning \*\*バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて@syuilo\@misskey.ioまでお申し付けください。また、misskey.io以外のサーバーからはメンション届かない場合があります) ::: (メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります。どうしても連絡がつかない場合はMisskey Projectお問い合わせフォームよりご連絡ください) ::: また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 ================================================ FILE: content/it/docs/7.become-a-sponsor.md ================================================ # スポンサーについて :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Misskey Projectはスポンサーを募集しています。 スポンサーになると、MisskeyやMisskey Hubへの会社ロゴ掲載や、技術サポートを受けることができます。 [詳細はこちらからお問い合わせください。](/contact/) ================================================ FILE: content/it/docs/8.mi-card.md ================================================ # MisskeyIDプレート Misskey Projectへのご支援特典として、物理的な「MisskeyIDプレート」をご用意しています! **MisskeyIDプレートは、シリアルナンバーが刻印されたあなただけの金属製IDプレートです。** ずっしりと重厚な金属製プレートに精密な加工を施し、ステータス性の高いメタルプレートに仕上げました。 しゅいろによって表面、裏面ともに丁寧にデザインされています。一生モノとしてぜひお手元でお楽しみください! 実物の動画は[こちら](https://www.youtube.com/shorts/AdzzwxEa-WE) (照明の関係で金色にも見えますが実際は銀色です) ## プレート仕様 - 寸法: 54.0mm x 85.6mm - 質量: 約34g - 素材: 1.0mm厚鏡面仕上げステンレス鋼 - 加工: 鏡面加工(表面部)、エッチング加工(表面その他)、シルク印刷(ロゴ部)、レーザー刻印(ナンバリング部) - 意匠: しゅいろによるデザイン / シリアルナンバー、バーコード、二次元コード、藍ちゃんサイン刻印付き オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(無料) ### 3Dで見る ::X__Docs__mi-card__InteractiveView :: ※裏面のデザインは省略されています。モデルは実物を正確に再現するものではありません。 ## 交付対象 **累計の支援金額が2万円以上の方に1枚進呈させていただきます。** :::g-details{summary='2枚以上ご希望の場合'} 2枚以上ご希望の場合は、3万円ごとに1枚追加で進呈いたします。 追加で受け取り可能な枚数は、支援額から2万円を引いた額を3万円で割った数になります。 例えば、支援額の合計が5万円以上で合計2枚、8万円以上で合計3枚、というような計算になります。 合計で何枚受け取り可能かを計算できます: ::X__Docs__mi-card__Calculator :: なお、在庫状況によっては、ご希望の枚数をご用意することが叶わない場合があります。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: USドルでの支援は、いつ支援かにかかわらず 1USD = 150JPY 換算といたします。その他の通貨の場合の扱いについてはご相談ください。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 なお現在、大変申し訳ございませんが配送の都合上、**交付は日本国内に居住されている方のみ対象とさせていただいています。** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** 各Misskeyサーバーへの支援はこちらの特典の対象となりませんのでご注意ください。 [Misskey Projectへの支援はこちらから](/docs/donate/) ::: :::tip 累計支援額の計算には支援方法、期間は問いません。 例えば、2023年にPayPalで5000円の支援をいただき、2024年にFanboxで12000円、Amazonの欲しいものリストで3000円分のギフトを頂いたようなケースでも、5000 + 12000 + 3000 = 20000 となり受け取りの権利があります。 ::: ## 申請方法 お手数ですが以下のフォームから申請を行ってください。(Googleアカウントが必要です) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 配送は日本郵便にて行います。**送料は無料です。** - 発送時は追跡番号をメールにてご連絡いたします。 - 土日も配達されます。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。お手元に到着時、万が一損傷などありましたら日本郵便へお問い合わせお願いします。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 また、配送方法のご指定は承れません。 ::: ## 注意事項 - 仕様は予告なく変更することがあります。 - シリアルナンバーは選択いただけません。 - 細かなキズが製造上少なからず発生しますがご容赦ください。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 予告なく配布を一時停止または終了することがあります。 - 予告なく交付基準額を変更することがあります。 - 紛失・破損・盗難等された場合に再発行はできませんので大切に保管してください。 - 転売・譲渡はご遠慮いただけますと幸いです。 ================================================ FILE: content/it/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/ja/.docs-legacy/api/common.json5 ================================================ { refs: { user: { type: 'object', properties: { id: { type: 'string', }, createdAt: { type: 'string', }, username: { type: 'string', }, host: { type: 'string', nullable: true, }, name: { type: 'string', }, onlineStatus: { type: 'string', enum: ['online', 'active', 'offline', 'unknown',], }, avatarUrl: { type: 'string', }, avatarBlurhash: { type: 'string', }, }, }, note: { type: 'object', properties: { id: { type: 'string', }, createdAt: { type: 'string', }, text: { type: 'string', nullable: true, }, cw: { type: 'string', nullable: true, }, user: { $ref: 'misskey://User', }, userId: { type: 'string', }, visibility: { type: 'string', enum: ['public', 'home', 'followers', 'specified',], }, }, }, }, errors: { '1384574d-a912-4b81-8601-c7b1c4085df1': { id: '1384574d-a912-4b81-8601-c7b1c4085df1', code: 'CREDENTIAL_REQUIRED', description: 'クレデンシャル必須のエンドポイントにクレデンシャル無しでリクエストされました。', }, 'd5826d14-3982-4d2e-8011-b9e9f02499ef': { id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef', code: 'RATE_LIMIT_EXCEEDED', description: 'レートリミットによる制限のため一時的に利用できません。', }, '56f35758-7dd5-468b-8439-5d6fb8ec9b8e': { id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e', code: 'ACCESS_DENIED', description: 'アクセス権限がありません。', }, '1370e5b7-d4eb-4566-bb1d-7748ee6a1838': { id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838', code: 'PERMISSION_DENIED', description: '与えられたクレデンシャルには必要なパーミッションがありません。', }, 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': { id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370', code: 'YOUR_ACCOUNT_SUSPENDED', description: 'アカウントが凍結されているため利用できません。', }, '3d81ceae-475f-4600-b2a8-2bc116157532': { id: '3d81ceae-475f-4600-b2a8-2bc116157532', code: 'INVALID_PARAM', description: 'リクエストパラメータに誤りがあります。', }, '5d37dbcb-891e-41ca-a3d6-e690c97775ac': { id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac', code: 'INTERNAL_ERROR', description: 'サーバー内部で問題が発生しました。引き続き問題が発生する場合は管理者にお問い合わせください。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/abuse-user-reports.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, state: { type: 'string', nullable: true, default: null, }, reporterOrigin: { type: 'string', enum: [ 'combined', 'local', 'remote', ], default: 'combined', }, targetUserOrigin: { type: 'string', enum: [ 'combined', 'local', 'remote', ], default: 'combined', }, forwarded: { type: 'boolean', default: false, }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', nullable: false, optional: false, format: 'id', example: 'xxxxxxxxxx', }, createdAt: { type: 'string', nullable: false, optional: false, format: 'date-time', }, comment: { type: 'string', nullable: false, optional: false, }, resolved: { type: 'boolean', nullable: false, optional: false, example: false, }, reporterId: { type: 'string', nullable: false, optional: false, format: 'id', }, targetUserId: { type: 'string', nullable: false, optional: false, format: 'id', }, assigneeId: { type: 'string', nullable: true, optional: false, format: 'id', }, reporter: { type: 'object', nullable: false, optional: false, ref: 'User', $ref: 'misskey://User', }, targetUser: { type: 'object', nullable: false, optional: false, ref: 'User', $ref: 'misskey://User', }, assignee: { type: 'object', nullable: true, optional: true, ref: 'User', $ref: 'misskey://User', }, }, required: [ 'id', 'createdAt', 'comment', 'resolved', 'reporterId', 'targetUserId', 'assigneeId', 'reporter', 'targetUser', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/accounts/create.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: false, req: { type: 'object', properties: { username: { type: 'string', pattern: '^\\w{1,20}$', }, password: { type: 'string', minLength: 1, }, }, required: [ 'username', 'password', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'User', properties: { token: { type: 'string', optional: false, nullable: false, }, }, required: [ 'token', ], $ref: 'misskey://User', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/accounts/delete.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/ad/create.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { url: { type: 'string', minLength: 1, }, memo: { type: 'string', }, place: { type: 'string', }, priority: { type: 'string', }, ratio: { type: 'integer', }, expiresAt: { type: 'integer', }, imageUrl: { type: 'string', minLength: 1, }, }, required: [ 'url', 'memo', 'place', 'priority', 'ratio', 'expiresAt', 'imageUrl', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/ad/delete.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { id: { type: 'string', format: 'misskey:id', }, }, required: [ 'id', ], }, res: {}, errors: { 'ccac9863-3a03-416e-b899-8a64041118b1': { id: 'ccac9863-3a03-416e-b899-8a64041118b1', code: 'NO_SUCH_AD', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/ad/list.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/ad/update.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { id: { type: 'string', format: 'misskey:id', }, memo: { type: 'string', }, url: { type: 'string', minLength: 1, }, imageUrl: { type: 'string', minLength: 1, }, place: { type: 'string', }, priority: { type: 'string', }, ratio: { type: 'integer', }, expiresAt: { type: 'integer', }, }, required: [ 'id', 'memo', 'url', 'imageUrl', 'place', 'priority', 'ratio', 'expiresAt', ], }, res: {}, errors: { 'b7aa1727-1354-47bc-a182-3a9c3973d300': { id: 'b7aa1727-1354-47bc-a182-3a9c3973d300', code: 'NO_SUCH_AD', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/announcements/create.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { title: { type: 'string', minLength: 1, }, text: { type: 'string', minLength: 1, }, imageUrl: { type: 'string', nullable: true, minLength: 1, }, }, required: [ 'title', 'text', 'imageUrl', ], }, res: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', example: 'xxxxxxxxxx', }, createdAt: { type: 'string', optional: false, nullable: false, format: 'date-time', }, updatedAt: { type: 'string', optional: false, nullable: true, format: 'date-time', }, title: { type: 'string', optional: false, nullable: false, }, text: { type: 'string', optional: false, nullable: false, }, imageUrl: { type: 'string', optional: false, nullable: true, }, }, required: [ 'id', 'createdAt', 'updatedAt', 'title', 'text', 'imageUrl', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/announcements/delete.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { id: { type: 'string', format: 'misskey:id', }, }, required: [ 'id', ], }, res: {}, errors: { 'ecad8040-a276-4e85-bda9-015a708d291e': { id: 'ecad8040-a276-4e85-bda9-015a708d291e', code: 'NO_SUCH_ANNOUNCEMENT', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/announcements/list.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', example: 'xxxxxxxxxx', }, createdAt: { type: 'string', optional: false, nullable: false, format: 'date-time', }, updatedAt: { type: 'string', optional: false, nullable: true, format: 'date-time', }, text: { type: 'string', optional: false, nullable: false, }, title: { type: 'string', optional: false, nullable: false, }, imageUrl: { type: 'string', optional: false, nullable: true, }, reads: { type: 'number', optional: false, nullable: false, }, }, required: [ 'id', 'createdAt', 'updatedAt', 'text', 'title', 'imageUrl', 'reads', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/announcements/update.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { id: { type: 'string', format: 'misskey:id', }, title: { type: 'string', minLength: 1, }, text: { type: 'string', minLength: 1, }, imageUrl: { type: 'string', nullable: true, minLength: 1, }, }, required: [ 'id', 'title', 'text', 'imageUrl', ], }, res: {}, errors: { 'd3aae5a7-6372-4cb4-b61c-f511ffc2d7cc': { id: 'd3aae5a7-6372-4cb4-b61c-f511ffc2d7cc', code: 'NO_SUCH_ANNOUNCEMENT', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/delete-account.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/delete-all-files-of-a-user.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/drive/clean-remote-files.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/drive/cleanup.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/drive/files.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, userId: { type: 'string', format: 'misskey:id', nullable: true, }, type: { type: 'string', nullable: true, pattern: '^[a-zA-Z0-9\\/\\-*]+$', }, origin: { type: 'string', enum: [ 'combined', 'local', 'remote', ], default: 'local', }, hostname: { type: 'string', nullable: true, default: null, description: 'The local host is represented with `null`.', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/drive/show-file.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', anyOf: [ { properties: { fileId: { type: 'string', format: 'misskey:id', }, }, required: [ 'fileId', ], }, { properties: { url: { type: 'string', }, }, required: [ 'url', ], }, ], }, res: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', example: 'xxxxxxxxxx', }, createdAt: { type: 'string', optional: false, nullable: false, format: 'date-time', }, userId: { type: 'string', optional: false, nullable: true, format: 'id', example: 'xxxxxxxxxx', }, userHost: { type: 'string', optional: false, nullable: true, description: 'The local host is represented with `null`.', }, md5: { type: 'string', optional: false, nullable: false, format: 'md5', example: '15eca7fba0480996e2245f5185bf39f2', }, name: { type: 'string', optional: false, nullable: false, example: 'lenna.jpg', }, type: { type: 'string', optional: false, nullable: false, example: 'image/jpeg', }, size: { type: 'number', optional: false, nullable: false, example: 51469, }, comment: { type: 'string', optional: false, nullable: true, }, blurhash: { type: 'string', optional: false, nullable: true, }, properties: { type: 'object', optional: false, nullable: false, properties: { width: { type: 'number', optional: false, nullable: false, example: 1280, }, height: { type: 'number', optional: false, nullable: false, example: 720, }, avgColor: { type: 'string', optional: true, nullable: false, example: 'rgb(40,65,87)', }, }, required: [ 'width', 'height', ], }, storedInternal: { type: 'boolean', optional: false, nullable: true, example: true, }, url: { type: 'string', optional: false, nullable: true, format: 'url', }, thumbnailUrl: { type: 'string', optional: false, nullable: true, format: 'url', }, webpublicUrl: { type: 'string', optional: false, nullable: true, format: 'url', }, accessKey: { type: 'string', optional: false, nullable: false, }, thumbnailAccessKey: { type: 'string', optional: false, nullable: false, }, webpublicAccessKey: { type: 'string', optional: false, nullable: false, }, uri: { type: 'string', optional: false, nullable: true, }, src: { type: 'string', optional: false, nullable: true, }, folderId: { type: 'string', optional: false, nullable: true, format: 'id', example: 'xxxxxxxxxx', }, isSensitive: { type: 'boolean', optional: false, nullable: false, }, isLink: { type: 'boolean', optional: false, nullable: false, }, }, required: [ 'id', 'createdAt', 'userId', 'userHost', 'md5', 'name', 'type', 'size', 'comment', 'blurhash', 'properties', 'storedInternal', 'url', 'thumbnailUrl', 'webpublicUrl', 'accessKey', 'thumbnailAccessKey', 'webpublicAccessKey', 'uri', 'src', 'folderId', 'isSensitive', 'isLink', ], }, errors: { 'caf3ca38-c6e5-472e-a30c-b05377dcc240': { id: 'caf3ca38-c6e5-472e-a30c-b05377dcc240', code: 'NO_SUCH_FILE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/drive-capacity-override.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, overrideMb: { type: 'number', nullable: true, }, }, required: [ 'userId', 'overrideMb', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/add-aliases-bulk.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { ids: { type: 'array', items: { type: 'string', format: 'misskey:id', }, }, aliases: { type: 'array', items: { type: 'string', }, }, }, required: [ 'ids', 'aliases', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/add.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { fileId: { type: 'string', format: 'misskey:id', }, }, required: [ 'fileId', ], }, res: {}, errors: { 'fc46b5a4-6b92-4c33-ac66-b806659bb5cf': { id: 'fc46b5a4-6b92-4c33-ac66-b806659bb5cf', code: 'MO_SUCH_FILE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/copy.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { emojiId: { type: 'string', format: 'misskey:id', }, }, required: [ 'emojiId', ], }, res: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, }, required: [ 'id', ], }, errors: { 'e2785b66-dca3-4087-9cac-b93c541cc425': { id: 'e2785b66-dca3-4087-9cac-b93c541cc425', code: 'NO_SUCH_EMOJI', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/delete-bulk.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { ids: { type: 'array', items: { type: 'string', format: 'misskey:id', }, }, }, required: [ 'ids', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/delete.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { id: { type: 'string', format: 'misskey:id', }, }, required: [ 'id', ], }, res: {}, errors: { 'be83669b-773a-44b7-b1f8-e5e5170ac3c2': { id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2', code: 'NO_SUCH_EMOJI', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/list-remote.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { query: { type: 'string', nullable: true, default: null, }, host: { type: 'string', nullable: true, default: null, description: 'Use `null` to represent the local host.', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, aliases: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, name: { type: 'string', optional: false, nullable: false, }, category: { type: 'string', optional: false, nullable: true, }, host: { type: 'string', optional: false, nullable: true, description: 'The local host is represented with `null`.', }, url: { type: 'string', optional: false, nullable: false, }, }, required: [ 'id', 'aliases', 'name', 'category', 'host', 'url', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/list.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { query: { type: 'string', nullable: true, default: null, }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, aliases: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, name: { type: 'string', optional: false, nullable: false, }, category: { type: 'string', optional: false, nullable: true, }, host: { type: 'null', optional: false, description: 'The local host is represented with `null`. The field exists for compatibility with other API endpoints that return files.', }, url: { type: 'string', optional: false, nullable: false, }, }, required: [ 'id', 'aliases', 'name', 'category', 'host', 'url', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/remove-aliases-bulk.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { ids: { type: 'array', items: { type: 'string', format: 'misskey:id', }, }, aliases: { type: 'array', items: { type: 'string', }, }, }, required: [ 'ids', 'aliases', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/set-aliases-bulk.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { ids: { type: 'array', items: { type: 'string', format: 'misskey:id', }, }, aliases: { type: 'array', items: { type: 'string', }, }, }, required: [ 'ids', 'aliases', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/set-category-bulk.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { ids: { type: 'array', items: { type: 'string', format: 'misskey:id', }, }, category: { type: 'string', nullable: true, description: 'Use `null` to reset the category.', }, }, required: [ 'ids', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/emoji/update.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { id: { type: 'string', format: 'misskey:id', }, name: { type: 'string', }, category: { type: 'string', nullable: true, description: 'Use `null` to reset the category.', }, aliases: { type: 'array', items: { type: 'string', }, }, }, required: [ 'id', 'name', 'aliases', ], }, res: {}, errors: { '684dec9d-a8c2-4364-9aa8-456c49cb1dc8': { id: '684dec9d-a8c2-4364-9aa8-456c49cb1dc8', code: 'NO_SUCH_EMOJI', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/federation/delete-all-files.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { host: { type: 'string', }, }, required: [ 'host', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/federation/refresh-remote-instance-metadata.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { host: { type: 'string', }, }, required: [ 'host', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/federation/remove-all-following.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { host: { type: 'string', }, }, required: [ 'host', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/federation/update-instance.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { host: { type: 'string', }, isSuspended: { type: 'boolean', }, }, required: [ 'host', 'isSuspended', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/get-index-stats.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/get-table-stats.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, example: { migrations: { count: 66, size: 32768, }, }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/get-user-ips.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/invite.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { code: { type: 'string', optional: false, nullable: false, example: '2ERUA5VR', maxLength: 8, minLength: 8, }, }, required: [ 'code', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/meta.json5 ================================================ { summary: '', description: '', tags: [ 'meta', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { driveCapacityPerLocalUserMb: { type: 'number', optional: false, nullable: false, }, driveCapacityPerRemoteUserMb: { type: 'number', optional: false, nullable: false, }, cacheRemoteFiles: { type: 'boolean', optional: false, nullable: false, }, emailRequiredForSignup: { type: 'boolean', optional: false, nullable: false, }, enableHcaptcha: { type: 'boolean', optional: false, nullable: false, }, hcaptchaSiteKey: { type: 'string', optional: false, nullable: true, }, enableRecaptcha: { type: 'boolean', optional: false, nullable: false, }, recaptchaSiteKey: { type: 'string', optional: false, nullable: true, }, swPublickey: { type: 'string', optional: false, nullable: true, }, mascotImageUrl: { type: 'string', optional: false, nullable: false, default: '/assets/ai.png', }, bannerUrl: { type: 'string', optional: false, nullable: false, }, errorImageUrl: { type: 'string', optional: false, nullable: false, default: 'https://xn--931a.moe/aiart/yubitun.png', }, iconUrl: { type: 'string', optional: false, nullable: true, }, maxNoteTextLength: { type: 'number', optional: false, nullable: false, }, emojis: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, aliases: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, category: { type: 'string', optional: false, nullable: true, }, host: { type: 'string', optional: false, nullable: true, }, url: { type: 'string', optional: false, nullable: false, format: 'url', }, }, required: [ 'id', 'aliases', 'category', 'host', 'url', ], }, }, ads: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { place: { type: 'string', optional: false, nullable: false, }, url: { type: 'string', optional: false, nullable: false, format: 'url', }, imageUrl: { type: 'string', optional: false, nullable: false, format: 'url', }, }, required: [ 'place', 'url', 'imageUrl', ], }, }, enableEmail: { type: 'boolean', optional: false, nullable: false, }, enableTwitterIntegration: { type: 'boolean', optional: false, nullable: false, }, enableGithubIntegration: { type: 'boolean', optional: false, nullable: false, }, enableDiscordIntegration: { type: 'boolean', optional: false, nullable: false, }, enableServiceWorker: { type: 'boolean', optional: false, nullable: false, }, translatorAvailable: { type: 'boolean', optional: false, nullable: false, }, proxyAccountName: { type: 'string', optional: false, nullable: true, }, userStarForReactionFallback: { type: 'boolean', optional: true, nullable: false, }, pinnedUsers: { type: 'array', optional: true, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, hiddenTags: { type: 'array', optional: true, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, blockedHosts: { type: 'array', optional: true, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, hcaptchaSecretKey: { type: 'string', optional: true, nullable: true, }, recaptchaSecretKey: { type: 'string', optional: true, nullable: true, }, sensitiveMediaDetection: { type: 'string', optional: true, nullable: false, }, sensitiveMediaDetectionSensitivity: { type: 'string', optional: true, nullable: false, }, setSensitiveFlagAutomatically: { type: 'boolean', optional: true, nullable: false, }, enableSensitiveMediaDetectionForVideos: { type: 'boolean', optional: true, nullable: false, }, proxyAccountId: { type: 'string', optional: true, nullable: true, format: 'id', }, twitterConsumerKey: { type: 'string', optional: true, nullable: true, }, twitterConsumerSecret: { type: 'string', optional: true, nullable: true, }, githubClientId: { type: 'string', optional: true, nullable: true, }, githubClientSecret: { type: 'string', optional: true, nullable: true, }, discordClientId: { type: 'string', optional: true, nullable: true, }, discordClientSecret: { type: 'string', optional: true, nullable: true, }, summaryProxy: { type: 'string', optional: true, nullable: true, }, email: { type: 'string', optional: true, nullable: true, }, smtpSecure: { type: 'boolean', optional: true, nullable: false, }, smtpHost: { type: 'string', optional: true, nullable: true, }, smtpPort: { type: 'string', optional: true, nullable: true, }, smtpUser: { type: 'string', optional: true, nullable: true, }, smtpPass: { type: 'string', optional: true, nullable: true, }, swPrivateKey: { type: 'string', optional: true, nullable: true, }, useObjectStorage: { type: 'boolean', optional: true, nullable: false, }, objectStorageBaseUrl: { type: 'string', optional: true, nullable: true, }, objectStorageBucket: { type: 'string', optional: true, nullable: true, }, objectStoragePrefix: { type: 'string', optional: true, nullable: true, }, objectStorageEndpoint: { type: 'string', optional: true, nullable: true, }, objectStorageRegion: { type: 'string', optional: true, nullable: true, }, objectStoragePort: { type: 'number', optional: true, nullable: true, }, objectStorageAccessKey: { type: 'string', optional: true, nullable: true, }, objectStorageSecretKey: { type: 'string', optional: true, nullable: true, }, objectStorageUseSSL: { type: 'boolean', optional: true, nullable: false, }, objectStorageUseProxy: { type: 'boolean', optional: true, nullable: false, }, objectStorageSetPublicRead: { type: 'boolean', optional: true, nullable: false, }, enableIpLogging: { type: 'boolean', optional: true, nullable: false, }, enableActiveEmailValidation: { type: 'boolean', optional: true, nullable: false, }, }, required: [ 'driveCapacityPerLocalUserMb', 'driveCapacityPerRemoteUserMb', 'cacheRemoteFiles', 'emailRequiredForSignup', 'enableHcaptcha', 'hcaptchaSiteKey', 'enableRecaptcha', 'recaptchaSiteKey', 'swPublickey', 'mascotImageUrl', 'bannerUrl', 'errorImageUrl', 'iconUrl', 'maxNoteTextLength', 'emojis', 'ads', 'enableEmail', 'enableTwitterIntegration', 'enableGithubIntegration', 'enableDiscordIntegration', 'enableServiceWorker', 'translatorAvailable', 'proxyAccountName', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/moderators/add.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/moderators/remove.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/promo/create.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', }, expiresAt: { type: 'integer', }, }, required: [ 'noteId', 'expiresAt', ], }, res: {}, errors: { 'ee449fbe-af2a-453b-9cae-cf2fe7c895fc': { id: 'ee449fbe-af2a-453b-9cae-cf2fe7c895fc', code: 'NO_SUCH_NOTE', description: '', }, 'ae427aa2-7a41-484f-a18c-2c1104051604': { id: 'ae427aa2-7a41-484f-a18c-2c1104051604', code: 'ALREADY_PROMOTED', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/queue/clear.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/queue/deliver-delayed.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'array', optional: false, nullable: false, items: { anyOf: [ { type: 'string', }, { type: 'number', }, ], }, }, example: [ [ 'example.com', 12, ], ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/queue/inbox-delayed.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'array', optional: false, nullable: false, items: { anyOf: [ { type: 'string', }, { type: 'number', }, ], }, }, example: [ [ 'example.com', 12, ], ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/queue/stats.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { deliver: { optional: false, nullable: false, ref: 'QueueCount', $ref: 'misskey://QueueCount', }, inbox: { optional: false, nullable: false, ref: 'QueueCount', $ref: 'misskey://QueueCount', }, db: { optional: false, nullable: false, ref: 'QueueCount', $ref: 'misskey://QueueCount', }, objectStorage: { optional: false, nullable: false, ref: 'QueueCount', $ref: 'misskey://QueueCount', }, }, required: [ 'deliver', 'inbox', 'db', 'objectStorage', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/relays/add.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { inbox: { type: 'string', }, }, required: [ 'inbox', ], }, res: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, inbox: { type: 'string', optional: false, nullable: false, format: 'url', }, status: { type: 'string', optional: false, nullable: false, default: 'requesting', enum: [ 'requesting', 'accepted', 'rejected', ], }, }, required: [ 'id', 'inbox', 'status', ], }, errors: { 'fb8c92d3-d4e5-44e7-b3d4-800d5cef8b2c': { id: 'fb8c92d3-d4e5-44e7-b3d4-800d5cef8b2c', code: 'INVALID_URL', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/relays/list.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, inbox: { type: 'string', optional: false, nullable: false, format: 'url', }, status: { type: 'string', optional: false, nullable: false, default: 'requesting', enum: [ 'requesting', 'accepted', 'rejected', ], }, }, required: [ 'id', 'inbox', 'status', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/relays/remove.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { inbox: { type: 'string', }, }, required: [ 'inbox', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/reset-password.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, properties: { password: { type: 'string', optional: false, nullable: false, minLength: 8, maxLength: 8, }, }, required: [ 'password', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/resolve-abuse-user-report.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { reportId: { type: 'string', format: 'misskey:id', }, forward: { type: 'boolean', default: false, }, }, required: [ 'reportId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/send-email.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { to: { type: 'string', }, subject: { type: 'string', }, text: { type: 'string', }, }, required: [ 'to', 'subject', 'text', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/server-info.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { machine: { type: 'string', optional: false, nullable: false, }, os: { type: 'string', optional: false, nullable: false, example: 'linux', }, node: { type: 'string', optional: false, nullable: false, }, psql: { type: 'string', optional: false, nullable: false, }, cpu: { type: 'object', optional: false, nullable: false, properties: { model: { type: 'string', optional: false, nullable: false, }, cores: { type: 'number', optional: false, nullable: false, }, }, required: [ 'model', 'cores', ], }, mem: { type: 'object', optional: false, nullable: false, properties: { total: { type: 'number', optional: false, nullable: false, format: 'bytes', }, }, required: [ 'total', ], }, fs: { type: 'object', optional: false, nullable: false, properties: { total: { type: 'number', optional: false, nullable: false, format: 'bytes', }, used: { type: 'number', optional: false, nullable: false, format: 'bytes', }, }, required: [ 'total', 'used', ], }, net: { type: 'object', optional: false, nullable: false, properties: { interface: { type: 'string', optional: false, nullable: false, example: 'eth0', }, }, required: [ 'interface', ], }, }, required: [ 'machine', 'os', 'node', 'psql', 'cpu', 'mem', 'fs', 'net', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/show-moderation-logs.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, createdAt: { type: 'string', optional: false, nullable: false, format: 'date-time', }, type: { type: 'string', optional: false, nullable: false, }, info: { type: 'object', optional: false, nullable: false, }, userId: { type: 'string', optional: false, nullable: false, format: 'id', }, user: { type: 'object', optional: false, nullable: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, required: [ 'id', 'createdAt', 'type', 'info', 'userId', 'user', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/show-user.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: { type: 'object', nullable: false, optional: false, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/show-users.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, offset: { type: 'integer', default: 0, }, sort: { type: 'string', enum: [ '+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt', ], }, state: { type: 'string', enum: [ 'all', 'alive', 'available', 'admin', 'moderator', 'adminOrModerator', 'silenced', 'suspended', ], default: 'all', }, origin: { type: 'string', enum: [ 'combined', 'local', 'remote', ], default: 'combined', }, username: { type: 'string', nullable: true, default: null, }, hostname: { type: 'string', nullable: true, default: null, description: 'The local host is represented with `null`.', }, }, required: [], }, res: { type: 'array', nullable: false, optional: false, items: { type: 'object', nullable: false, optional: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/silence-user.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/suspend-user.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/unsilence-user.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/unsuspend-user.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/update-meta.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { disableRegistration: { type: 'boolean', nullable: true, }, disableLocalTimeline: { type: 'boolean', nullable: true, }, disableGlobalTimeline: { type: 'boolean', nullable: true, }, useStarForReactionFallback: { type: 'boolean', nullable: true, }, pinnedUsers: { type: 'array', nullable: true, items: { type: 'string', }, }, hiddenTags: { type: 'array', nullable: true, items: { type: 'string', }, }, blockedHosts: { type: 'array', nullable: true, items: { type: 'string', }, }, themeColor: { type: 'string', nullable: true, pattern: '^#[0-9a-fA-F]{6}$', }, mascotImageUrl: { type: 'string', nullable: true, }, bannerUrl: { type: 'string', nullable: true, }, errorImageUrl: { type: 'string', nullable: true, }, iconUrl: { type: 'string', nullable: true, }, backgroundImageUrl: { type: 'string', nullable: true, }, logoImageUrl: { type: 'string', nullable: true, }, name: { type: 'string', nullable: true, }, description: { type: 'string', nullable: true, }, defaultLightTheme: { type: 'string', nullable: true, }, defaultDarkTheme: { type: 'string', nullable: true, }, localDriveCapacityMb: { type: 'integer', }, remoteDriveCapacityMb: { type: 'integer', }, cacheRemoteFiles: { type: 'boolean', }, emailRequiredForSignup: { type: 'boolean', }, enableHcaptcha: { type: 'boolean', }, hcaptchaSiteKey: { type: 'string', nullable: true, }, hcaptchaSecretKey: { type: 'string', nullable: true, }, enableRecaptcha: { type: 'boolean', }, recaptchaSiteKey: { type: 'string', nullable: true, }, recaptchaSecretKey: { type: 'string', nullable: true, }, sensitiveMediaDetection: { type: 'string', enum: [ 'none', 'all', 'local', 'remote', ], }, sensitiveMediaDetectionSensitivity: { type: 'string', enum: [ 'medium', 'low', 'high', 'veryLow', 'veryHigh', ], }, setSensitiveFlagAutomatically: { type: 'boolean', }, enableSensitiveMediaDetectionForVideos: { type: 'boolean', }, proxyAccountId: { type: 'string', format: 'misskey:id', nullable: true, }, maintainerName: { type: 'string', nullable: true, }, maintainerEmail: { type: 'string', nullable: true, }, pinnedPages: { type: 'array', items: { type: 'string', }, }, pinnedClipId: { type: 'string', format: 'misskey:id', nullable: true, }, langs: { type: 'array', items: { type: 'string', }, }, summalyProxy: { type: 'string', nullable: true, }, deeplAuthKey: { type: 'string', nullable: true, }, deeplIsPro: { type: 'boolean', }, enableTwitterIntegration: { type: 'boolean', }, twitterConsumerKey: { type: 'string', nullable: true, }, twitterConsumerSecret: { type: 'string', nullable: true, }, enableGithubIntegration: { type: 'boolean', }, githubClientId: { type: 'string', nullable: true, }, githubClientSecret: { type: 'string', nullable: true, }, enableDiscordIntegration: { type: 'boolean', }, discordClientId: { type: 'string', nullable: true, }, discordClientSecret: { type: 'string', nullable: true, }, enableEmail: { type: 'boolean', }, email: { type: 'string', nullable: true, }, smtpSecure: { type: 'boolean', }, smtpHost: { type: 'string', nullable: true, }, smtpPort: { type: 'integer', nullable: true, }, smtpUser: { type: 'string', nullable: true, }, smtpPass: { type: 'string', nullable: true, }, enableServiceWorker: { type: 'boolean', }, swPublicKey: { type: 'string', nullable: true, }, swPrivateKey: { type: 'string', nullable: true, }, tosUrl: { type: 'string', nullable: true, }, repositoryUrl: { type: 'string', }, feedbackUrl: { type: 'string', }, useObjectStorage: { type: 'boolean', }, objectStorageBaseUrl: { type: 'string', nullable: true, }, objectStorageBucket: { type: 'string', nullable: true, }, objectStoragePrefix: { type: 'string', nullable: true, }, objectStorageEndpoint: { type: 'string', nullable: true, }, objectStorageRegion: { type: 'string', nullable: true, }, objectStoragePort: { type: 'integer', nullable: true, }, objectStorageAccessKey: { type: 'string', nullable: true, }, objectStorageSecretKey: { type: 'string', nullable: true, }, objectStorageUseSSL: { type: 'boolean', }, objectStorageUseProxy: { type: 'boolean', }, objectStorageSetPublicRead: { type: 'boolean', }, objectStorageS3ForcePathStyle: { type: 'boolean', }, enableIpLogging: { type: 'boolean', }, enableActiveEmailValidation: { type: 'boolean', }, }, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/update-user-note.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, text: { type: 'string', }, }, required: [ 'userId', 'text', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/admin/vacuum.json5 ================================================ { summary: '', description: '', tags: [ 'admin', ], requireCredential: true, req: { type: 'object', properties: { full: { type: 'boolean', }, analyze: { type: 'boolean', }, }, required: [ 'full', 'analyze', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/announcements.json5 ================================================ { summary: 'サーバーからのお知らせを取得します。', description: 'サーバーからのお知らせを取得します。', tags: [ 'meta', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するお知らせの最大数。', }, withUnreads: { type: 'boolean', default: false, description: 'trueにすると、未読のお知らせのみを取得します。falseにすると、すべてのお知らせを取得します。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいお知らせを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいお知らせを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', example: 'xxxxxxxxxx', }, createdAt: { type: 'string', optional: false, nullable: false, format: 'date-time', }, updatedAt: { type: 'string', optional: false, nullable: true, format: 'date-time', }, text: { type: 'string', optional: false, nullable: false, }, title: { type: 'string', optional: false, nullable: false, }, imageUrl: { type: 'string', optional: false, nullable: true, }, isRead: { type: 'boolean', optional: true, nullable: false, description: 'お知らせが既読であればtrueになります。クレデンシャルを送信した場合のみ返されます。', }, }, required: [ 'id', 'createdAt', 'updatedAt', 'text', 'title', 'imageUrl', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/antennas/create.json5 ================================================ { summary: '', description: '', tags: [ 'antennas', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 100, }, src: { type: 'string', enum: [ 'home', 'all', 'users', 'list', ], }, userListId: { type: 'string', format: 'misskey:id', nullable: true, }, keywords: { type: 'array', items: { type: 'array', items: { type: 'string', }, }, }, excludeKeywords: { type: 'array', items: { type: 'array', items: { type: 'string', }, }, }, users: { type: 'array', items: { type: 'string', }, }, caseSensitive: { type: 'boolean', }, withReplies: { type: 'boolean', }, withFile: { type: 'boolean', }, notify: { type: 'boolean', }, }, required: [ 'name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile', 'notify', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Antenna', $ref: 'misskey://Antenna', }, errors: { '95063e93-a283-4b8b-9aa5-bcdb8df69a7f': { id: '95063e93-a283-4b8b-9aa5-bcdb8df69a7f', code: 'NO_SUCH_USER_LIST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/antennas/delete.json5 ================================================ { summary: '', description: '', tags: [ 'antennas', ], requireCredential: true, req: { type: 'object', properties: { antennaId: { type: 'string', format: 'misskey:id', }, }, required: [ 'antennaId', ], }, res: {}, errors: { 'b34dcf9d-348f-44bb-99d0-6c9314cfe2df': { id: 'b34dcf9d-348f-44bb-99d0-6c9314cfe2df', code: 'NO_SUCH_ANTENNA', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/antennas/list.json5 ================================================ { summary: '', description: '', tags: [ 'antennas', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Antenna', $ref: 'misskey://Antenna', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/antennas/notes.json5 ================================================ { summary: '', description: '', tags: [ 'antennas', ], requireCredential: true, req: { type: 'object', properties: { antennaId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, sinceDate: { type: 'integer', }, untilDate: { type: 'integer', }, }, required: [ 'antennaId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '850926e0-fd3b-49b6-b69a-b28a5dbd82fe': { id: '850926e0-fd3b-49b6-b69a-b28a5dbd82fe', code: 'NO_SUCH_ANTENNA', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/antennas/show.json5 ================================================ { summary: '', description: '', tags: [ 'antennas', ], requireCredential: true, req: { type: 'object', properties: { antennaId: { type: 'string', format: 'misskey:id', }, }, required: [ 'antennaId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Antenna', $ref: 'misskey://Antenna', }, errors: { 'c06569fb-b025-4f23-b22d-1fcd20d2816b': { id: 'c06569fb-b025-4f23-b22d-1fcd20d2816b', code: 'NO_SUCH_ANTENNA', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/antennas/update.json5 ================================================ { summary: '', description: '', tags: [ 'antennas', ], requireCredential: true, req: { type: 'object', properties: { antennaId: { type: 'string', format: 'misskey:id', }, name: { type: 'string', minLength: 1, maxLength: 100, }, src: { type: 'string', enum: [ 'home', 'all', 'users', 'list', ], }, userListId: { type: 'string', format: 'misskey:id', nullable: true, }, keywords: { type: 'array', items: { type: 'array', items: { type: 'string', }, }, }, excludeKeywords: { type: 'array', items: { type: 'array', items: { type: 'string', }, }, }, users: { type: 'array', items: { type: 'string', }, }, caseSensitive: { type: 'boolean', }, withReplies: { type: 'boolean', }, withFile: { type: 'boolean', }, notify: { type: 'boolean', }, }, required: [ 'antennaId', 'name', 'src', 'keywords', 'excludeKeywords', 'users', 'caseSensitive', 'withReplies', 'withFile', 'notify', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Antenna', $ref: 'misskey://Antenna', }, errors: { '10c673ac-8852-48eb-aa1f-f5b67f069290': { id: '10c673ac-8852-48eb-aa1f-f5b67f069290', code: 'NO_SUCH_ANTENNA', description: '', }, '1c6b35c9-943e-48c2-81e4-2844989407f7': { id: '1c6b35c9-943e-48c2-81e4-2844989407f7', code: 'NO_SUCH_USER_LIST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/ap/get.json5 ================================================ { summary: '', description: '', tags: [ 'federation', ], requireCredential: true, req: { type: 'object', properties: { uri: { type: 'string', }, }, required: [ 'uri', ], }, res: { type: 'object', optional: false, nullable: false, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/ap/show.json5 ================================================ { summary: '', description: '', tags: [ 'federation', ], requireCredential: true, req: { type: 'object', properties: { uri: { type: 'string', }, }, required: [ 'uri', ], }, res: { optional: false, nullable: false, oneOf: [ { type: 'object', properties: { type: { type: 'string', optional: false, nullable: false, enum: [ 'User', ], }, object: { type: 'object', optional: false, nullable: false, ref: 'UserDetailedNotMe', $ref: 'misskey://UserDetailedNotMe', }, }, required: [ 'type', 'object', ], }, { type: 'object', properties: { type: { type: 'string', optional: false, nullable: false, enum: [ 'Note', ], }, object: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, required: [ 'type', 'object', ], }, ], }, errors: { 'dc94d745-1262-4e63-a17d-fecaa57efc82': { id: 'dc94d745-1262-4e63-a17d-fecaa57efc82', code: 'NO_SUCH_OBJECT', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/app/create.json5 ================================================ { summary: '', description: '', tags: [ 'app', ], requireCredential: false, req: { type: 'object', properties: { name: { type: 'string', }, description: { type: 'string', }, permission: { type: 'array', uniqueItems: true, items: { type: 'string', }, }, callbackUrl: { type: 'string', nullable: true, }, }, required: [ 'name', 'description', 'permission', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'App', $ref: 'misskey://App', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/app/show.json5 ================================================ { summary: '', description: '', tags: [ 'app', ], requireCredential: false, req: { type: 'object', properties: { appId: { type: 'string', format: 'misskey:id', }, }, required: [ 'appId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'App', $ref: 'misskey://App', }, errors: { 'dce83913-2dc6-4093-8a7b-71dbb11718a3': { id: 'dce83913-2dc6-4093-8a7b-71dbb11718a3', code: 'NO_SUCH_APP', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/auth/session/generate.json5 ================================================ { summary: 'アプリを認証するためのトークンを作成します。', description: 'アプリを認証するためのトークンを作成します。', tags: [ 'auth', ], requireCredential: false, req: { type: 'object', properties: { appSecret: { type: 'string', description: 'アプリケーションのシークレットキー。', }, }, required: [ 'appSecret', ], }, res: { type: 'object', optional: false, nullable: false, properties: { token: { type: 'string', optional: false, nullable: false, description: 'セッションのトークン。', }, url: { type: 'string', optional: false, nullable: false, format: 'url', description: 'セッションのURL。', }, }, required: [ 'token', 'url', ], }, errors: { '92f93e63-428e-4f2f-a5a4-39e1407fe998': { id: '92f93e63-428e-4f2f-a5a4-39e1407fe998', code: 'NO_SUCH_APP', description: 'アプリが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/auth/session/show.json5 ================================================ { summary: 'セッションの情報を取得します。', description: 'セッションの情報を取得します。', tags: [ 'auth', ], requireCredential: false, req: { type: 'object', properties: { token: { type: 'string', description: 'セッションのトークン。', }, }, required: [ 'token', ], }, res: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', description: 'セッションのID。', }, app: { type: 'object', optional: false, nullable: false, ref: 'App', $ref: 'misskey://App', description: 'セッションを保持するアプリ。', }, token: { type: 'string', optional: false, nullable: false, description: 'セッションのトークン。', }, }, required: [ 'id', 'app', 'token', ], }, errors: { 'bd72c97d-eba7-4adb-a467-f171b8847250': { id: 'bd72c97d-eba7-4adb-a467-f171b8847250', code: 'NO_SUCH_SESSION', description: 'セッションが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/auth/session/userkey.json5 ================================================ { summary: 'アプリのアクセストークンを発行します。', description: 'アプリのアクセストークンを発行します。', tags: [ 'auth', ], requireCredential: false, req: { type: 'object', properties: { appSecret: { type: 'string', description: 'アプリのシークレットキー。', }, token: { type: 'string', description: 'セッションのトークン。', }, }, required: [ 'appSecret', 'token', ], }, res: { type: 'object', optional: false, nullable: false, properties: { accessToken: { type: 'string', optional: false, nullable: false, description: 'ユーザーのアクセストークン。', }, user: { type: 'object', optional: false, nullable: false, ref: 'UserDetailedNotMe', $ref: 'misskey://UserDetailedNotMe', }, }, required: [ 'accessToken', 'user', ], }, errors: { 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d': { id: 'fcab192a-2c5a-43b7-8ad8-9b7054d8d40d', code: 'NO_SUCH_APP', description: 'アプリが存在しません。', }, '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3': { id: '5b5a1503-8bc8-4bd0-8054-dc189e8cdcb3', code: 'NO_SUCH_SESSION', description: 'セッションが存在しません。', }, '8c8a4145-02cc-4cca-8e66-29ba60445a8e': { id: '8c8a4145-02cc-4cca-8e66-29ba60445a8e', code: 'PENDING_SESSION', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/blocking/create.json5 ================================================ { summary: 'ユーザーをブロックします。', description: 'ユーザーをブロックします。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ブロックするユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserDetailedNotMe', $ref: 'misskey://UserDetailedNotMe', }, errors: { '7cc4f851-e2f1-4621-9633-ec9e1d00c01e': { id: '7cc4f851-e2f1-4621-9633-ec9e1d00c01e', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, '88b19138-f28d-42c0-8499-6a31bbd0fdc6': { id: '88b19138-f28d-42c0-8499-6a31bbd0fdc6', code: 'BLOCKEE_IS_YOURSELF', description: '自分をブロックしようとしました。', }, '787fed64-acb9-464a-82eb-afbd745b9614': { id: '787fed64-acb9-464a-82eb-afbd745b9614', code: 'ALREADY_BLOCKING', description: 'すでにブロックしています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/blocking/delete.json5 ================================================ { summary: 'ユーザーのブロックを解除します。', description: 'ユーザーのブロックを解除します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ブロックを解除するユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserDetailedNotMe', $ref: 'misskey://UserDetailedNotMe', }, errors: { '8621d8bf-c358-4303-a066-5ea78610eb3f': { id: '8621d8bf-c358-4303-a066-5ea78610eb3f', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, '06f6fac6-524b-473c-a354-e97a40ae6eac': { id: '06f6fac6-524b-473c-a354-e97a40ae6eac', code: 'BLOCKEE_IS_YOURSELF', description: '自分のブロックを解除しようとしました。', }, '291b2efa-60c6-45c0-9f6a-045c8f9b02cd': { id: '291b2efa-60c6-45c0-9f6a-045c8f9b02cd', code: 'NOT_BLOCKING', description: 'ブロックしていないユーザーです。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/blocking/list.json5 ================================================ { summary: 'ブロックの一覧を取得します。', description: 'ログイン中のユーザが設定しているブロックの一覧を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 30, description: '取得するブロックの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいブロックを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいブロックを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, description: 'ブロックの一覧。', items: { type: 'object', optional: false, nullable: false, ref: 'Blocking', $ref: 'misskey://Blocking', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/create.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 128, }, description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048, }, bannerId: { type: 'string', format: 'misskey:id', nullable: true, }, }, required: [ 'name', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Channel', $ref: 'misskey://Channel', }, errors: { 'cd1e9f3e-5a12-4ab4-96f6-5d0a2cc32050': { id: 'cd1e9f3e-5a12-4ab4-96f6-5d0a2cc32050', code: 'NO_SUCH_FILE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/featured.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Channel', $ref: 'misskey://Channel', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/follow.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: true, req: { type: 'object', properties: { channelId: { type: 'string', format: 'misskey:id', }, }, required: [ 'channelId', ], }, res: {}, errors: { 'c0031718-d573-4e85-928e-10039f1fbb68': { id: 'c0031718-d573-4e85-928e-10039f1fbb68', code: 'NO_SUCH_CHANNEL', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/followed.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: true, req: { type: 'object', properties: { sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 5, }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Channel', $ref: 'misskey://Channel', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/owned.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: true, req: { type: 'object', properties: { sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 5, }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Channel', $ref: 'misskey://Channel', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/show.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: false, req: { type: 'object', properties: { channelId: { type: 'string', format: 'misskey:id', }, }, required: [ 'channelId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Channel', $ref: 'misskey://Channel', }, errors: { '6f6c314b-7486-4897-8966-c04a66a02923': { id: '6f6c314b-7486-4897-8966-c04a66a02923', code: 'NO_SUCH_CHANNEL', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/timeline.json5 ================================================ { summary: '', description: '', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { channelId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, sinceDate: { type: 'integer', }, untilDate: { type: 'integer', }, }, required: [ 'channelId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f': { id: '4d0eeeba-a02c-4c3c-9966-ef60d38d2e7f', code: 'NO_SUCH_CHANNEL', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/unfollow.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: true, req: { type: 'object', properties: { channelId: { type: 'string', format: 'misskey:id', }, }, required: [ 'channelId', ], }, res: {}, errors: { '19959ee9-0153-4c51-bbd9-a98c49dc59d6': { id: '19959ee9-0153-4c51-bbd9-a98c49dc59d6', code: 'NO_SUCH_CHANNEL', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/channels/update.json5 ================================================ { summary: '', description: '', tags: [ 'channels', ], requireCredential: true, req: { type: 'object', properties: { channelId: { type: 'string', format: 'misskey:id', }, name: { type: 'string', minLength: 1, maxLength: 128, }, description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048, }, bannerId: { type: 'string', format: 'misskey:id', nullable: true, }, }, required: [ 'channelId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Channel', $ref: 'misskey://Channel', }, errors: { 'f9c5467f-d492-4c3c-9a8d-a70dacc86512': { id: 'f9c5467f-d492-4c3c-9a8d-a70dacc86512', code: 'NO_SUCH_CHANNEL', description: '', }, '1fb7cb09-d46a-4fdf-b8df-057788cce513': { id: '1fb7cb09-d46a-4fdf-b8df-057788cce513', code: 'ACCESS_DENIED', description: '', }, 'e86c14a4-0da2-4032-8df3-e737a04c7f3b': { id: 'e86c14a4-0da2-4032-8df3-e737a04c7f3b', code: 'NO_SUCH_FILE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/active-users.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, }, required: [ 'span', ], }, res: { type: 'object', properties: { readWrite: { type: 'array', items: { type: 'number', }, }, read: { type: 'array', items: { type: 'number', }, }, write: { type: 'array', items: { type: 'number', }, }, registeredWithinWeek: { type: 'array', items: { type: 'number', }, }, registeredWithinMonth: { type: 'array', items: { type: 'number', }, }, registeredWithinYear: { type: 'array', items: { type: 'number', }, }, registeredOutsideWeek: { type: 'array', items: { type: 'number', }, }, registeredOutsideMonth: { type: 'array', items: { type: 'number', }, }, registeredOutsideYear: { type: 'array', items: { type: 'number', }, }, }, required: [ 'readWrite', 'read', 'write', 'registeredWithinWeek', 'registeredWithinMonth', 'registeredWithinYear', 'registeredOutsideWeek', 'registeredOutsideMonth', 'registeredOutsideYear', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/ap-request.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, }, required: [ 'span', ], }, res: { type: 'object', properties: { deliverFailed: { type: 'array', items: { type: 'number', }, }, deliverSucceeded: { type: 'array', items: { type: 'number', }, }, inboxReceived: { type: 'array', items: { type: 'number', }, }, }, required: [ 'deliverFailed', 'deliverSucceeded', 'inboxReceived', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/drive.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, }, required: [ 'span', ], }, res: { type: 'object', properties: { 'local.incCount': { type: 'array', items: { type: 'number', }, }, 'local.incSize': { type: 'array', items: { type: 'number', }, }, 'local.decCount': { type: 'array', items: { type: 'number', }, }, 'local.decSize': { type: 'array', items: { type: 'number', }, }, 'remote.incCount': { type: 'array', items: { type: 'number', }, }, 'remote.incSize': { type: 'array', items: { type: 'number', }, }, 'remote.decCount': { type: 'array', items: { type: 'number', }, }, 'remote.decSize': { type: 'array', items: { type: 'number', }, }, }, required: [ 'local.incCount', 'local.incSize', 'local.decCount', 'local.decSize', 'remote.incCount', 'remote.incSize', 'remote.decCount', 'remote.decSize', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/federation.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, }, required: [ 'span', ], }, res: { type: 'object', properties: { deliveredInstances: { type: 'array', items: { type: 'number', }, }, inboxInstances: { type: 'array', items: { type: 'number', }, }, stalled: { type: 'array', items: { type: 'number', }, }, sub: { type: 'array', items: { type: 'number', }, }, pub: { type: 'array', items: { type: 'number', }, }, pubsub: { type: 'array', items: { type: 'number', }, }, subActive: { type: 'array', items: { type: 'number', }, }, pubActive: { type: 'array', items: { type: 'number', }, }, }, required: [ 'deliveredInstances', 'inboxInstances', 'stalled', 'sub', 'pub', 'pubsub', 'subActive', 'pubActive', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/hashtag.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, tag: { type: 'string', }, }, required: [ 'span', 'tag', ], }, res: { type: 'object', properties: { 'local.users': { type: 'array', items: { type: 'number', }, }, 'remote.users': { type: 'array', items: { type: 'number', }, }, }, required: [ 'local.users', 'remote.users', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/instance.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, host: { type: 'string', }, }, required: [ 'span', 'host', ], }, res: { type: 'object', properties: { 'requests.failed': { type: 'array', items: { type: 'number', }, }, 'requests.succeeded': { type: 'array', items: { type: 'number', }, }, 'requests.received': { type: 'array', items: { type: 'number', }, }, 'notes.total': { type: 'array', items: { type: 'number', }, }, 'notes.inc': { type: 'array', items: { type: 'number', }, }, 'notes.dec': { type: 'array', items: { type: 'number', }, }, 'notes.diffs.normal': { type: 'array', items: { type: 'number', }, }, 'notes.diffs.reply': { type: 'array', items: { type: 'number', }, }, 'notes.diffs.renote': { type: 'array', items: { type: 'number', }, }, 'notes.diffs.withFile': { type: 'array', items: { type: 'number', }, }, 'users.total': { type: 'array', items: { type: 'number', }, }, 'users.inc': { type: 'array', items: { type: 'number', }, }, 'users.dec': { type: 'array', items: { type: 'number', }, }, 'following.total': { type: 'array', items: { type: 'number', }, }, 'following.inc': { type: 'array', items: { type: 'number', }, }, 'following.dec': { type: 'array', items: { type: 'number', }, }, 'followers.total': { type: 'array', items: { type: 'number', }, }, 'followers.inc': { type: 'array', items: { type: 'number', }, }, 'followers.dec': { type: 'array', items: { type: 'number', }, }, 'drive.totalFiles': { type: 'array', items: { type: 'number', }, }, 'drive.incFiles': { type: 'array', items: { type: 'number', }, }, 'drive.decFiles': { type: 'array', items: { type: 'number', }, }, 'drive.incUsage': { type: 'array', items: { type: 'number', }, }, 'drive.decUsage': { type: 'array', items: { type: 'number', }, }, }, required: [ 'requests.failed', 'requests.succeeded', 'requests.received', 'notes.total', 'notes.inc', 'notes.dec', 'notes.diffs.normal', 'notes.diffs.reply', 'notes.diffs.renote', 'notes.diffs.withFile', 'users.total', 'users.inc', 'users.dec', 'following.total', 'following.inc', 'following.dec', 'followers.total', 'followers.inc', 'followers.dec', 'drive.totalFiles', 'drive.incFiles', 'drive.decFiles', 'drive.incUsage', 'drive.decUsage', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/notes.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, }, required: [ 'span', ], }, res: { type: 'object', properties: { 'local.total': { type: 'array', items: { type: 'number', }, }, 'local.inc': { type: 'array', items: { type: 'number', }, }, 'local.dec': { type: 'array', items: { type: 'number', }, }, 'local.diffs.normal': { type: 'array', items: { type: 'number', }, }, 'local.diffs.reply': { type: 'array', items: { type: 'number', }, }, 'local.diffs.renote': { type: 'array', items: { type: 'number', }, }, 'local.diffs.withFile': { type: 'array', items: { type: 'number', }, }, 'remote.total': { type: 'array', items: { type: 'number', }, }, 'remote.inc': { type: 'array', items: { type: 'number', }, }, 'remote.dec': { type: 'array', items: { type: 'number', }, }, 'remote.diffs.normal': { type: 'array', items: { type: 'number', }, }, 'remote.diffs.reply': { type: 'array', items: { type: 'number', }, }, 'remote.diffs.renote': { type: 'array', items: { type: 'number', }, }, 'remote.diffs.withFile': { type: 'array', items: { type: 'number', }, }, }, required: [ 'local.total', 'local.inc', 'local.dec', 'local.diffs.normal', 'local.diffs.reply', 'local.diffs.renote', 'local.diffs.withFile', 'remote.total', 'remote.inc', 'remote.dec', 'remote.diffs.normal', 'remote.diffs.reply', 'remote.diffs.renote', 'remote.diffs.withFile', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/user/drive.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'span', 'userId', ], }, res: { type: 'object', properties: { totalCount: { type: 'array', items: { type: 'number', }, }, totalSize: { type: 'array', items: { type: 'number', }, }, incCount: { type: 'array', items: { type: 'number', }, }, incSize: { type: 'array', items: { type: 'number', }, }, decCount: { type: 'array', items: { type: 'number', }, }, decSize: { type: 'array', items: { type: 'number', }, }, }, required: [ 'totalCount', 'totalSize', 'incCount', 'incSize', 'decCount', 'decSize', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/user/following.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'span', 'userId', ], }, res: { type: 'object', properties: { 'local.followings.total': { type: 'array', items: { type: 'number', }, }, 'local.followings.inc': { type: 'array', items: { type: 'number', }, }, 'local.followings.dec': { type: 'array', items: { type: 'number', }, }, 'local.followers.total': { type: 'array', items: { type: 'number', }, }, 'local.followers.inc': { type: 'array', items: { type: 'number', }, }, 'local.followers.dec': { type: 'array', items: { type: 'number', }, }, 'remote.followings.total': { type: 'array', items: { type: 'number', }, }, 'remote.followings.inc': { type: 'array', items: { type: 'number', }, }, 'remote.followings.dec': { type: 'array', items: { type: 'number', }, }, 'remote.followers.total': { type: 'array', items: { type: 'number', }, }, 'remote.followers.inc': { type: 'array', items: { type: 'number', }, }, 'remote.followers.dec': { type: 'array', items: { type: 'number', }, }, }, required: [ 'local.followings.total', 'local.followings.inc', 'local.followings.dec', 'local.followers.total', 'local.followers.inc', 'local.followers.dec', 'remote.followings.total', 'remote.followings.inc', 'remote.followings.dec', 'remote.followers.total', 'remote.followers.inc', 'remote.followers.dec', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/user/notes.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'span', 'userId', ], }, res: { type: 'object', properties: { total: { type: 'array', items: { type: 'number', }, }, inc: { type: 'array', items: { type: 'number', }, }, dec: { type: 'array', items: { type: 'number', }, }, 'diffs.normal': { type: 'array', items: { type: 'number', }, }, 'diffs.reply': { type: 'array', items: { type: 'number', }, }, 'diffs.renote': { type: 'array', items: { type: 'number', }, }, 'diffs.withFile': { type: 'array', items: { type: 'number', }, }, }, required: [ 'total', 'inc', 'dec', 'diffs.normal', 'diffs.reply', 'diffs.renote', 'diffs.withFile', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/user/reactions.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'span', 'userId', ], }, res: { type: 'object', properties: { 'local.count': { type: 'array', items: { type: 'number', }, }, 'remote.count': { type: 'array', items: { type: 'number', }, }, }, required: [ 'local.count', 'remote.count', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/charts/users.json5 ================================================ { summary: '', description: '', tags: [ 'charts', ], requireCredential: false, req: { type: 'object', properties: { span: { type: 'string', enum: [ 'day', 'hour', ], }, limit: { type: 'integer', minimum: 1, maximum: 500, default: 30, }, offset: { type: 'integer', nullable: true, default: null, }, }, required: [ 'span', ], }, res: { type: 'object', properties: { 'local.total': { type: 'array', items: { type: 'number', }, }, 'local.inc': { type: 'array', items: { type: 'number', }, }, 'local.dec': { type: 'array', items: { type: 'number', }, }, 'remote.total': { type: 'array', items: { type: 'number', }, }, 'remote.inc': { type: 'array', items: { type: 'number', }, }, 'remote.dec': { type: 'array', items: { type: 'number', }, }, }, required: [ 'local.total', 'local.inc', 'local.dec', 'remote.total', 'remote.inc', 'remote.dec', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/add-note.json5 ================================================ { summary: 'ノートをクリップに追加します。', description: 'ノートをクリップに追加します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { clipId: { type: 'string', format: 'misskey:id', description: 'クリップのid。', }, noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'clipId', 'noteId', ], }, res: {}, errors: { 'd6e76cc0-a1b5-4c7c-a287-73fa9c716dcf': { id: 'd6e76cc0-a1b5-4c7c-a287-73fa9c716dcf', code: 'NO_SUCH_CLIP', description: 'クリップが存在しません。', }, 'fc8c0b49-c7a3-4664-a0a6-b418d386bb8b': { id: 'fc8c0b49-c7a3-4664-a0a6-b418d386bb8b', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, '734806c4-542c-463a-9311-15c512803965': { id: '734806c4-542c-463a-9311-15c512803965', code: 'ALREADY_CLIPPED', description: 'すでにクリップに含まれています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/create.json5 ================================================ { summary: 'クリップを作成します。', description: 'クリップを作成します。', tags: [ 'clips', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 100, description: 'クリップの名前。', }, isPublic: { type: 'boolean', default: false, description: 'trueにすると、他のユーザーやログインしていないクライアントにクリップを公開します。' }, description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048, description: 'クリップの説明。', }, }, required: [ 'name', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Clip', $ref: 'misskey://Clip', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/delete.json5 ================================================ { summary: 'クリップを削除します。', description: 'ログイン中のユーザーが作成したクリップを削除します。', tags: [ 'clips', ], requireCredential: true, req: { type: 'object', properties: { clipId: { type: 'string', format: 'misskey:id', description: 'クリップのid。', }, }, required: [ 'clipId', ], }, res: {}, errors: { '70ca08ba-6865-4630-b6fb-8494759aa754': { id: '70ca08ba-6865-4630-b6fb-8494759aa754', code: 'NO_SUCH_CLIP', description: 'クリップが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/list.json5 ================================================ { summary: 'ログイン中のユーザーが作成したクリップの一覧を取得します。', description: 'ログイン中のユーザーが作成したクリップの一覧を取得します。', tags: [ 'clips', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Clip', $ref: 'misskey://Clip', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/notes.json5 ================================================ { summary: 'クリップに含まれるノートを取得します。', description: 'クリップに含まれるノートを取得します。非公開のクリップは、作成したユーザーのみが閲覧できます。', tags: [ 'account', ], requireCredential: false, req: { type: 'object', properties: { clipId: { type: 'string', format: 'misskey:id', description: 'クリップのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値より小さいノートを返します。', }, }, required: [ 'clipId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '1d7645e6-2b6d-4635-b0fe-fe22b0e72e00': { id: '1d7645e6-2b6d-4635-b0fe-fe22b0e72e00', code: 'NO_SUCH_CLIP', description: 'クリップが存在しないか、アクセスが許可されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/remove-note.json5 ================================================ { summary: 'ノートをクリップから削除します。', description: 'ノートをクリップから削除します。ノート自身は削除されません。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { clipId: { type: 'string', format: 'misskey:id', description: 'クリップのid。', }, noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'clipId', 'noteId', ], }, res: {}, errors: { 'b80525c6-97f7-49d7-a42d-ebccd49cfd52': { id: 'b80525c6-97f7-49d7-a42d-ebccd49cfd52', code: 'NO_SUCH_CLIP', description: 'クリップが存在しません。', }, 'aff017de-190e-434b-893e-33a9ff5049d8': { id: 'aff017de-190e-434b-893e-33a9ff5049d8', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/show.json5 ================================================ { summary: 'クリップを取得します。', description: 'クリップを取得します。', tags: [ 'clips', ], requireCredential: false, req: { type: 'object', properties: { clipId: { type: 'string', format: 'misskey:id', description: 'クリップのid。', }, }, required: [ 'clipId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Clip', $ref: 'misskey://Clip', }, errors: { 'c3c5fe33-d62c-44d2-9ea5-d997703f5c20': { id: 'c3c5fe33-d62c-44d2-9ea5-d997703f5c20', code: 'NO_SUCH_CLIP', description: 'クリップが存在しないか、アクセスが許可されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/clips/update.json5 ================================================ { summary: 'クリップの情報を更新します。', description: 'クリップの情報を更新します。', tags: [ 'clips', ], requireCredential: true, req: { type: 'object', properties: { clipId: { type: 'string', format: 'misskey:id', description: 'クリップのid。', }, name: { type: 'string', minLength: 1, maxLength: 100, description: 'クリップの名前。', }, isPublic: { type: 'boolean', description: 'trueにすると、クリップが全体に公開されます。', }, description: { type: 'string', nullable: true, minLength: 1, maxLength: 2048, description: 'クリップの説明。', }, }, required: [ 'clipId', 'name', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Clip', $ref: 'misskey://Clip', }, errors: { 'b4d92d70-b216-46fa-9a3f-a8c811699257': { id: 'b4d92d70-b216-46fa-9a3f-a8c811699257', code: 'NO_SUCH_CLIP', description: 'クリップが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/attached-notes.json5 ================================================ { summary: 'ファイルが添付されているノートを取得します。', description: 'ログイン中のユーザのドライブにあるファイルが添付されているノートを取得します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { fileId: { type: 'string', format: 'misskey:id', description: 'ファイルのid。', }, }, required: [ 'fileId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { 'c118ece3-2e4b-4296-99d1-51756e32d232': { id: 'c118ece3-2e4b-4296-99d1-51756e32d232', code: 'NO_SUCH_FILE', description: 'ファイルが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/check-existence.json5 ================================================ { summary: 'ハッシュ値からファイルが存在するか確認します。', description: 'ハッシュ値から、ログイン中のユーザのドライブにファイルが存在するか確認します。ファイルの内容を取得したい場合は、find-by-hashを使用してください。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { md5: { type: 'string', description: 'ファイルのMD5ハッシュ値。', }, }, required: [ 'md5', ], }, res: { type: 'boolean', optional: false, nullable: false, description: 'ファイルが存在すればtrueです。', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/create.json5 ================================================ { summary: 'ファイルをアップロードします。', description: 'ログイン中のユーザのドライブにファイルをアップロードします。', tags: [ 'drive', ], requireCredential: true, req: {}, res: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, errors: { 'f449b209-0c60-4e51-84d5-29486263bfd4': { id: 'f449b209-0c60-4e51-84d5-29486263bfd4', code: 'INVALID_FILE_NAME', description: 'ファイル名が不正です。', }, 'bec5bd69-fba3-43c9-b4fb-2894b66ad5d2': { id: 'bec5bd69-fba3-43c9-b4fb-2894b66ad5d2', code: 'INAPPROPRIATE', description: '不適切なコンテンツを含んでいる可能性があると判定されました。', }, 'd08dbc37-a6a9-463a-8c47-96c32ab5f064': { id: 'd08dbc37-a6a9-463a-8c47-96c32ab5f064', code: 'NO_FREE_SPACE', description: 'ドライブに空き容量がありません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/delete.json5 ================================================ { summary: 'ファイルを削除します。', description: 'ファイルを削除します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { fileId: { type: 'string', format: 'misskey:id', description: 'ファイルのid。', }, }, required: [ 'fileId', ], }, res: {}, errors: { '908939ec-e52b-4458-b395-1025195cea58': { id: '908939ec-e52b-4458-b395-1025195cea58', code: 'NO_SUCH_FILE', description: 'ファイルが存在しません。', }, '5eb8d909-2540-4970-90b8-dd6f86088121': { id: '5eb8d909-2540-4970-90b8-dd6f86088121', code: 'ACCESS_DENIED', description: 'ファイルを削除する権限がありません。ファイルの削除は、ファイルを所有するユーザーか、サーバーの管理者あるいはモデレーターのみが行えます。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/find-by-hash.json5 ================================================ { summary: '与えられたハッシュ値を持つファイルの一覧を取得します。', description: '与えられたハッシュ値を持つファイルの一覧をログイン中のユーザのドライブから取得します。ファイルが存在するかどうかだけを知りたい場合には、 check-existenceを使用してください。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { md5: { type: 'string', description: 'ファイルのMD5ハッシュ値。', }, }, required: [ 'md5', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/find.json5 ================================================ { summary: 'ファイルを検索します。', description: 'ログイン中のユーザーのドライブから、ファイルを検索します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', description: 'ファイルの名前。', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '親フォルダのid。null(デフォルト)であれば、ルート階層にあるファイルを検索します。', }, }, required: [ 'name', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/show.json5 ================================================ { summary: 'ファイルを取得します。', description: 'ファイルを取得します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', anyOf: [ { properties: { fileId: { type: 'string', format: 'misskey:id', description: 'ファイルのid。', }, }, required: [ 'fileId', ], }, { properties: { url: { type: 'string', description: 'ファイルのURL。サムネイルやwebpublicのURLからも元ファイルを取得できます。', }, }, required: [ 'url', ], }, ], }, res: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, errors: { '067bc436-2718-4795-b0fb-ecbe43949e31': { id: '067bc436-2718-4795-b0fb-ecbe43949e31', code: 'NO_SUCH_FILE', description: 'ファイルが存在しません。', }, '25b73c73-68b1-41d0-bad1-381cfdf6579f': { id: '25b73c73-68b1-41d0-bad1-381cfdf6579f', code: 'ACCESS_DENIED', description: 'ファイルを取得する権限がありません。ファイルの取得は、ファイルを所有するユーザーか、サーバーの管理者あるいはモデレーターのみが行えます。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/update.json5 ================================================ { summary: 'ファイルの名前・場所を変更します。', description: 'ファイルの名前・場所を変更します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { fileId: { type: 'string', format: 'misskey:id', description: 'ファイルのid。', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, description: '移動先の親フォルダーのid。nullに設定すると、ファイルをルート階層に移動します。設定しなければ変更されません。', }, name: { type: 'string', description: 'ファイルの新しい名前。', }, isSensitive: { type: 'boolean', description: 'ファイルを閲覧注意に指定する場合はtrue, 外す場合はfalse。', }, comment: { type: 'string', nullable: true, maxLength: 512, description: 'ファイルの新しいキャプション。', }, }, required: [ 'fileId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, errors: { '395e7156-f9f0-475e-af89-53c3c23080c2': { id: '395e7156-f9f0-475e-af89-53c3c23080c2', code: 'INVALID_FILE_NAME', description: 'ファイル名が不正です。', }, 'e7778c7e-3af9-49cd-9690-6dbc3e6c972d': { id: 'e7778c7e-3af9-49cd-9690-6dbc3e6c972d', code: 'NO_SUCH_FILE', description: 'ファイルが存在しません。', }, '01a53b27-82fc-445b-a0c1-b558465a8ed2': { id: '01a53b27-82fc-445b-a0c1-b558465a8ed2', code: 'ACCESS_DENIED', description: 'ファイルを変更する権限がありません。ファイルの変更は、ファイルを所有するユーザーか、サーバーの管理者あるいはモデレーターのみが行えます。', }, 'ea8fb7a5-af77-4a08-b608-c0218176cd73': { id: 'ea8fb7a5-af77-4a08-b608-c0218176cd73', code: 'NO_SUCH_FOLDER', description: 'フォルダーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files/upload-from-url.json5 ================================================ { summary: 'ファイルのURLを指定して、ドライブにアップロードします。', description: 'ファイルのURLを指定して、ログイン中のユーザのドライブにアップロードします。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { url: { type: 'string', description: 'ファイルのコンテンツがあるURL。', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '格納先の親フォルダーのid。', }, isSensitive: { type: 'boolean', default: false, description: 'ファイルが閲覧注意であればtrueに設定します。', }, comment: { type: 'string', nullable: true, maxLength: 512, default: null, description: 'ファイルのキャプション。', }, marker: { type: 'string', nullable: true, default: null, description: 'アップロードを識別するためのマーカー。アップロードが完了すると、ここで指定したマーカーを含むurlUploadFinishedイベントがストリームに流されます。', }, force: { type: 'boolean', default: false, description: 'trueにすると、同じハッシュ値を持つファイルがすでに存在している場合でも、ファイルをアップロードします。', }, }, required: [ 'url', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/files.json5 ================================================ { summary: '指定のフォルダーあるいはルート階層にある、ファイルの一覧を取得します。', description: 'ログイン中のユーザのドライブ以下、指定のフォルダーあるいはルート階層にある、ファイルの一覧を取得します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するファイルの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいファイルを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいファイルを返します。', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '親フォルダーのid。null(デフォルト)であればルート階層にあるファイルを取得します。', }, type: { type: 'string', nullable: true, pattern: '^[a-zA-Z\\/\\-*]+$', description: 'ファイルのMIMEタイプ。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/folders/create.json5 ================================================ { summary: 'フォルダーを作成します。', description: 'ログイン中のユーザのドライブにフォルダーを作成します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', default: 'Untitled', maxLength: 200, description: 'フォルダーの名前。', }, parentId: { type: 'string', format: 'misskey:id', nullable: true, description: '親フォルダーのid。null(デフォルト)であればルート階層にフォルダが作成されます。', }, }, required: [], }, res: { type: 'object', optional: false, nullable: false, ref: 'DriveFolder', $ref: 'misskey://DriveFolder', }, errors: { '53326628-a00d-40a6-a3cd-8975105c0f95': { id: '53326628-a00d-40a6-a3cd-8975105c0f95', code: 'NO_SUCH_FOLDER', description: 'フォルダーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/folders/delete.json5 ================================================ { summary: 'フォルダーを削除します。', description: 'ログイン中のユーザのドライブにあるフォルダーを削除します。中身が空のフォルダーだけが削除できます。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { folderId: { type: 'string', format: 'misskey:id', description: 'フォルダーのid。', }, }, required: [ 'folderId', ], }, res: {}, errors: { '1069098f-c281-440f-b085-f9932edbe091': { id: '1069098f-c281-440f-b085-f9932edbe091', code: 'NO_SUCH_FOLDER', description: 'フォルダーが存在しません。', }, 'b0fc8a17-963c-405d-bfbc-859a487295e1': { id: 'b0fc8a17-963c-405d-bfbc-859a487295e1', code: 'HAS_CHILD_FILES_OR_FOLDERS', description: 'フォルダーが空ではありません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/folders/find.json5 ================================================ { summary: 'フォルダーを検索します。', description: 'ログイン中のユーザのドライブにあるフォルダーを検索します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', description: 'フォルダーの名前。', }, parentId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '親フォルダーのid。null(デフォルト)であればルート階層を検索します。', }, }, required: [ 'name', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFolder', $ref: 'misskey://DriveFolder', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/folders/show.json5 ================================================ { summary: 'フォルダーを取得します。', description: 'ログイン中のユーザのドライブにあるフォルダーを取得します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { folderId: { type: 'string', format: 'misskey:id', description: 'フォルダーのid。', }, }, required: [ 'folderId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'DriveFolder', $ref: 'misskey://DriveFolder', }, errors: { 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9': { id: 'd74ab9eb-bb09-4bba-bf24-fb58f761e1e9', code: 'NO_SUCH_FOLDER', description: 'フォルダーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/folders/update.json5 ================================================ { summary: 'フォルダーの名前・場所を変更します。', description: 'ログイン中のユーザのドライブにあるフォルダーの名前・場所を変更します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { folderId: { type: 'string', format: 'misskey:id', description: 'フォルダーのid。', }, name: { type: 'string', maxLength: 200, description: 'フォルダーの新しい名前。', }, parentId: { type: 'string', format: 'misskey:id', nullable: true, description: '移動先の親フォルダーのid。', }, }, required: [ 'folderId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'DriveFolder', $ref: 'misskey://DriveFolder', }, errors: { 'f7974dac-2c0d-4a27-926e-23583b28e98e': { id: 'f7974dac-2c0d-4a27-926e-23583b28e98e', code: 'NO_SUCH_FOLDER', description: 'フォルダーが存在しません。', }, 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1': { id: 'ce104e3a-faaf-49d5-b459-10ff0cbbcaa1', code: 'NO_SUCH_PARENT_FOLDER', description: '親フォルダーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/folders.json5 ================================================ { summary: '指定のフォルダーあるいはルート階層にある、フォルダーの一覧を取得します。', description: 'ログイン中のユーザのドライブ以下、指定のフォルダーあるいはルート階層にある、フォルダーの一覧を取得します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するフォルダーの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいフォルダーを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいフォルダーを返します。', }, folderId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '親フォルダのid。null(デフォルト)であればルート階層にあるフォルダーを取得します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFolder', $ref: 'misskey://DriveFolder', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive/stream.json5 ================================================ { summary: 'ファイルの一覧を、フォルダを横断して取得します。', description: 'ログイン中のユーザーのドライブにあるファイルの一覧を、フォルダを横断して取得します。', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいファイルを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいファイルを返します。', }, type: { type: 'string', pattern: '^[a-zA-Z\\/\\-*]+$', description: 'ファイルのMIMEタイプ。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'DriveFile', $ref: 'misskey://DriveFile', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/drive.json5 ================================================ { summary: '', description: '', tags: [ 'drive', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { capacity: { type: 'number', optional: false, nullable: false, }, usage: { type: 'number', optional: false, nullable: false, }, }, required: [ 'capacity', 'usage', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/email-address/available.json5 ================================================ { summary: 'メールアドレスが利用可能か確認します。', description: 'メールアドレスが利用可能か確認します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { emailAddress: { type: 'string', description: 'メールアドレス。' }, }, required: [ 'emailAddress', ], }, res: { type: 'object', optional: false, nullable: false, properties: { available: { type: 'boolean', optional: false, nullable: false, description: 'メールアドレスが利用可能であればtrueです。', }, reason: { type: 'string', optional: false, nullable: true, description: '利用可能でない場合の理由。以下のいずれかの値が入ります。used: 同じメールアドレスを使っている他のユーザーがすでに存在します。format: フォーマットが不正です。disposable: 使い捨てメールアドレスです。mx: DNSのMXレコードが存在しません。利用可能であればnullが返されます。', }, }, required: [ 'available', 'reason', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/endpoint.json5 ================================================ { summary: '', description: '', tags: [ 'meta', ], requireCredential: false, req: { type: 'object', properties: { endpoint: { type: 'string', }, }, required: [ 'endpoint', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/endpoints.json5 ================================================ { summary: '', description: '', tags: [ 'meta', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, }, example: [ 'admin/abuse-user-reports', 'admin/accounts/create', 'admin/announcements/create', '...', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/followers.json5 ================================================ { summary: 'ローカルユーザーからサーバーに所属するユーザーへのフォローを取得します。', description: 'ローカルユーザーからサーバーに所属するユーザーへのフォローを取得します。', tags: [ 'federation', ], requireCredential: false, req: { type: 'object', properties: { host: { type: 'string', description: 'ホスト名。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいフォローを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいフォローを返します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するフォローの最大数。', }, }, required: [ 'host', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Following', $ref: 'misskey://Following', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/following.json5 ================================================ { summary: 'サーバーからローカルユーザーへのフォローを取得します。', description: 'サーバーからローカルユーザーへのフォローを取得します。', tags: [ 'federation', ], requireCredential: false, req: { type: 'object', properties: { host: { type: 'string', description: 'サーバーのホスト名。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいフォローを返します。' }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいフォローを返します。' }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するフォローの最大数。', }, }, required: [ 'host', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Following', $ref: 'misskey://Following', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/instances.json5 ================================================ { summary: '認識している他のサーバーの一覧を取得します。', description: '認識している他のサーバーの一覧を取得します。各パラメータを指定しない場合、そのパラメータでの絞り込みは行われません。複数のパラメータを指定すると、それらの条件をすべて満たすサーバーを検索します。', tags: [ 'federation', ], requireCredential: false, req: { type: 'object', properties: { host: { type: 'string', nullable: true, description: 'サーバーのホスト名(ドメインやIPアドレス)か、その一部。ホスト名は部分一致で検索されます。', }, blocked: { type: 'boolean', nullable: true, description: 'trueにすると、ブロックしているサーバーのみを検索します。falseにすると、ブロックしていないサーバーのみを検索します。', }, notResponding: { type: 'boolean', nullable: true, description: 'trueにすると、応答のないサーバーのみを検索します。falseにすると、応答のあるサーバーのみを検索します。', }, suspended: { type: 'boolean', nullable: true, description: 'trueにすると、ローカルからの配信を停止しているサーバーのみを検索します。falseにすると、配信を停止していないサーバーのみを検索します。', }, federating: { type: 'boolean', nullable: true, description: 'trueにすると、ローカルのユーザーをフォローしているユーザーか、ローカルのユーザーにフォローされているユーザーが所属するサーバーのみを検索します。falseにすると、そのようなユーザーがいないサーバーのみを検索します。', }, subscribing: { type: 'boolean', nullable: true, description: 'trueにすると、ローカルユーザーからフォローされているユーザーが所属するサーバーのみを検索します。falseにすると、そのようなユーザーがいないサーバーのみを検索します。', }, publishing: { type: 'boolean', nullable: true, description: 'trueにすると、ローカルユーザーをフォローしているユーザーが所属するサーバーのみを検索します。falseにすると、そのようなユーザーがいないサーバーのみを検索します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 30, description: '取得するサーバーの最大数。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭offset個をスキップします。', }, sort: { type: 'string', description: 'ソート順。+は降順(日時であれば新しい順)を、-は昇順(古い順)を示します。notesは投稿数です。usersはユーザー数です。followingはローカルユーザーへのフォローの数です。followersはローカルユーザーからのフォローの数です。pubSubはまずfollowingでソートを行い、同じフォロー数で並んだ場合、それらのサーバーはfollowersでさらにソートします。caughtAtはサーバーの発見時刻、lastCommunicatedAtは最後に通信を行った時刻です。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'FederationInstance', $ref: 'misskey://FederationInstance', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/show-instance.json5 ================================================ { summary: 'サーバーの詳細を取得します。', description: 'サーバーの詳細を取得します。', tags: [ 'federation', ], requireCredential: false, req: { type: 'object', properties: { host: { type: 'string', description: 'サーバーのホスト名。', }, }, required: [ 'host', ], }, res: { oneOf: [ { type: 'object', ref: 'FederationInstance', $ref: 'misskey://FederationInstance', }, { type: 'null', }, ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/stats.json5 ================================================ { summary: 'サーバー・連合の統計を取得します。', description: 'サーバー・連合の統計を取得します。', tags: [ 'federation', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '詳細を取得するサーバーの最大数。', }, }, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/update-remote-user.json5 ================================================ { summary: 'リモートユーザーの情報を更新します。', description: 'リモートユーザーの情報を更新します。', tags: [ 'federation', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'リモートユーザーのid。', }, }, required: [ 'userId', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/federation/users.json5 ================================================ { summary: 'サーバーに所属するユーザーの一覧を取得します。', description: 'サーバーに所属するユーザーの一覧を取得します。', tags: [ 'federation', ], requireCredential: false, req: { type: 'object', properties: { host: { type: 'string', description: 'ユーザーが所属するホスト名。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいユーザーを返します。' }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいユーザーを返します。' }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するユーザーの最大数。', }, }, required: [ 'host', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'UserDetailedNotMe', $ref: 'misskey://UserDetailedNotMe', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/fetch-rss.json5 ================================================ { summary: '', description: '', tags: [ 'meta', ], requireCredential: false, req: { type: 'object', properties: { url: { type: 'string', }, }, required: [ 'url', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/create.json5 ================================================ { summary: 'ユーザーをフォローします。', description: 'ユーザーをフォローします。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'フォローするユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserLite', $ref: 'misskey://UserLite', }, errors: { 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5': { id: 'fcd2eef9-a9b2-4c4f-8624-038099e90aa5', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, '26fbe7bb-a331-4857-af17-205b426669a9': { id: '26fbe7bb-a331-4857-af17-205b426669a9', code: 'FOLLOWEE_IS_YOURSELF', description: '自分をフォローしようとしました。。', }, '35387507-38c7-4cb9-9197-300b93783fa0': { id: '35387507-38c7-4cb9-9197-300b93783fa0', code: 'ALREADY_FOLLOWING', description: 'すでにフォローしています。', }, '4e2206ec-aa4f-4960-b865-6c23ac38e2d9': { id: '4e2206ec-aa4f-4960-b865-6c23ac38e2d9', code: 'BLOCKING', description: 'ユーザーをブロックしています。', }, 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0': { id: 'c4ab57cc-4e41-45e9-bfd9-584f61e35ce0', code: 'BLOCKED', description: 'ユーザーにブロックされています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/delete.json5 ================================================ { summary: 'ユーザーのフォローを解除します。', description: 'ユーザーのフォローを解除します。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'フォローを解除するユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserLite', $ref: 'misskey://UserLite', }, errors: { '5b12c78d-2b28-4dca-99d2-f56139b42ff8': { id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, 'd9e400b9-36b0-4808-b1d8-79e707f1296c': { id: 'd9e400b9-36b0-4808-b1d8-79e707f1296c', code: 'FOLLOWEE_IS_YOURSELF', description: '自分のフォローを解除しようとしました。', }, '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09': { id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09', code: 'NOT_FOLLOWING', description: 'フォローしていないユーザーです。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/invalidate.json5 ================================================ { summary: '他のユーザーからのフォローを無効にします(フォロワーを解除します)。', description: '他のユーザーから、ログイン中のユーザーへのフォローを無効にします(フォロワーを解除します)。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: '自身をフォローしているユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserLite', $ref: 'misskey://UserLite', }, errors: { '5b12c78d-2b28-4dca-99d2-f56139b42ff8': { id: '5b12c78d-2b28-4dca-99d2-f56139b42ff8', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, '07dc03b9-03da-422d-885b-438313707662': { id: '07dc03b9-03da-422d-885b-438313707662', code: 'FOLLOWER_IS_YOURSELF', description: '自分をフォロワー解除しようとしました。', }, '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09': { id: '5dbf82f5-c92b-40b1-87d1-6c8c0741fd09', code: 'NOT_FOLLOWING', description: 'ユーザーにフォローされていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/requests/accept.json5 ================================================ { summary: 'フォローを許可します。', description: 'フォローリクエストを送ったユーザーからのフォローを許可します。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'フォローを許可するユーザーのid。', }, }, required: [ 'userId', ], }, res: {}, errors: { '66ce1645-d66c-46bb-8b79-96739af885bd': { id: '66ce1645-d66c-46bb-8b79-96739af885bd', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, 'bcde4f8b-0913-4614-8881-614e522fb041': { id: 'bcde4f8b-0913-4614-8881-614e522fb041', code: 'NO_FOLLOW_REQUEST', description: 'ユーザーからのフォローリクエストがありません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/requests/cancel.json5 ================================================ { summary: '送ったフォローリクエストを取り消します。', description: 'ログイン中のユーザーが他のユーザーに送ったフォローリクエストを取り消します。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'フォローリクエストを送った相手ユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserLite', $ref: 'misskey://UserLite', }, errors: { '4e68c551-fc4c-4e46-bb41-7d4a37bf9dab': { id: '4e68c551-fc4c-4e46-bb41-7d4a37bf9dab', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, '089b125b-d338-482a-9a09-e2622ac9f8d4': { id: '089b125b-d338-482a-9a09-e2622ac9f8d4', code: 'FOLLOW_REQUEST_NOT_FOUND', description: 'フォローリクエストがありません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/requests/list.json5 ================================================ { summary: 'フォローリクエストの一覧を取得します。', description: 'ログイン中のユーザーに届いたフォローリクエストの一覧を取得します。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, follower: { type: 'object', optional: false, nullable: false, ref: 'UserLite', $ref: 'misskey://UserLite', }, followee: { type: 'object', optional: false, nullable: false, ref: 'UserLite', $ref: 'misskey://UserLite', }, }, required: [ 'id', 'follower', 'followee', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/following/requests/reject.json5 ================================================ { summary: 'フォローを拒否します。', description: 'フォローリクエストを送ったユーザーからのフォローを拒否します。', tags: [ 'following', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'フォローを拒否するユーザーのid。', }, }, required: [ 'userId', ], }, res: {}, errors: { 'abc2ffa6-25b2-4380-ba99-321ff3a94555': { id: 'abc2ffa6-25b2-4380-ba99-321ff3a94555', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/featured.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/popular.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts/create.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: true, req: { type: 'object', properties: { title: { type: 'string', minLength: 1, }, description: { type: 'string', nullable: true, }, fileIds: { type: 'array', uniqueItems: true, minItems: 1, maxItems: 32, items: { type: 'string', format: 'misskey:id', }, }, isSensitive: { type: 'boolean', default: false, }, }, required: [ 'title', 'fileIds', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts/delete.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: true, req: { type: 'object', properties: { postId: { type: 'string', format: 'misskey:id', }, }, required: [ 'postId', ], }, res: {}, errors: { 'ae52f367-4bd7-4ecd-afc6-5672fff427f5': { id: 'ae52f367-4bd7-4ecd-afc6-5672fff427f5', code: 'NO_SUCH_POST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts/like.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: true, req: { type: 'object', properties: { postId: { type: 'string', format: 'misskey:id', }, }, required: [ 'postId', ], }, res: {}, errors: { '56c06af3-1287-442f-9701-c93f7c4a62ff': { id: '56c06af3-1287-442f-9701-c93f7c4a62ff', code: 'NO_SUCH_POST', description: '', }, 'f78f1511-5ebc-4478-a888-1198d752da68': { id: 'f78f1511-5ebc-4478-a888-1198d752da68', code: 'YOUR_POST', description: '', }, '40e9ed56-a59c-473a-bf3f-f289c54fb5a7': { id: '40e9ed56-a59c-473a-bf3f-f289c54fb5a7', code: 'ALREADY_LIKED', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts/show.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: false, req: { type: 'object', properties: { postId: { type: 'string', format: 'misskey:id', }, }, required: [ 'postId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, errors: { '1137bf14-c5b0-4604-85bb-5b5371b1cd45': { id: '1137bf14-c5b0-4604-85bb-5b5371b1cd45', code: 'NO_SUCH_POST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts/unlike.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: true, req: { type: 'object', properties: { postId: { type: 'string', format: 'misskey:id', }, }, required: [ 'postId', ], }, res: {}, errors: { 'c32e6dd0-b555-4413-925e-b3757d19ed84': { id: 'c32e6dd0-b555-4413-925e-b3757d19ed84', code: 'NO_SUCH_POST', description: '', }, 'e3e8e06e-be37-41f7-a5b4-87a8250288f0': { id: 'e3e8e06e-be37-41f7-a5b4-87a8250288f0', code: 'NOT_LIKED', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts/update.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: true, req: { type: 'object', properties: { postId: { type: 'string', format: 'misskey:id', }, title: { type: 'string', minLength: 1, }, description: { type: 'string', nullable: true, }, fileIds: { type: 'array', uniqueItems: true, minItems: 1, maxItems: 32, items: { type: 'string', format: 'misskey:id', }, }, isSensitive: { type: 'boolean', default: false, }, }, required: [ 'postId', 'title', 'fileIds', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/gallery/posts.json5 ================================================ { summary: '', description: '', tags: [ 'gallery', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/get-online-users-count.json5 ================================================ { summary: 'オンラインになっているユーザ数を取得します。', description: 'オンラインになっているユーザ数を取得します。', tags: [ 'meta', ], requireCredential: false, req: {}, res: { type: 'object', optional: false, nullable: false, properties: { count: { type: 'number', optional: false, nullable: false, description: '現在オンライン(10分以内に何らかのアクションをとった)であるユーザ数です。', }, }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/hashtags/list.json5 ================================================ { summary: 'ハッシュタグの一覧を取得します。', description: 'ハッシュタグの一覧を取得します。', tags: [ 'hashtags', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するハッシュタグの最大数。', }, attachedToUserOnly: { type: 'boolean', default: false, description: 'ユーザーが使ったハッシュタグのみを取得します。', }, attachedToLocalUserOnly: { type: 'boolean', default: false, description: 'ローカルユーザーが使ったハッシュタグのみを取得します。', }, attachedToRemoteUserOnly: { type: 'boolean', default: false, description: 'リモートユーザーが使ったハッシュタグのみを取得します。', }, sort: { type: 'string', enum: [ '+mentionedUsers', '-mentionedUsers', '+mentionedLocalUsers', '-mentionedLocalUsers', '+mentionedRemoteUsers', '-mentionedRemoteUsers', '+attachedUsers', '-attachedUsers', '+attachedLocalUsers', '-attachedLocalUsers', '+attachedRemoteUsers', '-attachedRemoteUsers', ], description: 'ソート順。+ は降順、- は昇順を示します。' }, }, required: [ 'sort', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Hashtag', $ref: 'misskey://Hashtag', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/hashtags/search.json5 ================================================ { summary: 'ハッシュタグを検索します。', description: 'ハッシュタグを検索します。', tags: [ 'hashtags', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するハッシュタグの最大数。', }, query: { type: 'string', description: '検索に用いる文字列。先頭一致で検索されます。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭 offset 個をスキップします。', }, }, required: [ 'query', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, description: '検索結果。使用数の降順でソートされます。' }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/hashtags/show.json5 ================================================ { summary: 'ハッシュタグの詳細を取得します。', description: 'ハッシュタグの詳細を取得します。', tags: [ 'hashtags', ], requireCredential: false, req: { type: 'object', properties: { tag: { type: 'string', description: '検索対象のハッシュタグ。', }, }, required: [ 'tag', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Hashtag', $ref: 'misskey://Hashtag', }, errors: { '110ee688-193e-4a3a-9ecf-c167b2e6981e': { id: '110ee688-193e-4a3a-9ecf-c167b2e6981e', code: 'NO_SUCH_HASHTAG', description: 'ハッシュタグが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/hashtags/trend.json5 ================================================ { summary: 'トレンドにあるハッシュタグを取得します。', description: 'トレンドにあるハッシュタグを取得します。', tags: [ 'hashtags', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { tag: { type: 'string', optional: false, nullable: false, description: 'トレンドにあるハッシュタグ。1分ごとに更新されます。', }, chart: { type: 'array', optional: false, nullable: false, description: '最近の投稿でハッシュタグを使用したユーザー数。10分単位で集計され、新しい順に並べられます。つまり、先頭の要素は、レスポンス時から過去10分間でのユーザー数になります。1分ごとに更新されます。', items: { type: 'number', optional: false, nullable: false, }, }, usersCount: { type: 'number', optional: false, nullable: false, description: 'ハッシュタグを過去1時間に使用したユーザー数。1時間ごとに更新されます。', }, }, required: [ 'tag', 'chart', 'usersCount', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/hashtags/users.json5 ================================================ { summary: '', description: '', tags: [ 'hashtags', ], requireCredential: false, req: { type: 'object', properties: { tag: { type: 'string', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するユーザーの最大数。' }, sort: { type: 'string', enum: [ '+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt', ], description: 'ソート順。+は降順を、-は昇順を示します。followerはユーザーのフォロワー数です。createdAt, updatedAtはそれぞれユーザーが登録した時刻、最後にアクティブだった時刻です。', }, state: { type: 'string', enum: [ 'all', 'alive', ], default: 'all', description: 'aliveにすると、5日間以内にアクティブであったユーザーのみを取得します。', }, origin: { type: 'string', enum: [ 'combined', 'local', 'remote', ], default: 'local', description: 'ユーザーの所属サーバーの区分。local(デフォルト), remoteにすると、それぞれローカル・リモートユーザーのみを取得します。combinedにすると、すべてのユーザーを対象にします。', }, }, required: [ 'tag', 'sort', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/favorites.json5 ================================================ { summary: 'ノートのお気に入り情報一覧を取得します。', description: 'ノートのお気に入り情報一覧を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するお気に入り情報の最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいお気に入り情報を返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいお気に入り情報を返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'NoteFavorite', $ref: 'misskey://NoteFavorite', }, description: 'お気に入り情報一覧。', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/gallery/likes.json5 ================================================ { summary: 'ギャラリーの投稿につけたいいねを取得します。', description: 'ログイン中のユーザーがギャラリーの投稿につけたいいねを取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するいいねの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいいいねを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいいいねを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, post: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, }, required: [ 'id', 'post', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/gallery/posts.json5 ================================================ { summary: 'ギャラリーへの投稿を取得します。', description: 'ログイン中のユーザーによるギャラリーへの投稿を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得する投稿の最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きい投稿を返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さい投稿を返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/get-word-muted-notes-count.json5 ================================================ { summary: 'ワードミュートされたノートの数を取得します。', description: 'ログイン中のユーザーの設定によりワードミュートされたノートの数を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { count: { type: 'number', optional: false, nullable: false, description: 'ワードミュートされたノートの数。', }, }, required: [ 'count', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/notifications.json5 ================================================ { summary: '通知一覧を取得します。', description: '通知一覧を取得します。通知の種類をフィルタリングして取得することも可能です。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得する通知の最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きい通知を返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さい通知を返します。', }, following: { type: 'boolean', default: false, description: 'trueにすると、フォローしているユーザからの通知を返します。', }, unreadOnly: { type: 'boolean', default: false, description: 'trueにすると、未読の通知を返します。', }, markAsRead: { type: 'boolean', default: true, description: 'trueにすると、取得した通知を既読にします。', }, includeTypes: { type: 'array', items: { type: 'string', enum: [ 'follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app', ], }, description: 'レスポンスに含める通知の種類。値を指定しない場合や空の配列を与えた場合は、すべての種類の通知を返します。', }, excludeTypes: { type: 'array', items: { type: 'string', enum: [ 'follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app', ], description: 'レスポンスから除外する通知の種類。値を指定しない場合や空の配列を与えた場合は、すべての種類の通知を返します。includeTypesとexcludeTypesを両方指定した場合、excludeTypesは無視されます。', }, }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Notification', $ref: 'misskey://Notification', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/page-likes.json5 ================================================ { summary: 'ページへのいいねの一覧を取得します。', description: 'ログイン中のユーザーがつけたページへのいいねの一覧を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するいいねの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいいいねを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいいいねを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, page: { type: 'object', optional: false, nullable: false, ref: 'Page', $ref: 'misskey://Page', }, }, required: [ 'id', 'page', ], }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/pages.json5 ================================================ { summary: 'ページの一覧を取得します。', description: 'ログイン中のユーザーが作成したページの一覧を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するページの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きい通知を返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さい通知を返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Page', $ref: 'misskey://Page', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/pin.json5 ================================================ { summary: '指定したノートをピン留めに登録します。', description: '指定したノートをピン留めに登録します。ピン留めされたノートはプロフィール情報に含まれ、Misskey Webではユーザーのプロフィールページで表示されます。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ピン留めに登録するノートのid。', }, }, required: [ 'noteId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'MeDetailed', $ref: 'misskey://MeDetailed', }, errors: { '56734f8b-3928-431e-bf80-6ff87df40cb3': { id: '56734f8b-3928-431e-bf80-6ff87df40cb3', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, '72dab508-c64d-498f-8740-a8eec1ba385a': { id: '72dab508-c64d-498f-8740-a8eec1ba385a', code: 'PIN_LIMIT_EXCEEDED', description: 'これ以上ピン留めできません。', }, '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913': { id: '8b18c2b7-68fe-4edb-9892-c0cbaeb6c913', code: 'ALREADY_PINNED', description: '指定されたノートは既にピン留めされています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/read-all-messaging-messages.json5 ================================================ { summary: '', description: '', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/read-all-unread-notes.json5 ================================================ { summary: '', description: '', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/read-announcement.json5 ================================================ { summary: 'お知らせを既読にします。', description: 'お知らせを既読にします。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { announcementId: { type: 'string', format: 'misskey:id', description: '既読にするお知らせのid。', }, }, required: [ 'announcementId', ], }, res: {}, errors: { '184663db-df88-4bc2-8b52-fb85f0681939': { id: '184663db-df88-4bc2-8b52-fb85f0681939', code: 'NO_SUCH_ANNOUNCEMENT', description: 'お知らせが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/unpin.json5 ================================================ { summary: '指定したノートをピン留めから解除します。', description: '指定したノートをピン留めから解除します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ピン留めから解除するノートのid。', }, }, required: [ 'noteId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'MeDetailed', $ref: 'misskey://MeDetailed', }, errors: { '454170ce-9d63-4a43-9da1-ea10afe81e21': { id: '454170ce-9d63-4a43-9da1-ea10afe81e21', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/update.json5 ================================================ { summary: 'プロフィール・設定を更新します。', description: 'ログイン中のユーザーのプロフィール・設定を更新します。パラメータの値を設定しなければ、その項目は変更されません。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 50, nullable: true, description: 'ユーザーの名前。', }, description: { type: 'string', minLength: 1, maxLength: 500, nullable: true, description: 'ユーザーの自己紹介。', }, location: { type: 'string', minLength: 1, maxLength: 50, nullable: true, description: 'ユーザーの場所。', }, birthday: { type: 'string', pattern: '^([0-9]{4})-([0-9]{2})-([0-9]{2})$', nullable: true, description: 'ユーザーの誕生日。YYYY-MM-DDの形式で指定します(例:2001年9月13日→2001-09-13)。', }, lang: { type: 'string', enum: [ null, 'ach', 'ady', 'af', 'af-NA', 'af-ZA', 'ak', 'ar', 'ar-AR', 'ar-MA', 'ar-SA', 'ay-BO', 'az', 'az-AZ', 'be-BY', 'bg', 'bg-BG', 'bn', 'bn-IN', 'bn-BD', 'br', 'bs-BA', 'ca', 'ca-ES', 'cak', 'ck-US', 'cs', 'cs-CZ', 'cy', 'cy-GB', 'da', 'da-DK', 'de', 'de-AT', 'de-DE', 'de-CH', 'dsb', 'el', 'el-GR', 'en', 'en-GB', 'en-AU', 'en-CA', 'en-IE', 'en-IN', 'en-PI', 'en-SG', 'en-UD', 'en-US', 'en-ZA', 'en@pirate', 'eo', 'eo-EO', 'es', 'es-AR', 'es-419', 'es-CL', 'es-CO', 'es-EC', 'es-ES', 'es-LA', 'es-NI', 'es-MX', 'es-US', 'es-VE', 'et', 'et-EE', 'eu', 'eu-ES', 'fa', 'fa-IR', 'fb-LT', 'ff', 'fi', 'fi-FI', 'fo', 'fo-FO', 'fr', 'fr-CA', 'fr-FR', 'fr-BE', 'fr-CH', 'fy-NL', 'ga', 'ga-IE', 'gd', 'gl', 'gl-ES', 'gn-PY', 'gu-IN', 'gv', 'gx-GR', 'he', 'he-IL', 'hi', 'hi-IN', 'hr', 'hr-HR', 'hsb', 'ht', 'hu', 'hu-HU', 'hy', 'hy-AM', 'id', 'id-ID', 'is', 'is-IS', 'it', 'it-IT', 'ja', 'ja-JP', 'jv-ID', 'ka-GE', 'kk-KZ', 'km', 'kl', 'km-KH', 'kab', 'kn', 'kn-IN', 'ko', 'ko-KR', 'ku-TR', 'kw', 'la', 'la-VA', 'lb', 'li-NL', 'lt', 'lt-LT', 'lv', 'lv-LV', 'mai', 'mg-MG', 'mk', 'mk-MK', 'ml', 'ml-IN', 'mn-MN', 'mr', 'mr-IN', 'ms', 'ms-MY', 'mt', 'mt-MT', 'my', 'no', 'nb', 'nb-NO', 'ne', 'ne-NP', 'nl', 'nl-BE', 'nl-NL', 'nn-NO', 'oc', 'or-IN', 'pa', 'pa-IN', 'pl', 'pl-PL', 'ps-AF', 'pt', 'pt-BR', 'pt-PT', 'qu-PE', 'rm-CH', 'ro', 'ro-RO', 'ru', 'ru-RU', 'sa-IN', 'se-NO', 'sh', 'si-LK', 'sk', 'sk-SK', 'sl', 'sl-SI', 'so-SO', 'sq', 'sq-AL', 'sr', 'sr-RS', 'su', 'sv', 'sv-SE', 'sw', 'sw-KE', 'ta', 'ta-IN', 'te', 'te-IN', 'tg', 'tg-TJ', 'th', 'th-TH', 'fil', 'tlh', 'tr', 'tr-TR', 'tt-RU', 'uk', 'uk-UA', 'ur', 'ur-PK', 'uz', 'uz-UZ', 'vi', 'vi-VN', 'xh-ZA', 'yi', 'yi-DE', 'zh', 'zh-Hans', 'zh-Hant', 'zh-CN', 'zh-HK', 'zh-SG', 'zh-TW', 'zu-ZA', ], nullable: true, description: 'ユーザーの使用言語。', }, avatarId: { type: 'string', format: 'misskey:id', nullable: true, description: 'ユーザーのアバター画像に対応する、ドライブのファイルのid。', }, bannerId: { type: 'string', format: 'misskey:id', nullable: true, description: 'ユーザーのバナー画像に対応する、ドライブのファイルのid。', }, fields: { type: 'array', minItems: 0, maxItems: 16, items: { type: 'object', properties: { name: { type: 'string', }, value: { type: 'string', }, }, required: [ 'name', 'value', ], }, description: 'ユーザーの追加情報。最大で16個の要素を持つことができます。', }, isLocked: { type: 'boolean', description: 'trueにすると、フォローを承認制にします。反対にfalseにすると、他のユーザーが自由にフォローできるようになります。また、その時点で受け取っていたフォローリクエストはすべて承認されます。', }, isExplorable: { type: 'boolean', description: 'trueにすると、ユーザーが他のユーザーにレコメンドされるようになります。Misskey Webでは「みつける」ページに使用されています。', }, hideOnlineStatus: { type: 'boolean', description: 'trueにすると、ユーザーのオンライン状態を隠します。', }, publicReactions: { type: 'boolean', description: 'trueにすると、ユーザーの行ったリアクションの履歴を公開します。', }, carefulBot: { type: 'boolean', description: 'trueにすると、Botからのフォローを承認制にします。', }, autoAcceptFollowed: { type: 'boolean', description: 'trueにすると、フォローしているユーザーからのフォローリクエストを自動で承認します。', }, noCrawle: { type: 'boolean', description: 'trueにすると、クローラーによるインデックスを拒否します。', }, isBot: { type: 'boolean', description: 'ユーザーがBotであるならばtrueにします。', }, isCat: { type: 'boolean', description: 'trueにすると、ユーザーがネコとして扱います。これにより、ユーザーの投稿に出現する「な」が「にゃ」に置換されます。カタカナや英語など、他の文字種・言語についても同様の置換がなされます。', }, showTimelineReplies: { type: 'boolean', description: 'trueにすると、タイムラインにノートへの返信を表示します。', }, injectFeaturedNote: { type: 'boolean', description: '', }, receiveAnnouncementEmail: { type: 'boolean', description: 'trueにすると、お知らせをメールで受け取ります。', }, alwaysMarkNsfw: { type: 'boolean', }, autoSensitive: { type: 'boolean', }, ffVisibility: { type: 'string', enum: [ 'public', 'followers', 'private', ], description: 'ユーザーのフォロー・フォロワー関係の公開範囲。publicにすると全体に、followersにするとフォロワーのみに公開されます。privateにすると誰にも公開されません。', }, pinnedPageId: { type: 'array', items: { type: 'string', format: 'misskey:id', }, description: 'ピン留めするページのid。', }, mutedWords: { type: 'array', description: 'ミュートワード。', }, mutedInstances: { type: 'array', items: { type: 'string', }, description: 'ミュートするサーバーのアドレス。', }, mutingNotificationTypes: { type: 'array', items: { type: 'string', enum: [ 'follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app', ], }, description: 'ミュートする通知の種類。', }, emailNotificationTypes: { type: 'array', items: { type: 'string', }, description: 'メールを送る通知の種類。', }, }, }, res: { type: 'object', optional: false, nullable: false, ref: 'MeDetailed', $ref: 'misskey://MeDetailed', }, errors: { '539f3a45-f215-4f81-a9a8-31293640207f': { id: '539f3a45-f215-4f81-a9a8-31293640207f', code: 'NO_SUCH_AVATAR', description: 'アバター画像のファイルが存在しません。', }, '0d8f5629-f210-41c2-9433-735831a58595': { id: '0d8f5629-f210-41c2-9433-735831a58595', code: 'NO_SUCH_BANNER', description: 'バナー画像のファイルが存在しません。', }, 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191': { id: 'f419f9f8-2f4d-46b1-9fb4-49d3a2fd7191', code: 'AVATAR_NOT_AN_IMAGE', description: 'アバター画像に、画像ではないファイルが指定されました。', }, '75aedb19-2afd-4e6d-87fc-67941256fa60': { id: '75aedb19-2afd-4e6d-87fc-67941256fa60', code: 'BANNER_NOT_AN_IMAGE', description: 'バナー画像に、画像ではないファイルが指定されました。', }, '8e01b590-7eb9-431b-a239-860e086c408e': { id: '8e01b590-7eb9-431b-a239-860e086c408e', code: 'NO_SUCH_PAGE', description: 'ページが存在しません。', }, '0d786918-10df-41cd-8f33-8dec7d9a89a5': { id: '0d786918-10df-41cd-8f33-8dec7d9a89a5', code: 'INVALID_REGEXP', description: '正規表現が不正です。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/webhooks/create.json5 ================================================ { summary: 'Webhookを作成します。', description: 'Webhookを作成します。Webhookについての詳細は該当する項目を参照してください。', tags: [ 'webhooks', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 100, description: 'Webhookの名前。', }, url: { type: 'string', minLength: 1, maxLength: 1024, description: 'URL。onで指定するイベントが発生すると、urlで指定したURLにHTTPリクエストが送信されます。', }, secret: { type: 'string', minLength: 1, maxLength: 1024, description: 'シークレット。HTTPリクエストのX-Misskey-Hook-Secretの値に設定されます。', }, on: { type: 'array', items: { type: 'string', enum: [ 'mention', 'unfollow', 'follow', 'followed', 'note', 'reply', 'renote', 'reaction', ], }, description: '対象となるイベント。各イベントの発生条件や、HTTPリクエストに含まれる情報については、Webhookの項目を参照してください。', }, }, required: [ 'name', 'url', 'secret', 'on', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/webhooks/delete.json5 ================================================ { summary: 'Webhookを削除します。', description: 'Webhookを削除します。', tags: [ 'webhooks', ], requireCredential: true, req: { type: 'object', properties: { webhookId: { type: 'string', format: 'misskey:id', description: 'Webhookのid。', }, }, required: [ 'webhookId', ], }, res: {}, errors: { 'bae73e5a-5522-4965-ae19-3a8688e71d82': { id: 'bae73e5a-5522-4965-ae19-3a8688e71d82', code: 'NO_SUCH_WEBHOOK', description: 'Webhookが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/webhooks/list.json5 ================================================ { summary: 'Webhookの一覧を取得します。', description: 'ログイン中のユーザーが設定しているWebhookの一覧を取得します。', tags: [ 'webhooks', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/webhooks/show.json5 ================================================ { summary: 'Webhookを取得します。', description: '与えられたidに対応するWebhookを取得します。', tags: [ 'webhooks', ], requireCredential: true, req: { type: 'object', properties: { webhookId: { type: 'string', format: 'misskey:id', description: 'Webhookのid。', }, }, required: [ 'webhookId', ], }, res: {}, errors: { '50f614d9-3047-4f7e-90d8-ad6b2d5fb098': { id: '50f614d9-3047-4f7e-90d8-ad6b2d5fb098', code: 'NO_SUCH_WEBHOOK', description: 'Webhookが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i/webhooks/update.json5 ================================================ { summary: 'Webhookの設定を更新します。', description: 'Webhookの設定を更新します。', tags: [ 'webhooks', ], requireCredential: true, req: { type: 'object', properties: { webhookId: { type: 'string', format: 'misskey:id', description: 'Webhookのid。', }, name: { type: 'string', minLength: 1, maxLength: 100, description: 'Webhookの名前。', }, url: { type: 'string', minLength: 1, maxLength: 1024, description: 'URL。', }, secret: { type: 'string', minLength: 1, maxLength: 1024, description: 'シークレット。', }, on: { type: 'array', items: { type: 'string', enum: [ 'mention', 'unfollow', 'follow', 'followed', 'note', 'reply', 'renote', 'reaction', ], }, description: '対象となるイベント。', }, active: { type: 'boolean', description: 'trueにすると、Webhookが有効になります。falseにすると、無効になります。Webhookを削除するには、 i/webhooks/delete エンドポイントを使用してください。', }, }, required: [ 'webhookId', 'name', 'url', 'secret', 'on', 'active', ], }, res: {}, errors: { 'fb0fea69-da18-45b1-828d-bd4fd1612518': { id: 'fb0fea69-da18-45b1-828d-bd4fd1612518', code: 'NO_SUCH_WEBHOOK', description: 'Webhookが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/i.json5 ================================================ { summary: '自身のアカウント情報を取得します。', description: '自身のアカウント情報を取得します。', tags: [ 'account', ], requireCredential: true, req: {}, res: { type: 'object', optional: false, nullable: false, ref: 'MeDetailed', $ref: 'misskey://MeDetailed', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/messaging/history.json5 ================================================ { summary: '', description: '', tags: [ 'messaging', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, group: { type: 'boolean', default: false, }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'MessagingMessage', $ref: 'misskey://MessagingMessage', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/messaging/messages/create.json5 ================================================ { summary: '', description: '', tags: [ 'messaging', ], requireCredential: true, req: { type: 'object', properties: { text: { type: 'string', nullable: true, maxLength: 3000, }, fileId: { type: 'string', format: 'misskey:id', }, }, anyOf: [ { properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, { properties: { groupId: { type: 'string', format: 'misskey:id', }, }, required: [ 'groupId', ], }, ], }, res: { type: 'object', optional: false, nullable: false, ref: 'MessagingMessage', $ref: 'misskey://MessagingMessage', }, errors: { '17e2ba79-e22a-4cbc-bf91-d327643f4a7e': { id: '17e2ba79-e22a-4cbc-bf91-d327643f4a7e', code: 'RECIPIENT_IS_YOURSELF', description: '', }, '11795c64-40ea-4198-b06e-3c873ed9039d': { id: '11795c64-40ea-4198-b06e-3c873ed9039d', code: 'NO_SUCH_USER', description: '', }, 'c94e2a5d-06aa-4914-8fa6-6a42e73d6537': { id: 'c94e2a5d-06aa-4914-8fa6-6a42e73d6537', code: 'NO_SUCH_GROUP', description: '', }, 'd96b3cca-5ad1-438b-ad8b-02f931308fbd': { id: 'd96b3cca-5ad1-438b-ad8b-02f931308fbd', code: 'GROUP_ACCESS_DENIED', description: '', }, '4372b8e2-185d-4146-8749-2f68864a3e5f': { id: '4372b8e2-185d-4146-8749-2f68864a3e5f', code: 'NO_SUCH_FILE', description: '', }, '25587321-b0e6-449c-9239-f8925092942c': { id: '25587321-b0e6-449c-9239-f8925092942c', code: 'CONTENT_REQUIRED', description: '', }, 'c15a5199-7422-4968-941a-2a462c478f7d': { id: 'c15a5199-7422-4968-941a-2a462c478f7d', code: 'YOU_HAVE_BEEN_BLOCKED', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/messaging/messages/delete.json5 ================================================ { summary: '', description: '', tags: [ 'messaging', ], requireCredential: true, req: { type: 'object', properties: { messageId: { type: 'string', format: 'misskey:id', }, }, required: [ 'messageId', ], }, res: {}, errors: { '54b5b326-7925-42cf-8019-130fda8b56af': { id: '54b5b326-7925-42cf-8019-130fda8b56af', code: 'NO_SUCH_MESSAGE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/messaging/messages/read.json5 ================================================ { summary: '', description: '', tags: [ 'messaging', ], requireCredential: true, req: { type: 'object', properties: { messageId: { type: 'string', format: 'misskey:id', }, }, required: [ 'messageId', ], }, res: {}, errors: { '86d56a2f-a9c3-4afb-b13c-3e9bfef9aa14': { id: '86d56a2f-a9c3-4afb-b13c-3e9bfef9aa14', code: 'NO_SUCH_MESSAGE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/messaging/messages.json5 ================================================ { summary: '', description: '', tags: [ 'messaging', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, markAsRead: { type: 'boolean', default: true, }, }, anyOf: [ { properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, { properties: { groupId: { type: 'string', format: 'misskey:id', }, }, required: [ 'groupId', ], }, ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'MessagingMessage', $ref: 'misskey://MessagingMessage', }, }, errors: { '11795c64-40ea-4198-b06e-3c873ed9039d': { id: '11795c64-40ea-4198-b06e-3c873ed9039d', code: 'NO_SUCH_USER', description: '', }, 'c4d9f88c-9270-4632-b032-6ed8cee36f7f': { id: 'c4d9f88c-9270-4632-b032-6ed8cee36f7f', code: 'NO_SUCH_GROUP', description: '', }, 'a053a8dd-a491-4718-8f87-50775aad9284': { id: 'a053a8dd-a491-4718-8f87-50775aad9284', code: 'GROUP_ACCESS_DENIED', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/meta.json5 ================================================ { summary: '自サーバー情報を取得します。', description: '自サーバー情報を取得します。', tags: [ 'meta', ], requireCredential: false, req: { type: 'object', properties: { detail: { type: 'boolean', default: true, }, }, required: [], }, res: { type: 'object', optional: false, nullable: false, properties: { maintainerName: { type: 'string', optional: false, nullable: true, }, maintainerEmail: { type: 'string', optional: false, nullable: true, }, version: { type: 'string', optional: false, nullable: false, example: '12.117.1', }, name: { type: 'string', optional: false, nullable: false, }, uri: { type: 'string', optional: false, nullable: false, format: 'url', example: 'https://misskey.example.com', }, description: { type: 'string', optional: false, nullable: true, }, langs: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, tosUrl: { type: 'string', optional: false, nullable: true, }, repositoryUrl: { type: 'string', optional: false, nullable: false, default: 'https://github.com/misskey-dev/misskey', }, feedbackUrl: { type: 'string', optional: false, nullable: false, default: 'https://github.com/misskey-dev/misskey/issues/new', }, defaultDarkTheme: { type: 'string', optional: false, nullable: true, }, defaultLightTheme: { type: 'string', optional: false, nullable: true, }, disableRegistration: { type: 'boolean', optional: false, nullable: false, }, disableLocalTimeline: { type: 'boolean', optional: false, nullable: false, }, disableGlobalTimeline: { type: 'boolean', optional: false, nullable: false, }, driveCapacityPerLocalUserMb: { type: 'number', optional: false, nullable: false, }, driveCapacityPerRemoteUserMb: { type: 'number', optional: false, nullable: false, }, cacheRemoteFiles: { type: 'boolean', optional: false, nullable: false, }, emailRequiredForSignup: { type: 'boolean', optional: false, nullable: false, }, enableHcaptcha: { type: 'boolean', optional: false, nullable: false, }, hcaptchaSiteKey: { type: 'string', optional: false, nullable: true, }, enableRecaptcha: { type: 'boolean', optional: false, nullable: false, }, recaptchaSiteKey: { type: 'string', optional: false, nullable: true, }, swPublickey: { type: 'string', optional: false, nullable: true, }, mascotImageUrl: { type: 'string', optional: false, nullable: false, default: '/assets/ai.png', }, bannerUrl: { type: 'string', optional: false, nullable: false, }, errorImageUrl: { type: 'string', optional: false, nullable: false, default: 'https://xn--931a.moe/aiart/yubitun.png', }, iconUrl: { type: 'string', optional: false, nullable: true, }, maxNoteTextLength: { type: 'number', optional: false, nullable: false, }, emojis: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, aliases: { type: 'array', optional: false, nullable: false, items: { type: 'string', optional: false, nullable: false, }, }, category: { type: 'string', optional: false, nullable: true, }, host: { type: 'string', optional: false, nullable: true, description: 'The local host is represented with `null`.', }, url: { type: 'string', optional: false, nullable: false, format: 'url', }, }, required: [ 'id', 'aliases', 'category', 'host', 'url', ], }, }, ads: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { place: { type: 'string', optional: false, nullable: false, }, url: { type: 'string', optional: false, nullable: false, format: 'url', }, imageUrl: { type: 'string', optional: false, nullable: false, format: 'url', }, }, required: [ 'place', 'url', 'imageUrl', ], }, }, requireSetup: { type: 'boolean', optional: false, nullable: false, example: false, }, enableEmail: { type: 'boolean', optional: false, nullable: false, }, enableTwitterIntegration: { type: 'boolean', optional: false, nullable: false, }, enableGithubIntegration: { type: 'boolean', optional: false, nullable: false, }, enableDiscordIntegration: { type: 'boolean', optional: false, nullable: false, }, enableServiceWorker: { type: 'boolean', optional: false, nullable: false, }, translatorAvailable: { type: 'boolean', optional: false, nullable: false, }, proxyAccountName: { type: 'string', optional: false, nullable: true, }, features: { type: 'object', optional: true, nullable: false, properties: { registration: { type: 'boolean', optional: false, nullable: false, }, localTimeLine: { type: 'boolean', optional: false, nullable: false, }, globalTimeLine: { type: 'boolean', optional: false, nullable: false, }, elasticsearch: { type: 'boolean', optional: false, nullable: false, }, hcaptcha: { type: 'boolean', optional: false, nullable: false, }, recaptcha: { type: 'boolean', optional: false, nullable: false, }, objectStorage: { type: 'boolean', optional: false, nullable: false, }, twitter: { type: 'boolean', optional: false, nullable: false, }, github: { type: 'boolean', optional: false, nullable: false, }, discord: { type: 'boolean', optional: false, nullable: false, }, serviceWorker: { type: 'boolean', optional: false, nullable: false, }, miauth: { type: 'boolean', optional: true, nullable: false, default: true, }, }, required: [ 'registration', 'localTimeLine', 'globalTimeLine', 'elasticsearch', 'hcaptcha', 'recaptcha', 'objectStorage', 'twitter', 'github', 'discord', 'serviceWorker', ], }, }, required: [ 'maintainerName', 'maintainerEmail', 'version', 'name', 'uri', 'description', 'langs', 'tosUrl', 'repositoryUrl', 'feedbackUrl', 'defaultDarkTheme', 'defaultLightTheme', 'disableRegistration', 'disableLocalTimeline', 'disableGlobalTimeline', 'driveCapacityPerLocalUserMb', 'driveCapacityPerRemoteUserMb', 'cacheRemoteFiles', 'emailRequiredForSignup', 'enableHcaptcha', 'hcaptchaSiteKey', 'enableRecaptcha', 'recaptchaSiteKey', 'swPublickey', 'mascotImageUrl', 'bannerUrl', 'errorImageUrl', 'iconUrl', 'maxNoteTextLength', 'emojis', 'ads', 'requireSetup', 'enableEmail', 'enableTwitterIntegration', 'enableGithubIntegration', 'enableDiscordIntegration', 'enableServiceWorker', 'translatorAvailable', 'proxyAccountName', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/mute/create.json5 ================================================ { summary: 'ユーザーをミュートします。', description: 'ユーザーをミュートします。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ミュートするユーザーのid。', }, expiresAt: { type: 'integer', nullable: true, description: 'ミュートの期限。エポック秒で指定します。nullを指定すると、無期限ミュートになります。', }, }, required: [ 'userId', ], }, res: {}, errors: { '6fef56f3-e765-4957-88e5-c6f65329b8a5': { id: '6fef56f3-e765-4957-88e5-c6f65329b8a5', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, 'a4619cb2-5f23-484b-9301-94c903074e10': { id: 'a4619cb2-5f23-484b-9301-94c903074e10', code: 'MUTEE_IS_YOURSELF', description: '自分をミュートしようとしました。', }, '7e7359cb-160c-4956-b08f-4d1c653cd007': { id: '7e7359cb-160c-4956-b08f-4d1c653cd007', code: 'ALREADY_MUTING', description: 'すでにそのユーザーをミュートしています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/mute/delete.json5 ================================================ { summary: 'ユーザーのミュートを解除します。', description: 'ユーザーのミュートを解除します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ミュートを解除するユーザーのid。', }, }, required: [ 'userId', ], }, res: {}, errors: { 'b851d00b-8ab1-4a56-8b1b-e24187cb48ef': { id: 'b851d00b-8ab1-4a56-8b1b-e24187cb48ef', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, 'f428b029-6b39-4d48-a1d2-cc1ae6dd5cf9': { id: 'f428b029-6b39-4d48-a1d2-cc1ae6dd5cf9', code: 'MUTEE_IS_YOURSELF', description: '自分に対してミュートを解除しようとしました。', }, '5467d020-daa9-4553-81e1-135c0c35a96d': { id: '5467d020-daa9-4553-81e1-135c0c35a96d', code: 'NOT_MUTING', description: '対象となるユーザーをそもそもミュートしていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/mute/list.json5 ================================================ { summary: 'ミュートの一覧を取得します。', description: 'ログイン中のユーザが設定しているミュートの一覧を取得します。', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 30, description: '取得するミュートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいミュートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいミュートを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, description: 'ミュートの一覧。', items: { type: 'object', optional: false, nullable: false, ref: 'Muting', $ref: 'misskey://Muting', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/my/apps.json5 ================================================ { summary: '', description: '', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, offset: { type: 'integer', default: 0, }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'App', $ref: 'misskey://App', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/children.json5 ================================================ { summary: 'ノートへのリプライや引用を取得します。', description: 'ノートへのリプライや引用を取得します。引用なしのRenoteは取得されません。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。' }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, }, required: [ 'noteId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/clips.json5 ================================================ { summary: 'ノートを含むクリップを取得します。', description: 'ノートを含むクリップを取得します。', tags: [ 'clips', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Clip', $ref: 'misskey://Clip', }, }, errors: { '47db1a1c-b0af-458d-8fb4-986e4efafe1e': { id: '47db1a1c-b0af-458d-8fb4-986e4efafe1e', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/conversation.json5 ================================================ { summary: '関連するノートを取得します。', description: '関連するノートを取得します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, offset: { type: 'integer', default: 0, description: '結果の先頭offset個をスキップします。', }, }, required: [ 'noteId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { 'e1035875-9551-45ec-afa8-1ded1fcb53c8': { id: 'e1035875-9551-45ec-afa8-1ded1fcb53c8', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/create.json5 ================================================ { summary: 'ノートを作成します。', description: 'ノートを作成します。返信やRenoteもこのAPIで行います。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { visibility: { type: 'string', enum: [ 'public', 'home', 'followers', 'specified', ], default: 'public', description: 'ノートの公開範囲。', }, visibleUserIds: { type: 'array', uniqueItems: true, items: { type: 'string', format: 'misskey:id', }, description: 'ノートを閲覧可能なユーザーのidのリスト。visibilityがspecifiedの場合のみ適用されます。', }, text: { type: 'string', maxLength: 3000, nullable: true, description: 'ノートの本文。', }, cw: { type: 'string', nullable: true, maxLength: 100, description: 'ノートのCW。', }, localOnly: { type: 'boolean', default: false, description: 'trueにすると、ローカルのみに投稿されます。', }, noExtractMentions: { type: 'boolean', default: false, description: 'trueにすると、本文からメンションを展開しません。', }, noExtractHashtags: { type: 'boolean', default: false, description: 'trueにすると、本文からハッシュタグを展開しません。', }, noExtractEmojis: { type: 'boolean', default: false, description: 'trueにすると、本文から絵文字を展開しません。', }, fileIds: { type: 'array', uniqueItems: true, minItems: 1, maxItems: 16, items: { type: 'string', format: 'misskey:id', }, description: '添付するファイルのid。', }, mediaIds: { deprecated: true, description: 'fileIds を使用してください。fileIds と mediaIds が指定された場合、 mediaIds は無視されます。', type: 'array', uniqueItems: true, minItems: 1, maxItems: 16, items: { type: 'string', format: 'misskey:id', }, }, replyId: { type: 'string', format: 'misskey:id', nullable: true, description: '返信先のノートのid。', }, renoteId: { type: 'string', format: 'misskey:id', nullable: true, description: 'Renote対象のノートのid。', }, channelId: { type: 'string', format: 'misskey:id', nullable: true, description: '投稿先のチャンネルのid。', }, poll: { type: 'object', nullable: true, properties: { choices: { type: 'array', uniqueItems: true, minItems: 2, maxItems: 10, items: { type: 'string', minLength: 1, maxLength: 50, }, description: '選択肢。', }, multiple: { type: 'boolean', default: false, description: 'trueにすると、複数選択を許容します。', }, expiresAt: { type: 'integer', nullable: true, description: '投票の締め切り。エポック秒で指定します。', }, expiredAfter: { type: 'integer', nullable: true, minimum: 1, description: '指定すると、ノート作成からexpiredAfter秒後に投票を締め切ります。expiresAtと併せて指定した場合、expiresAtが優先されます。', }, }, required: [ 'choices', ], description: '投票に関するパラメータ。', }, }, anyOf: [ { properties: { text: { type: 'string', minLength: 1, maxLength: 3000, nullable: false, }, }, required: [ 'text', ], }, { required: [ 'fileIds', ], }, { required: [ 'mediaIds', ], }, { properties: { poll: { type: 'object', nullable: false, }, }, required: [ 'poll', ], }, { required: [ 'renoteId', ], }, ], }, res: { type: 'object', optional: false, nullable: false, properties: { createdNote: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', description: '作成されたノート', }, }, required: [ 'createdNote', ], }, errors: { 'b5c90186-4ab0-49c8-9bba-a1f76c282ba4': { id: 'b5c90186-4ab0-49c8-9bba-a1f76c282ba4', code: 'NO_SUCH_RENOTE_TARGET', description: 'Renoteに指定されたノートが存在しないか、アクセスが許可されていません。', }, 'fd4cc33e-2a37-48dd-99cc-9b806eb2031a': { id: 'fd4cc33e-2a37-48dd-99cc-9b806eb2031a', code: 'CANNOT_RENOTE_TO_A_PURE_RENOTE', description: '単純なRenoteを再度Renoteすることはできません。', }, '749ee0f6-d3da-459a-bf02-282e2da4292c': { id: '749ee0f6-d3da-459a-bf02-282e2da4292c', code: 'NO_SUCH_REPLY_TARGET', description: '返信先に指定されたノートが存在しないか、アクセスが許可されていません。', }, '3ac74a84-8fd5-4bb0-870f-01804f82ce15': { id: '3ac74a84-8fd5-4bb0-870f-01804f82ce15', code: 'CANNOT_REPLY_TO_A_PURE_RENOTE', description: '単純なRenoteに返信することはできません。', }, '04da457d-b083-4055-9082-955525eda5a5': { id: '04da457d-b083-4055-9082-955525eda5a5', code: 'CANNOT_CREATE_ALREADY_EXPIRED_POLL', description: 'アンケートの期限の指定が誤っています。', }, 'b1653923-5453-4edc-b786-7c4f39bb0bbb': { id: 'b1653923-5453-4edc-b786-7c4f39bb0bbb', code: 'NO_SUCH_CHANNEL', description: '指定されたチャンネルが存在しないか、アクセスが許可されていません。', }, 'b390d7e1-8a5e-46ed-b625-06271cafd3d3': { id: 'b390d7e1-8a5e-46ed-b625-06271cafd3d3', code: 'YOU_HAVE_BEEN_BLOCKED', description: 'ブロックされているユーザーのノートに対して返信やRenoteは行えません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/delete.json5 ================================================ { summary: 'ノートを削除します。', description: 'ノートを削除します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { '490be23f-8c1f-4796-819f-94cb4f9d1630': { id: '490be23f-8c1f-4796-819f-94cb4f9d1630', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9': { id: 'fe8d7103-0ea8-4ec3-814d-f8b401dc69e9', code: 'ACCESS_DENIED', description: 'ノートを削除する権限がありません。ノートの削除は、ノートを作成したユーザーか、サーバーの管理者あるいはモデレーターのみが行えます。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/favorites/create.json5 ================================================ { summary: 'ノートをお気に入り登録します。', description: 'ノートをお気に入り登録します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { '6dd26674-e060-4816-909a-45ba3f4da458': { id: '6dd26674-e060-4816-909a-45ba3f4da458', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6': { id: 'a402c12b-34dd-41d2-97d8-4d2ffd96a1a6', code: 'ALREADY_FAVORITED', description: '既にお気に入り登録されています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/favorites/delete.json5 ================================================ { summary: 'ノートをお気に入りから解除します。', description: 'ノートをお気に入りから解除します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { '80848a2c-398f-4343-baa9-df1d57696c56': { id: '80848a2c-398f-4343-baa9-df1d57696c56', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, 'b625fc69-635e-45e9-86f4-dbefbef35af5': { id: 'b625fc69-635e-45e9-86f4-dbefbef35af5', code: 'NOT_FAVORITED', description: 'お気に入り登録されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/featured.json5 ================================================ { summary: 'ハイライトされたノートを取得します。', description: 'ハイライトされたノートを取得します。結果はノートの作成時刻の降順にソートされます(最新のものが先頭)。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭 offset 個をスキップします。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/global-timeline.json5 ================================================ { summary: 'グローバルタイムライン (GTL) を取得します。', description: 'グローバルタイムライン (GTL) を取得します。グローバルタイムラインは、サーバーが受信した全てのパブリックな投稿が含まれます。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { withFiles: { type: 'boolean', default: false, description: 'trueにすると、ファイルが添付されたノートのみを取得します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, sinceDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より後に作成されたノートを返します。', }, untilDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より前に作成されたノートを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '0332fc13-6ab2-4427-ae80-a9fadffd1a6b': { id: '0332fc13-6ab2-4427-ae80-a9fadffd1a6b', code: 'GTL_DISABLED', description: 'グローバルタイムラインが無効になっています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/hybrid-timeline.json5 ================================================ { summary: 'ソーシャルタイムライン (STL) を取得します。', description: 'ソーシャルタイムライン (STL) を取得します。ソーシャルタイムラインには、サーバー内の全てのパブリックなノートと自分のフォローしているユーザーのノートが含まれます。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, sinceDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より後に作成されたノートを返します。', }, untilDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より前に作成されたノートを返します。', }, includeMyRenotes: { type: 'boolean', default: true, description: 'trueにすると、ログイン中のユーザーが行ったRenoteを含めます。', }, includeRenotedMyNotes: { type: 'boolean', default: true, description: 'trueにすると、ログイン中のユーザーが投稿したノートのRenoteを含めます。', }, includeLocalRenotes: { type: 'boolean', default: true, description: 'trueにすると、ローカルのユーザーが行ったRenoteを含めます。', }, withFiles: { type: 'boolean', default: false, description: 'ファイルが添付されたノートのみ取得するか否か', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '620763f4-f621-4533-ab33-0577a1a3c342': { id: '620763f4-f621-4533-ab33-0577a1a3c342', code: 'STL_DISABLED', description: 'ソーシャルタイムラインが無効になっています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/local-timeline.json5 ================================================ { summary: 'ローカルタイムライン (LTL) を取得します。', description: 'ローカルタイムライン (LTL) を取得します。ローカルタイムラインには、サーバー内の全てのパブリックなノートが含まれます。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { withFiles: { type: 'boolean', default: false, description: 'trueにすると、ファイルが添付されたノートのみを取得します。', }, fileType: { type: 'array', items: { type: 'string', }, description: '指定された種類のファイルが添付された投稿のみを取得します。', }, excludeNsfw: { type: 'boolean', default: false, description: 'trueにすると、CWが付与されたノートと、NSFW指定されたファイルが添付されたノートを除外します。fileTypeが指定されている場合のみ有効です(添付ファイルのないCW付きのノートは除外されません)。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, sinceDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より後に作成されたノートを返します。', }, untilDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より前に作成されたノートを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '45a6eb02-7695-4393-b023-dd3be9aaaefd': { id: '45a6eb02-7695-4393-b023-dd3be9aaaefd', code: 'LTL_DISABLED', description: 'ローカルタイムラインが無効になっています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/mentions.json5 ================================================ { summary: 'ログイン中のユーザに言及しているノートの一覧を取得します。', description: 'ログイン中のユーザに言及 (mention) しているノートの一覧を取得します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { following: { type: 'boolean', default: false, description: 'trueの場合、ログイン中のユーザー自身か、フォローしているユーザーからの言及のみを取得します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, visibility: { type: 'string', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/polls/recommendation.json5 ================================================ { summary: 'アンケート付きのおすすめのノートの一覧を取得します。', description: 'アンケート付きのおすすめのノートの一覧を取得します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭offset個をスキップします。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/polls/vote.json5 ================================================ { summary: 'ノートのアンケートに投票します。', description: 'ノートのアンケートに投票します。複数の選択肢に投票するには、choiceを変更して複数回リクエストを行ってください。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'アンケートが添付されたノートのid。', }, choice: { type: 'integer', description: '投票する選択肢。' }, }, required: [ 'noteId', 'choice', ], }, res: {}, errors: { 'ecafbd2e-c283-4d6d-aecb-1a0a33b75396': { id: 'ecafbd2e-c283-4d6d-aecb-1a0a33b75396', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, '5f979967-52d9-4314-a911-1c673727f92f': { id: '5f979967-52d9-4314-a911-1c673727f92f', code: 'NO_POLL', description: 'ノートにアンケートが添付されていません。', }, 'e0cc9a04-f2e8-41e4-a5f1-4127293260cc': { id: 'e0cc9a04-f2e8-41e4-a5f1-4127293260cc', code: 'INVALID_CHOICE', description: '選択肢が不正です。', }, '0963fc77-efac-419b-9424-b391608dc6d8': { id: '0963fc77-efac-419b-9424-b391608dc6d8', code: 'ALREADY_VOTED', description: 'すでに投票しています。', }, '1022a357-b085-4054-9083-8f8de358337e': { id: '1022a357-b085-4054-9083-8f8de358337e', code: 'ALREADY_EXPIRED', description: '投票期間を過ぎています。', }, '85a5377e-b1e9-4617-b0b9-5bea73331e49': { id: '85a5377e-b1e9-4617-b0b9-5bea73331e49', code: 'YOU_HAVE_BEEN_BLOCKED', description: 'ノートを投稿したユーザーにブロックされています。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/reactions/create.json5 ================================================ { summary: 'ノートにリアクションします。', description: 'ノートにリアクションします。', tags: [ 'reactions', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', }, reaction: { type: 'string', description: 'リアクションを指定します。リアクションはUnicode絵文字もしくはカスタム絵文字です。カスタム絵文字の場合はコロンで絵文字名を括ります。', }, }, required: [ 'noteId', 'reaction', ], }, res: {}, errors: { '033d0620-5bfe-4027-965d-980b0c85a3ea': { id: '033d0620-5bfe-4027-965d-980b0c85a3ea', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, '71efcf98-86d6-4e2b-b2ad-9d032369366b': { id: '71efcf98-86d6-4e2b-b2ad-9d032369366b', code: 'ALREADY_REACTED', description: '既にリアクションしています。', }, '20ef5475-9f38-4e4c-bd33-de6d979498ec': { id: '20ef5475-9f38-4e4c-bd33-de6d979498ec', code: 'YOU_HAVE_BEEN_BLOCKED', description: 'ブロックされているユーザーのノートにリアクションは行えません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/reactions/delete.json5 ================================================ { summary: 'ノートのリアクションを解除します。', description: 'ノートのリアクションを解除します。', tags: [ 'reactions', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { '764d9fce-f9f2-4a0e-92b1-6ceac9a7ad37': { id: '764d9fce-f9f2-4a0e-92b1-6ceac9a7ad37', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, '92f4426d-4196-4125-aa5b-02943e2ec8fc': { id: '92f4426d-4196-4125-aa5b-02943e2ec8fc', code: 'NOT_REACTED', description: 'リアクションしていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/reactions.json5 ================================================ { summary: 'ノートのリアクションを取得します。', description: 'ノートのリアクションを取得します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, type: { type: 'string', nullable: true, description: 'リアクションの種類。リアクションはUnicode絵文字もしくはカスタム絵文字です。カスタム絵文字の場合はコロンで絵文字名を括ります。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するリアクションの最大数。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭 offset 個をスキップします。' }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいリアクションを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいリアクションを返します。', }, }, required: [ 'noteId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'NoteReaction', $ref: 'misskey://NoteReaction', }, }, errors: { '263fff3d-d0e1-4af4-bea7-8408059b451a': { id: '263fff3d-d0e1-4af4-bea7-8408059b451a', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/renotes.json5 ================================================ { summary: 'ノートに対するRenote一覧を取得します。', description: 'ノートに対するRenote一覧を取得します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, }, required: [ 'noteId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '12908022-2e21-46cd-ba6a-3edaf6093f46': { id: '12908022-2e21-46cd-ba6a-3edaf6093f46', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/replies.json5 ================================================ { summary: 'ノートへの返信を取得します。', description: 'ノートへの返信を取得します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, }, required: [ 'noteId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/search-by-tag.json5 ================================================ { summary: '指定されたハッシュタグが付けられたノートを取得します。', description: '指定されたハッシュタグが付けられたノートを取得します。複数のハッシュタグを組み合わせた検索条件を設定できます。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { reply: { type: 'boolean', nullable: true, default: null, description: 'trueにすると返信だけを、falseにすると返信以外を取得します。値を設定しなければ返信であるかそうでないかに関係なくノートを取得します。', }, renote: { type: 'boolean', nullable: true, default: null, description: 'trueにするとRenoteだけを、falseにするとRenote以外を取得します。値を設定しなければRenoteであるかそうでないかに関係なくノートを取得します。', }, withFiles: { type: 'boolean', default: false, description: 'trueにすると、ファイルが添付されたノートのみを取得します。', }, poll: { type: 'boolean', nullable: true, default: null, description: 'trueにすると投票を含むノートだけを、falseにすると含まないノートだけを取得します。値を設定しなければ投票の有無にかかわらずノートを取得します。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, }, anyOf: [ { properties: { tag: { type: 'string', minLength: 1, description: '検索対象のハッシュタグ。ハッシュ(#)自身は含めません。', }, }, required: [ 'tag', ], }, { properties: { query: { type: 'array', description: '検索の条件式。二次元配列で指定します。外側の配列の要素はORで、内側の配列の要素はANDで結合されます。たとえば、[["fediverse"], ["misskey", "ai"]] と指定すると、 #fediverse のみを含むノートと、 #misskey と #ai を両方含むノートが返されますが、 #misskey を含み #ai を含まないノートは返されません。', items: { type: 'array', items: { type: 'string', minLength: 1, }, minItems: 1, }, minItems: 1, }, }, required: [ 'query', ], }, ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/search.json5 ================================================ { summary: 'ノートを検索します。', description: 'ノートを検索します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { query: { type: 'string', description: '検索クエリ。クエリが本文に含まれるノートを検索します。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭offset個をスキップします。', }, host: { type: 'string', nullable: true, description: 'The local host is represented with `null`.', }, userId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '指定すると、そのユーザが作成したノートを検索します。', }, channelId: { type: 'string', format: 'misskey:id', nullable: true, default: null, description: '指定すると、そのチャンネルに属するノートを検索します。userIdと併せて指定した場合、channelIdは無視されます。', }, }, required: [ 'query', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/show.json5 ================================================ { summary: 'ノートを取得します。', description: 'ノートを取得します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, errors: { '24fcbfc6-2e37-42b6-8388-c29b3861a08d': { id: '24fcbfc6-2e37-42b6-8388-c29b3861a08d', code: 'NO_SUCH_NOTE', description: '指定されたノートが存在しないか、アクセスが許可されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/state.json5 ================================================ { summary: 'ノートに対するログイン中のユーザによるアクション(お気に入り・ウォッチ・スレッドミュート)を取得します。', description: 'ノートに対するログイン中のユーザによるアクション(お気に入り・ウォッチ・スレッドミュート)を取得します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: { type: 'object', optional: false, nullable: false, properties: { isFavorited: { type: 'boolean', optional: false, nullable: false, description: 'ノートをお気に入りに登録するとtrueになります。' }, isWatching: { type: 'boolean', optional: false, nullable: false, description: 'ノートをウォッチするとtrueになります。' }, isMutedThread: { type: 'boolean', optional: false, nullable: false, description: 'ノートから始まる、またはノートが属するスレッドをミュートするとtrueになります。' }, }, required: [ 'isFavorited', 'isWatching', 'isMutedThread', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/thread-muting/create.json5 ================================================ { summary: 'スレッドをミュートします。', description: 'スレッドをミュートします。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。このノートを含むスレッド全体がミュートされます。', }, }, required: [ 'noteId', ], }, res: {}, errors: { '5ff67ada-ed3b-2e71-8e87-a1a421e177d2': { id: '5ff67ada-ed3b-2e71-8e87-a1a421e177d2', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/thread-muting/delete.json5 ================================================ { summary: 'スレッドのミュートを解除します。', description: 'スレッドのミュートを解除します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。このノートを含むスレッド全体のミュートが解除されます。', }, }, required: [ 'noteId', ], }, res: {}, errors: { 'bddd57ac-ceb3-b29d-4334-86ea5fae481a': { id: 'bddd57ac-ceb3-b29d-4334-86ea5fae481a', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/timeline.json5 ================================================ { summary: 'ホームタイムライン (HTL) を取得します。', description: 'ホームタイムライン (HTL) を取得します。ホームタイムラインは、自分のフォローしているユーザーのノートが含まれます。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, sinceDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より後に作成されたノートを返します。', }, untilDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より前に作成されたノートを返します。', }, includeMyRenotes: { type: 'boolean', default: true, description: 'trueにすると、ログイン中のユーザーが行ったRenoteを含めます。' }, includeRenotedMyNotes: { type: 'boolean', default: true, description: 'trueにすると、ログイン中のユーザーが投稿したノートのRenoteを含めます。', }, includeLocalRenotes: { type: 'boolean', default: true, description: 'trueにすると、ローカルのユーザーが行ったRenoteを含めます。', }, withFiles: { type: 'boolean', default: false, description: 'ファイルが添付されたノートのみ取得するか否か', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/translate.json5 ================================================ { summary: 'ノートを翻訳します。', description: 'ノートを翻訳します。', tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, targetLang: { type: 'string', description: '翻訳先の言語。値がDeepL APIのv2/translateエンドポイントのtarget_langパラメータに渡されます。ただし、ハイフン以降は無視されます。例:JAを指定すると日本語、DEを指定するとドイツ語に翻訳します。EN-GB(イギリス英語)はEN(地域を限定しない「英語」)として扱われます。', }, }, required: [ 'noteId', 'targetLang', ], }, res: { type: 'object', optional: false, nullable: false, }, errors: { 'bea9b03f-36e0-49c5-a4db-627a029f8971': { id: 'bea9b03f-36e0-49c5-a4db-627a029f8971', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/unrenote.json5 ================================================ { summary: '指定したノートのRenoteを解除します。', description: '指定したノートのRenoteを解除します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { 'efd4a259-2442-496b-8dd7-b255aa1a160f': { id: 'efd4a259-2442-496b-8dd7-b255aa1a160f', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/user-list-timeline.json5 ================================================ { summary: '指定したユーザーリストのタイムラインを取得します。', description: '指定したユーザーリストのタイムラインを取得します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { listId: { type: 'string', format: 'misskey:id', description: 'リストのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するリストの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, sinceDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より後に作成されたノートを返します。', }, untilDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より前に作成されたノートを返します。', }, includeMyRenotes: { type: 'boolean', default: true, description: 'trueにすると、ログイン中のユーザーが行ったRenoteを含めます。', }, includeRenotedMyNotes: { type: 'boolean', default: true, description: 'trueにすると、Renoteされたログイン中のユーザーのノートを含めます。' }, includeLocalRenotes: { type: 'boolean', default: true, description: 'trueにすると、Renoteされたローカルの投稿を含めます。', }, withFiles: { type: 'boolean', default: false, description: 'trueにすると、ファイルが添付されたノートだけを返します。', }, }, required: [ 'listId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff': { id: '8fb1fbd5-e476-4c37-9fb0-43d55b63a2ff', code: 'NO_SUCH_LIST', description: 'リストが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/watching/create.json5 ================================================ { summary: 'ノートをウォッチします。', description: 'ノートをウォッチします。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { 'ea0e37a6-90a3-4f58-ba6b-c328ca206fc7': { id: 'ea0e37a6-90a3-4f58-ba6b-c328ca206fc7', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes/watching/delete.json5 ================================================ { summary: 'ノートのウォッチを解除します。', description: 'ノートのウォッチを解除します。', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', description: 'ノートのid。', }, }, required: [ 'noteId', ], }, res: {}, errors: { '09b3695c-f72c-4731-a428-7cff825fc82e': { id: '09b3695c-f72c-4731-a428-7cff825fc82e', code: 'NO_SUCH_NOTE', description: 'ノートが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notes.json5 ================================================ { summary: 'ノート一覧を取得します。', description: 'ノート一覧を取得します。', requireCredential: true, tags: [ 'notes', ], requireCredential: false, req: { type: 'object', properties: { local: { type: 'boolean', default: false, description: 'ローカルで作成されたノートのみを取得します。', }, reply: { type: 'boolean', description: '`true` にすると返信だけを、 `false` にすると返信以外を取得します。値を設定しなければ返信であるかそうでないかに関係なくノートを取得します。', }, renote: { type: 'boolean', description: '`true` にするとリノートだけを、 `false` にするとリノート以外を取得します。値を設定しなければリノートであるかそうでないかに関係なくノートを取得します。', }, withFiles: { type: 'boolean', description: '`true` にすると添付ファイルのあるノートだけを、 `false` にすると添付ファイルがないノートだけを取得します。値を設定しなければ添付ファイルの有無にかかわらずノートを取得します。', }, poll: { type: 'boolean', description: '`true` にすると投票を含むノートだけを、 `false` にすると含まないノートだけを取得します。値を設定しなければ投票の有無にかかわらずノートを取得します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するノートの最大数を指定します。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいノートを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいノートを返します。', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notifications/create.json5 ================================================ { summary: 'アプリからの通知を行います。', description: 'アプリからの通知を行います。', tags: [ 'notifications', ], requireCredential: true, req: { type: 'object', properties: { body: { type: 'string', description: '通知の本文。', }, header: { type: 'string', nullable: true, description: '通知のヘッダー。アプリの名前などを設定することができます。', }, icon: { type: 'string', nullable: true, description: '通知のアイコン画像へのURL。', }, }, required: [ 'body', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notifications/mark-all-as-read.json5 ================================================ { summary: 'すべての通知を既読にします。', description: 'ログイン中のユーザーが受け取ったすべての通知を既読にします。', tags: [ 'notifications', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/notifications/read.json5 ================================================ { summary: '指定された通知を既読にします。', description: '指定された通知を既読にします。', tags: [ 'notifications', ], requireCredential: true, req: { oneOf: [ { type: 'object', properties: { notificationId: { type: 'string', format: 'misskey:id', description: '既読にする通知のid。', }, }, required: [ 'notificationId', ], }, { type: 'object', properties: { notificationIds: { type: 'array', items: { type: 'string', format: 'misskey:id', description: '既読にする通知のidの配列。', }, maxItems: 100, }, }, required: [ 'notificationIds', ], }, ], }, res: {}, errors: { 'efa929d5-05b5-47d1-beec-e6a4dbed011e': { id: 'efa929d5-05b5-47d1-beec-e6a4dbed011e', code: 'NO_SUCH_NOTIFICATION', description: '通知が存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/create.json5 ================================================ { summary: 'ページを作成します。', description: 'ページを作成します。', tags: [ 'pages', ], requireCredential: true, req: { type: 'object', properties: { title: { type: 'string', description: 'ページのタイトル。', }, name: { type: 'string', minLength: 1, description: 'ページを参照するときのパス(URLの末尾の文字列)。ページ間で重複してはいけません。', }, summary: { type: 'string', nullable: true, description: 'ページの要約。', }, content: { type: 'array', items: { type: 'object', additionalProperties: true, }, description: 'ページのコンテンツ。', }, variables: { type: 'array', items: { type: 'object', additionalProperties: true, }, description: 'ページで使用する変数。', }, script: { type: 'string', description: 'ページで使用するスクリプト(AiScript)。', }, eyeCatchingImageId: { type: 'string', format: 'misskey:id', nullable: true, description: 'ドライブにあるアイキャッチ画像のファイルのid。', }, font: { type: 'string', enum: [ 'serif', 'sans-serif', ], default: 'sans-serif', description: 'ページで使用するフォント。', }, alignCenter: { type: 'boolean', default: false, description: 'trueにすると、ページの内容を中央揃えにします。', }, hideTitleWhenPinned: { type: 'boolean', default: false, description: 'trueにすると、ピン留めされているときにタイトルを非表示にします。', }, }, required: [ 'title', 'name', 'content', 'variables', 'script', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Page', $ref: 'misskey://Page', description: '作成されたページ。', }, errors: { 'b7b97489-0f66-4b12-a5ff-b21bd63f6e1c': { id: 'b7b97489-0f66-4b12-a5ff-b21bd63f6e1c', code: 'NO_SUCH_FILE', description: 'ファイルが存在しません。', }, '4650348e-301c-499a-83c9-6aa988c66bc1': { id: '4650348e-301c-499a-83c9-6aa988c66bc1', code: 'NAME_ALREADY_EXISTS', description: '同じURLにページがすでに存在します。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/delete.json5 ================================================ { summary: 'ページを削除します。', description: 'ページを削除します。', tags: [ 'pages', ], requireCredential: true, req: { type: 'object', properties: { pageId: { type: 'string', format: 'misskey:id', description: 'ページのid。', }, }, required: [ 'pageId', ], }, res: {}, errors: { 'eb0c6e1d-d519-4764-9486-52a7e1c6392a': { id: 'eb0c6e1d-d519-4764-9486-52a7e1c6392a', code: 'NO_SUCH_PAGE', description: 'ページが存在しません。', }, '8b741b3e-2c22-44b3-a15f-29949aa1601e': { id: '8b741b3e-2c22-44b3-a15f-29949aa1601e', code: 'ACCESS_DENIED', description: 'ページを削除する権限がありません。所有するユーザのみがページを削除できます。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/featured.json5 ================================================ { summary: 'いいね数の上位10ページを取得します。', description: 'いいね数の上位10ページを取得します。いいねをもらったページの数が10に満たない場合は、それらすべてが返されます。', tags: [ 'pages', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Page', $ref: 'misskey://Page', }, description: 'ページの一覧です。いいね数の降順にソートされています。', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/like.json5 ================================================ { summary: 'ページにいいねをつけます。', description: 'ページにいいねをつけます。', tags: [ 'pages', ], requireCredential: true, req: { type: 'object', properties: { pageId: { type: 'string', format: 'misskey:id', description: 'ページのid。', }, }, required: [ 'pageId', ], }, res: {}, errors: { 'cc98a8a2-0dc3-4123-b198-62c71df18ed3': { id: 'cc98a8a2-0dc3-4123-b198-62c71df18ed3', code: 'ALREADY_LIKED', description: 'すでにいいねをつけています。', }, '28800466-e6db-40f2-8fae-bf9e82aa92b8': { id: '28800466-e6db-40f2-8fae-bf9e82aa92b8', code: 'YOUR_PAGE', description: '自身のページにいいねをつけようとしました。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/show.json5 ================================================ { summary: 'ページを取得します。', description: 'ページを取得します。', tags: [ 'pages', ], requireCredential: false, req: { type: 'object', anyOf: [ { properties: { pageId: { type: 'string', format: 'misskey:id', description: 'ページのid。', }, }, required: [ 'pageId', ], }, { properties: { name: { type: 'string', description: 'ページを参照するときのパス(URLの末尾の文字列)。', }, username: { type: 'string', description: 'ページを作成したユーザーのユーザー名。', }, }, required: [ 'name', 'username', ], }, ], }, res: { type: 'object', optional: false, nullable: false, ref: 'Page', $ref: 'misskey://Page', }, errors: { '222120c0-3ead-4528-811b-b96f233388d7': { id: '222120c0-3ead-4528-811b-b96f233388d7', code: 'NO_SUCH_PAGE', description: 'ページが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/unlike.json5 ================================================ { summary: 'ページへのいいねを取り消します。', description: 'ページへのいいねを取り消します。', tags: [ 'pages', ], requireCredential: true, req: { type: 'object', properties: { pageId: { type: 'string', format: 'misskey:id', description: 'ページのid。', }, }, required: [ 'pageId', ], }, res: {}, errors: { 'a0d41e20-1993-40bd-890e-f6e560ae648e': { id: 'a0d41e20-1993-40bd-890e-f6e560ae648e', code: 'NO_SUCH_PAGE', description: 'ページが存在しません。', }, 'f5e586b0-ce93-4050-b0e3-7f31af5259ee': { id: 'f5e586b0-ce93-4050-b0e3-7f31af5259ee', code: 'NOT_LIKED', description: 'いいねをつけていないページです。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pages/update.json5 ================================================ { summary: 'ページのコンテンツ・属性を変更します。', description: 'ページのコンテンツ・属性を変更します。', tags: [ 'pages', ], requireCredential: true, req: { type: 'object', properties: { pageId: { type: 'string', format: 'misskey:id', description: 'ページのid。', }, title: { type: 'string', description: 'ページのタイトル。', }, name: { type: 'string', minLength: 1, description: 'ページを参照するときのパス(URLの末尾の文字列)。ページ間で重複してはいけません。', }, summary: { type: 'string', nullable: true, description: 'ページの要約。', }, content: { type: 'array', items: { type: 'object', additionalProperties: true, }, description: 'ページのコンテンツ。', }, variables: { type: 'array', items: { type: 'object', additionalProperties: true, }, description: 'ページで使用する変数。', }, script: { type: 'string', description: 'ページで使用するスクリプト(AiScript)。', }, eyeCatchingImageId: { type: 'string', format: 'misskey:id', nullable: true, description: 'ドライブにあるアイキャッチ画像のファイルのid。', }, font: { type: 'string', enum: [ 'serif', 'sans-serif', ], description: 'ページで使用するフォント。', }, alignCenter: { type: 'boolean', description: 'trueにすると、ページの内容を中央揃えにします。', }, hideTitleWhenPinned: { type: 'boolean', description: 'trueにすると、ピン留めされているときにタイトルを非表示にします。', }, }, required: [ 'pageId', 'title', 'name', 'content', 'variables', 'script', ], }, res: {}, errors: { '21149b9e-3616-4778-9592-c4ce89f5a864': { id: '21149b9e-3616-4778-9592-c4ce89f5a864', code: 'NO_SUCH_PAGE', description: 'ページが存在しません。', }, '3c15cd52-3b4b-4274-967d-6456fc4f792b': { id: '3c15cd52-3b4b-4274-967d-6456fc4f792b', code: 'ACCESS_DENIED', description: 'ページを変更する権限がありません。所有するユーザのみがページを変更できます。', }, 'cfc23c7c-3887-490e-af30-0ed576703c82': { id: 'cfc23c7c-3887-490e-af30-0ed576703c82', code: 'NO_SUCH_FILE', description: 'ファイルが存在しません。', }, '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab': { id: '2298a392-d4a1-44c5-9ebb-ac1aeaa5a9ab', code: 'NAME_ALREADY_EXISTS', description: '同じURLにページがすでに存在します。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/ping.json5 ================================================ { summary: 'サーバーの接続確認を行います。', description: 'サーバーの接続確認を行います。', tags: [ 'meta', ], requireCredential: false, req: {}, res: { type: 'object', optional: false, nullable: false, properties: { pong: { type: 'number', optional: false, nullable: false, description: 'レスポンス時の時刻です。', }, }, required: [ 'pong', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/pinned-users.json5 ================================================ { summary: 'ピン留めされたユーザーを取得します。', description: 'サーバーの管理者によってピン留めされたユーザーを取得します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/promo/read.json5 ================================================ { summary: '', description: '', tags: [ 'notes', ], requireCredential: true, req: { type: 'object', properties: { noteId: { type: 'string', format: 'misskey:id', }, }, required: [ 'noteId', ], }, res: {}, errors: { 'd785b897-fcd3-4fe9-8fc3-b85c26e6c932': { id: 'd785b897-fcd3-4fe9-8fc3-b85c26e6c932', code: 'NO_SUCH_NOTE', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/request-reset-password.json5 ================================================ { summary: '', description: '', tags: [ 'reset password', ], requireCredential: false, req: { type: 'object', properties: { username: { type: 'string', }, email: { type: 'string', }, }, required: [ 'username', 'email', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/reset-db.json5 ================================================ { summary: 'データベースを初期化して、Redisのデータを消去します。', description: 'データベースを初期化して、Redisのデータを消去します。NODE_ENV環境変数がtestingに設定されている場合のみ動作します。', tags: [ 'non-productive', ], requireCredential: false, req: { type: 'object', properties: {}, required: [], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/reset-password.json5 ================================================ { summary: '', description: '', tags: [ 'reset password', ], requireCredential: false, req: { type: 'object', properties: { token: { type: 'string', }, password: { type: 'string', }, }, required: [ 'token', 'password', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/server-info.json5 ================================================ { summary: 'サーバーマシンについての情報を取得します。', description: "サーバーマシンについての情報を取得します。", tags: [ 'meta', ], requireCredential: false, req: {}, res: { type: "object", optional: false, nullable: false, properties: { machine: { type: "string", optional: false, nullable: false, description: "サーバのOSで設定されたホスト名です。", }, cpu: { type: "object", optional: false, nullable: false, description: "CPUについての情報です。", properties: { model: { type: "string", optional: false, nullable: false, description: "CPUのモデルです。" }, cores: { type: "string", optional: false, nullable: false, description: "CPUのコア数です。" }, } }, mem: { type: "object", optional: false, nullable: false, description: "メモリについての情報です。", properties: { total: { type: "number", optional: false, nullable: false, description: "総容量です。", }, } }, fs: { type: "object", optional: false, nullable: false, description: "ストレージについての情報です。", properties: { total: { type: "number", optional: false, nullable: false, description: "総容量です。", }, used: { type: "number", optional: false, nullable: false, description: "使用済みの容量です。" } } } }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/stats.json5 ================================================ { summary: 'サーバーの情報を取得します。', description: 'サーバーの情報を取得します。', tags: [ 'meta', ], requireCredential: false, req: {}, res: { type: 'object', optional: false, nullable: false, properties: { notesCount: { type: 'number', optional: false, nullable: false, description: '総ノート数です。', }, originalNotesCount: { type: 'number', optional: false, nullable: false, description: 'サーバー内(ローカル)で作成された総ノート数です。', }, usersCount: { type: 'number', optional: false, nullable: false, description: '総ユーザ数です。', }, originalUsersCount: { type: 'number', optional: false, nullable: false, description: 'サーバー内(ローカル)で作成された総ユーザ数です。', }, instances: { type: 'number', optional: false, nullable: false, description: '', }, driveUsageLocal: { type: 'number', optional: false, nullable: false, description: '未実装:常に0を返します。', }, driveUsageRemote: { type: 'number', optional: false, nullable: false, description: '未実装:常に0を返します。', }, }, required: [ 'notesCount', 'originalNotesCount', 'usersCount', 'originalUsersCount', 'instances', 'driveUsageLocal', 'driveUsageRemote', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/sw/register.json5 ================================================ { summary: '', description: '', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { endpoint: { type: 'string', }, auth: { type: 'string', }, publickey: { type: 'string', }, }, required: [ 'endpoint', 'auth', 'publickey', ], }, res: { type: 'object', optional: false, nullable: false, properties: { state: { type: 'string', optional: true, nullable: false, enum: [ 'already-subscribed', 'subscribed', ], }, key: { type: 'string', optional: false, nullable: true, }, }, required: [ 'key', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/sw/unregister.json5 ================================================ { summary: '', description: '', tags: [ 'account', ], requireCredential: true, req: { type: 'object', properties: { endpoint: { type: 'string', }, }, required: [ 'endpoint', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/test.json5 ================================================ { summary: '', description: '', tags: [ 'non-productive', ], requireCredential: false, req: { type: 'object', properties: { required: { type: 'boolean', }, string: { type: 'string', }, default: { type: 'string', default: 'hello', }, nullableDefault: { type: 'string', nullable: true, default: 'hello', }, id: { type: 'string', format: 'misskey:id', }, }, required: [ 'required', ], }, res: {}, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/username/available.json5 ================================================ { summary: 'ユーザー名が利用可能か確認します。', description: 'ユーザー名が利用可能か確認します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { username: { type: 'string', pattern: '^\\w{1,20}$', description: 'ユーザー名', }, }, required: [ 'username', ], }, res: { type: 'object', optional: false, nullable: false, properties: { available: { type: 'boolean', optional: false, nullable: false, description: 'ユーザー名が利用可能であれば true です。', }, }, required: [ 'available', ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/clips.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Clip', $ref: 'misskey://Clip', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/followers.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, }, anyOf: [ { properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, { properties: { username: { type: 'string', }, host: { type: 'string', nullable: true, description: 'The local host is represented with `null`.', }, }, required: [ 'username', 'host', ], }, ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Following', $ref: 'misskey://Following', }, }, errors: { '27fa5435-88ab-43de-9360-387de88727cd': { id: '27fa5435-88ab-43de-9360-387de88727cd', code: 'NO_SUCH_USER', description: '', }, '3c6a84db-d619-26af-ca14-06232a21df8a': { id: '3c6a84db-d619-26af-ca14-06232a21df8a', code: 'FORBIDDEN', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/following.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, }, anyOf: [ { properties: { userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, { properties: { username: { type: 'string', }, host: { type: 'string', nullable: true, description: 'The local host is represented with `null`.', }, }, required: [ 'username', 'host', ], }, ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Following', $ref: 'misskey://Following', }, }, errors: { '63e4aba4-4156-4e53-be25-c9559e42d71b': { id: '63e4aba4-4156-4e53-be25-c9559e42d71b', code: 'NO_SUCH_USER', description: '', }, 'f6cdb0df-c19f-ec5c-7dbb-0ba84a1f92ba': { id: 'f6cdb0df-c19f-ec5c-7dbb-0ba84a1f92ba', code: 'FORBIDDEN', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/gallery/posts.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, }, required: [ 'userId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'GalleryPost', $ref: 'misskey://GalleryPost', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/get-frequently-replied-users.json5 ================================================ { summary: 'ユーザーが頻繁にリプライを送信しているユーザーを取得します。', description: 'ユーザーが頻繁にリプライを送信しているユーザーを取得します。最新の1000件のノートを対象に集計を行います。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ユーザーのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するユーザーの最大数。', }, }, required: [ 'userId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, properties: { user: { type: 'object', optional: false, nullable: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, weight: { type: 'number', optional: false, nullable: false, description: 'userに送信したリプライ数を、あるユーザーに送った最大のリプライ数で割ったもの。最大のリプライの送信先がuserである場合、weightは1になります。', }, }, required: [ 'user', 'weight', ], }, description: 'リプライをよく送信しているユーザーの一覧。', }, errors: { 'e6965129-7b2a-40a4-bae2-cd84cd434822': { id: 'e6965129-7b2a-40a4-bae2-cd84cd434822', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/create.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: { name: { type: 'string', minLength: 1, maxLength: 100, }, }, required: [ 'name', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserList', $ref: 'misskey://UserList', }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/delete.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: { listId: { type: 'string', format: 'misskey:id', }, }, required: [ 'listId', ], }, res: {}, errors: { '78436795-db79-42f5-b1e2-55ea2cf19166': { id: '78436795-db79-42f5-b1e2-55ea2cf19166', code: 'NO_SUCH_LIST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/list.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: {}, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'UserList', $ref: 'misskey://UserList', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/pull.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: { listId: { type: 'string', format: 'misskey:id', }, userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'listId', 'userId', ], }, res: {}, errors: { '7f44670e-ab16-43b8-b4c1-ccd2ee89cc02': { id: '7f44670e-ab16-43b8-b4c1-ccd2ee89cc02', code: 'NO_SUCH_LIST', description: '', }, '588e7f72-c744-4a61-b180-d354e912bda2': { id: '588e7f72-c744-4a61-b180-d354e912bda2', code: 'NO_SUCH_USER', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/push.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: { listId: { type: 'string', format: 'misskey:id', }, userId: { type: 'string', format: 'misskey:id', }, }, required: [ 'listId', 'userId', ], }, res: {}, errors: { '2214501d-ac96-4049-b717-91e42272a711': { id: '2214501d-ac96-4049-b717-91e42272a711', code: 'NO_SUCH_LIST', description: '', }, 'a89abd3d-f0bc-4cce-beb1-2f446f4f1e6a': { id: 'a89abd3d-f0bc-4cce-beb1-2f446f4f1e6a', code: 'NO_SUCH_USER', description: '', }, '1de7c884-1595-49e9-857e-61f12f4d4fc5': { id: '1de7c884-1595-49e9-857e-61f12f4d4fc5', code: 'ALREADY_ADDED', description: '', }, '990232c5-3f9d-4d83-9f3f-ef27b6332a4b': { id: '990232c5-3f9d-4d83-9f3f-ef27b6332a4b', code: 'YOU_HAVE_BEEN_BLOCKED', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/show.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: { listId: { type: 'string', format: 'misskey:id', }, }, required: [ 'listId', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserList', $ref: 'misskey://UserList', }, errors: { '7bc05c21-1d7a-41ae-88f1-66820f4dc686': { id: '7bc05c21-1d7a-41ae-88f1-66820f4dc686', code: 'NO_SUCH_LIST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/lists/update.json5 ================================================ { summary: '', description: '', tags: [ 'lists', ], requireCredential: true, req: { type: 'object', properties: { listId: { type: 'string', format: 'misskey:id', }, name: { type: 'string', minLength: 1, maxLength: 100, }, }, required: [ 'listId', 'name', ], }, res: { type: 'object', optional: false, nullable: false, ref: 'UserList', $ref: 'misskey://UserList', }, errors: { '796666fe-3dff-4d39-becb-8a5932c1d5b7': { id: '796666fe-3dff-4d39-becb-8a5932c1d5b7', code: 'NO_SUCH_LIST', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/notes.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', }, includeReplies: { type: 'boolean', default: true, }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, sinceId: { type: 'string', format: 'misskey:id', }, untilId: { type: 'string', format: 'misskey:id', }, sinceDate: { type: 'integer', }, untilDate: { type: 'integer', }, includeMyRenotes: { type: 'boolean', default: true, }, withFiles: { type: 'boolean', default: false, }, fileType: { type: 'array', items: { type: 'string', }, }, excludeNsfw: { type: 'boolean', default: false, }, }, required: [ 'userId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Note', $ref: 'misskey://Note', }, }, errors: { '27e494ba-2ac2-48e8-893b-10d4d8c2387b': { id: '27e494ba-2ac2-48e8-893b-10d4d8c2387b', code: 'NO_SUCH_USER', description: '', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/pages.json5 ================================================ { summary: 'ユーザーが作成し、公開しているページを取得します。', description: 'ユーザーが作成し、公開しているページを取得します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ユーザーのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するページの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいページを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりもc小さいページを返します。', }, }, required: [ 'userId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'Page', $ref: 'misskey://Page', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/reactions.json5 ================================================ { summary: 'ユーザーがつけたリアクションを取得します。', description: 'ユーザーがつけたリアクションを取得します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ユーザーのid。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するリアクションの最大数。', }, sinceId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも大きいリアクションを返します。', }, untilId: { type: 'string', format: 'misskey:id', description: '指定すると、idがその値よりも小さいファイルを返します。', }, sinceDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より後作成されたリアクションを返します。', }, untilDate: { type: 'integer', description: 'エポック秒で日時を指定すると、その日時より前に作成されたリアクションを返します。', }, }, required: [ 'userId', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'NoteReaction', $ref: 'misskey://NoteReaction', }, }, errors: { '673a7dd2-6924-1093-e0c0-e68456ceae5c': { id: '673a7dd2-6924-1093-e0c0-e68456ceae5c', code: 'REACTIONS_NOT_PUBLIC', description: 'リアクションが公開されていません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/recommendation.json5 ================================================ { summary: 'おすすめのユーザーを取得します。', description: 'ログイン中のユーザーに対して、フォローをおすすめできるユーザーを取得します。', tags: [ 'users', ], requireCredential: true, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するユーザーの最大数。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭offset個をスキップします。' }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/relation.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: true, req: { type: 'object', properties: { userId: { anyOf: [ { type: 'string', format: 'misskey:id', }, { type: 'array', items: { type: 'string', format: 'misskey:id', }, }, ], }, }, required: [ 'userId', ], }, res: { optional: false, nullable: false, oneOf: [ { type: 'object', properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, isFollowing: { type: 'boolean', optional: false, nullable: false, }, hasPendingFollowRequestFromYou: { type: 'boolean', optional: false, nullable: false, }, hasPendingFollowRequestToYou: { type: 'boolean', optional: false, nullable: false, }, isFollowed: { type: 'boolean', optional: false, nullable: false, }, isBlocking: { type: 'boolean', optional: false, nullable: false, }, isBlocked: { type: 'boolean', optional: false, nullable: false, }, isMuted: { type: 'boolean', optional: false, nullable: false, }, }, required: [ 'id', 'isFollowing', 'hasPendingFollowRequestFromYou', 'hasPendingFollowRequestToYou', 'isFollowed', 'isBlocking', 'isBlocked', 'isMuted', ], }, { type: 'array', items: { type: 'object', optional: false, nullable: false, properties: { id: { type: 'string', optional: false, nullable: false, format: 'id', }, isFollowing: { type: 'boolean', optional: false, nullable: false, }, hasPendingFollowRequestFromYou: { type: 'boolean', optional: false, nullable: false, }, hasPendingFollowRequestToYou: { type: 'boolean', optional: false, nullable: false, }, isFollowed: { type: 'boolean', optional: false, nullable: false, }, isBlocking: { type: 'boolean', optional: false, nullable: false, }, isBlocked: { type: 'boolean', optional: false, nullable: false, }, isMuted: { type: 'boolean', optional: false, nullable: false, }, }, required: [ 'id', 'isFollowing', 'hasPendingFollowRequestFromYou', 'hasPendingFollowRequestToYou', 'isFollowed', 'isBlocking', 'isBlocked', 'isMuted', ], }, }, ], }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/report-abuse.json5 ================================================ { summary: 'ユーザーを通報します。', description: 'ユーザーを通報します。', tags: [ 'users', ], requireCredential: true, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: '通報対象のユーザーのid。', }, comment: { type: 'string', minLength: 1, maxLength: 2048, description: '通報の理由を説明する文章やリンク。', }, }, required: [ 'userId', 'comment', ], }, res: {}, errors: { '1acefcb5-0959-43fd-9685-b48305736cb5': { id: '1acefcb5-0959-43fd-9685-b48305736cb5', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, '1e13149e-b1e8-43cf-902e-c01dbfcb202f': { id: '1e13149e-b1e8-43cf-902e-c01dbfcb202f', code: 'CANNOT_REPORT_YOURSELF', description: '自身を通報しようとしました。', }, '35e166f5-05fb-4f87-a2d5-adb42676d48f': { id: '35e166f5-05fb-4f87-a2d5-adb42676d48f', code: 'CANNOT_REPORT_THE_ADMIN', description: '管理者を通報しようとしました。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/search-by-username-and-host.json5 ================================================ { summary: 'ユーザー名・ホスト名からユーザーを検索します。', description: 'ユーザー名・ホスト名からユーザーを検索します。30日間投稿のないユーザーや、凍結されているユーザーは除外されます。結果はユーザーの最後の投稿が新しい順にソートされます。ログイン中であれば(=認証情報が送信されれば)、フォローしているユーザーを優先的に検索します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { username: { type: 'string', nullable: true, description: 'ユーザー名。', }, host: { type: 'string', nullable: true, description: 'ユーザーが所属するサーバーのホスト名(ドメインなど)。ローカルユーザーを対象にする場合はnullを指定します。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するユーザーの最大数。', }, detail: { type: 'boolean', default: true, description: 'trueにすると、ユーザーの詳細な情報を返します。', }, }, anyOf: [ { required: [ 'username', ], }, { required: [ 'host', ], }, ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'User', $ref: 'misskey://User', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/search.json5 ================================================ { summary: '与えられたクエリからユーザーを検索します。', description: '与えられたクエリからユーザーを検索します。30日間アクティブでないユーザーや、凍結されているユーザーは除外されます。結果はユーザーの最後の投稿が新しい順にソートされます。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { query: { type: 'string', description: '検索クエリ。@fooとすると、fooで始まるユーザー名を持つユーザーを検索します。それ以外の場合、名前やユーザー名、自己紹介にクエリが含まれるユーザーを検索します。', }, offset: { type: 'integer', default: 0, description: '検索結果の先頭offset個をスキップします。', }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, description: '取得するユーザーの最大数。', }, origin: { type: 'string', enum: [ 'local', 'remote', 'combined', ], default: 'combined', description: 'ユーザーの所属サーバーの区分。local, remoteにすると、それぞれローカル・リモートユーザーのみを取得します。combined(デフォルト)にすると、すべてのユーザーを対象にします。', }, detail: { type: 'boolean', default: true, description: 'trueにすると、ユーザーの詳細な情報を返します。', }, }, required: [ 'query', ], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'User', $ref: 'misskey://User', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/show.json5 ================================================ { summary: 'ユーザーの情報を取得します。', description: 'ユーザーの情報を取得します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', anyOf: [ { properties: { userId: { type: 'string', format: 'misskey:id', description: 'ユーザーのid。', }, }, required: [ 'userId', ], }, { properties: { userIds: { type: 'array', uniqueItems: true, items: { type: 'string', format: 'misskey:id', description: 'ユーザーのid。', }, }, }, required: [ 'userIds', ], }, { properties: { username: { type: 'string', description: 'ユーザー名。', }, host: { type: 'string', nullable: true, description: 'ユーザーが所属するサーバーのホスト名(ドメインなど)。ローカルユーザーを対象にする場合はnullを指定します。', }, }, required: [ 'username', ], }, ], }, res: { optional: false, nullable: false, oneOf: [ { type: 'object', ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, { type: 'array', items: { type: 'object', ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, ], }, errors: { 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c': { id: 'ef7b9be4-9cba-4e6f-ab41-90ed171c7d3c', code: 'FAILED_TO_RESOLVE_REMOTE_USER', description: 'リモートユーザーの検索に失敗しました。', }, '4362f8dc-731f-4ad8-a694-be5a88922a24': { id: '4362f8dc-731f-4ad8-a694-be5a88922a24', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users/stats.json5 ================================================ { summary: 'ユーザーの統計情報を取得します。', description: 'ユーザーの統計情報を取得します。', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { userId: { type: 'string', format: 'misskey:id', description: 'ユーザーのid。', }, }, required: [ 'userId', ], }, res: { type: 'object', optional: false, nullable: false, properties: { notesCount: { type: 'integer', optional: false, nullable: false, description: '作成したノートの数。', }, repliesCount: { type: 'integer', optional: false, nullable: false, description: '送ったリプライの数。', }, renotesCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーがRenoteを行った回数。', }, repliedCount: { type: 'integer', optional: false, nullable: false, description: '受け取ったリプライの数。', }, renotedCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーのノートがRenoteされた回数。', }, pollVotesCount: { type: 'integer', optional: false, nullable: false, description: '投票を行った回数。', }, pollVotedCount: { type: 'integer', optional: false, nullable: false, description: '投票を作成した回数。', }, localFollowingCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーがフォローしているローカルユーザーの数。', }, remoteFollowingCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーがフォローしているリモートユーザーの数。', }, localFollowersCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーをフォローしているローカルユーザーの数。', }, remoteFollowersCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーをフォローしているリモートユーザーの数。', }, followingCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーがフォローしているユーザーの数(ローカルとリモートの和)。', }, followersCount: { type: 'integer', optional: false, nullable: false, description: 'ユーザーをフォローしているユーザーの数(ローカルとリモートの和)。', }, sentReactionsCount: { type: 'integer', optional: false, nullable: false, description: 'リアクションを送った回数。', }, receivedReactionsCount: { type: 'integer', optional: false, nullable: false, description: 'リアクションを受け取った回数。', }, noteFavoritesCount: { type: 'integer', optional: false, nullable: false, description: 'お気に入りに追加したノートの数。', }, pageLikesCount: { type: 'integer', optional: false, nullable: false, description: 'ページにいいねをつけた回数。', }, pageLikedCount: { type: 'integer', optional: false, nullable: false, description: 'ページへのいいねを受け取った回数。', }, driveFilesCount: { type: 'integer', optional: false, nullable: false, description: 'ドライブに存在するファイルの数。', }, driveUsage: { type: 'integer', optional: false, nullable: false, description: 'ドライブの使用容量。バイト単位です。', }, }, required: [ 'notesCount', 'repliesCount', 'renotesCount', 'repliedCount', 'renotedCount', 'pollVotesCount', 'pollVotedCount', 'localFollowingCount', 'remoteFollowingCount', 'localFollowersCount', 'remoteFollowersCount', 'followingCount', 'followersCount', 'sentReactionsCount', 'receivedReactionsCount', 'noteFavoritesCount', 'pageLikesCount', 'pageLikedCount', 'driveFilesCount', 'driveUsage', ], }, errors: { '9e638e45-3b25-4ef7-8f95-07e8498f1819': { id: '9e638e45-3b25-4ef7-8f95-07e8498f1819', code: 'NO_SUCH_USER', description: 'ユーザーが存在しません。', }, }, } ================================================ FILE: content/ja/.docs-legacy/api/endpoints/users.json5 ================================================ { summary: '', description: '', tags: [ 'users', ], requireCredential: false, req: { type: 'object', properties: { limit: { type: 'integer', minimum: 1, maximum: 100, default: 10, }, offset: { type: 'integer', default: 0, }, sort: { type: 'string', enum: [ '+follower', '-follower', '+createdAt', '-createdAt', '+updatedAt', '-updatedAt', ], }, state: { type: 'string', enum: [ 'all', 'admin', 'moderator', 'adminOrModerator', 'alive', ], default: 'all', }, origin: { type: 'string', enum: [ 'combined', 'local', 'remote', ], default: 'local', }, hostname: { type: 'string', nullable: true, default: null, description: 'The local host is represented with `null`.', }, }, required: [], }, res: { type: 'array', optional: false, nullable: false, items: { type: 'object', optional: false, nullable: false, ref: 'UserDetailed', $ref: 'misskey://UserDetailed', }, }, errors: {}, } ================================================ FILE: content/ja/.docs-legacy/api/index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\ ライブラリについては[こちら](./libraries)を参照してください。 ::: APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 ## アクセストークンの取得 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ### 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ### アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app) ::: #### Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: #### Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | -------------------------------------------------------------------------------------------------------------------------------- | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](./permission.md)で確認できます。 | :::tip 例 ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: #### Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | ---------------------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、[APIリファレンス](./endpoints.html)を参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](./streaming/index.md)を参照してください。 ================================================ FILE: content/ja/contact-faq/0.cannot-create-account.md ================================================ --- question: アカウントが作成できません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ja/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: アカウントにログインできません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ja/contact-faq/2.delete-account.md ================================================ --- question: アカウントを削除したい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ja/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 〇〇のサーバー上にあるコンテンツを削除してほしい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** 自サーバー・他サーバーのコンテンツのモデレーションについては、各サーバーのルールに則って行われますので、当該コンテンツの送信元サーバーの管理者に連絡するか、当該ユーザーやサーバーをブロックして自己防衛するなどして対応してください。 ================================================ FILE: content/ja/contact-faq/4.copyright-infringement.md ================================================ --- question: 著作権侵害を見つけた --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/ja/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/ja/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/ja/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskeyについてのドキュメントです。' --- # Misskeyについて Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## 歴史 開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にActivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 :::tip Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 ::: 誰でも開発に参加することができ、現在でも活発に開発が続いています。 [Misskey歴史資料館](/about-us/history/) ## 分散型とは何か? 分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 :::tip 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) ::: ## 開発に参加する、プロジェクトを支援する Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 ### 議論に参加する 新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上で行われます。 ### テキストを翻訳する Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) ### 感想を投稿する 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 ### ミスキストを増やす ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 ### 寄付をする [こちらをご覧ください](/docs/donate/) ## よくある質問 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 ### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 ### 誰が運営していますか? Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、サーバーの情報ページで確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 ### どのサーバーを選べばいいですか? [サーバー一覧が公開されています。](/servers/) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 Misskeyサーバーの作成には、専用のサービスを使う方法や、半自動で環境を構築する方法などがあります(もちろん手動でサーバーを構築することも可能です)。詳細については[こちら](/docs/for-admin/install/guides/)をご覧ください。 ### どのような技術を使用していますか? Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 - サーバーサイド: Node.js - データベース: PostgreSQL、Redis - UIフレームワーク: Vue.js - プログラミング言語: TypeScript また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 ### Mastodonのフォークですか? いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](/docs/for-users/resources/apps/)をご覧ください。 ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 :::tip PWAの設定方法については[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ::: ### Misskeyのロゴ、アイコンはどこで入手できますか? [こちら](/brand-assets/) ### 時折目にする猫耳の可愛い女の子は? :::fukidashi{chara="doya_ai" charaName="藍"} 私のことですね!Misskeyのマスコットキャラクターとして、精一杯あなたをサポートさせていただきます♪ わたしについては[このホームページ](https://xn--931a.moe/)をご覧ください! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! ::: ================================================ FILE: content/ja/docs/2.for-users/1.index.md ================================================ # ユーザー向けガイド このセクションでは、Misskeyを初めて利用する方はもちろん、すでに利用されている方にも役立つ一般的な機能についてご紹介しています。 ================================================ FILE: content/ja/docs/2.for-users/2.onboarding/0.index.md ================================================ # Misskeyをはじめよう ここでは、Misskeyでの活動を始めるチュートリアルを掲載しています。 おもに、 - 分散型プラットフォームの注意点 - サーバーとは?サーバーの選び方は? - 登録の手順 - 最低限の基礎知識 などについて解説していますので、この通りに進めることで、とりあえずMisskeyを使い始めることができると思います。 それでは、早速始めましょう!(「次へ」を押して進んでください。) ================================================ FILE: content/ja/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Misskeyサーバーにアカウントを作成する前の基本的な注意事項です。' --- # 基本的な注意事項 Misskeyを使ったサービスを利用するにあたり、いくつか注意が必要な点があります。 - 分散型のため、一度アップロードしたデータは削除したとしても他の全てのサーバーから削除されることは保証されません。(ただし、これはインターネット全般に言えることでもあります。) - 非公開で行った投稿でも、相手のサーバーがそれを同じように非公開として扱うかは保証されません。個人情報、機密情報を投稿する際は十分注意してください。(ただし、これはインターネット全般に言えることでもあります。) - Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ノートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。 - ユーザー名は後から変更できません。一度アカウントを削除すると同じユーザー名を取得することはできません。 - アカウントの削除は負荷の高い処理であるため、長い時間がかかることがあります。アップロードしたデータが多いケースではアカウントの削除が不可能なこともあります。 - サーバーによっては、広告収入により運営費を賄っていることがあります。また、アドブロッカーは広告とは全く関係のないコンテンツや機能を誤ってブロックすることがよくあり、クライアントの動作に支障をきたし、正常にMisskeyを使用できなくなるおそれがあります。そのため、Misskeyではアドブロッカーやそれに類する機能はオフにしてご利用ください。 これらをご理解いただいたうえで、楽しくサービスをご利用ください。 ================================================ FILE: content/ja/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskeyサーバーへのユーザー登録や、基本的な操作について解説しています。" --- # Misskeyサーバーをさがす Misskeyはソフトウェアおよびそのプロジェクトです。 インターネットに公開されている、Misskeyを動かしているサーバーのことを**サーバー**と呼びます。 Misskeyを利用するには、どこかのサーバーにアカウントを作成し、そのサーバーを利用します。 [サーバー一覧](/servers/)から、好きなサーバーを選ぶことができます。 :::tip どのサーバーを選んでも、他のサーバーのユーザーとやり取りすることができます。 :::g-details{summary='詳細'} Misskeyには連合機能が備わっています。 連合機能によって、別のサーバーのユーザーであっても、同じサーバーのユーザーと同じようにフォローやリアクション、Renoteなどができるようになっています。 Misskeyが搭載している連合機能はActivityPubというオープンな共通規格に基づいていて、MastodonやPleromaといったほかのソフトウェアとも互換性があります。 ::: ::: ## サーバーの選び方 ### サーバーのテーマ サーバーによっては、例えば「特定のこと、ものが好き」といったテーマが決まっている場合があります。 自分にあったテーマのサーバーを探すのもおすすめです。 :::tip サーバーの一覧は[こちら](/servers/)からご覧いただけます。 ::: ================================================ FILE: content/ja/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # サーバーに登録する 登録するサーバーが決まったら、さっそくアカウントを作成しましょう。 :::tip ここでは、Misskey.ioを例にとって紹介していますが、他のサーバーでも登録方法はおおむね同じです。 ただし、入力事項はサーバーによって異なることがあります。詳しくは、サーバー管理者にお問い合わせください。 ::: ## 登録する まずは、トップページから「**このサーバーに登録する**」ボタンを探し、クリックします。 ![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png) 次に、画面の指示に従い、規約の確認や必要事項の記入を進めてください。 主に記入すべき事項は、以下の通りです。 - 招待コード(登録が招待制の場合のみ。お持ちでない場合は登録できません。) - ユーザー名(**後から変更はできません。一度退会すると同じユーザー名を取得することはできません。**) - メールアドレス(必要ないサーバーもあります) - パスワード ![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png) 必要事項の記入が終わると、メールアドレスを登録するサーバーの場合、確認メールが届きますので、速やかにメール内のリンクをクリックしてください。 ![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png) 以上で、Misskey サーバーへの登録が完了しました! これであなたも[ミスキスト](../resources/glossary/#ミスキスト)!楽しいコミュニケーションをお楽しみください。 ================================================ FILE: content/ja/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskeyの基礎知識 アカウントを作成したあなたにとりあえず知っておいてほしいことをまとめました! ## ノート Misskeyへの投稿は、「ノート」と呼ばれます。Twitterなどの一般的なSNSに比べたくさんの機能がありますので、初めての投稿を行う前に必ず確認して、上手に投稿しましょう! :::tip 詳細は、「[ノート](/docs/for-users/features/note/)」をご覧ください。 ::: ## タイムライン Misskeyは、複数のタイムラインを持っています。名前だけでは少々わかりにくいかと思いますので、それぞれがどのような働きをするのかを知っておきましょう。 :::tip 詳細は、「[タイムライン](/docs/for-users/features/timeline/)」をご覧ください。 ::: ## その他 その他にも、Misskeyには、使って楽しい機能が盛りだくさん!すべての機能に関する説明は[こちら](/docs/for-users/features/)に記載されていますので、ぜひご覧ください! ================================================ FILE: content/ja/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Misskeyの大きな特徴である、多彩な機能について解説しています。" --- # さまざまな機能 Misskeyの大きな特徴は、ほかのマイクロブログシステムには見られない多彩な機能にあります。ここでは、それらについて解説していきます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/ads.md ================================================ # 広告 Misskeyではサーバーによる広告をタイムラインなどに表示できる機能があります。 広告の右上に表示されるアイコンをクリックすることで、当該の広告の表示頻度を下げることができます。 :::tip 広告の総数が少ない場合は、表示頻度を下げた後も連続で表示される可能性があります。 ::: ## 広告の設定(管理者) サーバーのコントロールパネルから広告の追加、編集、削除を行えます。 広告には任意の画像、遷移先URL、形状、表示割合を設定できます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/antenna.md ================================================ # アンテナ アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/charts.md ================================================ # チャート Misskeyはサーバーの様々なデータソースに対するチャートを生成し表示する機能を備えています。 チャートを利用することで、サーバーの利用状況や連合の状況、各ユーザーのアクティビティなどを視覚的に把握することができます。 サーバーのチャートはサーバー情報ページから表示することができます。 以下は各チャートとその各項目の説明です。 ## 連合チャート 連合しているサーバーについてのチャートです。 ### Pub アクティビティを配送しているサーバーの数。 言い換えると、自サーバーのユーザーをフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Sub アクティビティを受信しているサーバーの数。 言い換えると、自サーバーのユーザーがフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Received アクティビティを送ってきたサーバーの数。 ### Delivered アクティビティを配送したサーバーの数。 ### Stalled アクティビティを配送する際、エラーになったサーバーの数。 ## アクティブユーザー数チャート 自サーバーのユーザーの利用状況についてのチャートです。 ### Read & Write 閲覧と書き込みを行ったユーザーの数。 ### Read 閲覧を行ったユーザーの数。 ### Write 書き込みを行ったユーザーの数。 ### < Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間未満であるユーザーの数。 ### < Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月未満であるユーザーの数。 ### < Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年未満であるユーザーの数。 ### > Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間以上前であるユーザーの数。 ### > Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月以上前であるユーザーの数。 ### > Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年以上前であるユーザーの数。 ================================================ FILE: content/ja/docs/2.for-users/3.features/clip.md ================================================ # クリップ クリップは、複数のノートをまとめることができる機能です。自分のノート・他者のノートは問いません。 クリップは複数作ることができ、それぞれに名前や説明を設定して管理することが可能です。また、クリップを他のユーザーに公開するかどうかも選択することができます。 クリップを作るには、[クリップ管理ページ](x-mi-web://my/clips)から「追加」をクリックします。 クリップにノートを追加するには、対象のノートのメニューから「クリップ」をクリックし、追加先のクリップを選択します。 ================================================ FILE: content/ja/docs/2.for-users/3.features/custom-emoji.md ================================================ # カスタム絵文字 カスタム絵文字は、サーバーで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 サーバーにどのようなカスタム絵文字が用意されているかは、Misskey Webの **サーバー情報** にある [**カスタム絵文字**](x-mi-web://about#emojis) にアクセスすると見ることができます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/deck.md ================================================ # デッキ デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 なお、メインカラムを追加しておくと、ノートやプロフィールをページで表示した際、メインカラムに内容が表示されます。 ## カラムの追加 デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 ## カラムの移動 カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 ## カラムの水平分割 カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 ## カラムの設定 カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 ## デッキの設定 デッキに関する設定は、[settings/deck](x-mi-web://settings/deck)で行えます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/ja/docs/2.for-users/3.features/drive.md ================================================ # ドライブ ドライブは、Misskey上でファイルを管理できる機能です。 :::tip 技術的に言うと、Misskeyのシステム上、すべてのファイルが一元管理されており、それをユーザーにも公開したインターフェイスがドライブと捉えることができます。 ::: Misskey Webの[ドライブページ](x-mi-web://my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 :::warning 現時点で、ドライブからファイルを削除すると、そのファイルが添付された **すべてのコンテンツ(ノート、ページなど)** も同時に消えます。 ::: ## センシティブ (NSFW) センシティブまたはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 センシティブフラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 ================================================ FILE: content/ja/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/favorite.md ================================================ # お気に入り [ノート](./note)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](x-mi-web://my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 ================================================ FILE: content/ja/docs/2.for-users/3.features/follow.md ================================================ # フォロー ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/hashtag.md ================================================ # ハッシュタグ ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。 世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、当時のTwitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。 ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp [msg]?"](/img/docs/for-users/features/hashtag/1.ja.png) FediverseでのハッシュタグはXやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。 ================================================ FILE: content/ja/docs/2.for-users/3.features/mention.md ================================================ # メンション アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFMは、Misskeyの様々な場所で使用できる専用のマークアップ言語です。' --- # MFM MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。 :::tip 実際にMFMをお試しいただける[MFMお試しコーナー](/tools/mfm-playground/)ができました! ::: ## MFMが使用可能な場所の例 - ノート本文 - CW注釈 - ユーザーの名前 - ユーザーの自己紹介 ## 構文 ### メンション アットマーク + ユーザー名で、特定のユーザーを示すことができます。 :::tip メンションについての詳細は[こちら](./mention.md)を参照してください。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### ハッシュタグ ナンバーサイン + タグで、ハッシュタグを示すことができます。 :::tip ハッシュタグについての詳細は[こちら](./hashtag.md)を参照してください。 ::: ``` #misskey ``` ### URL URLを示すことができます。 ``` https://example.com ``` ### リンク 文章の特定の範囲を、URLに紐づけることができます。 ``` [example link](https://example.com) ``` :::tip リンクテキストの前に`?`をつけると、リンクプレビューを非表示にすることができます。 ``` ?[example link](https://example.com) ``` ::: ### カスタム絵文字 コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。 :::tip カスタム絵文字についての詳細は[こちら](./custom-emoji.md)を参照してください。 ::: ``` :misskey: ``` ### 太字 文字を太く表示して強調することができます。 ``` **太字** ``` ### 目立たなくする 内容を小さく・薄く表示させることができます。 ``` MisskeyでFediverseの世界が広がります ``` ### 引用 内容が引用であることを示すことができます。 ``` > MisskeyでFediverseの世界が広がります ``` ### 中央寄せ 内容を中央寄せで表示させることができます。 ```
MisskeyでFediverseの世界が広がります
``` ### よみがな(ルビ) 内容によみがなを付けることができます。 ``` $[ruby Misskey ミスキー] ``` ### 日時 UNIX時間を指定して日時を表示できます。 ``` $[unixtime 1701356400] ``` ### コード(インライン) プログラムなどのコードをインラインでシンタックスハイライトします。 ``` `<: "Hello, world!"` ``` ### コード(ブロック) 複数行のプログラムなどのコードをブロックでシンタックスハイライトします。 プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ~~~ ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ~~~ ### 反転 内容を上下または左右に反転させます。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### フォント 内容のフォントを指定することができます。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### ぼかし 内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 検索 検索ボックスを表示できます。 ``` misskey 検索 ``` ### 文字色・背景色 文字色と背景色を変更することができます。 3,4,6桁のカラーコードで色を表現します。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 枠線 内容を枠線で囲むことができます。様々なスタイルを指定することができます。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度変更 指定した角度で回転させます。 ``` $[rotate.deg=30 misskey] ``` ### 位置変更 位置をずらすことができます。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 拡大 文字を引き延ばして表示します。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### アニメーション(びよんびよん) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### アニメーション(じゃーん) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### アニメーション(ジャンプ) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### アニメーション(バウンド) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### アニメーション(回転) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### アニメーション(ぶるぶる) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### アニメーション(ブレ) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### レインボー ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### キラキラ ``` $[sparkle 🍮] ``` ### プレーン 内側の構文を全て無効にします。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 開発者向け情報 MFMのパーサーや描画の実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js用コンポーネント - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlinパーサー実装 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dartパーサー実装 - [mfm](https://pub.dev/packages/mfm) - Flutter用描画ウィジェット ================================================ FILE: content/ja/docs/2.for-users/3.features/mute-and-block.md ================================================ # ミュートとブロック 好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 :::tip ミュートとブロックは併用できます。 ::: :::warning 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。 ::: Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 ## ミュート ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) - そのユーザーからの通知 - メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - など Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 :::tip ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 ::: ## リノートをミュート ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## ブロック ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - フォローする - ユーザーリストに追加する - 返信する、Renoteする - リアクションする、アンケートに投票する - メッセージを送信する - など また、 - ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 - ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 :::warning ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。 ::: :::warning 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。 ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/note.md ================================================ # ノート ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## ノートを作成する Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## リノート 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## 公開範囲 ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### フォロワー 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### 指名 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 ### 公開範囲の比較
パブリックホームフォロワー指名
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## 新規投稿の通知 ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/ja/docs/2.for-users/3.features/online-status.md ================================================ # オンラインステータス ユーザーの**オンラインステータス**は、そのユーザーのMisskey利用の状態を表すものです。 オンラインステータスは、ユーザーページなどでユーザーアイコンの隅にインジケーターとして表示されます。
状態 説明
🟢緑 オンライン 今まさにMisskeyを使用していると考えられる状態
🟡黄 アクティブ 今は退席しているものの、Misskeyの利用自体は行われている状態
🔴赤 オフライン Misskeyを利用していないと考えられる状態
⚫灰 不明 ステータスを非公開にしている、もしくはリモートユーザー等でステータスが不明の状態
オンラインステータスは自動的に変わり、手動で設定することは出来ません。 設定により、オンラインステータスを非公開にすることができます。 :::warning ユーザーのサジェストなど、一部の機能においてはオンラインステータスを元に処理される場合があるため、ステータスを非公開にすると他のユーザーから見つけにくくなることがあります。 ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/pages.md ================================================ # ページ Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## ページ設定 ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### タイトル このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### ページURL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### フォント **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### アイキャッチ画像 **アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。 ## コンテンツ ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。 - セクション - テキスト - 画像 - ノート埋め込み ### セクション タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。 ### テキスト テキスト本文を入力します。MFMやカスタム絵文字を使用できます。 ### 画像 画像を表示します。ドライブより画像を設定します。 ### ノート埋め込み ノート ID を入れる事で、そのノートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。 ================================================ FILE: content/ja/docs/2.for-users/3.features/plugin.md ================================================ # プラグイン Misskey Webにはプラグイン機能があり、ユーザーがMisskey Webの機能を拡張することができます。 プラグインの作成方法については[こちらのドキュメント](../../for-developers/plugin/create-plugin)を参照してください。 ================================================ FILE: content/ja/docs/2.for-users/3.features/poll.md ================================================ # アンケート アンケートは、他の人からの意見を簡単に聞くことができる機能です。 ## アンケートをノートに添付する アンケートは、[ノート](/docs/for-users/features/note)に添付する形で投稿することができます。ノートにアンケートを添付するには、投稿フォームの下部にある「アンケート」ボタンを選択します。 ## 選択肢を増やす アンケートには、選択肢を10個まで作ることができます。選択肢の入力欄は、「追加」ボタンを押すことで追加することができます。 追加しすぎてしまった入力欄は、入力欄の横の☓ボタンを押すことで削除することができます。 :::warning いずれかの入力欄が空白だった場合、そのアンケートが添付されたノートは投稿できません。 ::: ## 複数回答を可能にする 「複数回答可」スイッチをオンにすると、アンケートに回答する人が複数の選択肢に投票できるようになります。 ## アンケートの期限を設定する アンケートには、終了する期限を、日時指定か経過指定のいずれかで設定することができます。 設定するには、「期限」の欄から「日時指定」もしくは「経過指定」をクリックします。 一度設定した期限を取り消す場合には、「期限」の欄から「無期限」を選択します。 ## アンケートに投票する アンケートが添付されたノートがタイムラインに流れてきたときは、アンケートに投票してみましょう。 アンケートに投票するには、各選択肢をクリックします。アンケートを投稿したユーザーが複数回答可に設定していない場合は、その時点でのアンケートの結果が表示されます。 アンケートを投稿したユーザーが複数回答可に設定していた場合、他の選択肢にも投票することができます。この場合、結果は自動では表示されません。 複数回答の設定に関わらず、自動でアンケートの結果が表示されなかったり、投票前に結果を見たい時は、選択肢の下にある「結果を見る」をクリックしてアンケートの結果を表示することができます。 未投票のアンケートの結果を見たあと、もう一度隠すときは「投票する」をクリックします。 :::tip 未投票アンケートには、結果を表示した状態でも投票できます。 ::: 投票をすると、自分の投票した選択肢に✔がつきます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/reaction.md ================================================ # リアクション 他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 Misskey Webでリアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji.md)も使用できます。 ## リアクションピッカーのカスタマイズ Misskey Webでは、ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「絵文字パレット」で設定します。 ## リモート投稿へのリアクションについて リアクションはMisskeyオリジナルの機能であるため、リモートサーバーがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 ## リモートからのリアクションについて リモートから「Like」アクティビティを受信したとき、Misskeyでは「❤」のリアクションとして解釈されます。 ## 自分のリアクション一覧を見る Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。 設定から、このリアクション一覧を公開するようにすることもできます。 ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/ja/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/share-form.md ================================================ # 共有フォーム Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## クエリパラメータ :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ---- | ---- | | `title` | タイトル。本文の先頭に\[ … \]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。 | 名前 | 説明 | | ---- | ---- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ---- | ---- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---- | ---- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | ---- | ---- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/silence.md ================================================ # サイレンス サイレンスは、アカウントに設定される状態のひとつです。 アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、指名のノートは引き続き投稿可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 ================================================ FILE: content/ja/docs/2.for-users/3.features/theme.md ================================================ # テーマ テーマを設定して、Misskeyクライアントの見た目を変更できます。 ## テーマの設定 [設定 > テーマ](x-mi-web://settings/theme) ## テーマを作成する テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` * `id` ... テーマの一意なID。UUIDをおすすめします。 * `name` ... テーマ名 * `author` ... テーマの作者 * `desc` ... テーマの説明(オプション) * `base` ... 明るいテーマか、暗いテーマか * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 * テーマはここで設定されたベーステーマを継承します。 * `props` ... テーマのスタイル定義。これから説明します。 ### テーマのスタイル定義 `props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5][_light.json5]で、`dark`なら[_dark.json5][_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend-shared/themes/_light.json5 [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend-shared/themes/_dark.json5 #### バリューで使える構文 * 16進数で表された色 * 例: `#00ff00` * `rgb(r, g, b)`形式で表された色 * 例: `rgb(0, 255, 0)` * `rgba(r, g, b, a)`形式で表された透明度を含む色 * 例: `rgba(0, 255, 0, 0.5)` * 他のキーの値の参照 * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 * 例: `@panel` * 定数(後述)の参照 * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 * 例: `$main` * 関数(後述) * `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 * `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 * `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 * `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 * 0.0のとき完全に透明、1.0で完全に不透明になります。 * `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 * `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/ja/docs/2.for-users/3.features/thread-mute.md ================================================ # スレッドミュート :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/ja/docs/2.for-users/3.features/timeline.md ================================================ # タイムライン タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## 比較
ソース 公開範囲 タイムライン
ホーム ローカル ソーシャル グローバル
ローカル(フォロー) 公開
ホーム
フォロワー
リモート(フォロー) 公開
ホーム
フォロワー
ローカル(未フォロー) 公開
ホーム
フォロワー
リモート(未フォロー) 公開
================================================ FILE: content/ja/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > サービス連携](x-mi-web://settings/connect)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow 自分が誰かをフォローした際に発生します。 ### followed 自分が誰かからフォローされた際に発生します。 ### unfollow 自分が誰かをフォロー解除した際に発生します。 ### note 自分がノートを投稿した際に発生します。 ### reply 自分のノートに返信された際に発生します。 ### renote 自分のノートがRenoteされた際に発生します。 ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/ja/docs/2.for-users/3.features/widgets.md ================================================ # ウィジェット ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## 利用可能なウィジェット一覧 - プロフィール - サーバー情報 - 付箋 - 通知 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー - 今日誕生日のユーザー - チャット ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### 通知 通知の最新の内容を表示します。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ### 今日誕生日のユーザー フォローしているユーザーのうち、今日が誕生日のユーザーを表示します。 ### チャット チャットの最新の内容を表示します。 ================================================ FILE: content/ja/docs/2.for-users/3.features/word-mute.md ================================================ # ワードミュート ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ワードミュートは、[設定 > ミュートとブロック](x-mi-web://settings/mute-block)から設定できます。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/ja/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/ja/docs/2.for-users/4.resources/_dir.yml ================================================ title: "その他のリソース" description: "機能面以外の知識や、困ったときの対処法を紹介しています。" ================================================ FILE: content/ja/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[App Store](https://apps.apple.com/app/id6476077738)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (iOS, Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。[App Store](https://apps.apple.com/app/id6747976082)。[Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [公式サイト](https://b123400.net/tootrain/ja)。[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/ja/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/ja/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskeyに関する用語集です。' --- # 用語集 Misskeyに関する用語集です。 ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#リノート) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー Misskeyのサービスをユーザーに提供する主体。各サーバーは独立して運営されており、他のサーバーと相互に接続して情報をやり取りすることができます。 ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/ja/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hubについて Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。 「Misskeyの全てがここにある」を目指しています。 Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub) :::tip Misskey HubはNuxtを使ってビルドされた静的サイトです。 ::: ## Misskey Hubに貢献する ドキュメントの追加や、翻訳など歓迎です。 ================================================ FILE: content/ja/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/ja/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/ja/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/ja/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" # Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面左下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/ja/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" # Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面左下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/ja/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" # Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/ja/docs/2.for-users/_dir.yml ================================================ title: "Misskeyユーザー向け" ================================================ FILE: content/ja/docs/3.for-admin/_dir.yml ================================================ title: "サーバー運営者向け" description: "サーバーの作成方法や、運営に際してのお役立ち情報を公開中。" ================================================ FILE: content/ja/docs/3.for-admin/features/1.index.md ================================================ --- description: "サーバー管理者向けの機能の説明です。" --- # サーバーの機能 Misskeyではサーバー運営に役立つ様々な機能が提供されています。 ================================================ FILE: content/ja/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/ja/docs/3.for-admin/features/announcement.md ================================================ # お知らせ お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。 お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。 :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/ja/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/ja/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/ja/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/ja/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/ja/docs/3.for-admin/features/role.md ================================================ # ロール ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## ベースロール 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ## 権限 ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/ja/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[PGroonga](https://pgroonga.github.io)を用いて検索を行います。 - PGroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## PGroongaを使う ### PGroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 18の環境にPGroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-18-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:18-alpine`の代わりに`groonga/pgroonga:latest-alpine-18-slim`を使用してください。 ### PGroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/ja/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskeyのインストールと保守" description: "Misskeyのインストール方法や、その後の保守作業に役立つ情報を掲載しています。" ================================================ FILE: content/ja/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Misskeyサーバーの作成方法についての案内です。' --- # Misskeyサーバーの作成 Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## XServer SNSでインストール XServer SNSでは、サービスを申し込むだけでMisskeyのサーバーが自動で作成されます。 サーバーの管理やメンテナンスも運営元が対応してくれるので、難しい知識不要でサーバー運用が可能です。 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## インストール方法一覧 ================================================ FILE: content/ja/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/ja/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskeyを簡単にインストールするためのシェルスクリプトができました! いくつかの質問に答えるだけで、UbuntuサーバーへMisskeyを簡単にインストールできます! また、アップデートスクリプトもあります。 [v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md) ## 準備するもの 1. ドメイン 2. Ubuntuがインストールされたサーバー 3. Cloudflareアカウント(推奨) :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。 ## Cloudflareの設定 Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. インストールをはじめる SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. アップデートする アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 主にディレクトリを覚えておくのに使用します。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 実行されているコンテナとイメージの番号を保存しています。 コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/ja/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'このガイドはDockerを使ったMisskeyセットアップ方法を説明します。' --- Docker Composeを使ったMisskey構築 ================================================================ このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::tip{label='前提条件'} - DockerおよびDocker Composeがインストールされていること。 ::: リポジトリの取得 ---------------------------------------------------------------- ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` 設定 ---------------------------------------------------------------- 下記コマンドで、各種設定ファイルのサンプルをコピーします。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` `default.yml`と`docker.env`をファイル内の説明に従って編集してください。 また、必要に応じて、`compose.yml`を編集します。(ポートを変更したい場合など) ビルドと初期化 ---------------------------------------------------------------- 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ``` shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` 起動 ---------------------------------------------------------------- お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh sudo docker compose up -d ``` GLHF✨ Misskeyのアップデート方法 ---------------------------------------------------------------- :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 cliコマンドを実行する方法 ---------------------------------------------------------------- ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/ja/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 [TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは*incubator* trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 *incubator* trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/ja/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'このガイドではMisskeyのインストール・セットアップ方法について解説します。' --- Misskeyを手動で構築する ================================================================ このガイドではMisskeyのインストール・セットアップ方法について解説します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: :::tip{label='前提条件'} #### 以下のソフトウェアがインストール・設定されていること - **[Node.js](https://nodejs.org/en/)** (v22.15.0 以降の v22 系 または v24.10.0 以降の v24 系) - **[pnpm](https://pnpm.io/)** (v10.16.0以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 ::: ユーザーの作成 ---------------------------------------------------------------- Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ```sh adduser --disabled-password --disabled-login misskey ``` Misskeyのインストール ---------------------------------------------------------------- ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` 設定 ---------------------------------------------------------------- 設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。 ```sh cp .config/example.yml .config/default.yml ``` `default.yml` をファイル内の指示に従って編集します。 ビルドと初期化 ---------------------------------------------------------------- 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` 起動 ---------------------------------------------------------------- お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` エディタで開き、以下のコードを貼り付けて保存: ``` ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskeyサービスの起動 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 アップデートが終わり次第、Misskeyプロセスを再起動してください。 ```sh sudo systemctl restart misskey ``` :::tip ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/ja/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 * OSは**Ubuntu 22.04 LTS**を利用する。 * ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 * メモリは4GB程度あると良い。 * (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) * 独自のドメインを購入し、Cloudflareを使用する。 * ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 * ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudflareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 * 18行目と30行目のドメイン名 * 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) * 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 * サーバーにスワップを追加する * ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける * [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) * [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) * [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/ja/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskeyの保守・トラブルシューティング" description: "Misskeyサーバーの運営には定期的なメンテナンスが不可欠。役立つ情報や困ったときの対処法をご紹介します。" ================================================ FILE: content/ja/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/ja/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/ja/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/ja/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ GitHub Actionsを使用してDocker Hubへpushする方法 ================================================================ [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/ja/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ``` yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ``` yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/ja/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!** [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 ***ImageMagickは不要です!*** ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? * 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? * `apt install build-essential`を試す。 * Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/ja/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "モデレーション上のお役立ち情報" description: "実際にサーバーを運営するにあたり役立つ情報についてまとめています。" ================================================ FILE: content/ja/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/ja/docs/4.for-developers/_dir.yml ================================================ title: "開発者向け" description: "プラグイン・Play開発者や、APIを利用した外部アプリケーションの開発者向けリソース。" ================================================ FILE: content/ja/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/) Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:` Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:` [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:` [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、[Misskey Play](./plugin/create-play/)、Scratchpadで使用できます。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Ui:`とついた部分を参照して下さい。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str` 返り値: `str` Misskey内の全てのAiScript環境で使用できます。 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any` 返り値: `null` [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 コンソールに文字列を出力します。 `<:`構文も同様の働きをします。 ================================================ FILE: content/ja/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\ ::: ================================================ FILE: content/ja/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/ja/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ## ReScript - [rescript-misskey-api](https://github.com/f3liz-dev/rescript-misskey-api) ================================================ FILE: content/ja/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # チャンネル一覧 ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/ja/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/ja/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/ja/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ |--------------------------------------------------------------------------------| | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | ---------------------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/ja/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` ユーザーが認証を完了した際には、ここで指定する`redirect_uri`のアドレスに認証コードが転送されます。 --- Misskey v2026.3.0以降では、このHTMLによるクライアントディスカバリの他に、JSON形式のクライアントメタデータもサポートされるようになりました。JSON形式のクライアントメタデータを提供する場合は、以下のようなJSONドキュメントをHTTPSアドレスでアクセスできるようにしてください。詳細な仕様については[IndieAuth (IndieWeb Living Standard 11 July 2024)](https://indieauth.spec.indieweb.org/)を参照してください。 なお、このクライアントディスカバリはOpenID ConnectのClient Metadata 1.0で定義されているものとある程度共通した形式になっていますが、MisskeyはOpenID ConnectによるOAuthには対応していませんので、その点にはご留意ください。 ```json { "client_id": "https://example.com", // 必須。クライアントIDはこのクライアントメタデータが置いてある場所のURLにする必要があります。 "client_name": "My Misskey App", // 任意。ユーザーに見せるアプリの名前を指定します。無い場合はクライアントIDが名前になります。 "client_uri": "https://example.com", // 必須。client_idの接頭辞にする必要があります。 "logo_uri": "https://example.com/logo.png", // 任意。アプリのロゴを指定できます。アスペクト比が1:1のロゴを推奨します。 "redirect_uris": [ "https://example.com/callback" // 必須。認証コードの転送先となるURLを指定します。 ] } ``` ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ---------------------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ----------------------------------------- | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。  | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/ja/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/ja/docs/4.for-developers/bot/1.index.md ================================================ # Botの作成 [Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 ## 関連リソース - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/ja/docs/4.for-developers/plugin/_dir.yml ================================================ title: "プラグイン・Playの作成" description: "プラグインやPlayを作成する方法・各種リファレンスを公開中。" ================================================ FILE: content/ja/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/ja/docs/4.for-developers/plugin/create-plugin.md ================================================ # プラグインの作成 Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/ja/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/ja/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/ja/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # リリースノート Misskeyのリリースノートを掲載しています。 ## 2026.5.1 リリース日: 2026/05/06 ### General - Enhance: チャンネルの作成の可否をロールポリシーで制御できるように - Fix: `.devcontainer/compose.yml`のvolumeのマウントパスを修正 ### Client - Enhance: ノートの詳細表示での公開範囲の表示を改善 (Cherry-picked from https://github.com/kokonect-link/cherrypick/commit/ecc75563f4e428b66adccc379bf317b5b21ed8e6) - Fix: ロール設定画面でロールをアサイン/アサイン解除した際、リロードしなくても画面に反映されるよう修正 ### Server - Fix: ID生成アルゴリズムにULIDを使用している場合に通知が約10秒遅延する問題を修正 - Fix: 公開範囲がフォロワーの投稿が通知されない問題を修正 - Fix: URLプレビューが動作しない問題を修正 ## 2026.5.0 リリース日: 2026/05/02 ### General - Enhance: アバターデコレーションにカテゴリを設定できるように ### Client - Enhance: チャンネル指定リノートでリノート先のチャンネルに移動できるように - Enhance: ベータ版でのアップデート時のダイアログの更新情報リンクをGitHubのReleasesページに遷移するようにし、正しく閲覧できるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: ドライブへの画像アップロード時にファイル名の変更が無視される不具合を修正 - Fix: 連合が無効化されたサーバーで一部の設定項目が空欄で表示される問題を修正 - Fix: オーディオ、動画の再生速度メニューが開けない問題を修正 ### Server - Enhance: メモリ使用量を削減 - Enhance: 起動の高速化 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1410) - Enhance: バックエンドの開発モード時の安定性向上 - Enhance: バックエンドビルド・テスト時に使用する依存関係の整理(swc/esbuild→Rolldown, Jest→Vitest) - Fix: ファイルシステムを用いる処理におけるパスの取り扱いを改善 - Fix: `/api-doc` にアクセスできない問題を修正 - Fix: support `alsoKnownAs` from remote actors as either array or unwrapped singleton - Fix: ローカルに存在しないリモートアカウントに対するアカウント削除リクエストを受信した際に、そのユーザーを新規作成して削除する挙動を修正 - Fix: Inboxでの特定のエラーによる失敗はDelayedにしない - Fix: ID生成アルゴリズムにULIDを使用している場合にMisskeyが正しく動作しない問題を修正 - Fix: リレー経由で届いたノートがリノートとして表示される問題を修正 - Fix: robots.txtの内容を調整 - Fix: 特定のユーザーに管理者権限を持つロールが複数ついている際に、取得できるユーザーIDが重複する問題を修正 (Cherry-picked from https://github.com/lqvp/misskey-tempura/commit/17ed4108cec4b6bd2fd989db5a9091db91fa37a7) - Fix: ブロックしたサーバーからのInboxジョブが蓄積し続ける問題を修正 (Cherry-picked from https://github.com/lqvp/misskey-tempura/commit/3f0f4bfe923f2b3a7837017b54841598f421c6ef) - Fix: support activity with `actor` as an id string or embedded object in inbox processor and ActivityPub inbox service - Fix: コンフィグファイルに `meilisearch` の設定がある状態でほかの検索プロバイダを利用すると、UI上からリモートのノートの検索ができない問題を修正 - Fix: ノートに関する通知で公開範囲が考慮されていない問題を修正 (Cherry-picked from https://github.com/lqvp/misskey-tempura/commit/cbce96c520a138b8bcd16890ff6f2952830fa166 originally presented in https://github.com/yojo-art/cherrypick/pull/743) ## 2026.3.2 リリース日: 2026/03/31 ### General - 依存関係の更新 ### Client - Enhance: アプリ内ウィンドウの初期サイズを画面サイズに応じて自動で調整するように - Fix: 絵文字パレットが空の状態でMisskeyについてのページが閲覧できない問題を修正 - Fix: ウィンドウのタイトルをクリックしても最前面に出ないことがある問題を修正 ### Server - Fix: 自分の行ったフォロワー限定投稿または指名投稿に自分自身でリアクションなどを行った場合のイベントが流れない問題を修正 - Fix: 署名付きGETリクエストにおいてAcceptヘッダを署名の対象から除外(Acceptヘッダを正規化するCDNやリバースプロキシを使用している際に挙動がおかしくなる問題を修正) - Fix: WebSocket接続におけるノートの非表示ロジックを修正 - Fix: チャンネルミュートを有効にしている際に、一部のタイムラインやノート一覧が空になる問題を修正 - Fix: 初期読込時に必要なフロントエンドのアセットがすべて読み込まれていない問題を修正 ## 2026.3.1 リリース日: 2026/03/09 ### General - 依存関係の更新 ### Server - Fix: セキュリティに関する修正 ## 2026.3.0 リリース日: 2026/03/05 ### Note - `users/following` の `birthday` プロパティは非推奨になりました。代わりに `users/get-following-users-by-birthday` をご利用ください。 ### General - Enhance: 「もうすぐ誕生日のユーザー」ウィジェットで、誕生日が至近のユーザーも表示できるように (Cherry-picked from https://github.com/MisskeyIO/misskey) - 「今日誕生日のユーザー」は「もうすぐ誕生日のユーザー」に名称変更されました - Fix: ユーザーハッシュタグページでユーザーの読み込みが重複する問題を修正 - 依存関係の更新 ### Client - Enhance: ドライブのファイル一覧で自動でもっと見るを利用可能に - Enhance: ウィジェットの表示設定をプレビューを見ながら行えるように - Enhance: ウィジェットの設定項目のラベルの多言語対応 - Enhance: 画面幅が広いときにメディアを横並びで表示できるようにするオプションを追加 - Enhance: パフォーマンスの向上 - Fix: ドライブクリーナーでファイルを削除しても画面に反映されない問題を修正 #16061 - Fix: 非ログイン時にログインを求めるダイアログが表示された後にダイアログのぼかしが解除されず操作不能になることがある問題を修正 - Fix: ドライブのソートが「登録日(昇順)」の場合に正しく動作しない問題を修正 - Fix: 高度なMFMのピッカーを使用する際の挙動を改善 - Fix: 管理画面でアーカイブ済のお知らせを表示した際にアクティブなお知らせが多い旨の警告が出る問題を修正 - Fix: ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正 - Fix: 2月29日を誕生日に設定している場合、閏年以外は3月1日を誕生日として扱うように修正 - Fix: `Mk:C:container` の `borderWidth` が正しく反映されない問題を修正 - Fix: mCaptchaが正しく動作しない問題を修正 - Fix: 非ログイン時にリバーシの対局が表示されない問題を修正 - Fix: ノートの詳細表示でリアクションが全件表示されない問題を修正 - Fix: 動画埋め込みプレイヤーなどの一部ウィンドウで、ウィンドウのサイズ変更や移動が正常に行えない問題を修正 - Fix: 画像エフェクトの修正 - 塗りつぶし・モザイク・ぼかしエフェクトを回転させると歪む問題を修正 - モザイクの格子のサイズが画像の縦横比によって長方形となる問題を修正 - モザイクの色味がより自然になるように修正 - ぼかしに不自然な縦線が入る問題を修正 - Fix: フォロー承認通知でフォローされた際のメッセージの絵文字が表示されない問題を修正 - Fix: HTTP環境など(Secure Contextのない環境)で、設定画面が閲覧できない問題を修正 ### Server - Enhance: OAuthのクライアント情報取得(Client Information Discovery)において、IndieWeb Living Standard 11 July 2024で定義されているJSONドキュメント形式に対応しました - JSONによるClient Information Discoveryを行うには、レスポンスの`Content-Type`ヘッダーが`application/json`である必要があります - 従来の実装(12 February 2022版・HTML Microformat形式)も引き続きサポートされます - Enhance: メモリ使用量を削減 - Fix: `/admin/get-user-ips` エンドポイントのアクセス権限を管理者のみに修正 ## 2025.12.2 リリース日: 2025/12/22 ### Note v2025.12.0で行われた「configの`trustProxy`のデフォルト値を`false`に変更」について、正しく環境に応じた設定を行わないとサインインが困難になるといった状態を緩和するために、以下の対応を行いました。 **正しく設定しないと、上記のような不具合の原因となったり、セキュリティリスクが高まったりする可能性があります。必ず現在のconfigをご確認の上、必要に応じて値を変更してください。** - `trustProxy`について、デフォルト(configに値が設定されていない状態)ではループバックアドレスとローカルIPアドレス空間を信頼するようにしました。 - `trustProxy`の設定方法について、より詳細に記述しました。 - リバースプロキシやCDNなどのより上流のレイヤでレートリミットを設定したい場合や、緊急時の一時的な緩和策として、Misskey内部でのIPアドレスペースでのレートリミットを無効化できるようにしました。 ### General - 依存関係の更新 ### Client - Enhance: デッキのUI説明を追加 - Enhance: 設定がブラウザによって消去されないようにするオプションを追加 - Fix: バージョン表記のないPlayが正しく動作しない問題を修正 バージョン表記のないものは v0.x 系として実行されます。v1.x 系で動作させたい場合は必ずバージョン表記を含めてください。 - Fix: デッキUIでメニュー位置を下にしているとプロファイル削除ボタンが表示されないのを修正 - Fix: 一部のUnicode絵文字のリアクションがボタンにならない問題を修正 ### Server - Enhance: Misskey内部でのIPアドレスペースでのレートリミットを無効化できるように - リバースプロキシやCDNなど別のレイヤで別途レートリミットを設定する場合や、ローカルでのテスト用途等として利用することを想定しています。 - デフォルトは `enableIpRateLimit: true`(Misskey内部でのIPアドレスペースでのレートリミットは有効)です。 - Fix: コントロールパネルのジョブキューページで使用される一部APIの応答速度を改善 ## 2025.12.1 リリース日: 2025/12/14 ### Client - Fix: 特定の条件下でMisskeyが起動せず空白のページが表示されることがある問題を軽減 - Fix: 初回読み込み時などに、言語設定で不整合が発生することがある問題を修正 - Fix: 削除されたノートのリノートが正しく動作されない問題を修正 - Fix: チャンネルオーナーが削除済みの時にチャンネルのヘッダーメニューが表示されない不具合を修正 - Fix: ドライブで登録日以外でソートする場合は月でグループ化して表示しないように - Fix: `null` を返す note_view_intrruptor プラグインが動作しない問題を修正 ### Server - Fix: ジョブキューでSentryが有効にならない問題を修正 ## 2025.12.0 リリース日: 2025/12/06 ### Note - configの`trustProxy`のデフォルト値を`false`に変更しました。アップデート前に現在のconfigをご確認の上、必要に応じて値を変更してください。 ### Client - Fix: stacking router viewで連続して戻る操作を行うと何も表示されなくなる問題を修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: ActivityPubアクティビティを送信する際のパフォーマンス向上 - Enhance: 依存関係の更新 - Fix: セキュリティに関する修正 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように `#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 * β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように * デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) * 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように * 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 * すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 * デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました * 過去に発行した招待コードを確認できるようになりました * ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました * 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 * ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) * ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 * アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 * デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 * アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように * 絵文字ピッカーから入力可能になります - データセーバーモードを追加 * 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 * ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように * MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 * 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた * モバイルではヘッダーは上下に分割され、下段にタブが表示されるように * iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように * メインタイムラインではタイトルを表示しない * メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/ja/docs/6.donate.md ================================================ # プロジェクトへの寄付 :::tip 法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/) ::: Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(サーバーによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。以下の方法で受け付けています。(本ページの内容をよくお読みになったうえでご寄付をお願いします) - 継続支援 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 単発支援 - (おすすめ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 仮想通貨: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazonの欲しいものリスト](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 高額の寄付(例えば3万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。 ::: :::tip 額に応じて以下の返礼を用意しています。 - 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与 - 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載 - 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載 - 20,000円以上: ↑ + [MisskeyIDプレートの交付](/docs/mi-card/) ::: :::warning いかなる場合(何らかの理由で返礼を受け取れなかった等も含む)も、返金を行うことはできません。ご了承の上、ご寄付をお願いいたします。 ::: :::warning **バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて `@syuilo@misskey.io` までお申し付けください。** (メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります。どうしても連絡がつかない場合はMisskey Projectお問い合わせフォームよりご連絡ください) ::: また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 ================================================ FILE: content/ja/docs/7.become-a-sponsor.md ================================================ # スポンサーについて :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Misskey Projectはスポンサーを募集しています。 スポンサーになると、MisskeyやMisskey Hubへの会社ロゴ掲載や、技術サポートを受けることができます。 [詳細はこちらからお問い合わせください。](/contact/) ================================================ FILE: content/ja/docs/8.mi-card.md ================================================ # MisskeyIDプレート Misskey Projectへのご支援特典として、物理的な「MisskeyIDプレート」をご用意しています! **MisskeyIDプレートは、シリアルナンバーが刻印されたあなただけの金属製IDプレートです。** ずっしりと重厚な金属製プレートに精密な加工を施し、ステータス性の高いメタルプレートに仕上げました。 しゅいろによって表面、裏面ともに丁寧にデザインされています。一生モノとしてぜひお手元でお楽しみください! 実物の動画は[こちら](https://www.youtube.com/shorts/AdzzwxEa-WE) (照明の関係で金色にも見えますが実際は銀色です) ## プレート仕様 - 寸法: 54.0mm x 85.6mm - 質量: 約34g - 素材: 1.0mm厚鏡面仕上げステンレス鋼 - 加工: 鏡面加工(表面部)、エッチング加工(表面その他)、シルク印刷(ロゴ部)、レーザー刻印(ナンバリング部) - 意匠: しゅいろによるデザイン / シリアルナンバー、バーコード、二次元コード、藍ちゃんサイン刻印付き オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(無料) ### 3Dで見る ::X__Docs__mi-card__InteractiveView :: ※裏面のデザインは省略されています。モデルは実物を正確に再現するものではありません。 ## 交付対象 **累計の支援金額が2万円以上の方に1枚進呈させていただきます。** :::g-details{summary='2枚以上ご希望の場合'} 2枚以上ご希望の場合は、3万円ごとに1枚追加で進呈いたします。 追加で受け取り可能な枚数は、支援額から2万円を引いた額を3万円で割った数になります。 例えば、支援額の合計が5万円以上で合計2枚、8万円以上で合計3枚、というような計算になります。 合計で何枚受け取り可能かを計算できます: ::X__Docs__mi-card__Calculator :: なお、在庫状況によっては、ご希望の枚数をご用意することが叶わない場合があります。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: USドルでの支援は、いつ支援かにかかわらず 1USD = 150JPY 換算といたします。その他の通貨の場合の扱いについてはご相談ください。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 なお現在、大変申し訳ございませんが配送の都合上、**交付は日本国内に居住されている方のみ対象とさせていただいています。** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** 各Misskeyサーバーへの支援はこちらの特典の対象となりませんのでご注意ください。 [Misskey Projectへの支援はこちらから](/docs/donate/) ::: :::tip 累計支援額の計算には支援方法、期間は問いません。 例えば、2023年にPayPalで5000円の支援をいただき、2024年にFanboxで12000円、Amazonの欲しいものリストで3000円分のギフトを頂いたようなケースでも、5000 + 12000 + 3000 = 20000 となり受け取りの権利があります。 ::: ## 申請方法 お手数ですが以下のフォームから申請を行ってください。(Googleアカウントが必要です) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 配送は日本郵便にて行います。**送料は無料です。** - 発送時は追跡番号をメールにてご連絡いたします。 - 土日も配達されます。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。お手元に到着時、万が一損傷などありましたら日本郵便へお問い合わせお願いします。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 また、配送方法のご指定は承れません。 ::: ## 注意事項 - 仕様は予告なく変更することがあります。 - シリアルナンバーは選択いただけません。 - 細かなキズが製造上少なからず発生しますがご容赦ください。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 予告なく配布を一時停止または終了することがあります。 - 予告なく交付基準額を変更することがあります。 - 紛失・破損・盗難等された場合に再発行はできませんので大切に保管してください。 - 転売・譲渡はご遠慮いただけますと幸いです。 ================================================ FILE: content/ja/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/ko/.docs-legacy/admin/cdn.md ================================================ # CDN 설정하기 Misskey 인스턴스를 공개할 때, 저희는 [Cloudflare](https://www.cloudflare.com)와 같은 CDN 서비스를 사용하는 것을 추천합니다. CDN을 활용하면 이러한 장점이 있습니다: - 정적 콘텐츠를 캐시해, 서버의 부하를 줄여줍니다. - 서버의 IP 주소가 덜 노출되어, DoS 공격과 같은 공격에 더 안전합니다. ## 캐싱 Misskey Web은 완전히 정적이며 서버 없이도 작동합니다. Misskey Web 클라이언트는 모두 CDN에 캐싱할 수 있습니다. Misskey API는 캐싱할 수 없습니다. 다음 설정을 CDN에 구성해야 합니다: - `/api/*`를 제외한 모든 요청을 캐싱 :::tip Misskey를 업데이트할 때, 모든 캐시를 삭제할 필요는 없습니다. :::: ================================================ FILE: content/ko/.docs-legacy/admin/default-reaction.md ================================================ # 기본 반응 변경 데이터베이스에서 `meta.useStarForReactionFallback` 불리언 값을 변경함으로서, ActivityPub에서 "좋아요"의 기본 표시를 '👍'에서 '⭐'로 변경할 수 있습니다. ================================================ FILE: content/ko/.docs-legacy/admin/emoji.md ================================================ # 커스텀 이모지 관리 커스텀 이모지는 어드민과 모더레이터가 인스턴스 설정의 커스텀 이모지 서브메뉴에서 설정할 수 있습니다. 기본적으로 현재 로컬에 설치된 이모지 목록을 보여줍니다. 처음에는 목록이 비어 있지만, 여러 방식으로 이모지 추가가 가능합니다. ## 다른 인스턴스에서 이모지 복사 이모지는 다른 인스턴스로부터 손쉽게 복사할 수 있습니다. 이모지를 복사하려면, 커스텀 이모지 설정에서 "리모트" 탭으로 전환하세요. 해당 메뉴에서, 이모지를 이름이나 호스트로 검색할 수 있습니다. 원하는 이모지를 찾았다면 그 이모지를 클릭하세요. 이모지를 들여올 수 있는 작은 메뉴가 표시됩니다. 모든 이모지는 저작권이 있을 수 있으며 다른 이모지를 사용할 때 저작권을 확인하는 것은 당신의 의무입니다. ## 개별 이모지 들여오기 만약 커스텀 이모지로 전환하고 싶은 이미지 파일이 있다면 그 이미지를 이모지로 들여올 수 있습니다. 노트에 파일을 첨부하는 것처럼 동작합니다: 새 파일을 업로드하거나, Misskey 드라이브에서 선택하거나, 혹은 다른 URL에서 업로드하는 것도 가능합니다. :::danger 드라이브에서 이모지를 들여온다고 해서 파일이 별도로 복사되는 것은 아닙니다. 드라이브에서 해당 파일이 삭제되면 이모지도 망가지니 주의해주세요. ::: ## 대량으로 이모지 들여오기 이모지는 특별한 포맷을 따르는 ZIP 파일을 통해 들여올 수도 있습니다. 이 기능은 커스텀 이모지 창에서 맨 오른쪽 위의 점 3개(...) 메뉴에서 찾을 수 있습니다. :::warning 이모지를 대량으로 들여오는 과정에서 기존 이모지를 덮어쓰거나 인스턴스를 망가트릴 수 있습니다. 확인된 출처, 되도록 직접 작성한 이모지만을 들여오십시오. ::: ### 이모지 묶음 포맷 압축 파일의 최상위 폴더에 `meta.json` 파일이 묶음의 이모지 정보를 가지고 있어야 합니다. 타입 정의는 다음과 같으며, `Meta`는 모든 파일의 구조입니다. ```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[]; }; } ``` `Meta`의 각 필드는 현재 `emojis` 필드 이외에는 이모지 들여오기 과정에서 사용되지 않습니다. 각 `Emoji`에 대하여: - `downloaded`: 항상 `true`로 설정되어 있어야 합니다. 없거나 `true`에 상응하지 않으면, 이모지를 들여오지 않습니다. - `fileName`: 압축 파일 내의 이미지 파일 이름입니다. - `emoji`: 이모지의 정보로 들여올 때 해당 정보가 데이터베이스에 기록됩니다. 대부분의 필드가 현재 있는지 여부도 확인하지 않습니다만, 다음은 사용되고 있습니다: - `name`: 사용자에게 표시되는 주요 이름. `blobfox`로 설정했다면 `:blobfox:`로 입력하면 해당 이모지를 이용할 수 있습니다. 기존에 존재하는 이모지 이름을 적게 되면 **덮어씌워집니다**! - `category`: 이모지의 카테고리 - `aliases`: 이모지의 별칭으로 추가될 목록입니다. 어드민 UI에서는 "태그"라고 부릅니다. ## 이모지 수정 및 삭제 이모지의 각 항목은 로컬 이모지 목록에서 선택하여 수정할 수 있습니다. 커스텀 이모지를 선택하면, 항목을 수정할 수 있는 창이 표시됩니다. 이 창에서는 이모지 삭제 또한 제공합니다. :::danger 커스텀 이모지를 삭제하더라도, 해당 이모지를 이용해 작성한 노트는 자동으로 수정되지 않습니다. 이에 따라, 해당 이모지는 더이상 정상적으로 표시되지 않게 됩니다. ::: 리모트 이모지는 수정 및 삭제가 되지 않는다는 점을 명심하세요. 각 이모지는 이름과 카테고리, 그리고 여러 태그를 가질 수 있습니다. 카테고리는 이모지 선택기에서 이모지를 구획화하기 위해 사용합니다. 태그는 이모지 선택기에서 이모지를 검색할 때 이름 대신 사용할 수 있는 별칭입니다. 수정을 마쳤다면, 창의 오른쪽 위에 있는 체크 마크를 선택해 저장하세요. ### 일괄 수정 이모지는 검색 필드 아래의 체크박스를 선택함으로서 일괄 수정도 가능합니다. 활성화되면 이모지를 클릭하는 행동이 수정 창을 여는 대신 이모지를 선택하게 됩니다. 수정 옵션은 체크박스 아래에 버튼으로 표시됩니다. 여기에서 일반 상태로 돌아가려면 체크박스를 선택 해제하면 됩니다. ================================================ FILE: content/ko/.docs-legacy/admin/nginx.md ================================================ # Nginx 설정 1. `/etc/nginx/conf.d/misskey.conf` 또는 `/etc/nginx/sites-available/misskey.conf` 파일을 만들고 다음 예시를 복사해 주세요.\ (파일 이름이 굳이 "misskey"일 필요는 없습니다.) 2. 다음과 같이 수정해 주세요: 1. example.tld를 미리 준비해 둔 도메인으로 변경해주세요.\ `ssl_certificate`와 `ssl_certificate_key`는 Let's Encrypt로부터 받은 인증서 경로여야 합니다. 2. Cloudflare와 같은 CDN을 활용하고 있다면, "If it's behind another reverse proxy or CDN, remove the following."으로부터 4줄을 지워주세요. 3. `/etc/nginx/sites-available/misskey.conf` 파일을 만들었다면, symlink로 `/etc/nginx/sites-enabled/misskey.conf`에 연결해주세요.\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t`를 실행해 설정 파일이 정상적으로 로드되는지 확인해주세요. 5. `sudo systemctl restart nginx`를 실행해 nginx를 재실행해주세요. ## Nginx 설정 예시 ```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; } } ``` ================================================ FILE: content/ko/.docs-legacy/admin/push-docker-hub.md ================================================ # GitHub Actions로 Docker Hub에 푸시하기 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml)에 GitHub Action을 통해 Docker Hub로 푸시하는 워크플로우가 작성되어 있습니다. 원본 저장소에서는, 실행된 타이밍에 `latest`, `<릴리스 명칭>` 각각의 태그로 Docker Hub에 푸시됩니다. :::info Docker Hub에 `<브랜치명>`과 같은 태그가 있을 수도 있지만, 이러한 것은 자동 푸시 대상이 아닙니다. ::: 포크가 생성되어 있는 곳에서 실행하면 푸시에 실패합니다. 여기에서는, 포크가 생성되어 있는 곳에서 자신의 Docker Hub 저장소로 푸시하는 방법을 설명합니다. ## 내 Docker Hub 저장소에 푸시하도록 설정하기 1. Docker Hub 저장소를 생성합니다. 2. 워크플로우 파일의 [images](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml#L25)를 자신의 저장소로 대체합니다. 3. GitHub에서 [암호화된 시크릿](https://docs.github.com/ko/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository)을 생성합니다. `DOCKER_USERNAME` 및 `DOCKER_PASSWORD`를 생성해 줍니다. 이들은 각각 Docker Hub의 사용자명과 비밀번호입니다. ## 푸시하기 위 설정에 의해, 릴리스 시 자동으로 Docker Hub에 푸시하게 됩니다. 릴리스한 타이밍에 `latest`와 `<릴리스명>` 각각의 태그로 푸시되며, 이때 기존의 `latest`는 삭제됩니다. 또, GitHub 상에서 수동으로 푸시를 실행할 수도 있습니다. Actions > Publish Docker Image > Run workflow에서 브랜치를 선택해 워크플로우를 실행하면 됩니다. 다만, 이렇게 하면 태그는 `<브랜치명>`으로 생성됩니다. ================================================ FILE: content/ko/.docs-legacy/admin/troubleshooting.md ================================================ # 문제가 발생했다면 :::warning 이 문서는 아직 국문/영문으로 번역되지 않았으며, 일문으로 제공되고 있습니다. 번역이 완료되기 전까지는 본 문서를 기계 번역하여 읽어주시면 감사하겠습니다. ::: 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](/docs/install/manual.html)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!** [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](/docs/install/manual.html)をよく読みましょう。 ## ImageMagick関連 ***ImageMagickは不要です!*** ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](/docs/install/manual.html)をよく読みましょう。 - node.jsのバージョンが古いかも? * 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? * `apt install build-essential`を試す。 * Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](/docs/install/manual.html)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](/docs/install/manual.html)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](/docs/install/manual.html)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](/docs/install/manual.html)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 ### URL, ポートとTLS証明書の設定(Port and TLS settings)part A: example.ymlの解説 リビジョン番号[85a0f69](https://github.com/misskey-dev/misskey/blob/85a0f696bcea779b02749dae596fff94a1df2467/.config/example.yml)時点での[.config/example.yml](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)に、「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 #### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url: `には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** #### ポートと証明書の設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートと証明書の設定 #################################### # # Misskey supports two deployment options for public. # Misskeyは2つのサーバー開設方法をサポートしています。 # # Option 1: With Reverse Proxy # 方法その1 リバースプロキシを挟む # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to setup reverse proxy. (eg. Nginx) # この方法では、リバースプロキシ(例: Nginx)をセットアップする必要があります。 # You do not define 'https' section. # 'https'セクション(後述)は設定せず、コメントアウトしたままにします。 # Option 2: Standalone # 方法その2 スタンドアロン # (リバースプロキシを挟まず、nodeのプロセスで直接ユーザーからのアクセスを受ける) # # +- https://example.tld/ -+ # +------+ | +---------------+ | # | User | ---> | | Misskey (443) | | # +------+ | +---------------+ | # +------------------------+ # # You need to run Misskey as root. # この方法では、Misskeyをルート(の権限をもたせた状態)で実行する必要があります。 # You need to set Certificate in 'https' section. # 'https'セクション(後述)で証明書の設定を行う必要があります。 ``` ##### 方法1 リバースプロキシを挟むとき ```yml # To use option 1, uncomment below line. # オプション1で設定する場合、以下の行をコメントアウトします → しました port: 3000 # A port that your Misskey server should listen. ``` 以上の3行は、リバースプロキシを挟むときの話です。 この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ##### 方法2 リバースプロキシを挟まないとき ```yml # To use option 2, uncomment below lines. # オプション2で設定する場合は、以下の6行をコメントアウトします → しました port: 443 https: # path for certification key: /etc/letsencrypt/live/example.tld/privkey.pem cert: /etc/letsencrypt/live/example.tld/fullchain.pem ``` 以上の8行は、リバースプロキシを挟まないときの話です。 ポート443(https)で直接ユーザーと通信します(ポート443を利用するのでMisskeyのプロセスにはルート権限が必要です)。 TLS証明書を別途取得し、取得した証明書のディレクトリを`https:`で設定します。 ここ書かれているのは、Let's Encryptで`example.tld`に対する証明書を発行したときの例です。 --- ### URL, ポートとTLS証明書の設定(Port and TLS settings)part B: 全体像 example.ymlの解説文を省くと、default.ymlにおけるポートとTLS証明書の設定は以下のようになります。 #### 方法1 リバースプロキシを挟むとき ```yml url: https://example.tld/ port: 3000 # https: # # path for certification # key: /etc/letsencrypt/live/example.tld/privkey.pem # cert: /etc/letsencrypt/live/example.tld/fullchain.pem ``` #### 方法2 リバースプロキシを挟まず直接通信するとき ```yml url: https://example.tld/ # port: 3000 https: # path for certification key: /etc/letsencrypt/live/example.tld/privkey.pem cert: /etc/letsencrypt/live/example.tld/fullchain.pem ``` ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](/docs/install/manual.html)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. [Misskey Forum](https://forum.misskey.io/)を検索してみる。 5. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. Forumや[MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)もしくは[「鯖缶工場」](https://discord.gg/mJJGAHv)で聞いてみる 2. 開発者([aqz]](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライやダイレクト投稿を送信して聞いてみる ================================================ FILE: content/ko/.docs-legacy/advanced/aiscript.md ================================================ # AiScript AiScript는 Misskey에서 사용할 수 있는 스크립팅 언어입니다. :::tip AiScript는 Misskey와는 별도의 프로젝트로, [오픈 소스](https://github.com/syuilo/aiscript)로 제공됩니다. ::: ## 사용법 AiScript의 구문이나 내장 함수 등의 문서는 [여기](https://github.com/syuilo/aiscript/tree/master/docs)에서 제공하고 있습니다. ================================================ FILE: content/ko/.docs-legacy/advanced/create-plugin.md ================================================ # 플러그인 만들기 Misskey 웹 클라이언트의 플러그인 기능을 사용하면 클라이언트를 확장하고 다양한 기능을 추가할 수 있습니다. 이 문서에서는 플러그인을 만드는 방법을 설명합니다. ## AiScript 플러그인은 AiScript를 사용하여 작성된 스크립트입니다. ## 메타데이터 플러그인은 AiScript의 메타데이터 포함 기능을 사용하여 플러그인의 메타데이터를 기본값으로 정의해야 합니다. 메타데이터는 다음 속성을 포함하는 개체입니다. ### name 플러그인 이름 ### author 플러그인 작성자 ### version 플러그인 버전. 숫자를 지정합니다. ### description 플러그인 설명 ### permissions 플러그인이 요청하는 권한. MisskeyAPI에 요청할 때 사용됩니다. ### config 플러그인의 설정 정보를 나타내는 객체. 키에 설정 이름, 값에 다음 속성을 포함합니다. #### type 설정치의 종류를 나타내는 캐릭터 라인. 다음 중에서 선택합니다. - string - number - boolean #### label 사용자에게 표시할 설정 이름 #### description 설정 설명 #### default 설정의 기본값 ## API Misskey Web은 플러그인에 API를 게시하고 이를 활용하여 클라이언트의 기능을 확장할 수 있습니다. 어떤 API가 있는지는 [플러그인 API 참조](./plugin-api-reference.md)를 참조하십시오. ================================================ FILE: content/ko/.docs-legacy/advanced/develop-bot.md ================================================ # Bot 만들기 [Misskey API](./api)를 이용하여 Bot 개발이 가능합니다. 또, 몇개의 Bot 구현이 공개되고 있으므로, 꼭 참고해 주세요. - [syuilo/ai](https://github.com/syuilo/ai): Node.js에서 실행되는 TypeScript Bot 구현체 Bot을 만들 때 프로필 설정에서 Bot 플래그를 켜는 것이 좋습니다. ================================================ FILE: content/ko/.docs-legacy/advanced/plugin-api-reference.md ================================================ # 플러그인 API 참조 이 API는 AiScript의 확장으로, Mk:로 시작하는 API는 Play에서도 활용할 수 있습니다. ## Mk:dialog(title text type) 대화 상자를 표시합니다. type에는 다음 값을 설정할 수 있습니다. - info - success - warn - error - question 생략하면 info가됩니다. ## Mk:confirm(title text type) 확인 대화 상자를 표시합니다. type에는 다음 값을 설정할 수 있습니다. - info - success - warn - error - question 생략하면 question이 됩니다. \ 사용자가 "OK"를 선택하면 true를 반환하고 "취소"를 선택하면 false를 반환합니다. ## Mk:api(endpoint params) Misskey API에 요청합니다. 첫 번째 인수에 끝점 이름을, 두 번째 인수에 매개 변수 개체를 전달합니다. ## Mk:save(key value) 임의의 값에 임의의 이름을 붙여 영속화합니다. 지속된 값은 AiScript 컨텍스트가 끝나더라도 남아 있으며 Mk:load에서 읽을 수 있습니다. ## Mk:load(key) Mk:save로 지속된 지정된 이름의 값을 읽습니다. ## Plugin:register_post_form_action(title fn) 게시 양식에 액션을 추가합니다. 첫 번째 인수에 액션 이름, 두 번째 인수에 액션이 선택되었을 때 콜백 함수를 전달합니다. \ 콜백 함수는 첫 번째 인수에 게시 양식 객체를 전달합니다. ## Plugin:register_note_action(title fn) 노트 메뉴에 항목을 추가합니다. 첫 번째 인수에 항목 이름을, 두 번째 인수에 항목이 선택되었을 때 콜백 함수를 전달합니다. \ 콜백 함수는 첫 번째 인수로 대상 노트 객체를 전달합니다. ## Plugin:register_user_action(title fn) 사용자 메뉴에 항목을 추가합니다. 첫 번째 인수에 항목 이름을, 두 번째 인수에 항목이 선택되었을 때 콜백 함수를 전달합니다. \ 콜백 함수는 첫 번째 인수로 대상 사용자 객체를 전달합니다. ## Plugin:register_note_view_interruptor(fn) UI에 표시되는 노트 정보를 다시 씁니다. \ 콜백 함수는 첫 번째 인수로 대상 노트 객체를 전달합니다. \ 콜백 함수의 반환 값으로 노트를 다시 씁니다. ## Plugin:register_note_post_interruptor(fn) 노트를 게시할 때 노트 정보를 다시 씁니다. \ 콜백 함수는 첫 번째 인수로 대상 노트 객체를 전달합니다. \ 콜백 함수의 반환 값으로 노트를 다시 씁니다. ## Plugin:open_url(url) 첫 번째 인수에 전달된 URL을 브라우저의 새 탭에서 엽니다. ## Plugin:config 플러그인 설정이 저장되는 객체. 플러그인 정의의 config에서 설정한 키로 값이 들어갑니다. ================================================ FILE: content/ko/.docs-legacy/api/app.md ================================================ --- 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 요청 액세스 허가를 확인하면 [`auth/session/userkey` 엔드포인트](endpoints/auth/session/userkey)에 `appSecret`과 `token`을 POST합니다. ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` 여기서 취득할 수있는 문자열을 `accessToken`이라 부릅니다. `accessToken`은 한 번만 취득할 수 있습니다. ## 4. i 생성 Node.js에서 `i`는 다음과 같이 생성하며, 설정 화면에서 취득하는 것과는 달리 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', }); ``` ================================================ FILE: content/ko/.docs-legacy/api/common.json5 ================================================ { 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.', }, }, } ================================================ FILE: content/ko/.docs-legacy/api/index.md ================================================ --- description: 'Misskey는 클라이언트, 연동 웹 서비스, 봇 등("어플리케이션"이라 합니다)을 개발할 수 있도록 API를 제공합니다.' --- # Misskey API :::tip 이 문서는 아직 국문으로 번역되지 않아, 일부 영문으로 제공됩니다. API 레퍼런스는 [여기](/docs/api/endpoints)를 참고해주세요. ::: Misskey는 클라이언트, 연동 웹 서비스, 봇 등("어플리케이션"이라 합니다)을 개발할 수 있도록 API를 제공합니다. 스트리밍 API도 제공하고 있어, 실시간 호환성을 가진 어플리케이션을 제작할수도 있습니다. :::tip 공식 Misskey SDK나 서드파티 라이브러리를 이용하면 이 문서의 몇몇 단계를 간소화하는 등 API를 더 간편하게 이용할 수 있습니다. [여기](TODO)를 통해 자세히 알아보세요. ::: API를 사용하려면, 먼저 API를 사용하려는 계정과 연결된 **엑세스 토큰**을 얻어야 합니다. 이 문서에서는 엑세스 토큰을 얻는 과정과 API를 활용하는 기본적인 방법을 알아봅니다. ## 엑세스 토큰 얻기 API는 일반적으로 요청을 생성하기 위해 액세스 토큰이 필요합니다. 액세스 토큰은 사용자를 식별하고 API를 통한 작업을 제어하는 자격 증명 집합입니다. :::tip 사용자와 엑세스 토큰 사이에는 한 개에서 여러 개의 연결이 존재하며, 한 사용자가 여러 엑세스 토큰을 생성하는 것도 가능합니다. ::: 엑세스 토큰은 손쉽게 [직접 얻거나](#엑세스-토큰-수동으로-생성하기) [어플리케이션을 사용하려는 유저로부터 얻을](#엑세스-토큰-생성-요청하기) 수 있습니다. ### 엑세스 토큰 수동으로 생성하기 엑세스 토큰은 Misskey Web의 '설정 > API'에서 생성할 수 있습니다. :::warning 엑세스 토큰은 다른 사람과 공유하지 마십시오. ::: ### 엑세스 토큰 생성 요청하기 어플리케이션의 사용자로부터 엑세스 토큰을 얻으려면, 뒤에 설명되어 있는 방법으로 요청할 수 있습니다. :::tip 아래에서 설명하는 것은 MiAuth를 통해 앱을 만들지 않고도 액세스 토큰을 발행하는 방법입니다. [기존처럼 앱을 생성해 액세스 토큰을 취득할 수도 있습니다.](./app.md) ::: #### 1단계 UUID를 생성하세요. 이 UUID는 앞으로 **세션 ID**라 부르게 됩니다. :::warning 이 세션 ID는 매번 생성해야 하며, 재사용되어서는 안 됩니다. ::: #### 2단계 어플리케이션의 인증 폼이 사용자의 브라우저에 표시될 것입니다. 인증 폼은 이러한 URL로 표시될 것입니다: ```:no-line-numbers https://{host}/miauth/{session} ``` 여기에서 - `{host}`는 사용자의 인스턴스 호스트(주로 사용자로부터 직접 입력받습니다)이고, - `{session}`은 세션 ID입니다. 이 URL의 쿼리 파라미터로 몇몇 옵션을 지정할 수도 있습니다: | 이름 | 설명 | | ------------ | -------------------------------------------------------------------------------------------------------------------------------- | | `name` | 어플리케이션 이름 | | `icon` | 어플리케이션 아이콘 이미지 URL | | `callback` | 인증 후 사용자가 돌아갈 URL입니다. 쿼리 파라미터로 `session`이 추가됩니다. | | `permission` | 어플리케이션이 요청하는 권한입니다.
권한은 `,`로 구분된 목록으로 요청됩니다. 권한 목록은 [여기](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 ``` ::: #### 3단계 사용자가 어플리케이션 엑세스 권한을 부여하면, 다음 양식으로 POST 요청을 전송하면 토큰이 포함된 JSON이 응답으로 전송됩니다. ```:no-line-numbers https://{host}/api/miauth/{session}/check ``` 여기에서 - `{host}`는 사용자의 인스턴스이며 - `{session}`은 세션 ID입니다. 응답에 포함된 항목은 다음과 같습니다: | 이름 | 설명 | | ------- | ------------------------- | | `token` | 사용자에 대한 엑세스 토큰 | | `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`. ::: ================================================ FILE: content/ko/.docs-legacy/api/libraries.md ================================================ --- description: 'Misskey API 관련 라이브러리 목록' --- # 라이브러리 목록 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey.js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey](https://github.com/misskey-dart/misskey) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/ko/.docs-legacy/api/permission.md ================================================ --- description: '어플리케이션이 요구할 수 있는 권한 목록' --- # 권한 목록 (일본어) | Permisson | Description | | --------------------- | ---------------------------- | | `read:account` | アカウントの情報を見る | | `write:account` | アカウントの情報を変更する | | `read:blocks` | ブロックを見る | | `write:blocks` | ブロックを操作する | | `read:drive` | ドライブを見る | | `write:drive` | ドライブを操作する | | `read:favorites` | お気に入りを見る | | `write:favorites` | お気に入りを操作する | | `read:following` | フォローの情報を見る | | `write:following` | フォロー・フォロー解除する | | `read:messaging` | チャットを見る | | `write:messaging` | チャットを操作する | | `read:mutes` | ミュートを見る | | `write:mutes` | ミュートを操作する | | `write:notes` | ノートを作成・削除する | | `read:notifications` | 通知を見る | | `write:notifications` | 通知を操作する | | `write:reactions` | リアクションを操作する | | `write:votes` | 投票する | | `read:pages` | ページを見る | | `write:pages` | ページを操作する | | `write:page-likes` | ページのいいねを操作する | | `read:page-likes` | ページのいいねを見る | | `write:gallery-likes` | ギャラリーのいいねを操作する | | `read:gallery-likes` | ギャラリーのいいねを見る | ================================================ FILE: content/ko/.docs-legacy/api/streaming/channel/global-timeline.md ================================================ --- description: "Channel where nots from the global timeline are streamed." --- # `globalTimeline` Channel where nots from the global timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the global timeline. ## Operations none ================================================ FILE: content/ko/.docs-legacy/api/streaming/channel/home-timeline.md ================================================ --- description: "Channel where nots from the home timeline are streamed." --- # `homeTimeline` Channel where nots from the home timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the home timeline. ## Operations none ================================================ FILE: content/ko/.docs-legacy/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Channel where nots from the social timeline are streamed." --- # `hybridTimeline` Channel where nots from the social timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the social timeline. ## Operations none ================================================ FILE: content/ko/.docs-legacy/api/streaming/channel/index.md ================================================ # Channel list ================================================ FILE: content/ko/.docs-legacy/api/streaming/channel/local-timeline.md ================================================ --- description: "Channel where nots from the local timeline are streamed." --- # `localTimeline` Channel where nots from the local timeline are streamed. ## Parameters none ## Events ### `note` Occurs when a new note is added to the local timeline. ## Operations none ================================================ FILE: content/ko/.docs-legacy/api/streaming/channel/main.md ================================================ --- description: "This channel provides basic information." --- # `main` This channel provides basic information. ## Parameters none ## Events ### `notification` Occurs when you receive a notification. ### `mention` Occurs when a message is sent. ### `reply` Occurs when a reply is received. ### `renote` Occurs when one of your notes is renoted. ### `follow` Occurs when you follow another user. ### `followed` Occurs when another user follows you. ### `unfollow` Occurs when you unfollow another user. ### `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 ================================================ FILE: content/ko/.docs-legacy/api/streaming/index.md ================================================ --- 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 이 문서는 현재 영문으로 제공됩니다. 읽기 전에, [Misskey API 문서](../)를 먼저 읽고 와 주세요. ::: 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. ================================================ FILE: content/ko/.docs-legacy/api/streaming/note-capture-events.md ================================================ # Note Capture Events ## `reacted` Occurs when a reaction is made to the target note. ## `pollVoted` Occurs when the survey attached to the target note is voted on. ## `deleted` Occurs when the target note is deleted. ================================================ FILE: content/ko/.docs-legacy/apps.md ================================================ --- description: "Misskey를 사용하기 위한 앱을 소개합니다." --- # 앱 Misskey를 사용하기 위한 앱(클라이언트)을 소개합니다. 브라우저에서 Misskey 인스턴스에 로그인하면 타임라인이 표시됩니다. 이때 표시되는 것은 Misskey의 유일한 공식 클라이언트, **Misskey Web**입니다. 브라우저에서 작동하는 앱이지만 PWA에도 대응, 모바일 OS의 네이티브 앱처럼 동작하게 할 수도 있습니다. 자세한 내용은 [여기](TODO)를 참조하십시오. Misskey 프로젝트에서는 네이티브 앱을 개발하지 않았습니다. Misskey Web에 익숙해졌다면 유저가 개발하는 비공식 앱을 사용해보는 것도 좋습니다. 여기에는 널리 사용되는 앱을 알파벳 순으로 소개합니다. - **Kaiteki** (웹, Android, Windows, Linux): 광범위한 플랫폼에서 작동합니다. 마스토돈, Pleroma, 트위터에도 대응. [공식 사이트](https://craftplacer.moe/projects/kaiteki/) [소스 코드](https://github.com/Kaiteki-Fedi/Kaiteki) - **Milktea** (Android): 타임라인과 특정 검색 결과를 탭에서 빠르게 액세스할 수 있습니다. 다른 사용자에게 별명을 지정할 수도 있습니다. [Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient) [소스 코드](https://github.com/pantasystem/Milktea) - **Misscat** (iOS): 스마트폰에 적합한 직관적인 조작성을 제공하는 것을 목표로 개발되고 있었으나, 2021년 5월을 끝으로 개발이 중지되었습니다. [공식 사이트](https://yuiga.dev/misscat/) [App Store](https://apps.apple.com/app/id1505059993) [소스 코드](https://github.com/YuigaWada/MissCat) - **SocialHub** (iOS): Misskey, 마스토돈, 트위터, Slack, Tumblr 등을 지원하는 유료 앱입니다. [공식 사이트](https://uakihir0.github.io/socialhub/) [App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582) 그럼에도, Misskey는 활발하게 기능이 업데이트되고 있어 최신 기능에 대한 대응이 늦어질 수 있습니다. 특별한 고집이 없다면 Misskey Web의 이용을 추천합니다. ================================================ FILE: content/ko/.docs-legacy/donate.md ================================================ # 프로젝트에 기부하기 Misskey는 영리 목적의 사업이 아니며, 무료로 이용할 수 있기 때문에 모든 수익을 기부로 의존하고 있습니다. (인스턴스에 따라 광고를 통해 수익을 얻는 경우도 있으나, 어디까지나 해당 인스턴스의 운영자에 의한 것으로 개발자에 직접 돌아오지 않습니다) 프로젝트에 기부해 주시면 개발을 계속할 수 있게 되며, 앞으로도 Misskey 프로젝트를 지속 가능하게 하는 데에 기여할 수 있습니다. 기부는 다음 경로를 통해 접수하고 있습니다. - [Paypal](https://paypal.me/syuilo) - [Patreon](https://www.patreon.com/syuilo) - 가상화폐: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazon JP 위시리스트](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 다음 액수 이상 기부해주시면 다음과 같은 답례를 준비하고 있습니다. - 1,000엔 이상: 사용하는 misskey.io 인스턴스 계정에 mi배지 부여 - 3,000엔 이상: 상기 + Misskey 크레딧에 기부자 이름 기재 - 10,000엔 이상: 상기 + Misskey 크레딧에 기부자 이름 및 임의의 아이콘 기재 신용카드 기부(Paypal, Amazon JP 위시리스트 등)는 자동으로 반영되지 않고 있으니 원하시는 분은 말씀해주세요. ::: 마찬가지로 서버의 운영자도 대부분 수익을 내지 않습니다. 서버를 운영하는 것에는 필연적으로 비용이 발생하기 때문에, 각 서버의 운영자를 지원하는 것도 검토해 주시기 바랍니다. 개발에 직접적으로 영향을 주는 것은 아니나, 다양한 서버가 존재함으로써 프로젝트가 존속하고 있는 점에서 운영이 지속되는 것 또한 개발과 마찬가지로 중요합니다. ================================================ FILE: content/ko/.docs-legacy/faq.md ================================================ --- description: 'Misskey를 이용하면서 자주 묻는 질문에 대해 다룹니다.' --- # 자주 묻는 질문 여기에서는 Misskey를 이용하면서 자주 묻는 질문에 대해 다루고 있습니다.
Misskey 프로젝트 자체에 대한 자주 묻는 질문은 [여기에서](./misskey.md)에서 확인하실 수 있습니다. ## Android/iOS용 어플리케이션이 있나요? Misskey 프로젝트에서 특정 OS를 대상으로 하여 개발하고 있는 어플리케이션은 없지만, 제 3자에 의해 개발된 서드파티 어플리케이션이 존재합니다. 자세한 사항은 [여기](./apps.md)에서 확인하실 수 있습니다. 단, 서드파티 어플리케이션은 Misskey의 최신 기능을 이용할 수 없는 경우가 필연적으로 발생하기 때문에, 필요한 경우가 아니라면 공식 Misskey Web 클라이언트를 이용하시는 것을 추천드립니다. 또한, 공식 Web 클라이언트는 PWA를 지원하고 있어 일반적인 앱처럼 사용하실 수 있습니다. 자세한 사항은 [여기](TODO)에서 확인하실 수 있습니다. ## Mastodon용 어플리케이션으로 로그인할 수 있나요? Misskey은 Mastodon의 API와 호환되지 않아, 일부를 제외하면 Mastodon용 어플리케이션이나 웹 클라이언트로는 Misskey를 이용하실 수 없습니다. Misskey 공식 웹 클라이언트를 이용해 주십시오. ## misskey.io는 Misskey 공식 인스턴스인가요? misskey.io는 Misskey 공식 인스턴스가 아니며, Misskey 프로젝트와 별개로 운영되고 있습니다. misskey.io는 특정한 주제 없이 다양한 이야기가 오가며, 가볍게 이용할 수 있는 Misskey 최대 규모의 인스턴스입니다. ## 'Misskey'라는 이름의 유래는 무엇인가요? syuilo가 프로젝트 이름을 구상할 때, 우연히 듣고 있던 May'n의 노래 'Brain Diver'의 가사에서 따 온 것입니다. ## 다른 서버의 유저를 팔로우하고 싶어요! 메뉴에서 검색을 선택하여, 팔로우하려는 유저의 주소를 입력하여 다른 서버의 유저를 찾을 수 있습니다. 유저의 주소는 이메일 주소와 비슷한 형태로, **@로 시작하는 사용자명**과 **유저가 속한 서버의 호스트명**으로 이루어져 있습니다. 예를 들어, `misskey.io`에 있는 `@syuilo`라는 유저를 찾을 때에는, `@syuilo@misskey.io`와 같이 입력합니다. Misskey뿐만 아니라, Mastodon이나 Pleroma를 비롯한 많은 분산형 플랫폼에서 이러한 주소 형식을 사용하여 다른 서버의 유저를 찾을 수 있습니다. ## Renote 를 취소하고 싶어요! Renote 시각 표시 오른쪽에 있는 3점 메뉴("...")를 눌러, 'Renote 취소'를 눌러 주세요.
Renote에 대한 자세한 내용은 [여기](./features/note.md)에서 확인하실 수 있습니다. ## URL의 미리보기를 숨길 수 없나요? MFM(Markup language For Misskey)라는 Misskey만의 독자적인 마크업 언어를 이용하여, 보이고 싶지 않은 URL을 숨길 수 있습니다. 자세한 내용은 각 인스턴스의 MFM 도움말을 참조해 주세요. 주소창에 다음과 같은 형식으로 입력하시면 확인하실 수 있습니다. `https://<나의 인스턴스 호스트 명>/mfm-cheat-sheet` ## 커스텀 이모지를 추가하고 싶어요! 커스텀 이모지의 추가, 편집, 삭제는 자신이 속한 인스턴스의 관리자만 할 수 있습니다. 커스텀 이모지에 대한 요청은 각 인스턴스 관리자에게 문의해 주십시오. ## 봇을 개발하고 싶어요! Misskey API를 이용하는 봇을 개발할 수 있습니다. 자세한 내용은 [여기](./advanced/develop-bot.md)에서 확인하실 수 있습니다. ## 노트 번역 기능은 어떤 서비스를 활용하고 있나요? Misskey 기본 번역 기능은 [DeepL의 번역 서비스](https://www.deepl.com/)를 사용하고 있습니다. (2022년 9월 기준 한국어 미지원) ## 인스턴스를 만들 때, 전기통신사업자 신고가 필요한가요? ### 짧은 답변 공급자가 일본 내에 소재한다면, 비즈니스 목적으로 운영한다면 **필요하며**, 그 이외의 목적이라면 사업자 신고는 **필요하지 않습니다**. 공급자가 한국 내에 소재한다면, 서비스를 공급하는 데에 있어 요금을 일부라도 징수하는 경우 또는 관리 인원에 임금을 지급하는 경우에는 사업자 신고가 필요합니다. 이외의 경우는 기본적으로 불필요합니다. 양 국가에 대하여 기부금으로만 운영되는 경우에는 신고 대상에서 제외됩니다. ### 긴 답변 [일본 총무성](https://www.soumo.go.jp/main_content/000477428.pdf)에 의하면, 사업자란 "서비스의 제공에 의해, 그 대가로 요금을 징수함으로서 수익을 얻고자 하는 자"로 하고 있으며, 기부 등으로만 수익이 있는 경우에는 신고가 필요한 사업자에 해당하지 않는다는 답변이 있습니다. 한국 세법에 의하면 [부가가치세법](https://www.law.go.kr/법령/부가가치세법/(20230101,19194,20221231)/제2조)에서는 "사업 목적이 영리이든 비영리이든 관계없이 사업상 독립적으로 재화 또는 용역을 공급하는 자", [소득세법](https://www.law.go.kr/법령/소득세법/(20230101,19196,20221231)/제1조의2)에 의하면 "사업 소득이 있는 거주자"로 정의하고 있습니다. 한국 세법에 의한 해석에서는, 제공하는 서비스의 기능 중 일부분을 유료화한 경우가 아니면 사업자 신고가 불필요합니다. 이때 이 유료화의 방식은 불문하며, 기능의 범위도 불문합니다. 또한 관리 인원에 임금을 지급하는 경우 용역을 공급하는 것으로 보아 사업자 신고가 필요합니다. 다만 한국의 세법은 현재에도 상당히 가변적으로 변동되고 있으니, 항상 최신 세법을 검토하여 주시기 바랍니다. ## 이름에 "Misskey"를 포함하는 서비스를 공개 운영해도 되나요? "Misskey"는 2022년 11월 현재 일본 내에 상표 출원 중(2022-054788)입니다만, 상표 등록이 된 경우에도 명칭에 "Misskey"를 포함하는 서비스를 공개 운영해도 됩니다. 이러한 경우에도 사용료 징수 등을 실시할 예정은 없습니다. ================================================ FILE: content/ko/.docs-legacy/features/ads.md ================================================ # 광고 Misskey는 인스턴스 관리자가 활성화한 경우 인스턴스 타임라인 및 기타 위치에 광고를 표시할 수 있습니다. 광고의 오른쪽 상단을 클릭하면 광고가 표시되는 빈도를 줄일 수 있습니다. :::tip 인스턴스에 표시되는 총 광고 수가 적은 경우 광고 표시 빈도를 줄이도록 선택한 후에도 광고가 계속 표시될 수 있습니다. ::: ## 광고 구성(관리자) 인스턴스의 제어판에서 광고를 추가, 편집 및 삭제할 수 있습니다. 여기에서 광고의 이미지, 광고의 URL 주소, 모양 및 표시 비율을 설정할 수 있습니다. ================================================ FILE: content/ko/.docs-legacy/features/antenna.md ================================================ # 안테나 안테나는 사용자 지정 타임라인에 대한 조건을 자유롭게 설정하고 조건에 맞는 노트를 자동으로 수집하는 기능입니다. 안테나 조건에는 특정 단어 및 태그를 다양한 조합으로 포함/제외하는 조건 및 기타 옵션이 포함될 수 있습니다. 안테나에 설정한 조건과 맞는 노트가 게시되면 해당 안테나의 타임라인에 노트가 자동으로 추가됩니다. 안테나를 생성하려면 안테나 관리 페이지에서 "추가"를 클릭하십시오. 그런 다음 옵션을 입력하여 안테나를 사용자 정의하십시오. ================================================ FILE: content/ko/.docs-legacy/features/charts.md ================================================ # 차트 Misskey는 인스턴스의 여러 데이터 소스로부터 차트릉 만들어 표시할 수 있습니다. 차트를 통해 사용량, 연합 상태, 그리고 각 사용자의 활동을 시각적으로 확인할 수 있습니다. 인스턴스의 차트는 _인스턴스 정보_ 페이지에서 볼 수 있습니다. (네비게이션 메뉴의 인스턴스 로고를 눌러보세요) 아래는 각 차트의 설명과 그 내용입니다. ## 연합 차트 이 차트는 연합한 인스턴스에 관한 정보를 표시합니다. ### Pub 이 인스턴스가 활동을 전송하고 있는 인스턴스 수입니다. ### Sub 이 인스턴스가 활동을 수신하고 있는 인스턴스 수입니다. ### Received 이 인스턴스로 활동을 전송한 인스턴스의 수입니다. ### Delivered 이 인스턴스로부터 활동을 전송받은 인스턴스의 수입니다. ### Stalled 활동의 전송 과정에서 오류가 발생한 인스턴스의 수입니다. ## 활성 사용자 차트 이 인스턴스의 사용자 활동 차트입니다. ### Read & Write 사용자가 읽고 쓴 수입니다. ### Read 사용자가 읽은 수입니다. ### Write 사용자가 쓴 수입니다. ### < Week 1주 이내에 생성된 계정의 수입니다. ### < Month 1개월 이내에 생성된 계정의 수입니다. ### < Year 1년 이내에 생성된 계정의 수입니다. ### > Week 생성 후 1주 이상 경과한 계정의 수입니다. ### > Month 생성 후 1개월 이상 경과한 계정의 수입니다. ### > Year 생성 후 1년 이상 경과한 계정의 수입니다. ================================================ FILE: content/ko/.docs-legacy/features/clip.md ================================================ # 클립 클립은 노트 모음을 만들 수 있는 기능입니다. 노트는 자신 또는 다른 사람이 게시한 것일 수도 있습니다. 여러 클립을 만들고 각각에 이름과 설명을 지정하여 관리할 수 있습니다. 다른 사용자가 클립을 사용할 수 있도록 클립을 공개하도록 선택할 수도 있습니다. 클립을 생성하려면 클립 관리 페이지에서 "추가"를 클릭하십시오. 클립에 노트를 추가하려면 노트 메뉴에서 "클립" 옵션을 선택하십시오. 그런 다음 노트를 추가할 클립을 선택합니다. ================================================ FILE: content/ko/.docs-legacy/features/custom-emoji.md ================================================ # 커스텀 이모지 커스텀 이모지는 인스턴스에서 제공되는 이미지를 이모지로 활용할 수 있도록 하는 기능입니다. 노트, 반응, 채팅, 프로필, 이름 등등에 사용할 수 있습니다. 커스텀 이모지를 사용하려면 (가능한 경우) 이모지 선택기를 누르거나 `:`을 입력해 이모지 추천을 표시하세요. 텍스트에서 `:foo:`가 확인되면, `foo` 부분이 커스텀 이모지 이름으로 인식되어 적절한 이모지로 변환됩니다. Misskey 웹 클라이언트에서 `/emojis`를 방문해 가능한 커스텀 이모지 목록을 확인할 수 있습니다. ================================================ FILE: content/ko/.docs-legacy/features/deck.md ================================================ # 덱 UI 덱 UI는 Misskey에서 사용할 수 있는 사용자 인터페이스 중 하나입니다. "칼럼"을 통해 좌우로 손쉽게 커스텀 가능하고 정보 확인도 손쉬운 UI를 만들 수 있습니다. 덱 옵션은 노트북과 같이 폭이 특히 넓은 화면에서만 사용 가능합니다. ## 칼럼 추가 덱의 배경을 우클릭해 "칼럼 추가"를 누르면 추가할 수 있습니다. 화면 오른쪽의 '+' 아이콘을 눌러도 추가할 수 있습니다. ## 칼럼 이동 칼럼은 드래그 드롭 또는 "이동" 옵션(칼럼의 헤더를 우클릭하면 표시)을 통해 위치 변경이 가능합니다. ## 세로로 칼럼 분할하기 칼럼은 가로와 세로로 정렬할 수 있습니다. 칼럼의 메뉴를 열어 "왼쪽에 쌓기"를 선택하면 선택된 칼럼을 왼쪽 칼럼 아래쪽으로 이동합니다. 쌓인 칼럼은 "오른쪽으로 빼기"를 선택해 원래대로 돌려놓을 수 있습니다. ## 칼럼 레이아웃 설정하기 칼럼 메뉴에서 "칼럼 설정"을 선택해 레이아웃 설정을 변경할 수 있습니다. 여기에서 각 칼럼의 이름과 폭을 설정할 수 있습니다. 칼럼이 flexible로 설정되어 있으면 설정된 폭 이상으로, 화면의 가로 공간 전체를 채울 때까지 확장할 수 있습니다. ## 덱 설정 덱과 관련된 설정은 우하단의 설정 메뉴(톱니바퀴 아이콘)에서 확인할 수 있습니다. ## 덱 프로필 화면 우상단의 메뉴를 클릭해 덱 프로필을 만들 수 있습니다. "새 프로필"을 선택하면 새로운 빈 덱을 만들어 수정할 수 있습니다. 다른 프로필을 누르면 전환합니다. 휴지통 버튼을 누르면 현재 프로필을 삭제합니다. ================================================ FILE: content/ko/.docs-legacy/features/drive.md ================================================ # 드라이브 드라이브를 통해 Misskey에서 파일을 관리할 수 있습니다. :::tip 기술적으로, 드라이브는 Misskey에서 현재 관리하고 있는 파일을 사용자에게 보여주는 인터페이스입니다. ::: Misskey Web에서는 드라이브 페이지에서 파일을 바로 업로드할 수 있으며, 아바타로 설정한 이미지나 노트와 함께 업로드한 파일도 드라이브에 함께 업로드됩니다. 드라이브에 업로드된 파일은 언제든 다운로드할 수 있으며, 노트를 만들 때 "드라이브로부터 파일 첨부"를 선택할 수도 있습니다. 여러 파일을 정렬하기 위한 폴더를 만들 수도 있습니다. :::warning 현재로서는, 드라이브에서 파일을 지우면 해당 파일이 첨부된 모든 컨텐츠가 함께 삭제됩니다. ::: ## 경고 (NSFW, CW) 경고 혹은 NSFW 표시를 드라이브에서 파일별로 설정할 수 있습니다. 안전하지 않다고 표시된 모든 파일은 사용자가 별도로 조작하지 않는 한 표시되지 않습니다. 예를 들어, 일하는 곳에서 보는 게 맞지 않거나 공공장소에서 보기 부적절한 이미지에 설정할 수 있습니다. 이 표시는 직접 켜거나 끌 수 있고, 모더레이터도 설정할 수 있습니다. ================================================ FILE: content/ko/.docs-legacy/features/favorite.md ================================================ # 즐겨찾기 이 기능을 통해 [노트](./note.md)를 즐겨찾기 설정할 수 있습니다. 즐겨찾기한 노트는 "즐겨찾기"(`/my/favorites`) 페이지에서 확인할 수 있습니다. 다른 사용자는 이런 즐겨찾기에 대해 알림받지 않으며, 설정한 사용자만 확인이 가능합니다. 노트의 메뉴에서 "즐겨찾기"를 선택해 즐겨찾기에 추가할 수 있습니다. "즐겨찾기에서 제거"를 선택해 취소할 수도 있습니다. ================================================ FILE: content/ko/.docs-legacy/features/follow.md ================================================ # 팔로우 사용자를 팔로우하면, 그 사용자의 포스트를 홈 타임라인에서 볼 수 있습니다. 다른 사용자에 대한 답변은 기본적으로 포함되지 않습니다. 사용자를 팔로우하려면 프로필 페이지에서 "팔로우"를 선택하세요. 팔로우를 취소하려면, 해당 버튼을 다시 선택하면 됩니다. ================================================ FILE: content/ko/.docs-legacy/features/hashtag.md ================================================ # 해시태그 :::info 본 문서는 일본어로만 작성되어 있어 일본어로 제공됩니다. ::: ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。 世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、Twitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。 ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp [msg]?"](/docs/messina_first_2007.png) FediverseでのハッシュタグはTwitterやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。 ================================================ FILE: content/ko/.docs-legacy/features/index.md ================================================ # 기능 ================================================ FILE: content/ko/.docs-legacy/features/mfm.md ================================================ # MFM Misskey를 위한 마크다운 문법인 MFM은 Misskey 내의 여러 곳에서 활용할 수 있는 마크업 언어입니다. :::tip 기본적인 문법은 Markdown과 호환됩니다. ::: ## MFM을 사용할 수 있는 곳 예시 - 노트 내용 - 콘텐츠 경고 - 유저네임 - 프로필 ## 문법 ### 멘션 멘션을 하면 멘션받은 사용자에게 알림이 발송됩니다. `@` 마크와 사용자 이름으로 특정 사용자를 나타냅니다. ```:no-line-numbers @alice ``` ```:no-line-numbers @alice@example.com ``` ### 해시태그 `#` 마크와 이름을 이어 적어 해시태그를 작성할 수 있습니다. :::tip 해시태그에 대한 더 자세한 내용은 [여기](./hashtag.md)에서 확인해주세요. ::: ```:no-line-numbers #misskey ``` ### 링크 문장 일부분을 URL로 연결할 수 있습니다. ```:no-line-numbers [example link](https://example.com) ``` ### 커스텀 이모지 `:`으로 이름을 둘러싸면 커스텀 이모지를 표시할 수 있습니다. :::tip 커스텀 이모지에 관련한 더 자세한 내용은 [여기](./custom-emoji.md)를 참조해주세요. ::: ```:no-line-numbers :misskey: ``` ### 굵은 글씨 글자를 굵게 표시해 강조할 수 있습니다. ```:no-line-numbers **Bold** ``` ### 작은 글자 내용을 작고 얇게 표시할 수 있습니다. ```:no-line-numbers MisskeyでFediverseの世界が広がります ``` ### 인용 내용이 인용임을 나타낼 수 있습니다. ```:no-line-numbers > MisskeyでFediverseの世界が広がります ``` ### 가운데 정렬 내용을 가운데 정렬할 수 있습니다. ```:no-line-numbers
MisskeyでFediverseの世界が広がります
``` ### 인라인 코드 짧은 한 줄의 코드를 나타낼 때 이용합니다. ```:no-line-numbers `<: "Hello, world!"` ``` ### 코드 블록 ` 마크를 3겹으로 감싸 여러 줄의 코드를 나타낼 수 있습니다.
```
~~(#i, 100) {
	<: ? ((i % 15) = 0) "FizzBuzz"
	.? .? ((i % 3) = 0) "Fizz"
	.? .? ((i % 5) = 0) "Buzz"
	. . i
}
```
### 반전 내용을 상하 또는 좌우로 반전시킵니다. ```:no-line-numbers $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### 글꼴 글꼴을 강제로 변경해 표시할 수 있습니다. ```:no-line-numbers $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### 흐리게 내용을 흐리게 가릴 수 있습니다. 마우스를 위에 올려놓거나 터치하면 내용을 볼 수 있습니다. ```:no-line-numbers $[blur MisskeyでFediverseの世界が広がります] ``` ### 플레인 안쪽의 구문을 모두 비활성화합니다. ```:no-line-numbers **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 개발자를 위한 정보 MFM의 파서는 별도의 라이브러리로 제공되고 있으며, 이를 적용해 클라이언트에서 MFM을 더 쉽게 이용할 수 있습니다. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - Javascript 파서 라이브러리 ================================================ FILE: content/ko/.docs-legacy/features/mute-and-block.md ================================================ # 뮤트와 차단 사용자가 마음에 들지 않는다면 뮤트해 타임라인에서 표시되지 않도록 할 수 있습니다. 또는 블록을 해 당신의 콘텐츠를 보거나 관련 활동을 하지 못하도록 할 수도 있습니다. 상대방은 뮤트된 것은 알 수 없지만 차단된 것은 알 수 있습니다. :::tip 뮤트와 블록은 동시에 쓸 수도 있습니다. ::: :::warning 서비스 약관을 위반하는 사용자는 관리진에게 보고해 주세요. ::: Misskey Web에서 설정 > 뮤트 및 차단 메뉴로 들어가면 뮤트하거나 차단한 사용자의 목록을 볼 수 있습니다. ## 뮤트 사용자를 뮤트하면, 사용자에 대한 다음 항목이 더이상 표시되지 않습니다: - 사용자의 게시물(해당 게시물에 대한 답글과 리노트 포함) 및 검색 결과 - 해당 사용자로부터의 알림 - 해당 사용자와의 Misskey 대화 기록 등 Misskey Web에서 사용자를 뮤트하려면, 사용자의 프로필 페이지에서 메뉴를 열어 "뮤트"를 선택하세요. :::tip 뮤트를 했다는 알림은 발송되지 않으며, 뮤트된 사용자도 자신이 뮤트되었다는 사실을 알 수 없습니다. ::: ## 차단 사용자를 차단하면 차단된 사용자는 차단한 사용자의 콘텐츠를 확인할 수 없으며, 다음 작업도 수행할 수 없습니다: - 차단한 사용자를 팔로우 - 차단한 사용자를 리스트에 추가 - 차단한 사용자의 콘텐츠에 답장하거나 리노트 - 반응을 게시하거나 투표 - 메시지 전송 등 또한, - 팔로우하고 있는 사용자를 차단하면 팔로우가 해제됩니다. - 리스트에 있는 사용자를 차단하면 리스트에서 제거됩니다. Misskey Web에서 사용자를 차단하려면, 사용자의 프로필 페이지에서 메뉴를 열어 "차단"을 선택해 주세요. :::warning 상대방에게 차단되었다는 알림은 발송되지 않지만, 위에 언급된 모든 동작을 수행할 수 없기 때문에 간접적으로 알게 될 수 있습니다. ::: :::warning 차단은 단순하지만 유용한 기능입니다. 차단된 사용자는 차단한 사용자의 콘텐츠를 확인할 수 없게 되지만, 계정을 변경하거나 로그아웃하면 여전히 확인할 수 있습니다. 차단된 사용자가 콘텐츠를 확인하기 더 어렵게 하려면 기본 노트 게시 설정을 "팔로우"로 설정하고 팔로우를 수동으로 승인하도록 설정을 변경하는 것을 권장합니다. ::: ================================================ FILE: content/ko/.docs-legacy/features/note.md ================================================ # 노트 노트는 Misskey에서 이용되는 가장 중심적인 개념이며, Misskey에 게시된 텍스트, 이미지, 설문조사(투표) 등을 포함하는 콘텐츠를 말합니다. 이러한 맥락에서, "노트하다"는 것은 이러한 노트를 작성하는 의미로서의 동사로도 이용됩니다. 노트를 작성하면 노트가 [타임라인](./timeline.md)에 추가되고 팔로워 및 서버의 다른 사용자도 확인할 수 있습니다. Misskey에서는 각 노트에 대해 [반응을 추가](./reaction.md)하는 것도 가능합니다. 답장을 만들거나 인용할 수도 있습니다. 노트를 [즐겨찾기에 추가](./favorite.md)하면 나중에 해당 노트를 손쉽게 확인할 수 있습니다. ## 노트 작성 노트를 작성하려면, 화면에 연필 아이콘이 있는 버튼을 선택해 양식을 엽니다. 여기에서 게시할 내용을 입력하고 "노트" 버튼을 눌러 게시합니다. 노트는 텍스트와 이미지 또는 비디오와 같은 파일을 포함할 수 있으며 [설문조사(투표)](./poll.md)도 포함할 수 있습니다. 또한 텍스트 내에서 [MFM](./mfm.md)를 이용해 멘션 및 [해시태그](./hashtag.md)를 추가로 포함할 수도 있습니다. 콘텐츠 경고(CW) 또는 노트 가시성과 같은 기타 설정도 가능합니다. :::tip 컴퓨터 등 키보드가 연결된 환경에서, 키보드의 N 키 혹은 P 키를 입력해 노트 작성 양식을 열 수도 있습니다. 여기에서 `N`은 "노트(Note)", `P`는 "포스트(Post)"의 약호입니다. ::: :::tip 컴퓨터를 이용하고 있고 클립보드에 이미지가 저장되어 있다면, 단순히 붙여넣는 것만으로도 이미지를 첨부할 수 있습니다. ::: :::tip 키보드 커서가 텍스트 입력 상자를 가리키고 있을 때 키보드의 Ctrl + Enter를 입력해 노트를 전송할 수 있습니다. ::: ## 리노트 기존 노트를 인용하거나 공유하는 행위를 "리노트하다"라고 하고, 이러한 행위로 만들어진 노트를 "리노트"라고 부릅니다. 일반적으로, 팔로워에게 마음에 드는 노트를 공유하거나 과거의 노트를 다시 포스트할 때 활용할 수 있습니다. 한 노트를 여러 번 리노트하는 것도 당연히 가능하지만, 다른 팔로워가 귀찮아할 수도 있습니다. :::warning 팔로워 전용 노트 혹은 다이렉트 노트는 리노트할 수 없습니다. ::: 리노트를 취소하려면 리노트 타임스탬프의 "..."를 선택해 "리노트 취소"를 선택하면 됩니다. ## 콘텐츠 경고 해당 콘텐츠를 보는 사용자가 별도로 표시하겠다는 요청을 보내지 않는 이상 내용 및 첨부 사항이 숨겨지는 설정입니다. CW(**C**ontent **W**arning) 혹은 NSFW(**N**ot **S**afe **F**or **W**ork)로도 불립니다. 장문의 내용을 숨기거나 스포일러를 일차적으로 차단하는 용도로 이용할 수 있습니다. 아니면 NSFW 콘텐츠를 숨기는 데에도 활용 가능합니다. 노트에 대해 CW를 활성화하려면 노트 작성 양식에서 "내용 숨기기"(눈 아이콘) 버튼을 누릅니다. 이렇게 하면 CW에 의해 숨겨진 내용을 요약 작성할 수 있는 별도의 입력 영역이 나타납니다. :::warning CW를 통해 내용을 가리더라도, 내용을 언제든 확인할 수 있습니다. CW를 이용할 때 각 인스턴스의 이용 약관을 위반하지 않도록 주의해 주세요. ::: ## 가시성 각 노트에 대해 가시성을 별도 설정할 수 있습니다. 노트 작성 양식에서 "노트" 버튼 옆의 아이콘을 선택하면 가시성 설정 메뉴가 표시되며, 여기에서 노트가 어떻게 보이는지를 설정할 수 있습니다. :::warning [사일런스](./silence.md)되어 있는 경우 사일런스한 계정에는 표시되지 않습니다. ::: ### 공개 모든 사용자에게 노트가 공개됩니다. 홈, 로컬, 소셜, 글로벌 타임라인에도 모두 노출됩니다. :::warning [사일런스](./silence.md)되어 있는 경우 사일런스한 계정에는 표시되지 않습니다. ::: ### 홈 모든 사용자에게 노트가 공개되지만, 팔로워가 아닌 사용자의 타임라인에는 표시되지 않습니다. 게시자의 프로필에서는 계속해서 노트를 확인할 수 있습니다. ### 팔로워 게시자를 팔로우하는 계정에서만 노트를 확인할 수 있습니다. 팔로워의 타임라인에 노트가 표시됩니다. ### 다이렉트 별도로 지정한 사용자에게만 노트가 표시됩니다. 지정된 사용자의 타임라인에 노트가 표시됩니다. ### "로컬 전용" 설정 이 설정을 활성화하면, 리모트 인스턴스로 노트가 전달되지 않습니다. ### 가시성 비교 | 홈, 로컬, 소셜, 글로벌 타임라인 | 공개 | 홈 | 팔로워 | 다이렉트 | |---------------------------------|------|----|--------|-----------------| | 팔로워의 타임라인 | ✔ | ✔ | ✔ | 지정된 경우에만 | | 팔로워가 아닌 사람의 타임라인 | ✔ | | | 지정된 경우에만 | ## 프로필에 고정 노트를 프로필에 고정하면 해당 노트가 프로필 페이지의 상단에 계속 표시됩니다. 노트를 고정하려면 노트의 메뉴를 열어 "프로필에 고정"을 선택하세요. :::tip 여러 노트를 동시에 고정할 수도 있습니다. ::: ## 지켜보기 자신이 작성하지 않은 노트에 대해 답변, 리엑션 등의 알림을 받을 수 있습니다. 노트를 지켜보려면 해당 노트의 메뉴에 "지켜보기"를 선택하세요. ================================================ FILE: content/ko/.docs-legacy/features/online-status.md ================================================ # 온라인 상태 사용자의 **온라인 상태**는 해당 사용자의 Misskey 이용 상태를 표시합니다. 자신의 온라인 상태는 사용자 페이지 등의 사용자 아이콘 구석에 인디케이터로서 나타납니다. | 색상 | 상태 | 설명 | |-----------|------------|----------------------------------------------------------------------| | 🟢 초록색 | 온라인 | 현재 Misskey를 사용하고 있습니다. | | 🟡 노란색 | 액티브 | 사용자가 Misskey로부터 로그아웃되어 있지만 여전히 사용하고 있습니다. | | 🔴 빨간색 | 오프라인 | Misskey를 사용하고 있지 않습니다. | | ⚫ 회색 | 알 수 없음 | 상태가 공개로 표시되어 있지 않거나 리모트 사용자 등입니다. | 온라인 상태는 자동으로 설정되며 직접 변경할 수 없습니다. 온라인 상태를 비공개 표시할 수는 있습니다. :::warning 사용자 추천 등의 몇몇 기능은 온라인 상태와 관련되어 있는 경우가 있습니다. 따라서, 온라인 상태를 비공개로 설정하면 다른 사용자가 당신을 찾기 어렵게 만들 수 있습니다. ::: ================================================ FILE: content/ko/.docs-legacy/features/pages.md ================================================ # 페이지 :::tip 본 기능은 Misskey v12를 끝으로 업데이트가 중단되었으며, 대부분의 기능이 Play로 이전되었습니다. Misskey Play에 대해 자세히 알아보려면 [여기](./play.md)를 확인해주세요. ::: Misskey 페이지는 커스텀 웹페이지를 만들 수 있는 기능입니다. 여기에서 여러 다른 미디어와 형식을 삽입하고, 스크립트를 작성할 수도 있습니다. 다른 영역의 Misskey와 같이, [MFM](./mfm.md) 또한 사용 가능합니다. Misskey의 페이지는 다양한 블록으로 제작되며, 블록은 드래그 드롭으로 재정렬할 수 있습니다. ## 콘텐츠 블록 콘텐츠 블록은 사용자에게 여러 종류의 콘텐츠를 표시합니다. ### 섹션 다른 블록을 포함하는 그룹형 블록입니다. 각 콘텐츠 블록은 상단에 제목이 표시됩니다. ### 텍스트 :::tip 이 기능은 Misskey v12까지만 지원됩니다. Misskey v13에서는 해당 기능이 삭제되었습니다. ::: MFM으로 작성된 텍스트 콘텐츠를 표시합니다. 아래에 설정한 변수를 표시할 수도 있습니다. ### 이미지 드라이브에서 이미지를 선택해 표시할 수 있습니다. ### 텍스트 영역 MFM이 지원되지 않는 텍스트 영역입니다. 변수 삽입은 여전히 가능합니다. ### 노트필기 기존에 작성한 노트를 첨부할 수 있습니다. ### 캔버스 :::tip 이 기능은 Misskey v12까지만 지원됩니다. Misskey v13에서는 해당 기능이 삭제되었습니다. ::: TODO ## 입력 블록 :::tip 이 기능은 Misskey v12까지만 지원됩니다. Misskey v13에서는 해당 기능이 삭제되었습니다. ::: 입력 블록은 폼 엘레멘트를 통해 반응형 페이지를 만들 수 있습니다. 이러한 블록은 페이지의 변수와 스크립트에서 활용할 수 있습니다. ## 특수 블록 :::tip 이 기능은 Misskey v12까지만 지원됩니다. Misskey v13에서는 해당 기능이 삭제되었습니다. ::: 특수 블록은 페이지에 특수한 기능을 제공합니다. 노트 작성 폼과 페이지 컨트롤 등을 포함합니다. ## 변수 :::tip 이 기능은 Misskey v12까지만 지원됩니다. Misskey v13에서는 해당 기능이 삭제되었습니다. ::: 변수는 동적 페이지를 만들 때 사용할 수 있습니다. `{ 변수 이름 }`을 입력해 변수를 텍스트에 삽입할 수 있습니다. 예를 들어, `Hello { thing } world!`라는 글이 있고 변수 thing의 값이 `ai`면, 텍스트는 "Hello ai world!"와 같이 표시됩니다. 변수는 위에서 아래로 확인되며, 따라서 아래에 정의한 변수 값을 위에서 참조할 수는 없습니다. 예를 들어, 변수 `A`, `B`, `C`가 있고 이 순서대로 정의되었다면, `A`와 `B`는 `C`를 참조해 정의할 수 없습니다. 하지만 `B`와 `C`는 `A`를 참조해 정의할 수 있습니다. 사용자로부터 입력을 받으려면, "입력 블록"을 페이지에 넣고 입력을 받을 변수 이름으로 변수의 이름을 설정합니다. (변수는 입력 블록을 추가할 때 지정됩니다.) 이 변수는 사용자의 입력에 따른 동작을 할 때 이용됩니다. 함수는 변수 계산을 재사용 가능한 형태로 지정할 수 있습니다. 함수를 만드려면, "함수" 타입의 변수를 생성하세요. 함수는 슬롯(입력값)이 여럿 존재하며, 각 슬롯의 값은 함수 내에서 변수로 이용됩니다. 다른 함수를 변수로 받는 함수도 생성할 수 있습니다. 함수는 순서에 상관 없이 정의 및 참조가 가능합니다. ================================================ FILE: content/ko/.docs-legacy/features/play.md ================================================ # Play TODO ================================================ FILE: content/ko/.docs-legacy/features/plugin.md ================================================ # 플러그인 Misskey 웹 클라이언트에 플러그인을 설치하여, 다양한 기능을 추가할 수 있습니다. 플러그인을 만드는 방법에 대해서는 [이 문서](./advanced/create-plugin.md)를 참고해 주세요. ================================================ FILE: content/ko/.docs-legacy/features/reaction.md ================================================ # 리엑션 이 기능은 이모지를 통해 다른 사용자의 노트에 반응을 쉽게 추가할 수 있게 해 줍니다. Misskey Web에서 리엑션을 추가하려면, 노트의 + 아이콘을 눌러 선택기를 열어 선택할 수 있습니다. 반응에 [커스텀 이모지](./custom-emoji.md)를 이용할 수도 있습니다. ## 이모지 선택기 사용자 설정 Misskey Web에서능 이모지가 선택기에 표시되며, 순서와 크기를 변경할 수도 있습니다. 설정의 "리엑션" 탭에서 설정 가능합니다. ## 리모트 포스트에 리엑션 리엑션은 Misskey의 오리지널 기능입니다. 상대 인스턴스가 지원하지 않는 대부분의 상황에서는 "좋아요"로 전송됩니다. 보통 ActivityPub의 "좋아요"는 즐겨찾기로 구현되어 있습니다. ## 리모트 인스턴스에서의 리엑션 Misskey는 좋아요가 없기 때문에, 리모트 인스턴스의 "좋아요"는 '👍'로 표시됩니다. :::tip 인스턴스 관리자가 '⭐' 리엑션으로 변경할 수도 있습니다. 관리자라면 [여기](../admin/default-reaction.md)를 확인해 주세요. ::: ## 리엑션 목록 보기 Misskey Web에서는, 프로필에서 "리엑션" 탭을 확인해 리엑션한 노트를 확인할 수 있습니다. 설정에서 이러한 목록을 공개로 설정할지 결정할 수도 있습니다. ================================================ FILE: content/ko/.docs-legacy/features/roles.md ================================================ # 역할 TODO ================================================ FILE: content/ko/.docs-legacy/features/share-form.md ================================================ # 공유 양식 :::tip 본 기능은 Misskey v13에서 이용할 수 없습니다. 다만 링크는 살아있는 것으로 확인되어 있습니다. ::: When you open `/share` in Misskey Web, you can 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 for the URL, including the shared content as a query parameter. ## 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) | ================================================ FILE: content/ko/.docs-legacy/features/silence.md ================================================ # 사일런스 :::tip 이 기능은 Misskey v12까지만 지원됩니다. Misskey v13에서는 해당 기능이 "역할"로 통합되었습니다. 자세한 것은 [해당 문서](./roles.md)를 참고해주세요. ::: 사일런스는 계정에 설정할 수 있는 상태 중 하나입니다. 계정이 사일런스되면, 노트를 공개로 설정할 수 없게 됩니다. 홈, 팔로워, 다이렉트 노트는 여전히 작성할 수 있으며, 팔로워들은 이러한 변경에 영향이 없습니다. 사일런스는 글로벌 타임라인 및 로컬 타임라인에만 그 효과가 반영됩니다. 계정의 사일런스 상태는 인스턴스 모더레이터가 지정합니다. :::tip Misskey v13 및 이후에서는 '역할'을 통해 설정할 수 있습니다. 별도로 지정하지 않는 한 모더레이터는 설정이 불가합니다. ::: ================================================ FILE: content/ko/.docs-legacy/features/theme.md ================================================ # 테마 테마를 적용해 미스키 클라이언트의 분위기와 느낌을 바꿀 수 있습니다. ## 테마 설정 `설정 > 테마`로 들어가 설정할 수 있습니다. ## 테마 작성 테마 오브젝트는 JSON5 형식으로 작성됩니다. 이러한 테마는 아래의 오브젝트 형식을 가지고 있습니다. ``` js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` * `id` ... 테마별로 지정하는 특정 ID입니다. UUID를 사용할 것을 권장합니다. * `name` ... 테마의 이름 * `author` ... 테마 작성자 * `desc` ... 테마 설명 (오브젝트) * `base` ... 라이트 혹은 다크 테마 * 밝은 테마에 `light`, 어두운 테마에 `dark`를 사용하세요. * 이 설정은 여기에 설정한 테마의 기본 테마를 덮어씌웁니다. * `props` ... 테마의 스타일 설정. 아래 섹션에 설명되어 있습니다. ### 테마 스타일 정의 `props` 아래에 테마의 스타일을 정의합니다. 키는 CSS 변수의 명칭이며, 값은 해당 변수의 값을 정의합니다. 또한, `props` 변수를 통해 기본 테마를 덮어씌웁니다. `base`가 `light`이면 기본 테마의 이름은 [_light.json5](https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5)이고, `dark`이면 [_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5)입니다. 이렇게 해서, 만약 `props`에 `panel` 값이 설정되어 있지 않다면 기본 테마의 `panel` 값이 이용됩니다. #### 값 형식 * 16진수 형식의 색상 코드 (`#RRGGBB`, `#RRGGBBAA`) - 예시: `#00ff00` * `rgb(r, g, b)` 형식의 색상 코드 - 예시: `rgb(0, 255, 0)` * `rgba(r, g, b, a)` 형식의 색상 코드 - 예시: `rgba(0, 255, 0, 0.5)` * 다른 키 값 사용 - `@{key name}`을 이용해 다른 키의 값을 사용할 수 있습니다. `{key name}`을 다른 키의 이름으로 변경해 사용합니다. - 예시: `@panel` * 상수 사용 - `${constant name}`로 상수의 값을 이용할 수 있습니다. `{constant name}`을 상수의 이름으로 변경해 사용합니다. - 예시: `$main` * 함수 - `:{함수명}<{인수}<{다른 값}` #### 상수 상수는 CSS 값을 지정하고 싶지만 해당값을 출력하지 않고 다른 CSS 값으로서만 이용하려 할 때 유용합니다. 키 이름을 `$`로 시작하게 하면 변수로 설정할 수 있습니다. #### 함수 버튼 위에 커서를 올려두었을 때에만 조금 밝게 색상을 변경하는 것처럼 기존 색상에서 조금 변경된 색상을 이용할 때 활용하면 편리합니다. `:{함수명}<{인수}<{다른 값}` 형식을 이용해 사용할 수 있습니다. ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent', } ``` ##### 사용 가능한 함수 - `lighten`: 전달받은 색상의 휘도(0~100)에 대해 인수(0~100)를 더한 색상을 반환합니다. - `darken`: 전달받은 색상의 휘도에 대해 인수(0~100)를 뺀 색상을 반환합니다. - `alpha`: 전달받은 색상의 투명도를 인수(0.0~1.0)로 설정한 색상을 반환합니다. - 0.0일 때 완전히 투명, 1.0일 때 완전히 불투명한 색상입니다. - `hue`: 전달받은 색상의 휘도(-360~360)를 인수(-360~360)만큼 회전시킨 값을 반환합니다. - `saturate`: 전달받은 색상의 채도(0~100)에 인수(0~100)를 더한 색상을 반환합니다. ================================================ FILE: content/ko/.docs-legacy/features/thread-mute.md ================================================ # 글타래 음소거 :::tip 이 기능은 버전 12.95.0부터 이용할 수 있습니다. ::: 글타래 음소거는 해당 노트의 글타래 전체를 보이지 않게 합니다. 최상위 노트의 모든 답변을 포함합니다. 글타래를 뮤트하면, 해당 글타래의 새로운 답변이나 멘션을 알림받지 않게 됩니다. Misskey Web에서 글타래를 뮤트하려면, 해당 글타래에 포함된 아무 노트의 메뉴를 열어 '이 글타래를 뮤트'를 선택하세요. :::warning 어느 노트에서 실행하던, 글타래의 모든 노트가 음소거됩니다. ::: ================================================ FILE: content/ko/.docs-legacy/features/timeline.md ================================================ # 타임라인 타임라인은 [노트](./note.md)를 시간 역순으로 표시합니다. 아래와 같은 타임라인이 존재하며, 이 종류에 따라 다른 노트가 표시됩니다. 몇몇 타임라인은 인스턴스에 따라 비활성화되어 있을 수도 있습니다. ## 홈 팔로우하고 있는 사용자의 노트를 표시합니다. ## 로컬 로컬 사용자의 모든 공개 노트를 표시합니다. ## 소셜 로컬 사용자의 모든 공개 노트와 함께 팔로우하고 있는 사용자의 노트를 표시합니다. 홈 타임라인과 로컬 타임라인이 합쳐진 형태입니다. ## 글로벌 모든 로컬 및 글로벌 사용자의 공개 노트를 표시합니다. ## 커스텀 타임라인 Misskey는 더 일반적인 방식으로 타임라인을 설정할 수 있는 기능을 제공합니다. [리스트](TODO)와 [안테나](./antenna.md)를 확인해보세요. ## 비교 | 소스 | | | 타임라인 | | | |----------------------|-------------|----|----------|------|------------| | 사용자 | 확인 가능성 | 홈 | 로컬 | 소셜 | 글로벌 | | 로컬 (팔로워) | 공개 | ✔ | ✔ | ✔ | ✔ | | | 홈 | ✔ | | ✔ | | | | 팔로워 | ✔ | | ✔ | | | 리모트 (팔로워) | 공개 | ✔ | | ✔ | ✔ | | | 홈 | ✔ | | ✔ | | | | 팔로워 | ✔ | | ✔ | | | 로컬 (팔로워 제외) | 공개 | | ✔ | ✔ | ✔ | | | 홈 | | | | | | | 팔로워 | | | | | | 리모트 (팔로워 제외) | 공개 | | | | ✔ | | | 홈 | | | | | | | 팔로워 | | | | | ================================================ FILE: content/ko/.docs-legacy/features/webhook.md ================================================ # Webhook :::info 본 문서는 번역되지 않아 영문으로 제공됩니다. ::: :::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. 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. ### followed Occurs when you are followed by someone. ### unfollow Occurs when you unfollow someone. ### note Occurs when you post a note. ### reply Occurs when someone has replied to your note. ### renote Occurs when your note is renoted. ### mention Occurs when someone has mentioned you. ================================================ FILE: content/ko/.docs-legacy/features/widgets.md ================================================ # 위젯 위젯은 정보를 표시하고 상호작용하기 위해 Misskey UI에 추가 할 수 있는 작은 구성 요소(인터페이스)입니다. 기본적으로 화면 오른쪽에 표시되거나 모바일 웹 앱에서 탐색 메뉴(가로 3줄 줄무늬 아이콘, 햄버거 버튼)에서 접근할 수 있습니다. 위젯을 편집하려면 위젯 보기 하단에서 위젯 편집 모드로 전환하세요. 위젯 편집 모드에서 위젯을 추가, 삭제 및 재정렬할 수 있습니다. 위젯 레이아웃 편집기를 닫은 후 각 위젯의 동작에 대한 설정을 구성할 수도 있습니다. ## 사용할 수 있는 위젯 목록 여기에 없는 위젯의 목록은 일본어 문서를 참고해주세요. ### 알림 목록 알림 목록을 표시합니다. 알림 위젯 메뉴를 열어 표시되는 알림 유형을 변경할 수 있습니다. "사용자 전역 설정"을 비활성화하면 특정 유형의 알림만 표시합니다. ### 타임라인 타임라인을 표시합니다. 표준 타임라인(홈, 로컬, 소셜 및 글로벌) 중 하나 또는 사용자 지정 [목록](./list.md) 또는 [안테나](./antenna.md) 중 하나를 선택할 수 있습니다. ### RSS 리더 RSS 피드 목록을 표시합니다. 설정에 맞는 RSS 피드 URL을 수신받을 수 있습니다. ### RSS 티커 RSS 리더와 유사하지만 RSS 피드 목록을 한 줄에 스크롤 되는 형태로 표시합니다. 추가로 피드가 갱신되고 표시되는 방법을 사용자가 설정할 수 있습니다. ### 트렌드(유행) 유행하는 [해시태그](./hashtag.md)를 언급한 사용자 수에 대한 통계와 해시태그의 빈도를 그래프로 표시합니다. ### 활동 시간별 활동에 대한 시각화를 표시합니다. ### 온라인 사용자 이 인스턴스에서 접속자 수를 표시합니다. ### 사진 목록 본인이 올린 최근 사진을 표시합니다. ### 슬라이드쇼 지정한 드라이브 폴더의 사진 중 하나를 슬라이드 쇼로 표시합니다. 드라이브 폴더를 선택하려면 위젯 레이아웃 편집기를 종료한 상태에서 슬라이드 쇼 위젯을 마우스 왼쪽 클릭을 하여 메뉴를 띄웁니다. 그런 다음 슬라이드 쇼에 포함할 폴더를 체크하여 선택하고 "확인" 버튼을 누릅니다. ### 달력 한 달 전체 날짜와 현재 날짜를 그래픽 형태의 달력으로 표시합니다. ### 시계 아날로그 시계입니다. 사용자가 선택할 수 있는 다양한 시계 모양이 있습니다. ### 디지털시계 디지털시계입니다. ### 유닉스 시계 UNIX Epoch(1970-01-01T00:00:00Z) 이후 경과된 초를 표시합니다. ### 연합우주(Fediverse, Federation) 연합 인스턴스 목록 및 최근 활동 그래프를 표시합니다. ### 인스턴스 클라우드 연합 인스턴스를 보여주는 대화형 애니메이션입니다. ### 스티커 메모 간단한 메모를 직접 기록할 수 있는 문자형 위젯입니다. 스티커 메모를 저장할 수 있으며, Misskey Web에 접속하여 스티커 메모를 볼 수 있습니다. ### 노트 개시 위젯(Posting Form) [노트](./note.md) 구성 요소의 위젯 형태입니다. ### 서버 메트릭 서버 상태를 표시합니다. 서버 메트릭 상단에 있는 화살표를 클릭하여 표시 형식을 변경할 수 있습니다. ### 작업 대기열 서버 작업 대기열(Queue) 통계를 표시합니다. ### AiScript Console AiScript 프로그램을 테스트하고 실행하는 데 사용할 수 있는 위젯입니다. 도움말 메뉴를 통해 접근할 수 있는 Scratchpad 페이지의 위젯입니다. 참고: [AiScript](../advanced/aiscript.md)는 JavaScript기반 경량 스크립팅 언어입니다. ### 버튼 클릭하면 사용자 지정 [AiScript](../advanced/aiscript.md) 프로그램을 실행하는 대화형 버튼입니다. ### Ai Misskey 곳곳을 돌아다니는 Misskey의 디지털 마스코트 Ai입니다. ================================================ FILE: content/ko/.docs-legacy/features/word-mute.md ================================================ # 단어 뮤트 차단하고 싶으신 단어를 설정하시면 해당 단어가 포함된 노트가 표시되지 않습니다. 단어 뮤트에는 보통 수준과 보다 높은 수준의 두 종류로 나뉘며 아래에 각각의 설정에 따른 동작 방식에 대해 설명합니다. ## 보통 수준 (클라이언트에서 차단) 보통 수준의 단어 뮤트는 클라이언트(앱) 즉, 사용자의 앱에서 차단 조건에 맞는 단어가 포함된 노트를 차단합니다. 차단된 노트는 "(사용자명)이 무언가를 언급했습니다"라는 문구로 표시되며, 서버 자체에는 해당 노트 내용이 저장되어 있으므로 클릭 시 차단된 내용을 표시합니다. 보통 수준의 단어 뮤트를 지원하지 않는 앱에서는 이 기능을 사용할 수 없습니다. ## 보다 높은 수준 (서버에서 차단) 높은 수준의 단어 뮤트는 서버에서 차단이 이루어집니다. 노트 본문 내용을 분석하고 차단하고자 하는 단어와 일치하면 타임라인에서 노트를 개시되지 않으며 안테나 기능에서도 차단됩니다. 높은 수준의 단어 뮤트는 다음과 같은 특징이 있습니다. - 단어 뮤트가 설정된 이후 시점부터 새로운 게시물에만 차단 됩니다. - 단어 뮤트를 해제하더라도 서버에 저장하지 않으므로 이미 차단된 노트는 복원되지 않습니다. - 사용자에게 "(사용자명)이 무언가를 언급했습니다"와 같이 타임라인에 표시되지도 않습니다. - 서버 자체에서 차단 되므로 보통 수준의 단어 뮤트를 지원하지 않는 앱에서도 높은 수준의 뮤트는 적용됩니다. ================================================ FILE: content/ko/.docs-legacy/getting-started.md ================================================ # Misskey를 시작하기 Misskey는 프로그램, 그리고 이를 관리하는 프로젝트의 이름입니다. 인터넷에 공개되어있는 Misskey 서버를 **인스턴스**라고 부릅니다. 여러 인스턴스 가운데 하나에 접속한 뒤, 그 인스턴스에서 계정을 생성하여 Misskey를 이용할 수 있습니다. [인스턴스 목록](../instances.md)에서 자신에게 맞는 인스턴스를 둘러볼 수 있습니다. :::tip 어떤 인스턴스를 선택하더라도, 다른 인스턴스의 유저와 상호작용할 수 있습니다. :::g-details Misskey는 '연합' 기능을 갖추고 있습니다. 연합 기능을 통해, 다른 인스턴스에 있는 유저라도 같은 인스턴스의 유저와 동일하게 팔로우 및 리액션, Renote 등을 할 수 있습니다. Misskey의 연합 기능은 'ActivityPub'이라는, 공개된 통신규약을 기반으로 하여 Mastodon이나 Pleroma와 같은 타 소프트웨어와도 호환성을 가집니다. ::: ## 인스턴스 고르기 ### 인스턴스 주제 인스턴스에 따라 특정한 관심사나 화제를 정해둔 경우가 있습니다. 인스턴스를 고를 때에, 자신의 관심사에 맞는 인스턴스에 참가해 보는 것도 좋습니다. ### 인스턴스의 유저 층 ================================================ FILE: content/ko/.docs-legacy/glossary.md ================================================ # 용어집 Misskey에 관련된 용어집입니다. ## Acct 특정 유저를 지칭하는 @username@host 형식의 문자열. 멘션을 하는 등에서 사용됩니다. ## ActivityPub Misskey의 분산형 소셜 네트워크를 형성하는 프로토콜. 이 프로토콜에 의거하여 서버들이 서로 연결되어, 컨텐츠나 알림 등의 정보가 교환됩니다. Fediverse라고도 불리는 이 세계를 만드는 데 필수죠. ## AiScript Misskey에서 사용 가능한, JavaScript 상에서 움직이는 프로그래밍 언어. 자세한 정보는 [다음 문서](./advanced/aiscript.md)를 참고해 주세요. ## API 프로그램을 통해 Misskey의 인스턴스와 상호작용할 시 사용할 수 있는 인터페이스. 자세한 정보는 [다음 문서](./api)를 참고해 주세요. ## 봇 프로그램에 의해 동작하고 있는 계정. ## CW "Content Warning"의 약자. 유저가 표시를 요청하지 않는 한 노트의 컨텐츠를 가리는 기능. 긴 노트를 가리거나 공개적인 스포일러를 방지하기 위해 사용됩니다. ## Fediverse "Federated (Federation)"과 "Universe"를 합친 조어. Misskey를 포함한 여러 분산형 소프트웨어를 사용한 서버로 구성되는, 비중앙집권적인 연합 소셜 네트위크. Misskey 이외의 분산형 소프트웨어에는 Mastodon, Pleroma, Pixelfed 등이 있습니다. ## GTL 글로벌 타임라인 ("Global TimeLine")의 약자. 타임라인에 대한 자세한 정보는 [다음 문서](./features/timeline.md)를 참고해 주세요. ## HTL 홈 타임라인 ("Home TimeLine")의 약자. 타임라인에 대한 자세한 정보는 [다음 문서](./features/timeline.md)를 참고해 주세요. ## LTL 로컬 타임라인 ("Local TimeLine")의 약자. 타임라인에 대한 자세한 정보는 [다음 문서](./features/timeline.md)를 참고해 주세요. ## MFM "Misskey Flavored Markdown"의 약자이며, Misskey에서 사용할 수 있는 마크다운 언어. 자세한 정보는[다음 문서](./features/mfm.md)를 참고해 주세요. ## Misskey Web Misskey 공식 웹 클라이언트 (인터페이스). Misskey 인스턴스에 PC/스마트폰 등의 브라우저로 액세스할 시에 자동으로 표시됩니다. ## NSFW "Not Safe For Work"의 약자. 이미지를 "NSFW"로 표시하고, 유저가 표시를 요청하지 않는 한 그를 가리는 기능. ## 리노트 이미 존재하는 노트를 인용, 혹은 그 노트를 새로운 노트로써 공유하는 행위 및 그에 의해 작성된 노트. 자세한 정보는 [다음 문서](./features/note.md)를 참고해 주세요. ## STL 소셜 타임라인 ("Social TimeLine")의 약자. 타임라인에 대한 자세한 정보는 [다음 문서](./features/timeline.md)를 참고해 주세요. ## Ai Misskey의 공식 마스코트. 자세한 정보는 [다음 홈페이지 (일본어)](https://xn--931a.moe/)를 참고해 주세요. ## 액티브 유저 Misskey의 인스턴스에 계정을 가지고 있는 사용자 중 현재도 활동하고 있는 사용자. ## 인스턴스 todo ## 오픈 소스 Misskey와 같이, 소프트웨어의 소스 코드가 공개되어 있는 상태. 기업 등이 소유하며, 소스 코드를 공개하지 않은 소프트웨어는 "클로즈드 소스"라 불립니다. ## 커스텀 이모지 각 Misskey 인스턴스의 관리자 혹은 사용자에 의해 작성된 이모지. 커스텀 이모지가 아닌 기본 에모지는 "Unicode 이모지"라 불립니다. 자세한 내용은 [다음 문서](./docs/features/custom-emoji.md)를 참고해 주세요. ## 제어판 Misskey 인스턴스의 설정 화면. ## 사일런스 사용자의 모든 노트가 "공개"로 표시되지 못하는 상태. 모더레이터에 의해 사용자별로 설정 가능합니다. 자세한 것은 [다음 문서](./features/silence.md)를 참고해 주세요. ## 작업 대기열 활동을 타 서버에 전송하는 등의 작업을 순서대로 진행하는 데에 쓰이는 시스템. ## 정지 사용자의 계정이 사용 불가로 설정되어 있는 상태. ## 드라이브 Misskey의 인스턴스에서 사용자가 업로드한 이미지나 음악 등의 파일을 관리할 수 있는 기능. 자세한 내용은 [다음 문서](./features/drive.md)를 참고해 주세요. ## 노트 Misskey의 인스턴스 상에서 사용자가 올리는 문장. 이미지나 음악 등의 파일, 설문 등, Misskey 특유의 여러 컨텐츠를 포함할 수 있습니다. 자세한 내용은 [다음 문서](./features/note.md)를 참고해 주세요. ## 미스키스트 Misskey의 인스턴스에 계정을 가지고 있는 사용자. ## 모더레이터 스팸 유저의 정지나 부적절한 노트의 삭제 등, 인스턴스의 운영에 관한 권한을 갖고 있는 유저. 대부분의 경우, 인스턴스 관리자가 인스턴스 내에서 모더레이터를 모집해 채용합니다. ## 푸딩 Misskey의 메인 개발자, syuiro님이 좋아하는 음식입니다. ## 라이선스 컴퓨터 소프트웨어를 사용함에 따라, 사용자가 지켜야 할 것이 적혀 있는 문서. Misskey에서는 서버 소프트웨어에 적합한 AGPLv3을 사용하고 있습니다. ## 리모트 타 서버나 인스턴스를 칭합니다. "리모트 유저" 등과 같이 접두사로서도 사용됩니다. "로컬"과 대조되는 단어죠. ## 연합 여러 인스턴스나 서버가 서로 접속하여, 컨텐츠나 알림 등의 정보를 서로의 인스턴스나 서버가 주고받는 집합체. ## 로컬 자신의 인스턴스를 칭합니다. "로컬 유저", "로컬 타임라인" 등과 같이 접두사로서도 사용됩니다. "리모트"와 대조되는 단어죠. ================================================ FILE: content/ko/.docs-legacy/install/bash-v140.md ================================================ # Misskey install shell script v1.4.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. ## License [MIT License](./LICENSE) ## Ingredients 1. A Domain 2. An Ubuntu Server 3. A Cloudflare Account (recommended) ## 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. 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 # ログを表示 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では、起動後にマイグレーションをするため、すぐにアクセスできません。 マイグレーションが終わっているかどうか確認してみてください。 それでもアップデート後にアクセスできない、ということが稀にあります。 もしくは、yarn installに失敗しているというものです。 Misskeyディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ``` npm run cleanall ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/ko/.docs-legacy/install/bash-v165.md ================================================ # Misskey install shell script v1.6.5 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. ## License [MIT License](./LICENSE) ## Ingredients 1. A Domain 2. An Ubuntu Server 3. A Cloudflare Account (recommended) ## 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/v1.6.5/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` ### 4. To update There is also an update script. First, download the script. ``` wget https://raw.githubusercontent.com/joinmisskey/bash-install/v1.6.5/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では、起動後にマイグレーションをするため、すぐにアクセスできません。 マイグレーションが終わっているかどうか確認してみてください。 それでもアップデート後にアクセスできない、ということが稀にあります。 もしくは、yarn installに失敗しているというものです。 Misskeyディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ``` npm run cleanall ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/ko/.docs-legacy/install/bash.md ================================================ # 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](./bash-v165.md) [For older versions](./bash-v140.md) ## License [MIT License](./LICENSE) ## Ingredients 1. A Domain 2. An Ubuntu Server 3. A Cloudflare Account (recommended) ## 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をインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/ko/.docs-legacy/install/docker.md ================================================ 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/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 ``` ================================================ FILE: content/ko/.docs-legacy/install/kubernetes.md ================================================ # Create Misskey Instance with Kubernetes/TrueNAS This guide describes how to install and setup Misskey using Kubernetes and Helm charts. ## 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/docs/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. :::Requirements TrueNAS Scale or Kubernetes cluster & Helm ::: ## TrueNAS Scale Follow the instructions on the [TrueCharts Guide](https://truecharts.org/docs/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. ================================================ FILE: content/ko/.docs-legacy/install/manual.md ================================================ # Misskey 수동 설치 가이드 이 가이드에서는 Misskey의 설치 및 준비 방법에 대해 설명합니다. :::danger 한 번 사용을 시작한 인스턴스의 도메인 호스트 이름은 절대 변경하지 마세요! ::: :::tip 준비사항 다음을 미리 설치해주세요: - [Node.js](https://nodejs.org) 20.4 이상 - [PostgreSQL](https://www.postgresql.org) 15 이상 - [Redis](https://redis.io) - [FFmpeg](https://www.ffmpeg.org) GNU/Linux 환경이면 `build-essential` 패키지를 설치해 두면 좋습니다. 또한 corepack이 활성화되어 있어야 합니다. ```sh sudo corepack enable ``` ::: ## 사용자 생성 root로 Misskey를 실행하는 것은 좋은 생각이 아닙니다. 별도의 사용자를 만들어 설치하는 것이 좋습니다. ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskey 설치 위에서 생성한 사용자로 전환해 Misskey 설치를 시작합니다. ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskey 설정 설정 예시 파일(`.config/example.yml`)을 복사해 `default.yml` 파일을 만듭니다. ```sh cp .config/example.yml .config/default.yml ``` 텍스트 편집기를 이용해 `default.yml` 파일을 열어, 파일 내의 지시에 따라 수정합니다. ## Misskey 빌드 및 초기화 다음 명령을 실행해 Misskey를 빌드(`pnpm run build`)하고 데이터베이스를 초기화(`pnpm run init`)합니다. 본 작업은 시간이 소요되는 작업입니다. ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## Misskey 실행 Misskey의 실행을 위한 모든 준비가 끝났습니다. 이제 다음 명령을 통해 Misskey를 실행할 수 있습니다. ```sh NODE_ENV=production pnpm run start ``` ### details systemd를 이용한 관리 우선 systemd 서비스 파일을 생성합니다. `/etc/systemd/system/misskey.service` 파일을 에디터로 열고 아래 코드를 작성해 넣습니다. ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SysLogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOS에서 1024 이하의 포트를 이용해 Misskey를 실행하는 경우 `ExecStart=/usr/bin/sudo/usr/bin/npm start`로 변경해야 합니다. ::: 이제 systemd를 다시 시작해 서비스를 활성화합니다. ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` 이렇게 하면 Misskey 서비스를 부팅할 수 있습니다. ```sh sudo systemctl start misskey ``` :::tip 이제 `systemctl status misskey` 명령어로 Misskey의 서비스 상태를 확인할 수 있습니다. ::: ## Misskey 업데이트 방법 :::warning 업데이트 시 반드시 [변경사항](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)를 확인하고 변경사항이나 필요한 추가 작업을 미리 확인해 주십시오. ::: master를 다시 풇하고 설치, 빌드, DB 마이그레이션을 실시합니다. ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` 업데이트의 내용 및 DB 규모에 따라 시간이 소요될 수 있습니다. 업데이트가 완료되는 대로 Misskey를 다시 시작합니다. ```sh sudo systemctl restart misskey ``` :::tip 빌드 혹은 실행 중 오류가 발생한 경우 아래 명령을 실행해보세요. - `pnpm run clean` 또는 `pnpm run clean-all` - 이 명령을 실행한 후에는 반드시 `pnpm install`을 다시 실행해주세요. - `pnpm rebuild` ::: ================================================ FILE: content/ko/.docs-legacy/install/ubuntu-manual.md ================================================ # Ubuntu 版 Misskey インストール方法詳説 :::tip 이 문서는 아직 영문/국문으로 번역되지 않았습니다. 따라서 이 페이지는 일본어로 표시됩니다. ::: ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual.html)](./manual.html) - [その他のインストール方法一覧](../install.html) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash.html) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual.html)](./manual.html)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker.html)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual.html)](./manual.html)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 * OSは**Ubuntu 22.04.1 LTS**を利用する。 * ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 * メモリは1.5GB程度あればよい。(Viteの導入等により、1.5GB程度でもビルド可能になった) * 独自のドメインを購入し、CloudFlareを使用する。 * ドメインは[Google Domains](https://domains.google/intl/ja_jp/)などで予め用意しておくこと。 * ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ``` sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo apt install -y curl curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs # Node.jsがインストールされたので、バージョンを確認する。 node -v # corepack enable sudo corepack enable ``` v20.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ``` sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; ¥q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt update sudo apt install -y redis ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudFlare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### CloudFlare CloudFlareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ CloudFlareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](/docs/admin/cdn.html) [CloudFlareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudFlareを使う方式でLet’s Encryptから取得する。 certbotとCloudFlareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 CloudFlareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aid' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](https://misskey-hub.net/docs/admin/nginx.html)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 * 18行目と30行目のドメイン名 * 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) * 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 * サーバーにスワップを追加する * ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudFlareのDNSを確認する CloudFlareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける * [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) * [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) * [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [→ manual.html#Misskeyのアップデート方法](https://misskey-hub.net/docs/install/manual.html#misskey%E3%81%AE%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%E3%83%86%E3%82%99%E3%83%BC%E3%83%88%E6%96%B9%E6%B3%95) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/ko/.docs-legacy/install.md ================================================ --- description: 'Misskey 인스턴스의 생성 방법에 대해 안내합니다.' --- # Misskey 인스턴스 생성 Misskey 인스턴스 구축에 관심을 가져 주셔서 감사합니다. 인스턴스의 생성 방법은 여러 가지가 있으며, 아래 중에서 원하는 방법을 선택하여 구축할 수 있습니다. :::danger 이용을 시작한 이후에는 도메인 이름(호스트명)을 변경하지 마세요! ::: :::danger 자신의 서버에 Cloudflare 를 사용하는 경우, Auto Minify 설정을 사용하지 마십시오. Cloudflare 가 최신 자바스크립트를 해석하지 않고 내부 소스코드를 파괴하기 때문에 Misskey가 정상적으로 작동하지 않습니다. 자세한 내용은 여기 [misskey-dev/misskey #9791](https://github.com/misskey-dev/misskey/issues/9791) ::: ## Docker를 통한 설치 (추천) [해당 문서 참고](./install/docker.md) ## bash 스크립트를 통한 설치 [해당 문서 참고](./install/bash.md) ## 수동 설치 [기본 수동 설치](./install/manual.md)\ [자세히: Ubuntu에 수동 설치](./install/ubuntu-manual.md) ## YunoHost를 통한 설치 Misskey는 YunoHost의 앱으로써 설치할 수 있습니다. 자세한 사항은 [Yunohost용 Misskey 패키지 저장소](https://github.com/YunoHost-Apps/misskey_ynh)를 참고해 주세요. ## Kubernetes/TrueNAS를 통한 설치 [해당 문서 참고](./install/kubernetes.md) ================================================ FILE: content/ko/.docs-legacy/misskey-hub.md ================================================ # Misskey Hub에 대하여 Misskey Hub는 Misskey 관련 문서, 개발 블로그, 플러그인 스토어 등을 제공하는 Misskey 프로젝트 공식 홈페이지입니다. "Misskey의 모든 것이 여기에 있다"는 것을 모토로 운영 중입니다. Misskey Hub도 [오픈 소스로 공개되어 있습니다.](https://github.com/misskey-dev/misskey-hub). :::tip Misskey Hub는 [VuePress](https://github.com/vuepress/vuepress-next)를 통하여 정적 사이트로 제공됩니다. ::: - [변경 사항](../updates.md) ## Misskey Hub에 기여하기 문서의 추가하거나, 다른 언어로 번역하여 Misskey Hub에 기여할 수 있습니다. ================================================ FILE: content/ko/.docs-legacy/misskey.md ================================================ --- description: "Misskey에 대하여 설명하는 문서입니다." --- # Misskey에 대하여 Misskey는 오픈소스 분산형 마이크로블로깅 플랫폼 프로젝트입니다. 개발은 일본의 syuilo에 의해 2014년부터 시작되었습니다. 드라이브, 리액션 등의 풍부한 기능과, 높은 커스터마이징 자유도를 갖춘 UI가 특징입니다. ## 역사 개발 초기에는 게시판 형식을 메인으로 하는 서비스였으나, 유저가 짧은 글을 게시하고, 그 글들을 시간 순서대로 흘러가는 '타임라인' 기능을 추가한 뒤로 인기가 높아져, 나중에는 이 기능에 비중을 두고 개발이 이루어 지게 됩니다. 당초에는 분산형이 아니었으나, 2018년에 ActivityPub을 통해 분산형 소셜 네트워킹을 지원함으로써 더욱 많은 분들에게 알려지고, 지금에까지 이릅니다. :::tip Misskey라는 이름은, syuilo가 프로젝트 이름을 구상할 때 우연히 듣고 있던 May'n의 노래 'Brain Diver'의 가사에서 따 온 것입니다. ::: 누구나 개발에 참가할 수 있으며, 지금도 활발하게 개발이 진행되고 있습니다. ## "분산형"이 무엇인가요? 분산형(Distibuted), 또는 탈중앙형(Decentralized)이란, 여러 개의 서버에 산재하는 각각의 커뮤니티가 서로 통신(연합/Federation)함으로써, 컨텐츠를 주고 받는 네트워크(연합우주/Fediverse)를 형성하는 구조를 가리키는 말입니다. 이와 반대로, 서버가 하나밖에 존재하지 않거나, 여러 곳이 있더라도 서로의 교류가 없는 닫힌 구조를 중앙집권형 서비스라고 합니다. Twitter나 Facebook 등, 기존에 있던 대부분의 SNS 서비스가 이에 해당합니다. 분산형 서비스의 이점은 자신에게 맞는 운영자나 테마의 서버를 선택할 수 있다는 것입니다. 자신이 직접 서버를 만들 수도 있습니다. 어느 서버에 들어가도 같은 커뮤니티에 접근할 수 있습니다. ## 지금도, 앞으로도 오픈 소스 Misskey는 지금까지, 그리도 앞으로도 계속 오픈소스 프로젝트로서 존재할 것입니다. 여기에서 오픈 소스란 소프트웨어의 소스 코드(원본)을 공개하여 누구나 열람할 수 있게 함을 가리키는 말이며, 경우에 따라서는 소스 코드의 수정이나 재배포에 대한 허용까지 오픈 소스의 정의에 포함하는 경우도 있습니다. Misskey의 모든 소스 코드는 [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) 라이선스 하에 [공개](https://github.com/misskey-dev)되어 있으며, 누구나 자유롭게 열람, 사용, 수정 및 변형, 재배포할 수 있습니다. 오픈 소스로 공개함으로써 자신이 원하는 대로 프로그래램을 변경하거나, 유해한 코드가 포함되어 있지 않은지 확인할 수 있고, 아무나 개발 과정에 참여하는 것이 가능해집니다. 앞서 언급한 분산형 체계를 실현하는 것 또한, 오픈 소스와 뗄레야 뗄 수 없는 관계를 유지하고 있습니다. 재차 언급되고 있지만, Twitter나 Facebook과 같은 영리 서비스들 대부분은 오픈 소스가 아닙니다. :::tip 기술적인 부분으로, Misskey의 소스 코드는 Git으로 관리되고 있으며, 저장소는 [GitHub에 의해 호스팅되고 있습니다.](https://github.com/misskey-dev) ::: ## 개발에 참가하거나 프로젝트를 지원하기 Misskey가 마음에 드셨다면 부디 저희 프로젝트를 지원해 주시기 바랍니다. 아래에서 설명하는 것과 같이 프로젝트를 지원하는 방법은 다양하며, 개발에 대한 지식이 없더라도 프로젝트를 지원하는 방법은 다양하기 때문에 누구나 부담없이 참가하거나 기여할 수 있습니다. 여러분의 많은 응원을 기다리고 있겠습니다. ### 기능 추가나 버그 수정 개발에 대한 지식이 있는 분이라면, 소스 코드 편집에 참가하는 방식으로 프로젝트에 기여할 수 있습니다. 기여에 대한 가이드라인은 [이 문서에서 확인하실 수 있습니다](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). ### 논의에 참가하기 새로운 기능, 또는 기존에 있던 기능에 대한 의견이나, Misskey에서 발생하는 버그를 제보받고 있습니다. 이러한 논의는 [GitHub](https://github.com/misskey-dev) 저장소 또는 [포럼](https://forum.misskey.io/) 등에서 이루어집니다. ### 텍스트 번역하기 Misskey는 다국어를 지원하고 있습니다. (국제화, Internationalization이나 i18n이라고도 합니다) 본래 일본어로 개발된 소프트웨어지만, 자원봉사자 분들에 의해 다른 언어로 번역이 이루어지고 있습니다. 번역 작업에 참가하시는 것으로도 Misskey 프로젝트에 기여하실 수 있습니다. Misskey의 번역은 [Crowdin에서 제공하는 서비스](https://crowdin.com/project/misskey)를 통해 관리하고 있습니다. ### 이용 경험을 공유하기 이용 상의 버그 뿐만 아니라, Misskey를 사용하면서 느낀 점, 재미있었던 것들이 있다면 공유해 주세요. 사소하다고 느껴질 지도 모르지만, 개발의 원동력으로 이어지는 엄연한 기여입니다. ### 미스키스트를 늘리기 Misskey를 사용하는 유저를 "미스키스트"(Misskist)라고 부릅니다. 친구나 지인을 Misskey에 초대하는 것을 비롯하여 다양한 방법으로 Misskey를 널리 알려 주는 것 또한 개발에 대한 동기 부여로 이어집니다. ### 기부하기 [이 페이지를 읽어 주세요](./donate.md) ## 자주 묻는 질문 ### 이 프로젝트의 지향점은 무엇인가요? 엄밀히 말하면, 막연한 목표이지만 널리 쓰이는 범용 플랫폼이 되는 것을 목표로 하고 있습니다. Misskey는 다른 프로젝트와 다르게 어떤한 사상(반 중앙집권 등)이나 비전에 기반하지 않으며, 중립적으로 개발되고 있습니다. 저희는 이 중립성이 오히려 특정 방향성에 얽매이지 않은 유연함을 만들어 내는 것이라고 믿고 있습니다. ### 기업에 의해 개발되고 있나요? Misskey는 개인이 개발하고 있고, 다른 특정한 기업과 연관되어 영리화되지도 않았습니다. 개발 인원은 일반적으로 자원봉사자들입니다. 이들이 회사에 소속되어 있더라도, 개발은 계속 커뮤니티를 중심으로 진행됩니다. ### Misskey는 누가 운영하고 있나요? Misskey의 분산적 정체성에 의해, 각 서버는 고유의 운영진을 가지고 있습니다. 그래서 한 사람이나 기업이 모든 인스턴스를 운영하는 것이 아닙니다. 개발진도 각 서버에 관여하지 않기 때문에, 관리에 관한 질문은 해당 서버의 운영진에 물어봐야 합니다. 각 서버를 누가 관리하고 있는지는 `https://(인스턴스.도메인)/about`에서 확인할 수 있습니다. 서버를 직접 만드셨다면, 처음 만드신 분이 최고 운영자가 됩니다. ### 어떤 서버를 선택해야 하나요? 완전하진 않지만, 서버 목록은 [이 곳](../instances.md)에서 확인하실 수 있습니다. 서버에 따라 커뮤니티나 중심 테마가 다를 수 있기 때문에 여러분의 관심사에 맞는 서버가 있다면 그 서버로 들어가는 것이 가장 좋은 선택일 것입니다. 그와 별개로, 서버의 크기나 사용자 수, 국가나 주요 언어, 관리진에 대해 의존하거나 신뢰하는 정도 등등 또한 서버를 고르는 좋은 조건이 될 수 있습니다. 그러나 어느 서버도 Misskey의 공식 서버로서 제공되지는 않습니다. 서버를 직접 만든다는 선택지도 있겠네요. 일반적으로, 어느 서버에 들어가든 간에, 다른 서버의 사용자들과 연결해 대화하는 것은 여전히 가능합니다. ### 서버를 어떻게 만들 수 있나요? Misskey 서버 제작에 관심을 가져 주셔서 감사합니다. 2022년 말을 기준으로 Misskey를 특별하게 제공하는 서비스는 없기 때문에, 새 서버를 만드는 것은 일정 수준의 지식이 필요합니다. 관련해서는 [여기](./install.md)를 참고해 주세요. ### Misskey는 어떤 기술을 이용하고 있나요? Misskey의 개발이 진행되면서 이용되는 기술도 상당히 많이 바뀌었습니다. 초창기엔 MySQL + PHP + jQuery 조합을 사용했지만, 지금은 다음 조합을 사용합니다. - 서버측: Node.js - DB: PostgreSQL, Redis - UI 프레임워크: Vue.js - 개발 언어: TypeScript 여기에 더해, Misskey에서 출발한 MFM이나 AiScript 또한 활용하고 있습니다. ### Mastodon의 포크 버전인가요? Misskey는 Mastodon이나 다른 비슷한 프로젝트들과 완전히 다릅니다. 아주 오래 전부터 개발되어 왔지만, Mastodon이 등장한 이후에 분산화 네트워크로 전환되었습니다. 이와는 별개로, 서로 연관이 없는 두 프로젝트 모두 동일하게 ActivityPub 프로토콜을 이용하고 있습니다. ### iOS / Android 용 앱이 있나요? 각 OS에 대한 공식 Misskey 앱은 없지만, 서드파티 앱은 존재합니다. 자세한 것은 [여기](./apps.md)를 참고해 주세요. 하지만, 서드파티 앱의 기능은 공식 웹 클라이언트의 업데이트보다 늦을 수밖에 없기 때문에, 네이티브 앱을 굳이 써야겠다는 분이 아니라면 공식 웹 클라이언트를 사용하실 것을 권장합니다. Misskey 웹 클라이언트는 PWA를 지원하고 있어, 네이티브 앱인 것처럼 동작하게 할 수 있습니다. 자세한 것은 [여기](TODO)를 참고해 주세요. ### Misskey의 로고나 아이콘을 다운로드 받을 수 있나요? [에셋 콜렉션](../appendix/assets.md)를 확인해주세요. ### 가끔 가다 보이는 귀여운 고양이귀 캐릭터는 무엇인가요? Misskey의 마스코트, Ai입니다. Ai에 대한 자세한 정보는 [여기](https://xn--931a.moe)(일본어)를 참고해주세요. ================================================ FILE: content/ko/.docs-legacy/releases.md ================================================ # 릴리스 노트 미스키 릴리스에 대한 릴리스 노트입니다. :::tip 최신 정보는 업데이트되지 않았을 수 있습니다. 최신 정보는 [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)(일본어, 영어) 또는 [일본어 Misskey Hub](../docs/releases.md)에서 확인해주세요. ::: ## 13.0.0 출시일: 2023년 1월 16일 ### 요약 - 새로운 기능 (역할 시스템, Misskey Play, 신규 위젯, 신규 차트, 🍪👈 등) - 백엔드 재작성 - 성능 향상 (백엔드, 프론트엔드) - 다양한 사용성 개선 - 다양한 UI 개선 ### 주요 기능 - 역할 - 사용자 권한을 종전보다 유연하게 관리할 수 있게 됩니다. 예를 들어, "인스턴스 구독자는 안테나를 30개까지 만들 수 있습니다," "로컬 타임라인은 기본적으로 보이지 않지만, 일부 권한을 가진 분들만 볼 수 있습니다," "초대 전용 인스턴스지만 모든 사용자가 초대를 할 수 있습니다"와 같은 것들을 지정할 수 있습니다. 또한, 여러 조건을 합쳐서 역할 등록을 자동화할 수도 있습니다. "계정을 만든 지 하루가 지나지 않은 사용자는 공개 포스팅을 할 수 없습니다"처럼요. - Misskey Play - Misskey Play는 기존의 페이지를 대체할 새로운 플랫폼입니다. 동적 콘텐츠 (이하 "어플리케이션"이라 합니다)에 특화되어 있으며, 페이지에서보다 훨씬 더 유연한 어플리케이션을 만들 수 있게 도와줍니다. ### 변경 사항 #### 서버 어드민 - Node.js 18.x 이상이 필요합니다. - PostgreSQL 15.x가 필요합니다. - Misskey에서는 아직까지 PostgreSQL 15의 기능을 활용하지 않고 있지만, 향후에 활용하게 될 수 있습니다. - ElasticSearch의 지원이 삭제되었습니다. - 대신, 별도의 검색 제공자를 설정할 수 있도록 하는 매커니즘을 준비하고 있습니다. 이 매커니즘이 추가되면 종전처럼 ElasticSearch를 활용하실 수 있습니다. - Yarn에서 pnpm으로 마이그레이션했습니다. sudo corepack enable 명령어를 통해 corepack을 활성화하는 것을 권장합니다. - 서브도메인에 대해서도 인스턴스 차단이 가능합니다. - 역할 기능이 추가되면서, 여러 기능이 역할 기능에 통합됩니다. - 모더레이터 설정이 역할로 통합되었습니다. 업데이트 전 모더레이터 목록을 별도로 기록해 두었다가 수동으로 다시 추가해야 합니다. 업데이트 후에는 모더레이터에 관한 정보가 모두 삭제됩니다. - 사일런스가 역할로 통합되었습니다. 기존의 사일런스 기록이 삭제되니 별도로 기록해 두는 것을 추천합니다. - 유저별 드라이브 용량 제한이 역할로 통합되었습니다. - 인스턴스 기본 드라이브 용량 설정이 역할로 통합되었습니다. 업데이트 후 기본 역할 또는 조건형 역할에서 드라이브 용량을 다시 설정해 주세요. - 로컬 타임라인 / 글로벌 타임라인에 포스팅하는 권한이 역할로 통합되었습니다. - 더이상 Docker가 root로 작동하지 않습니다. Docker를 사용하면서 오브젝트 스트로지를 사용하지 않는다면, chown -hR 991.991 . /files를 실행해 주세요. #### 사용자 - 노트 주시하기 기능이 삭제되었습니다. - 투표에 대한 알림이 삭제되었습니다. - 수식을 노트에 더이상 임베딩할 수 없습니다. - 동적 페이지를 더이상 만들 수 없습니다. - 대신 AiScript를 활용하는 Misskey Play 기능을 통해, 더 유연한 동적 콘텐츠를 만들 수 있게 됩니다. - AiScript가 0.12.2로 업데이트되었습니다. - 0.12.x의 변경사항: https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x 이전 버전의 플러그인 로딩이 불가합니다. - iOS 15 미만의 환경은 지원되지 않습니다. - Firefox 110 미만의 환경은 지원되지 않습니다. - 109에서는 ContainerQueries 플래그를 활성화하면 문제 없이 사용할 수 있습니다. #### 앱 개발자 - API: meta 응답은 더이상 emojis 프로퍼티를 포함하지 않습니다. - 커스텀 이모지 정보를 얻으려면, emojis 엔드포인트로 요청하세요. - API: 커스텀 이모지 엔티티는 더이상 url 프로퍼티를 포함하지 않습니다. - 이모지를 표시하려면, <인스턴스 호스트>/emoji/<이모지 이름>.webp를 요청하세요. - 예: https://p1.a9z.dev/emoji/misskey.webp - 리모트: https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp - API: user 및 note 엔티티는 더이상 emojis 프로퍼티를 포함하지 않습니다. - API: user 엔티티는 더이상 avatarColor 및 bannerColor 프로퍼티를 포함하지 않습니다. - API: instance 엔티티는 더이상 latestStatus, lastCommunicatedAt, latestRequestSentAt 프로퍼티를 포함하지 않습니다. - API: instance 엔티티의 caughtAt이 firstRetrievedAt으로 명칭이 변경되었습니다. ### 개선된 사항 - 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 ### 수정된 버그 - 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 ### 특히 감사드립니다 - 모든 기여자분들 - 베타 테스트를 위한 인스턴스를 만드신 모든 분들 - 베타 테스트에 참여하신 모든 분들 ## 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 `` 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.1(2022/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). ::: ================================================ FILE: content/ko/.docs-legacy/tips/disable-timelines.md ================================================ # 타임라인 비활성화 Misskey에서는 LTL, STL, GTL을 개별적으로 다룰 수 있습니다. 이에 따라, 인스턴스 관리 창에서 개별 타임라인을 활성화 또는 비활성화할 수 있습니다. :::tip 본 기능은 Misskey v12까지에만 존재합니다. Misskey v13에서는 역할로 통합되었습니다. 자세한 사항은 [해당 문서](../features/roles.md)를 참고해주세요. ::: 인스턴스 전체의 게시물은 로컬 타임라인과 소셜 타임라인에서 모두 확인할 수 있어 사용자가 직접 검색하지 않아도 관심 있는 다른 게시물을 손쉽게 찾을 수 있습니다. 하지만 동시에, 다른 사용자들의 게시물을 보기 위해 팔로우하는 것이 덜 중요해지고 부적절한 게시물이 더 자주 보여짐을 의미할 수도 있습니다. 게다가, 이런 경험은 채팅방과 비슷해지고, 결국 새로 대화에 참여하는 사람이 기존 대화에 참여하기 어렵게 만들 수 있습니다. 이런 장단점의 경중은 인스턴스마다 다르기에, 이 기능의 활성화 여부는 각 인스턴스에 맡겨집니다. 단점이 더 많다고 생각된다면, 이 타임라인들을 비활성화할 수 있습니다. :::warning 타임라인을 비활성화하면 혼란이 발생할 수 있으며 사용자 수가 일시적으로 감소할 수도 있습니다. 타임라인 비활성화의 영향을 신중하게 고려하고, 사용자들이 서로 자주 대화하는 상대를 미리 팔로우해 준비할 수 있도록 미리 비활성화 사유를 설명해 주세요. ::: 이와 별개로, 관리자와 모더레이터는 타임라인이 비활성화되더라도 계속해서 타임라인을 확인할 수 있습니다. ================================================ FILE: content/ko/.docs-legacy/troubleshooting.md ================================================ --- description: '문제가 발생한 경우, 우선 이 문서를 참고해 주세요.' --- # 문제 해결 :::tip [자주 묻는 질문](./faq.md)의 내용도 같이 참고하시면 좋습니다. ::: 문제가 발생하였을 때, 먼저 이 문서를 참고하여 주십시오. 해당하는 항목이 없거나, 이 문서에서 지시하는 대로 실행함에도 불구하고 해결되지 않을 때에는 서버 관리자에게 문의하거나 버그를 신고해 주십시오. ## 웹 클라이언트가 켜지지 않아요! 대부분의 경우, 사용하시는 브라우저 또는 운영체제가 오래되었을 경우 나타나는 현상입니다. 브라우저 및 운영체제를 최신 버전으로 업데이트한 뒤, 다시 시도하여 주십시오. 그럼에도 실행되지 않을 경우, 낮은 확률로 브라우저 캐시 문제일 가능성이 있습니다. 브라우저의 캐시를 초기화한 뒤, 다시 시도하여 주십시오. ## 페이지를 불러올 수 없어요! 웹 클라이언트는 켜지지만 페이지를 불러올 수 없다는 오류 메시지가 나온다면, 네트워크에 문제가 없는 지 먼저 확인해 주십시오. 또한 다른 기기로도 접속을 시도하여 서버가 멈춰있는 것은 아닌지도 확인해 주십시오. 낮은 확률로 브라우저 캐시 문제일 가능성이 있습니다. 브라우저의 캐시를 초기화한 뒤, 다시 시도하여 주십시오. 그럼에도 실행되지 않을 경우, 서버의 문제일 가능성이 있으므로 해당 서버의 관리자에게 문의하여 주십시오. ## 웹 클라이언트가 매우 느려요! 인터넷 서비스 제공자(ISP)의 통신 장에나 점검이 진행중인 것은 아닌지, 네트워크의 통신 속도나 네트워크 설정에 문제가 없는지, 서버 측의 장애 보고나 점검 일정은 없는 지 먼저 확인하십시오. 1.Misskey 웹 설정 메뉴의 '설정'으로 들어가셔서, '클라이언트 설정'의 '일반'에서 다음과 같이 설정해 보십시오. - '모양'의 "UI의 애니메이션을 줄이기" 켜기 - '모양'의 "모달에 흐림 효과 사용" 끄기 - '모양'의 "시스템 기본 글꼴을 사용" 켜기 - '모양'의 "OS 기본 이모지를 사용" 켜기 아래 설정은 Misskey의 기능을 일부 비활성화합니다. - '동작'의 "Pages 에서 AiScript 를 사용하지 않음" 끄기 - '모양'의 "움직임이 있는 MFM의 비활성화" 켜기 2.웹 브라우저 설정 - 브라우저 설정에서 하드웨어 가속을 켜기 - 브라우저의 애드온이나 확장 기능에 대한 설정을 점검 혹은 비활성화 - 기타 브라우저 설정을 점검 3.기타 - 사용 중인 기기의 시스템 설정 점검 ## Misskey 웹 클라이언트가 이상해요! (배경이 투명해지거나 기타 문제) 업데이트로 인해 UI의 변경 사항이 발생하였을 때, 테마 캐시 시스템의 영향으로 홈페이지가 정상적으로 표시되지 않을 수 있습니다. 설정 메뉴에서 '캐시 비우기'를 클릭하여 해결할 수 있습니다. :::warning "웹 클라이언트" 설정의 캐시 비우기입니다. "브라우저"의 캐시를 초기화하지 마십시오. ::: ## 알림이나 안테나의 깜빡임 표시가 사라지지 않아요! 깜빡임 표시는 읽지 않은 컨텐츠가 있을 때에 나타납니다. 깜빡임 표시가 사라지지 않는 현상은 보통 읽지 않은 컨텐츠가 목록 어딘가에 존재하기 때문에 나타납니다. 모든 컨텐츠를 읽은 것 같은데도 사라지지 않는다면 (버그일 가능성이 있습니다), 설정 - 알림에서 모든 알림/글/대화를 읽은 상태로 표시하도록 할 수 있습니다. ## 리노트할 수 없어요! 공개 범위가 '팔로워'이거나 '다이렉트'인 게시물은 리노트할 수 없습니다. ## Misskey 웹 클라이언트에서 특정 요소가 표시되지 않아요! 웹 브라우저의 광고 차단기와 같은 애드온 또는 확장 기능에 의해 발생하는 문제일 수도 있습니다. 애드온 또는 확장 기능의 설정을 점검하거나, 비활성화하여 주십시오. ## Misskey 웹 클라이언트에 번역되지 않은 부분이 있어요! 대부분의 경우 Misskey 웹 클라이언트의 번역이 제때 이루어지지 않은 것이 원인이므로, 버그가 아닙니다. 불편하시겠지만 번역이 완성될 때까지 기다려 주십시오. 만약 Misskey의 번역에 관심이 있으시다면 직접 [번역에 참가](./misskey.md)하실 수도 있습니다. ================================================ FILE: content/ko/contact-faq/0.cannot-create-account.md ================================================ --- question: 계정을 생성할 수 없어요. --- **문의처가 잘못된 것으로, 올바른 문의처를 확인해 주십시오.** 해당 사이트는 해당 단체 'Misskey Project'가 개발하는 오픈소스 소프트웨어 'Misskey'의 공식 사이트입니다. 위에 적혀져 있는 방법을 해 보셔도 등록할 수 없는 경우나 위에 적혀져 있는 방법에 없는 항목 (서버에 의한 독자 커스텀)에 대해서 등, 등록에 관해서 모르는 부분이 있으실 경우에는 이용하시는 서버의 운영자에게 문의해 주세요. (사람에 따라서는 Misskey를 사용한 Web 서비스(Misskey 서버)를 가리켜 단순히 'Misskey'라고 부르는 경우가 있기에 주의가 필요합니다.) Misskey Project는 소프트웨어의 기본적인 소스 코드의 무상 제공만 행하며, Misskey나 Misskey 파생 소프트웨어를 사용한 서버나 서비스의 제공, 운영 등은 일절 하고 있지 않습니다. 또 이들의 서비스를 관할하거나 관여하는 입장 또한 아닙니다. 그렇기에 특정 서비스에 관한 문의는 **해당 사이트의 폼에 문의하셔도 대응할 수 없습니다.** ================================================ FILE: content/ko/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: 계정에 로그인할 수 없습니다 --- **문의처가 잘못된 것으로, 올바른 문의처를 확인해 주십시오.** 해당 사이트는 해당 단체 'Misskey Project'가 개발하는 오픈소스 소프트웨어 'Misskey'의 공식 사이트입니다. 'Misskey'는 SNS 작성을 위한 무료 소프트웨어이고, Web 서비스가 아닙니다. (사람에 따라서는 Misskey를 사용한 Web 서비스(Misskey 서버)를 가리켜 단순히 'Misskey'라고 부르는 경우가 있기에 주의가 필요합니다.) Misskey Project는 소프트웨어의 기본적인 소스 코드의 무상 제공만 행하며, Misskey나 Misskey 파생 소프트웨어를 사용한 서버나 서비스의 제공, 운영 등은 일절 하고 있지 않습니다. 계정에 로그인할 수 없는 경우, 각 서버나 계정에 문제가 있을 수 있으므로 해당 서버의 운영자에게 문의하시기 바랍니다. 그렇기에 특정 서비스에 관한 문의는 **해당 사이트의 폼에 문의하셔도 대응할 수 없습니다.** ================================================ FILE: content/ko/contact-faq/2.delete-account.md ================================================ --- question: 계정을 삭제하고 싶습니다 --- **문의처가 잘못된 것으로, 올바른 문의처를 확인해 주십시오.** 해당 사이트는 해당 단체 'Misskey Project'가 개발하는 오픈소스 소프트웨어 'Misskey'의 공식 사이트입니다. 위의 가이드에도 불구하고 계정 삭제 방법을 모르거나, 절차를 따랐음에도 불구하고 계정이 삭제되지 않는 경우, 해당 서버 운영자에게 문의하시기 바랍니다. (사람에 따라서는 Misskey를 사용한 Web 서비스(Misskey 서버)를 가리켜 단순히 'Misskey'라고 부르는 경우가 있기에 주의가 필요합니다.) Misskey Project는 소프트웨어의 기본적인 소스 코드의 무상 제공만 행하며, Misskey나 Misskey 파생 소프트웨어를 사용한 서버나 서비스의 제공, 운영 등은 일절 하고 있지 않습니다. 또 이들의 서비스를 관할하거나 관여하는 입장 또한 아닙니다. 그렇기에 특정 서비스에 관한 문의는 **해당 사이트의 폼에 문의하셔도 대응할 수 없습니다.** ================================================ FILE: content/ko/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 00의 서버에 있는 콘텐츠를 삭제해 주세요. --- Misskey Project는 Misskey라는 소프트웨어를 개발하는 단체로, Misskey 서버나 서비스를 제공하지 않으므로 \*\* 아래 양식으로 문의하셔도 대응이 불가능합니다.\*\* 해당 사이트는 해당 단체 'Misskey Project'가 개발하는 오픈소스 소프트웨어 'Misskey'의 공식 사이트입니다. 'Misskey'는 소프트웨어이고, Web 서비스가 아닙니다. (사람에 따라서는 Misskey를 사용한 Web 서비스(Misskey 서버)를 가리켜 단순히 'Misskey'라고 부르는 경우가 있기에 주의가 필요합니다.) Misskey Project는 소프트웨어의 기본적인 소스 코드의 무상 제공만 행하며, Misskey나 Misskey 파생 소프트웨어를 사용한 서버나 서비스의 제공, 운영 등은 일절 하고 있지 않습니다. 또 이들의 서비스를 관할하거나 관여하는 입장 또한 아닙니다. 그렇기에 특정 서비스에 관한 문의는 **해당 사이트의 폼에 문의하셔도 대응할 수 없습니다.** 자체 서버 및 타 서버의 콘텐츠에 대한 제재는 각 서버의 규칙에 따라 이루어지므로, 해당 콘텐츠가 전송된 서버의 관리자에게 연락을 취하거나 해당 사용자 및 서버를 차단하는 등 자체적으로 대응해 주시기 바랍니다. ================================================ FILE: content/ko/contact-faq/4.copyright-infringement.md ================================================ --- question: 저작권 침해 발견 --- **문의처가 잘못된 것으로, 올바른 문의처를 확인해 주십시오.** 또, Misskey 서버, 서비스를 관할하는 입장이 아닙니다. 따라서 Misskey 서버의 저작권 침해에 대해서는 해당 서버 운영자에게 문의하시기 바랍니다. (사람에 따라서는 Misskey를 사용한 Web 서비스(Misskey 서버)를 가리켜 단순히 'Misskey'라고 부르는 경우가 있기에 주의가 필요합니다.) Misskey Project는 소프트웨어의 기본적인 소스 코드의 무상 제공만 행하며, Misskey나 Misskey 파생 소프트웨어를 사용한 서버나 서비스의 제공, 운영 등은 일절 하고 있지 않습니다. 또 이들의 서비스를 관할하거나 관여하는 입장 또한 아닙니다. 그렇기에 특정 서비스에 관한 문의는 **해당 사이트의 폼에 문의하셔도 대응할 수 없습니다.** ================================================ FILE: content/ko/contact-faq/5.client-not-working.md ================================================ --- question: Misskey가 정상적으로 동작하지 않습니다. --- 먼저, 브라우저의 일반적인 문제 해결 방법은 '[문제 해결](/docs/for-users/resources/troubleshooting/)'에서 확인해주세요. 다음 항목 등을 체크해보세요: - **커스텀 CSS 또는 플러그인을 삭제**해보셨나요? - **다시 한 번 로그인** 해보셨나요? - **오래된 버전의 OS나 브라우저**를 쓰고 계시진 않나요? - **일정한 시간을 두고 다시 접속**해보셨나요? - **URL 주소가 올바른지** 확인해보셨나요? - **브라우저의 캐시, 쿠키**를 삭제해보셨나요? 그래도 해결되지 않는 경우, **먼저 서버 관리자**에게 문의해보세요. Misskey Project에 버그나 에러를 제보하도록 지시를 받았다면 **아래에 있는 폼이 아닌** 개발 플랫폼인 [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)에 버그 보고를 해주세요. 아래에 있는 문의 폼에 버그나 에러 보고를 하셔도 바로 대응할 수 없습니다.꼭 [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)에 제보해주세요. ================================================ FILE: content/ko/contact-faq/6.mention-spam.md ================================================ --- question: Misskey나 서버 지원을 사칭한 계정으로부터 메시지를 받았습니다 --- **Misskey Project가 그러한 메시지를 보내는 경우는 없습니다.스팸 메시지의 가능성이 의심되므로 우선 사용하시는 서버의 관리자에게 문의해 주십시오.** Misskey나 Misskey Project, 혹은 특정 서버의 지원 창구를 사칭한 계정으로부터 갑자기 '계정이 정지됐으므로 대응이 필요' 등의 메시지와 함께 모르는 사이트로의 링크가 기재돼있는 경우나, 해당 멘션에 대해 응답하도록 재촉하는 등의 어떠한 행동을 재촉하는 지시가 있는 경우에는 **스팸 메시지일 가능성이 높습니다.** 이러한 메시지를 받았을 경우에는 우선 사용하시는 서버의 관리자에게 문의해 주십시오.**노트 내의 링크를 클릭하거나, 그 노트에 답변하면 생각지 못한 문제에 휘말릴 수 있으므로 주의해 주십시오.** (Misskey Project는 소프트웨어의 기본적인 소스 코드의 무상 제공만 행하며, Misskey나 Misskey 파생 소프트웨어를 사용한 서버나 서비스의 제공, 운영 등은 일절 하고 있지 않습니다.또 이들의 서비스를 관할하거나, 관여하는 입장도 아니므로 문의는 **사용하시는 서버의 관리자**에게 부탁드립니다.Misskey Project에서는 대응하기 어렵습니다.) ================================================ FILE: content/ko/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskey를 설명하는 문서입니다.' --- # Misskey에 대하여 Misskey는 오픈소스 분산형 마이크로블로그 플랫폼 프로젝트입니다. 개발은 일본에서 syuilo에 의해 2014년부터 시작되었습니다. 드라이브, 리액션 등의 풍부한 기능이나 높은 커스터마이즈 기능을 가진 UI가 특징입니다. ![Misskey의 스크린샷](/img/hero/misskey-light.png) ## 역사 개발 초기에는 게시판 메인의 서비스였으나, 유저가 짧은 글을 올리며, 그 글이 시간 순서대로 흘러가는 타임라인 기능을 추가한 후 인기를 받게 되어, 이후 이를 중심으로 개발이 진행되었습니다. 초기에는 분산형이 아니었지만, 2018년에 ActivityPub 프로토콜을 지원함으로써 분산형 SNS이 되어 더욱 많은 분에게 인지되며 이용되는 서비스가 되었습니다. :::tip Misskey라는 이름은 syuilo가 당시 듣고 있던 May'n의 노래, Brain Diver의 가사에서 유래했습니다. ::: 누구나 개발에 참가할 수 있으며, 현재도 활발한 개발이 이루어지고 있습니다. [Misskey 역사관](/about-us/history/) ## 분산형이란 무엇인가? 분산형(distributed)이란, 탈중앙화(decentralized) 로도 불리며 다양한 커뮤니티에 흩어져 있는 유저들이 서로 통신(연합, federation)하여 서로의 정보를 주고 받는 네트워크(연합우주, Fediverse)를 이루는 것이 특징입니다. 서버가 하나밖에 없거나, 여러 서버가 있더라도 서로 독립되어 있는 경우는 중앙집권 서비스라고 하며, Twitter나 Facebook 등이 이에 속합니다. 분산형의 장점은 자신에게 맞는 운영자나 테마를 자유롭게 선택할 수 있는 것입니다.직접 서버를 운영할 수도 있습니다. 다양한 서버가 연합한다는 특성으로, 어떤 서버를 고르더라도 같은 커뮤니티에 접근할 수 있습니다. ## 언제나 오픈소스 Misskey는 지금까지도 앞으로도 오픈 소스로 운영됩니다.오픈 소스란, 간단하게 말하면 소프트웨어의 소스 코드(프로그램)가 공개되어 있는것 입니다.소스코드의 수정이나, 재배포가 가능하다는 것을 정의에 포함하는 경우도 있습니다. Misskey의 모든 소스 코드는 [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) 이라는 오픈 소스 라이센스 아래에 [공개](https://github.com/misskey-dev) 되어 누구나 자유롭게 열람, 사용, 수정, 변경, 재배포를 할 수 있습니다. 오픈소스는, 당신이 좋아하는 대로 바꾸거나, 유해한 처리가 포함되어 있지 않은지 확인할 수도 있고, 누구나 개발에 참여할 수 있다는 등의 여러 메리트가 있습니다. 앞서 언급한 분산형을 실현하기 위해서도 오픈소스인 것은 필수 불가결한 요소입니다. 다시 비교하자면, Twitter나 Facebook등의 이익을 얻고 있는 대부분의 서비스는 오픈소스가 아닙니다. :::tip 기술적으로는, Misskey의 소스 코드는 Git으로 관리되며 저장소는 [GitHub에서 호스팅됩니다. ::: ## 개발에 참가하기, 프로젝트를 지원하기 Misskey가 마음에 드신다면 꼭 프로젝트를 지원해주세요. 프로젝트에 기여하기 위해서는, 아래에서 소개하는 것과 같은 여러가지 방법이 있습니다.방법에 따라 개발 기술이 필요 없을 수도 있기 때문에 누구나 부담 없이 참여하고 기여할 수 있습니다.여러분의 기여를 언제나 기다리고 있습니다. ### 기능을 추가하거나 버그를 수정하기 소프트웨어 개발의 기술을 가지고 있는 분이라면, 소스코드를 편집하는 형태로 프로젝트에 기여하실 수 있습니다. 기여에 대한 가이드는 [여기](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md) 입니다. ### 논의에 참여하기 새로운 기능 또는 기존 기능에 대해 의견을 내거나 버그를 보고하는 데도 기여할 수 있습니다. 그러한 토론은 [GitHub](https://github.com/misskey-dev)이나, [포럼](https://forum.misskey.io/)등에서 이루어집니다. ### 문장 번역하기 Misskey는 다양한 언어를 지원하고 있습니다.(i18n -internationalization의 줄임말- 이라고 불립니다)원 언어는 기본적으로 일본어이지만, 기여자에 의해서 다른 언어로 번역되고 있습니다. 그 번역 작업에 참여해 주시는 것으로도 Misskey에 기여할 수 있습니다. Misskey는 [Crowdin이라는 서비스를 이용하여 번역의 관리를 하고 있습니다.](https://crowdin.com/project/misskey) ### Misskey에 대해 의견 쓰기 버그 제보 뿐만 아니라 Misskey의 좋은 점, 즐거운 점 등 긍정적인 의견도 꼭 공유해 주세요. 개발에 힘이 되고, 간접적이지만 그것 또한 프로젝트에 대한 기여가 됩니다. ### 미스키스트 늘리기 미스키스트(Misskist) 란 Misskey를 사용하는 사람을 말합니다. 지인에게 소개하는 등 Misskey를 퍼뜨려주시면 미스키스트가 늘어나 개발 의욕이 높아집니다. ### 기부하기 [여기를 읽어 주세요.](/docs/donate/) ## 자주 묻는 질문 ### 프로젝트의 목표는 무엇인가요? Misskey는 다른 프로젝트와는 달리 어떠한 사상(예를 들면 반중앙집권)이나 이상에 근거하여 개발이 이루어지고 있는 것이 아니며, 그런 점에서는 평탄합니다. 그것이 반대로, 특정한 방향으로 묶이지 않는 유연함으로 이어진다고 느끼고 있습니다. ### 기업에서 개발하나요? 아닙니다.Misskey의 개발은 개인적으로 이루어지고 상업적이지도 않기 때문에 특정 기업의 관계는 없습니다. 개발 멤버도 기본적으로 자원봉사입니다. 또한, 개발에 대해 후원이 붙는 경우도 있지만, 그 경우에도 역시 개발은 개인의 커뮤니티가 주체입니다. ### 누가 운영하나요? Misskey는 분산형이기 때문에 각 서버마다 각기 다른 운영자가 있습니다. 따라서, 특정 개인이나 기업에 의해 Misskey의 모든 것이 운영되는 것은 아닙니다. 또한, 개발 팀이 운영을 하는 것도 아니므로 운영에 관한 연락은 사용하시는 운영자에게 해 주시기 바랍니다. 서버의 운영자는 서버의 정보 페이지에서 확인할 수 있습니다. 당신이 서버를 만들면, 당신이 운영자가 됩니다. ### 어떤 서버를 골라야 하나요? [서버 목록이 공개되어 있습니다.](/servers/)서버에 따라 커뮤니티의 주제(특정한 것을 좋아함 등)가 정해져 있는 경우가 있기 때문에 자신에게 맞는 주제의 서버가 있다면, 그곳을 선택하는 것이 좋을지도 모릅니다. 그 외에도 서버의 규모, 유저 층, 나라 및 언어, 운영자를 신뢰할 수 있느냐 등의 관점이 있습니다. 또한, Misskey공식 서버같은 것은 없습니다.당신 스스로 직접 새로운 서버를 만드는 선택지도 있습니다. 기본적으로 어떤 서버를 선택하든 다른 모든 서버의 사용자와 이어질 수 있습니다. ### 서버는 어떻게 만드나요? Misskey 서버 구축에 관심을 가져주셔서 감사합니다. Misskey 서버 구축에는 전용 서비스를 사용하는 방법이나, 반자동으로 환경을 구축하는 방법 등이 있습니다. (물론, 수동으로 서버를 구축할 수 있습니다.)자세한 내용은 [여기](/docs/for-admin/install/guides/)를 확인하세요. ### 어떤 기술을 쓰나요? Misskey는 개발이 진행되면서 사용하는 기술도 크게 바뀌어 갔습니다.개발 초기에는 MySQL + PHP + jQuery와 같은 구성이었으나 현재는 다음과 같습니다. - 서버 사이드: Node.js - 데이터베이스: PostgreSQL, Redis - UI 프레임워크: Vue.js - 프로그래밍 언어: TypeScript 또, MFM이나 AiScript등의 Misskey로부터 파생된 독자적인 기술도 개발하고 있습니다. ### Mastodon의 한 갈래인가요? 아닙니다.Misskey는 Mastodon이나 다른 프로젝트와는 전혀 다른 프로젝트입니다. 개발도 Misskey가 더 오랫동안 개발되어왔습니다.하지만, 분산형이 된 것은 Mastodon의 등장보다 나중의 일입니다. 같은 ActivityPub이라는 분산형 프로토콜을 사용하고 있다는 점 이외에는 Mastodon과의 다른 특별한 관련이 있는 것도 아닙니다. ### iOS/Android용 어플리케이션이 있나요? 공식적으로는 그런 OS의 네이티브 앱을 개발하지 않았지만, 서드파티 앱이 몇 개 있습니다. 자세한 내용은 [여기](/docs/for-users/resources/apps/)를 참조하시기 바랍니다. 또한, 서드파티 앱은 아무래도 기능 변경에 대한 대응이 늦어지므로, 특별한 이유가 없다면 공식 Web 클라이언트의 이용을 추천합니다. 덧붙여 Misskey의 Web 클라이언트는 PWA를 지원하고 있기 때문에, 네이티브 앱처럼 동작시키는 것도 가능합니다. :::tip PWA의 설정 방법에 대해서는 [여기를](/docs/for-users/stepped-guides/how-to-use-pwa/) 봐 주세요. ::: ### Misskey의 로고, 아이콘은 어디서 구할 수 있나요? [여기를 읽어 주세요.](/brand-assets/) ### 가끔 보이는 고양이귀의 귀여운 여자아이는 누구인가요? :::fukidashi{chara="doya_ai" charaName="藍(아이)"} 저에 대해서는 [이 홈페이지](https://xn--931a.moe/)를 참조해주세요! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ(슈이로)" direction="right"} Misskey의 수호신, 藍(아이) 입니다.아이쨩! 아이쨩! ::: ================================================ FILE: content/ko/docs/2.for-users/1.index.md ================================================ # 사용자 가이드 이 섹션에서는 Misskey를 처음 사용하는 사람은 물론, 이미 사용하고 있는 사람들도 유용하게 사용할 수 있는 일반적인 기능들을 소개합니다. ================================================ FILE: content/ko/docs/2.for-users/2.onboarding/0.index.md ================================================ # Misskey 시작하기 여기는 Misskey의 첫 길라잡이입니다. 주로, - 분산형 플랫폼의 주의 사항 - 서버는?서버는 어떻게 고르나요?서버는 어떻게 고르나요? - 가입 방법 - 최소한의 기초 지식 등을 설명하므로 이대로 한다면 Misskey를 쓸 수 있습니다. 그렇다면 바로 시작하겠습니다!(‘다음’을 눌러 진행하세요.) ================================================ FILE: content/ko/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Misskey 서버에서 계정을 만들려면 알아야 하는 기본적인 주의 사항입니다.' --- # 기본적인 주의 사항 Misskey를 쓰는 서비스를 이용할 때에는 몇 가지를 유의해야 합니다. - Misskey는 분산형 서비스입니다.(하지만 이는 대부분의 인터넷이 그렇습니다.) - 비공개로 올린 노트도, 다른 서버에서도 동일하게 비공개로 취급할지는 보증할 수 없습니다.개인 정보, 기밀 정보를 올리실 때는 특별히 주의하시길 바랍니다.(하지만, 이 내용은 다른 인터넷 서비스들도 이렇다고 할 수 있습니다.)개인 정보, 기밀 정보를 올리실 때는 특별히 주의하시길 바랍니다.(하지만, 이 내용은 다른 인터넷 서비스들도 이렇다고 할 수 있습니다.)개인 정보, 기밀 정보를 올리실 때는 특별히 주의하시길 바랍니다.(하지만, 이 내용은 다른 인터넷 서비스들도 이렇다고 할 수 있습니다.) - Misskey에 탑재된 "드라이브" 기능은 일반적인 클라우드 스토리지가 아닙니다.이 기능은 업로드한 파일을 관리하거나 재사용하기 위한 것입니다. \*\*업로드된 데이터는 노트에 첨부한 적이 있는지에 관계 없이 URL을 아는 사람이라면 누구든 접근할 수 있습니다.\*\*비밀 정보를 포함한 데이터의 송수신은 전용 서비스를 이용해주세요. - 계정 삭제는 서버에 부하가 많이 가므로, 긴 시간이 걸리는 경우가 있습니다.업로드하신 데이터가 많은 경우에는 계정 삭제가 되지 않는 경우가 있습니다.계정 삭제는 서버에 부하가 많이 가므로, 긴 시간이 걸리는 경우가 있습니다.업로드하신 데이터가 많은 경우에는 계정 삭제가 되지 않는 경우가 있습니다.한 번 업로드를 하신 데이터는 삭제하셔도 다른 서버에서도 꼭 삭제되었다고는 할 수는 없습니다.(하지만, 이 내용은 다른 인터넷 서비스들도 이렇다고 할 수 있습니다.) - 서버에 따라선, 광고비 수입으로 운영되어지는 경우가 있습니다.서버에 따라선, 광고비 수입으로 운영되어지는 경우가 있습니다.또한 광고 차단은 광고와 전혀 관련 없는 콘텐츠나 기능을 잘못 차단하기도 하므로 클라이언트 작동에 지장이 가거나 정상적으로 Misskey를 사용할 수 없을 수도 있습니다.이 경우 정상적으로 Misskey를 사용하실 수 없는 경우가 있습니다.그러므로, Misskey에는 광고 차단기나 그에 준하는 기능은 끄고 사용하시길 바랍니다.Misskey는 분산형 서비스입니다.(하지만 이는 대부분의 인터넷이 그렇습니다.) 이 내용들을 숙지하신 후, 편리한 서비스를 사용하시길 바랍니다. ================================================ FILE: content/ko/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskey 서버에 회원 가입을 하는 방법과 기본적인 조작에 대해서 해설합니다." --- # Misskey 서버 찾아보기 Misskey는 소프트웨어 및 그에 관련된 프로젝트 입니다. [서버 리스트](/servers/)에서 원하시는 서버를 찾아보실 수 있습니다. :::tip ::g-details{summary='자세히'} Misskey에는 연합 기능이 준비되어져 있습니다. :::g-details{summary='자세히'} Misskey에는 연합 기능이 갖춰져 있습니다. 연합 기능을 통해서 다른 서버의 유저라도 같은 서버의 유저랑 똑같이 팔로우나 리액션, Renote 등을 할 수 있습니다. Misskey가 탑재하고 있는 ActivityPub이라는 개방된 공통 규격을 따르고 있어 Mastodon이나 Pleroma와 같은 다른 소프트웨어 간에도 호환성을 가집니다. ::: ::: ## 서버를 고르는 방법 ### 서버의 주제 어떤 서버의 경우에는 "특정적인 무언가가 좋아하는 사람"들이 주제를 정하고 모인 경우가 있습니다. :::tip 서버 리스트는 [여기](/servers/)에서 확인하실 수 있습니다. ::: ================================================ FILE: content/ko/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # 서버에 회원가입하기 가입하고 싶은 서버를 정하시면, 바로 계정을 만들어봅시다. :::tip 여기서는 Misskey.io를 예로 들었지만, 다른 서버에서도 등록 방법은 대체로 동일합니다. 다만, 가입하실 때 필요한 정보는 서버에 따라 다른 경우가 있습니다.자세한 내용은, 서버 관리자에게 확인해보시길 바랍니다. ::: ::: ## 가입하기 먼저, 첫 페이지에서 "**이 서버에 가입**"버튼을 찾은 다음, 클릭합니다. ![이 서버에 가입 버튼](/img/docs/for-users/onboarding/join-server/1.ja.png) 대부분 입력하게 되는 내용들은 아래와 같습니다. 대부분 입력하게 되는 내용들은 아래와 같습니다. - 초대 코드 (초대제 서버인 경우.코드가 없으신 분은 가입할 수 없습니다.) - 유저명 (**가입 후에는 바꾸실 수 없습니다.한 번 탈퇴하신 후에는 같은 유저명으로 가입하실 수 없습니다.**) - 이메일 주소 (필요하지 않은 서버도 있습니다) - 비밀번호 ![필요한 정보의 입력](/img/docs/for-users/onboarding/join-server/2.ja.png) 대부분 입력하게 되는 내용들은 아래와 같습니다. 필요한 정보를 모두 기입하시면, 이메일 주소를 입력해야하는 서버의 경우, 확인 메일이 와있으므로, 가급적 빠르게 메일 안에 있는 링크를 클릭해주세요. 이것으로 당신도 [미스키스트](../resources/glossary/#미스키스트)!즐거운 커뮤니케이션을 보내시길 바랍니다. ![확인 이메일](/img/docs/for-users/onboarding/join-server/3.ja.png) 여기서는 Misskey.io를 예로 들었지만, 다른 서버에서도 등록 방법은 대체로 동일합니다. 다만, 가입하실 때 필요한 정보는 서버에 따라 다른 경우가 있습니다.자세한 내용은, 서버 관리자에게 확인해보시길 바랍니다. 다음, 화면의 내용에 따라 이용 약관의 확인과 필요한 정보를 입력해주세요. 대부분 입력하게 되는 내용들은 아래와 같습니다. 이것으로 당신도 [미스키스트](../resources/glossary/#미스키스트)!즐거운 커뮤니케이션 하시길 바랍니다. ================================================ FILE: content/ko/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskey의 기초 지식 계정을 만든 당신에게 제일 먼저 알아두면 좋은 내용을 정리해두었습니다. ## 노트 Misskey에 올리는 것은 일반적으로 "노트"라고 부릅니다.Twitter 등의 일반적인 SNS와 비교해 더 많은 기능들이 있으니, 첫 노트를 올리시기 전에 꼭 확인해보시길 바랍니다. :::tip 자세한 내용은 [노트](/docs/for-users/features/note/)에서 확인할 수 있습니다. ::: ## 타임라인 Misskey는 여러 개의 타임라인을 가지고 있습니다.이름만으로는 다소 이해하기 어려울 수 있으니, 각각 어떤 역할을 하는지 알아둡시다.이름만으로는 다소 이해하기 어려울 수 있으니, 각각 어떤 역할을 하는지 알아둡시다. :::tip 자세한 내용은 [타임라인](/docs/for-users/features/timeline/)에서 확인할 수 있습니다. ::: ## 그 외 Misskey에 올리는 것은 일반적으로 "노트"라고 부릅니다.Twitter 등의 일반적인 SNS와 비교해 더 많은 기능들이 있으니, 첫 노트를 올리시기 전에 꼭 확인해보시길 바랍니다.이 밖에도 Misskey에는 다양한 기능들이 있습니다!모든 기능에 대한 설명은 [여기](/docs/for-users/features/)에서 확인할 수 있으니 꼭 확인해보세요! ================================================ FILE: content/ko/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Misskey의 큰 특징인, 다양한 기능에 대해 설명하고 있습니다." --- # 여러가지 기능 Misskey의 큰 특징은, 다른 마이크로 블로그 시스템에서는 볼 수 없는 다양한 기능이 있는 것 입니다.여기에서는, 그 내용들에 대해 설명을 합니다.여기에서는, 그 내용들에 대해 설명을 합니다.여기에서는, 그 내용들에 대해 설명을 합니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/ads.md ================================================ # 광고 Misskey에서는 각 서버에서 준비한 광고를 타임라인 등에 표시할 수 있는 기능이 있습니다. :::tip 광고의 총 개수가 적은 경우, 표시 빈도를 낮춰도 계속 표시될 수 있습니다. ::: ## 광고 설정(관리자) 서버 제어판에서 광고를 추가, 편집, 삭제할 수 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/antenna.md ================================================ # 안테나 안테나는 원하는 조건을 설정해서 그 조건에 맞는 노트를 자동으로 수집할 수 있는 기능입니다. 조건을 설정한 안테나가 있는 경우, 조건에 맞는 노트가 올라오면, 실시간으로 그 안테나 타임라인에 노트가 올라옵니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/charts.md ================================================ # 차트 Misskey는 서버의 여러 종류의 데이터 소스에 대응하는 차트를 만들어 표시하는 기능을 가지고 있습니다. 서버 차트는 서버 정보 페이지에서 표시하실 수 있습니다. 아래는 각 차트와 각 항목의 설명입니다. ## 연합 차트 연합하고 있는 서버화에 대한 차트입니다. ### Pub 액티비티를 보내는 서버 수. 다르게 말하면, 각 서버의 유저를 팔로우하고 있는 리모트 유저의 소속 서버의 고유한 카운트를 뜻합니다. 액티비티를 받고 있는 서버 수. 다르게 말하면, 본인의 서버에 있는 유저가 팔로우하고 있는 리모트 유저의 소속 서버의 고유한 카운트를 뜻합니다. 액티비티를 받고 있는 서버 수. ### Sub 액티비티를 받고 있는 서버 수. 다르게 말하면, 본인의 서버에 있는 유저가 팔로우하고 있는 리모트 유저의 소속 서버의 고유한 카운트를 뜻합니다. ### Received 액티비티를 보내온 서버 수. ### Delivered 액티비티를 보내온 서버 수. ### Stalled 액티비티를 보냈을 때 에러였던 서버 수. ## 액티브 유저 수 차트 각 서버의 유저 사용 상황에 대한 차트입니다. ### Read & Write 열람과 작성을 한 유저의 수. ### Read 열람을 한 유저의 수. ### Write 작성을 한 유저의 수. ### < Week 열람을 했던 유저 중, 회원가입하고 1주일 미만인 유저 수. ### < Month 열람을 했던 유저 중, 회원가입하고 1개월 미만인 유저 수. ### < Year 열람을 했던 유저 중, 회원가입하고 1년 미만인 유저 수. ### > Week 열람을 했던 유저 중, 회원가입하고 1주일 이상이 되기 전의 유저 수. ### > Month 열람을 했던 유저 중, 회원가입하고 1개월 이상이 되기 전의 유저 수. ### > Year 열람을 했던 유저 중, 회원가입하고 1년 이상이 되기 전의 유저 수. ================================================ FILE: content/ko/docs/2.for-users/3.features/clip.md ================================================ # 클립 클립은 여러 노트를 한 번에 모으는 기능입니다.본인 및 타인의 노트인지는 상관 없습니다.클립은 여러 노트를 한 번에 모으는 기능입니다.본인 및 타인의 노트인지는 상관 없습니다.클립은 여러 개도 만들 수 있으며, 각각 이름과 설정을 설정하여 관리할 수도 있습니다.또한, 클립을 다른 유저에 공개할지도 직접 선택하실 수 있습니다.또한, 클립을 다른 유저에 공개할지도 직접 선택하실 수 있습니다.또한, 클립을 다른 유저에 공개할지도 직접 선택하실 수 있습니다. 클립을 만드실 땐, [클립 관리 페이지](x-mi-web://my/clips)에서 "추가"를 클릭합니다. 클립에 노트를 추가하실 땐, 추가할 노트의 메뉴에서 "클립"을 클릭하여 추가할 클립을 선택합니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/custom-emoji.md ================================================ # 커스텀 이모지 커스텀 이모지는, 서버에 준비되어져 있는 이미지를 이모지같이 사용할 수 있는 기능입니다. 노트, 리액션, 채팅, 자기 소개, 닉네임 등에도 사용하실 수 있습니다. 커스텀 이모지를 쓰실 땐, 이모지의 아이콘 버튼(이 있는 경우만)을 누르거나, `:`를 입력해서 이모지 검색창을 표시합니다. 텍스트 안에 `:foo:`와 같은 형식의 문자열을 찾으면 `foo` 부분이 커스텀 이모지로 인식되어, 표시할 때 거기에 맞는 커스텀 이모지로 바뀌어 표시됩니다. 서버에 어떤 커스텀 이모지가 준비되어져 있는지는, Misskey Web의 **서버 정보**에 있는 [**커스텀 이모지**](x-mi-web://about#emojis)에서 확인하실 수 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/deck.md ================================================ # 덱 덱은 이용 가능한 UI 중 하나입니다.덱은 이용 가능한 UI 중 하나입니다."칼럼"이라고 불리는 여러 뷰를 나열하여 표시하여 커스터마이즈성이 높고 정보량이 많은 UI를 만들 수 있다는 특징이 있습니다.\ 또한, 메인 칼럼을 추가해두시면 노트와 프로필을 페이지에 표시해둔 경우 메인 칼럼에서 그 내용을 표시합니다. 또한, 메인 칼럼을 추가해두시면 노트와 프로필을 페이지에 표시해둔 경우 메인 칼럼에서 그 내용을 표시합니다. ## 칼럼 추가 덱의 배경 부분을 클릭하여 "칼럼 추가"를 눌러 원하시는 칼럼을 추가할 수 있습니다. ## 칼럼 이동 칼럼은 끌어당기기로 다른 칼럼과 위치를 바꿀 수 있습니다. 또한 칼럼 메뉴(칼럼 헤더의 오른쪽)에서 위치를 바꿀 수도 있습니다. 또한 칼럼 메뉴(칼럼 헤더의 오른쪽)에서 위치를 바꿀 수도 있습니다. ## 칼럼 수평 분할 또한 칼럼 메뉴(칼럼 헤더의 오른쪽)에서 위치를 바꿀 수도 있습니다. 칼럼은 좌우정렬 외에도 상하정렬도 하실 수 있습니다. 칼럼 메뉴를 열고 "왼쪽에 겹치기"를 선택하시면, 현재의 칼럼이 왼쪽 칼럼 밑으로 이동합니다. 상하분할을 해제할 땐, 칼럼 메뉴의 "오른쪽으로 빼기"를 선택하세요. ## 칼럼 설정 칼럼 메뉴의 "편집"을 클릭하면 칼럼 설정을 바꿀 수 있습니다.칼럼의 이름을 바꾸거나, 넓이를 조절 할 수 있습니다. ## 덱 설정 덱 설정은, [settings/deck](x-mi-web://settings/deck)에서 할 수 있어요. ================================================ FILE: content/ko/docs/2.for-users/3.features/dev-mode.md ================================================ # 개발자 모드 [설정 → 기타 → 개발자](x-mi-web://settings/other)에서 개발자 모드를 활성화하면, 노트나 미디어 ID를 메뉴에서 직접 복사할 수 있는 등의 개발자에게 있어 편리한 기능을 사용할 수 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/drive.md ================================================ # 드라이브 드라이브는 Misskey에서 파일을 관리할 수 있는 기능입니다. :::tip Misskey Web의 드라이브 페이지에서 임의 파일을 업로드 하거나, 아바타로 설정한 이미지나, 노트를 첨부한 파일 등도 모두 드라이브에 올라갑니다. ::: Misskey Web의 [드라이브 페이지](x-mi-web://my/drive)에서 임의 파일을 업로드 하거나, 아바타로 설정한 이미지나, 노트를 첨부한 파일 등도 모두 드라이브에 올라갑니다. :::tip 역할에서 업로드 가능한 파일 종류를 설정 가능하고, 기본으로는 텍스트, JSON, 이미지, 동영상, 음성 파일을 업로드 할 수 있습니다. ::: 드라이브에 업로드된 파일은 언제든지 다운로드할 수 있으며, 노트 작성 시 '드라이브에서 파일 첨부'를 통해 파일을 재사용할 수도 있습니다. 드라이브 안에 폴더를 만들어서 여러 파일들을 모아서 정리할 수도 있습니다. :::warning 현재 드라이브에서 파일을 삭제하면 해당 파일이 첨부된 \*\*모든 콘텐츠(노트, 페이지 등)\*\*도 동시에 사라집니다. ::: ## 센서티브 (NSFW) 민감 또는 NSFW(Not safe for work)는 드라이브의 파일에 설정할 수 있는 플래그입니다. 이 플래그는 수동으로 켜고 끌 수 있으며, 중재자의 판단에 따라 설정될 수도 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/embed.md ================================================ # 웹사이트 임베딩 Misskey 서버에 있는 노트나 타임라인을 가지고 있는 웹사이트에 임베드할 수 있습니다. 또한, 임베디드 웹사이트의 외형에 맞게 유연하게 커스터마이징할 수 있습니다. 여기서는 임베드할 수 있는 콘텐츠와 임베드 방법에 대해 설명합니다. :::warning 이 기능은 Misskey v2024.9.0 이상에서 사용할 수 있는 기능입니다. ::: :::tip MFM, 커스텀 이모티콘 등도 지원하지만, 임베디드 페이지의 표시 방식에 따라 레이아웃이 깨질 수 있습니다. ::: ## 생성기를 사용하여 임베디드 코드 생성하기 아래에서 소개하는 임베디드 코드와 그 커스터마이징은 모두 Misskey Web에 내장된 임베디드 코드 생성기를 사용하여 쉽게 할 수 있습니다. 기본적으로 그쪽을 이용하는 것을 추천합니다. ! [임베디드 코드 생성기](/img/docs/for-users/features/embed/generator.png) ## 단일 노트 삽입 ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 임베드 원본 서버에서 단일 노트를 임베드할 수 있습니다(원격 서버의 노트를 다른 서버에 임베드할 수 없습니다).코드는 다음과 같습니다: ```html ``` 각각 다음과 같이 대체됩니다: - ``: Misskey 서버의 호스트 이름 - ``: 임베드할 노트의 ID - ``: 임의의 문자열(embed.js를 사용할 경우 필수.같은 페이지에 여러 개의 임베디드 코드가 있는 경우 피하시기 바랍니다.) ## 사용자 노트 목록 삽입 ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: 사용자의 공개 노트(퍼블릭 홈) 목록을 삽입할 수 있습니다.코드는 다음과 같습니다: ```html ``` 각각 다음과 같이 대체됩니다: - ``: Misskey 서버의 호스트 이름 - ``: 임베드할 사용자 ID (`@`로 시작하는 사용자 이름이 아님) - ``: 임의의 문자열(embed.js를 사용할 경우 필수.같은 페이지에 여러 개의 임베디드 코드가 있는 경우 피하시기 바랍니다.) ## 클립 노트 목록 삽입 ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 공개 범위가 공개로 되어있는 클립의 노트 목록을 삽입할 수 있습니다.코드는 다음과 같습니다: ```html ``` 각각 다음과 같이 대체됩니다: - ``: Misskey 서버의 호스트 이름 - ``: 임베딩할 클립의 ID - ``: 임의의 문자열(embed.js를 사용할 경우 필수.같은 페이지에 여러 개의 임베디드 코드가 있는 경우 피하시기 바랍니다.) ## 해시태그 노트 목록 삽입 ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 특정 해시태그가 포함된 노트 목록을 삽입할 수 있습니다.코드는 다음과 같습니다: ```html ``` 각각 다음과 같이 대체됩니다: - ``: Misskey 서버의 호스트 이름 - ``: 해시태그 이름 (`#`를 포함하지 않음) - ``: 임의의 문자열(embed.js를 사용할 경우 필수.같은 페이지에 여러 개의 임베디드 코드가 있는 경우 피하시기 바랍니다.) ## 커스터마이징을 위한 매개변수 URL 매개변수에 특정 값을 지정하여 임베딩의 모양을 사용자 정의할 수 있습니다.
매개변수 이름 지정 가능한 값 설명
maxHeight 0 이상의 숫자 임베딩의 최대 높이(px)를 지정합니다.그 이상 세로로 늘어날 경우 내부에서 스크롤을 할 수 있게 됩니다.
0을 지정하면 임베디드 요소의 높이가 내부 높이에 맞게 자동으로 늘어납니다(비추천).
지정하지 않은 경우 700입니다.
단일 노트 임베딩은 작동하지 않습니다.
colorMode
  • light
  • dark
컬러 모드를 밝게 또는 어둡게 강제 설정합니다.
지정하지 않고 기기의 다크 모드와 동기화합니다.
border
  • true
  • false
외부 프레임에 테두리를 붙일 것인지 여부.지정하지 않을시 true
rounded
  • true
  • false
사각을 둥글게 만들지 여부.지정하지 않을시 true
showHeader
  • true
  • false
상단 헤더를 표시할지 여부.지정하지 않을시 true
단일 노트 임베딩은 작동하지 않습니다.
:::g-details{summary="maxHeight=0 사용법"} `maxHeight`를 `0`으로 설정하는 것은 기본적으로 권장하지 않지만, 스크롤 컨테이너를 iframe 내부가 아닌 임베디드 사이트 측에서 준비해야 하는 경우 등 특수한 용도로 유용하게 사용할 수 있습니다.다음은 그 예입니다: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/favorite.md ================================================ # 즐겨찾기 [노트](./note)를 즐겨찾기하여 등록하는 기능입니다. 즐겨찾기로 등록한 노트들은, [즐겨찾기 페이지](x-mi-web://my/favorites)에서 보실 수 있습니다. 즐겨찾기로 등록한 노트는 작성자에게 알림이 가지 않으며, 즐겨찾기는 본인만 볼 수 있습니다. 노트를 즐겨찾기 등록하려면, 노트 메뉴에 있는 "즐겨찾기"를 누릅니다.즐겨찾기를 해제하시려면, 노트 메뉴에 있는 "즐겨찾기 해제하기"를 누릅니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/follow.md ================================================ # 팔로우 유저를 팔로우하면, 타임라인에 그 유저의 노트가 뜨게 됩니다.단, 다른 유저에게 보내는 맨션은 포함되지 않습니다. 유저를 팔로우할 땐, 유저 페이지의 "팔로우" 버튼을 클릭합니다. 유저를 팔로우 할 땐, 유저 페이지의 "팔로우 하기" 버튼을 클릭하세요.팔로우 해제를 할 땐, 한 번 더 클릭하면 됩니다. 팔로우가 승인제인 경우나, 다른 서버에 있는 유저를 팔로우 하는 경우, 팔로우 버튼을 누르면 "처리 중" 표시로 바뀝니다.팔로우가 승인되면, 클라이언트에 알림이 갑니다. ## 팔로우를 받았을 때의 메시지 :::tip 이 기능은, Misskey v2024.9.0 이후 버전을 사용하는 서버(다른 서버의 유저도 Misskey v2024.9.0 이후)에서 사용할 수 있습니다. 아직 이 기능은 베타판입니다. ::: 팔로우를 받았을 때 상대방에게 표시할 짧은 메시지를 설정할 수 있습니다.팔로우를 승인제로 한 경우, 팔로우 요청을 수락했을 때 볼 수 있습니다. 또한, 팔로우를 한 이후에도, 해제하기 전까진 이 메시지를 계속 볼 수 있습니다. :::warning 팔로우를 받았을 때의 메시지는 비밀 등의 민감한 정보를 주고받기 위한 것이 아닙니다.공개하고 싶지 않은 정보는 넣지 말아주세요. ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/hashtag.md ================================================ # 해시태그 해시태그란, 게시글에 검색할 수 있는 태그를 추가하는 기능입니다. 세계 처음으로 쓰인 해시태그 ── #barcamp 는, [2007년 8월 24일 오전 4:25](https://twitter.com/chrismessina/status/223115412)에 크리스 메시나 씨[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)가 고안했습니다.이후 이 "파운드 기호 `#`를 사용하여 검색을 편하게 하자"라는 제안은, 영어로 "썰다, 흩어지다"를 의미하는 "해시"랑 "표"를 끝하는 "태그"를 합해서 만든── "해시태그"라는 말이 만들어져 당시 트위터에 공식적으로 채용되었습니다.참고로 크리스 메시나씨는 `#`로 정한 이유는 IRC의 채널명이 `#`로 시작했던 것을 연상했다고 합니다.이후 이 "파운드 기호 `#`를 사용하여 검색을 편하게 하자"라는 제안은, 영어로 "썰다, 흩어지다"를 의미하는 "해시"랑 "표"를 끝하는 "태그"를 합해서 만든── "해시태그"라는 말이 만들어져 당시 트위터에 공식적으로 채용되었습니다.참고로 크리스 메시나씨는 `#`로 정한 이유는 IRC의 채널명이 `#`로 시작했던 것을 연상했다고 합니다. ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png) 연합 우주에서 해시태그는 X나 인스타그램 등와 같은 중앙형 서비스들에서 말하는 것과 다소 사양이 다릅니다.연합 우주에서는 모든 글 검색이 어려운 경우 등의 사정이 있어, 특정한 게시글을 찾아내는 것은 힘들겠지만, 게시글에 해시태그가 붙어있다면 그 게시글을 해시태그를 따라서 정보를 쉽게 찾아낼 수도 있습니다.또한, 게시글에 해시태그를 붙이는 것만으로도 여러 사이트에서 자동으로 해시태그 릴레이를 통해 게시글을 전해주는 기능이 연합 우주에 있으므로, 여기에서는 해시태그 기능이 중요합니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/mention.md ================================================ # 멘션 멘션하고 싶은 유저에게 골뱅이(@) + 계정명을 넣어서 노트를 보낼 수 있습니다.멘션 받은 유저는 그 노트에 대한 알림을 받을 수 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM은 미스키에서 사용할 수 있는 전용 마크업 언어입니다.' --- # MFM MFM은 Markup langauge For Misskey의 약자로, Misskey의 여러 곳에서 사용할 수 있는 전용 마크업 언어입니다.일부 구문은 Markdown 및 HTML과 호환됩니다. :::tip MFM 문법을 실제로 사용해 볼 수 있는 [MFM 체험 코너](/tools/mfm-playground/)가 생겼습니다 ::: ## 구문 - 노트 본문 - CW 주석 - 사용자 이름 - 사용자 소개 ## 구문 ### 멘션 @ + 사용자 이름으로 특정 사용자를 나타낼 수 있습니다. 멘션에 대한 자세한 내용은 [여기](./mention.md)에서 확인할 수 있습니다. ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### 해시태그 숫자 기호 + 태그를 통해 해시태그를 표시할 수 있습니다. 해시태그에 대한 자세한 내용은 [여기](./hashtag.md)에서 확인할 수 있습니다. ::: ``` #misskey ``` ### URL URL을 표현할 수 있습니다. ``` https://example.com ``` ### 링크 문장 중 특정한 범위를 URL로 표시할 수 있습니다. ``` [example link](https://example.com) ``` :::tip 링크 텍스트 앞에 \`? '를 붙이면 링크 미리보기를 숨길 수 있습니다. ``` ?[example link](https://example.com) ``` ::: ### 커스텀 이모지 콜론(:)으로 사용자 지정 이모티콘 이름을 묶으면 사용자 지정 이모티콘을 표시할 수 있습니다. :::tip 커스텀 이모티콘에 대한 자세한 내용은 [여기](./custom-emoji.md)에서 확인할 수 있습니다. ::: ``` :misskey: ``` ### 구문 문자를 굵게 표시하여 강조할 수 있습니다. ``` **굵은 문자** ``` ### 눈에 띄지 않게 하기 내용을 작게, 연하게 할 수 있습니다. ``` Misskey로 연합 우주의 세계가 펼쳐집니다. ``` ### 인용 내용을 인용하여 표시 할 수 있습니다. ``` > Misskey로 연합 우주의 세계가 펼쳐집니다. ``` ### 가운데 정렬 내용을 가운데 정렬로 보이게 합니다. ```
Misskey로 연합 우주의 세계가 펼쳐집니다.
``` ### 요미가나 (루비) 내용에 요미가나를 첨부할 수 있습니다. ``` $[ruby Misskey 미스키] ``` ### 코드 (인라인) 프로그래밍 코드 등에 대해 인라인 구문 강조를 할 수 있습니다. ``` `<: "Hello, world!"` ``` ### 코드 (블록) 여러 행의 프로그래밍 코드 등을 코드 블록으로 구문 강조를 할 수 있습니다. 프로그래밍 언어를 ID로 지정하면 해당 언어로 구문 하이라이트를 적용합니다.지정할 수 있는 언어는 다음과 같습니다: - [Shiki가 지원하는 언어(200개 이상)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` 중 하나를 지정하여 사용할 수 있습니다. ``` ~ (#i, 100) { <: ? ((i % 15) = 0) "FizzBuzz" .? ((i % 3) = 0) "Fizz" .? ((i % 5) = 0) "Buzz" . i } ``` ### 반전 내용을 상하 또는 좌우로 반전 시킵니다. ``` $[flip Misskey로 연합 우주의 세계가 펼쳐집니다.] $[flip.v Misskey로 연합 우주의 세계가 펼쳐집니다.] $[flip.h,v Misskey로 연합 우주의 세계가 펼쳐집니다.] ``` ### 폰트 내용에 폰트를 지정할 수 있습니다. ``` $[font.serif Misskey로 연합 우주의 세계가 펼쳐집니다.] $[font.monospace Misskey로 연합 우주의 세계가 펼쳐집니다.] $[font.cursive Misskey로 연합 우주의 세계가 펼쳐집니다.] $[font.fantasy Misskey로 연합 우주의 세계가 펼쳐집니다.] ``` ### 흐림 효과 내용을 흐리게 표시할 수 있습니다.커서를 위에 올려서 제대로 보이게 할 수도 있습니다. ``` $[blur Misskey로 연합 우주의 세계가 펼쳐집니다.] ``` ### 검색 검색창을 표시할 수 있습니다. ``` misskey 검색 ``` ### 문자색, 배경색 문자색과 배경색을 바꿀 수 있습니다. 3, 4, 6번째 행의 컬러 코드를 색으로 표현합니다. ``` $[fg.color=f00 빨간 글자] $[bg.color=ff0 노란색 배경] ``` ### 테두리 내용에 테두리를 씌울 수 있습니다.스타일을 다양하게 지정하는 것도 가능합니다. ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 완전히 이해했어!]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 완전히 이해했어!]] ``` ### 각도 변경 지정한 각도로 회전시킵니다. ``` $[rotate.deg=30 misskey] ``` ### 위치 변경 위치를 바꿀 수 있습니다. ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 확대 굵은 문자 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### 애니메이션 (짠!) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### 애니메이션 (경련) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### 애니메이션 (점프) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### 애니메이션 (바운스) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### 애니메이션 (회전) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### 애니메이션 (젤리) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### 애니메이션 (부들부들) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### 무지개 효과 ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 색깔 없는 문자] $[rainbow $[fg.color=f0f 색깔 있는 문자]] ``` ### 반짝반짝 ``` $[sparkle 🍮] ``` ### 평문 안에 있는 MFM 구문을 모두 무시하고 평문으로 표시합니다. ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 개발자용 정보 MFM 기능은 라이브러리를 통해 공개하고 있으니, 간단하게 클라이언트에 MFM 기능을 추가하실 수 있습니다. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScript 기반 MFM 기능 구현 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js용 컴포넌트 - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlin에의 파서 구현 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dart에의 파서 구현 - [mfm](https://pub.dev/packages/mfm) - Flutter용 드로잉 위젯 ================================================ FILE: content/ko/docs/2.for-users/3.features/mute-and-block.md ================================================ # 뮤트와 차단 사용자가 마음에 들지 않는다면 뮤트해 타임라인에서 표시되지 않도록 할 수 있습니다. 또는 블록을 해 당신의 콘텐츠를 보거나 관련 활동을 하지 못하도록 할 수도 있습니다. 상대방은 뮤트된 것은 알 수 없지만 차단된 것은 알 수 있습니다.어느 쪽을 택할지는 스스로의 판단으로 해 주세요. :::tip 뮤트 및 차단은 같이 할 수 있습니다. ::: :::warning 사용자를 뮤트하면, 사용자에 대한 다음 항목이 더이상 표시되지 않습니다: ::: 또는 블록을 해 당신의 콘텐츠를 보거나 관련 활동을 하지 못하도록 할 수도 있습니다. 상대방은 뮤트된 것은 알 수 없지만 차단된 것은 알 수 있습니다.어느 쪽을 택할지는 스스로의 판단으로 해 주세요. 사용자를 뮤트하면, 사용자에 대한 다음 항목이 더이상 표시되지 않습니다: Misskey Web에서 사용자를 뮤트하려면, 사용자의 프로필 페이지에서 메뉴를 열어 "뮤트"를 선택하세요. ## 뮤트 사용자를 뮤트하면 그 사용자의 콘텐츠가 Misskey에 표시되지 않게 됩니다. - 타임라인 및 게시물 검색 결과에서 해당 사용자의 게시물(및 해당 게시물에 대한 답글과 리노트)을 확인할 수 있습니다. - 해당 사용자로부터의 알림 - 메시지 기록 목록에서 해당 사용자에 대한 메시지 기록 - 그 외 Misskey Web에서 사용자를 뮤트하려면 대상 사용자의 사용자 페이지 메뉴를 열고 '뮤트' 버튼을 누릅니다. :::tip 뮤트한 사실을 상대방에게 알리지 않고, 뮤트된 사실을 알 수 없습니다. ::: ## 리노트를 뮤트하기 유저가 리노트를 많이 하는 경우 등의 상황에 대비하기 위해, 그 유저의 리노트를 타임라인에 뜨지 않게 할 수 있습니다.유저의 일반적인 노트는 그대로 표시됩니다. ## 차단 사용자를 차단하면 해당 사용자는 내 콘텐츠를 볼 수 없게 되고, 나에 대해 다음과 같은 행동을 할 수 없게 됩니다. - 팔로우하기 - 리스트에 추가 - 답글 달기, 리노트하기 - 리액션하기, 설문조사에 투표하기 - 메시지 보내기 - 등 또한, - 차단할 때 이미 해당 사용자로부터 팔로우를 받고 있었다면 팔로우가 해제됩니다. - 차단할 때 해당 사용자가 이미 사용자 목록에 당신을 포함시켜 놓았다면 그 목록에서 당신을 삭제할 수 있습니다. Misskey Web에서 사용자를 차단하려면 대상 사용자의 사용자 페이지 메뉴를 열고 '차단' 버튼을 누릅니다. :::warning 차단을 한 것 자체는 상대방에게 통보되지 않지만, 팔로우를 하는 등 위의 행동을 할 수 없게 되므로 간접적으로 차단된 것을 알 수 있습니다. ::: :::warning 상대방이 내 콘텐츠를 볼 수 없게 되지만, 상대방이 계정을 전환하거나 로그아웃하면 볼 수 있습니다.어디까지나 단순, 보조적인 것으로 생각해 주십시오.어디까지나 단순, 보조적인 것으로 생각해 주십시오. ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/note.md ================================================ # 노트 노트는 Misskey에 게시되는 글, 파일, 설문 등을 포함한 콘텐츠로, Misskey의 핵심 개념입니다.또한 그 노트를 작성하는 행위 자체를 노트라고 합니다. :::tip 노트의 명칭은 영어로 '짧은 기록'을 뜻하는 Note에서 따온 것입니다. ::: 노트가 생성되면 [타임라인](./timeline)에 추가되어 자신의 [팔로워](./follow)와 서버의 사용자들이 볼 수 있게 됩니다. 노트에는 [리액션](./reaction)을 할 수 있습니다.또한 답장이나 인용도 가능합니다. 메모를 [즐겨찾기](./favorite)에 등록하면 나중에 쉽게 찾아볼 수 있습니다. ## 노트 작성하기 Misskey Web에서 메모를 작성하려면 화면 상단에 있는 연필 모양의 버튼을 눌러 작성 양식을 엽니다.작성 양식에 내용을 입력하고 '노트' 버튼을 누르면 노트가 작성됩니다. 노트에는 이미지, 동영상 등 임의의 파일이나 [설문](./poll)을 첨부할 수 있습니다.또한 본문에는 [MFM](./mfm)을 사용할 수 있으며, [멘션](./mention)이나 [해시태그](./hashtag)를 포함할 수도 있습니다. 그 외에도 CW, 공개 범위 등의 설정도 가능합니다(자세한 내용은 아래 참조). :::tip Misskey Web에서는 컴퓨터 클립보드에 이미지 데이터가 있는 상태에서 양식 내 텍스트 상자에 붙여넣기하면 해당 이미지를 첨부할 수 있습니다. ::: :::tip Misskey Web에서는 텍스트 박스 안에서 Ctrl + Enter를 눌러서 글을 올릴 수도 있습니다. ::: ## 리노트 이미 있는 노트를 인용하거나 그 노트를 새로운 노트로 공유하는 행위, 그리고 그로 인해 생성된 노트를 리노트(Renote)라고 합니다. 자신이 팔로우하는 사용자의 마음에 드는 노트를 자신의 팔로워에게 공유하고 싶을 때, 또는 과거의 자신의 노트를 다시 공유하고 싶을 때 사용합니다. 같은 노트에 대해 무제한으로 리노트를 할 수 있지만, 너무 연속적으로 사용하면 성가신 경우도 있으니 주의해야 합니다. :::warning 공개 범위가 팔로워나 다이렉트 노트는 리노트할 수 없습니다. ::: Misskey Web에서 리노트를 삭제하려면 리노트 시간 표시 옆에 있는 "..." 를 누르고 '리노트 해제'를 선택합니다. ## CW Contents Warning의 줄임말로, 노트의 내용을 열람자의 조작 없이 표시하지 않도록 할 수 있는 기능입니다.주로 장황한 내용을 숨기거나 스포일러 방지 등에 사용할 수 있습니다. Misskey Web에서 CW를 설정하려면 양식의 '내용 숨기기' 버튼(눈 모양 아이콘)을 누릅니다.그러면 새로운 입력란이 나타나며, 여기에 내용 요약을 작성합니다. ## 공개 범위 노트마다 해당 노트가 공개되는 범위를 설정할 수 있습니다. Misskey Web에서 공개 범위를 설정하려면 폼의 '노트' 버튼 왼쪽에 있는 아이콘을 누릅니다. 공개 범위에는 다음과 같은 종류가 있습니다. ### 전체 공개 노트는 모든 사람에게 공개되며, 서버의 모든 타임라인(홈 타임라인, 로컬 타임라인, 소셜 타임라인, 글로벌 타임라인)에 노트가 표시됩니다. :::warning 계정이 [침묵](./silence) 상태일 때는 이 공개 범위를 사용할 수 없습니다. ::: ### 홈 노트는 모든 사람에게 공개되지만, 팔로워를 제외한 로컬 타임라인, 소셜 타임라인, 글로벌 타임라인에는 노트가 흐르지 않습니다. ### 팔로워 자신의 팔로워에게만 노트를 공개합니다.팔로워의 모든 타임라인에 흐르게 됩니다. ### 다이렉트 지정한 사용자에게만 노트를 공개합니다.지정한 사용자의 모든 타임라인으로 흐릅니다. :::tip v2025.7.0까지는 '다이렉트'라고 불렸습니다. ::: ### "로컬 전용" 옵션 이 옵션을 활성화하면 원격으로 노트를 연합하지 않습니다. ### 공개 범위 비교
전체 공개팔로워지명
팔로워의 LTL/STL/GTL
팔로워가 아닌 경우의 LTL/STL/GTL
## 프로필에 고정 메모를 핀으로 고정하면 사용자 페이지에 해당 메모를 항상 표시할 수 있습니다. Misskey Web에서 고정하려면 노트의 메뉴를 열고 '고정'을 선택하면 됩니다. :::tip 여러 개의 노트를 동시에 핀으로 고정할 수도 있습니다. ::: ## 지켜보기 사용자가 새로운 노트를 게시할 때 알림을 보낼 수 있습니다.사용자 페이지를 열고 팔로우 버튼 옆의 상세 버튼을 선택한 후 '게시물 알림'을 클릭하여 활성화합니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/online-status.md ================================================ # 온라인 상태 사용자의 **온라인 상태**는 해당 사용자의 Misskey 이용 상태를 나타냅니다. 온라인 상태는 사용자 페이지 등에서 사용자 아이콘의 모서리에 표시되는 지표로 표시됩니다.
상태 설명
🟢 녹색 온라인 지금 현재 Misskey를 사용하고 있다고 생각되는 상태
🟡 황색 액티브 지금은 접속종료했지만, 미스키 이용 자체는 이뤄지고 있는 상황
🔴 적색 오프라인 Misskey를 이용하지 않는 것으로 판단되는 상태
⚫ 회색 알 수 없음 상태를 비공개로 설정했거나, 원격 사용자 등으로 상태를 알 수 없는 상태
온라인 상태는 자동으로 변경되며 수동으로 설정할 수 없습니다. 설정에 따라 온라인 상태를 비공개로 설정할 수 있습니다. :::warning 사용자 추천 등 일부 기능은 온라인 상태를 기반으로 처리되는 경우가 있으므로, 상태를 비공개로 설정하면 다른 사용자가 찾기가 어려워질 수 있습니다. ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/pages.md ================================================ # 페이지 Misskey상에서 노트와는 별개로 페이지를 작성할 수 있습니다.v13 이후에서는 정적 페이지에 특화되어 있습니다.v13 이후에서는 정적 페이지에 특화되어 있습니다. :::warning v13 이후에서는 페이지를 통한 동적 페이지 생성 대신 Misskey Play를 사용할 수 있습니다. ::: ## 페이지 설정 페이지에 관한 항목을 설정합니다.다음 항목을 입력할 수 있습니다.다음 항목을 입력할 수 있습니다. - 제목 - 페이지 요약 - 페이지 URL - 가운데 정렬 - 폰트 - 프로필에 고정한 경우 타이틀을 표시하지 않음 - 아이캐치 이미지 ### 제목 페이지의 제목을 입력합니다.이 제목은 페이지 목록에 표시됩니다.이 요약은 페이지 목록에 표시됩니다. ### 페이지 요약 페이지에 대한 간단한 설명을 입력합니다.이 요약은 페이지 목록에 표시됩니다. ### 페이지 URL `https://서버이름/@사용자/pages/●●●`의 `●●●`을 원하는 대로 설정할 수 있습니다. ### 가운데 정렬 **고딕체**와 **명조체** 가운데에서 선택할 수 있습니다. ### 폰트 활성화하면 프로필에 고정했을 때 제목을 숨깁니다. ### 프로필에 고정한 경우 타이틀을 표시하지 않음 활성화하면 프로필에 고정했을 때 제목을 숨깁니다. ### 아이캐치 이미지 페이지 본문을 편집합니다.다음 블록을 하나 이상 조합해 페이지를 생성할 수 있습니다. ## 콘텐츠 페이지 본문을 편집합니다.페이지 본문을 편집합니다.다음 블록을 하나 이상 조합해 페이지를 생성할 수 있습니다. - 섹션 - 텍스트 - 이미지 - 노트필기 ### 텍스트 텍스트 본문을 입력합니다.제목을 설정해 묶을 수 있습니다.안에 블록을 추가할 수 있습니다. ### 텍스트 페이지에 대한 간단한 설명을 입력합니다.이 요약은 페이지 목록에 표시됩니다.텍스트 본문을 입력합니다.MFM과 커스텀 이모티콘을 사용할 수 있습니다. ### 이미지 노트 ID를 넣는 것으로 그 노트를 표시합니다.다른 서버의 노트를 삽입하려면, 검색에서 해당 URL을 넣고 표시된 ID를 붙여주세요. ### 노트필기 노트 ID를 넣는 것으로 그 노트를 표시합니다.노트 ID를 넣는 것으로 그 노트를 표시합니다.다른 서버의 노트를 삽입하려면, 검색에서 해당 URL을 넣고 표시된 ID를 붙여주세요. ================================================ FILE: content/ko/docs/2.for-users/3.features/plugin.md ================================================ # 플러그인 Misskey Web에는 플러그인 기능이 있어, 사용자가 Misskey Web의 기능을 확장할 수 있습니다. 플러그인을 만드는 방법에 대해서는 [이 문서](../../for-developers/plugin/create-plugin)를 참고해 주세요. ================================================ FILE: content/ko/docs/2.for-users/3.features/poll.md ================================================ # 투표 투표는 다른 사람들의 의견을 쉽게 들을 수 있는 기능입니다. ## 설문을 노트에 첨부 투표는 [노트](/docs/for-users/features/note)에 첨부하는 형태로 게시할 수 있습니다.노트에 투표를 첨부하려면, 노트 작성 창 하단에 있는 '투표' 버튼을 선택합니다. ## 선택지 늘리기 투표에는 선택지를 최대 10개까지 만들 수 있습니다.투표에는 선택지를 최대 10개까지 만들 수 있습니다.선택지 입력란은 '추가' 버튼을 눌러 추가할 수 있습니다. 너무 많이 추가했다면, 옆의 X 버튼을 눌러 삭제할 수 있습니다. :::warning 공백인 입력란이 하나라도 있다면, 그 투표가 첨부된 노트는 투고할 수 없습니다. ::: ## 복수 응답 허용하기 투표 기간을 '일시 지정', '기간 지정' 중 하나로 설정할 수 있습니다. ## 만료 시점 설정하기 투표 기간을 '일시 지정', '기간 지정' 중 하나로 설정할 수 있습니다. 만료 시점 설정하기 설정하려면, '투표 기한' 란에서 '일시 지정' 또는 '경과 지정'을 선택합니다. 투표가 첨부된 노트가 타임라인에 있을 때, 투표를 해 봅시다. ## 설문에 투표하기 투표가 첨부된 노트가 타임라인에 있을 때, 투표를 해 봅시다. 투표하려면 선택지를 누릅니다.중복 투표가 불가하다면, 이 시점에서 투표 결과가 표시됩니다.복수 응답이 가능한 투표에서는 다른 선택지에도 투표할 수 있습니다.이때에는 결과가 자동으로 표시되지 않습니다. 투표가 첨부된 노트가 타임라인에 있을 때, 투표를 해 봅시다.이때에는 결과가 자동으로 표시되지 않습니다. 복수 응답 설정에 관계없이 자동으로 설문 결과를 표시하지 않게 하거나 투표 전에 결과를 보고 싶은 경우에는, 선택지 하단의 '결과 보기'를 선택해 투표 결과를 표시할 수 있습니다. 투표 결과를 다시 숨기려면 '투표하기'를 선택합니다. :::tip 투표하지 않은 경우에는 결과가 표시되어 있어도 투표가 가능합니다. ::: 투표를 하면, 자신이 투표한 선택지에 ✔가 붙습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/reaction.md ================================================ # 리액션 다른 사람의 노트에 이모지를 붙여 당신의 반응을 쉽게 전할 수 있는 기능입니다. Misskey 웹에서 리액션 기능을 사용하려면, 노트의 + 아이콘을 클릭하여 선택기를 표시하고, 이모지를 선택합니다. 리액션에서는 [커스텀 이모지](./custom-emoji.md)도 사용할 수 있습니다. 리액션 선택기 커스터마이징 Misskey 웹에서는 선택기에 표시되는 이모지를 자신의 취향에 맞게 커스터마이징 할 수 있습니다. ## 리액션 선택기 커스터마이징 Misskey 웹에서는 선택기에 표시되는 이모지를 자신의 취향에 맞게 커스터마이징 할 수 있습니다. 설정의 '리액션'에서 설정합니다. ## 리모트로 리액션 리액션은 Misskey 오리지널 기능이기에 리모트 서버가 Misskey가 아닌 이상 대부분의 경우 좋아요로 전송됩니다.일반적으로, 좋아요는 마음에 든다는 뜻으로 사용됩니다.일반적으로, 좋아요는 마음에 든다는 뜻으로 사용됩니다. ## 리모트로부터의 리액션 리모트로부터 좋아요를 수신했을 때, Misskey에서는 👍의 리액션으로 해석됩니다. ## 자신의 리액션 목록 보기 Misskey 웹에서는 자신의 프로필 페이지의 '리액션' 탭을 열면 자신이 한 리액션 목록을 볼 수 있습니다. 설정에서 이 목록을 공개하도록 할 수도 있습니다. ## 리액션 받기 노트를 올릴 때, 그 노트에 대해서 리액션을 받지 말지 정할 수 있습니다. - 모두: 모든 리액션을 받을 수 있습니다. - 모두(리모트에서는 좋아요만 받기): 자신의 서버에서는 모든 리액션을 받지만, 다른 서버에서 오는 리액션은 모두 좋아요(❤)로 표시됩니다. - 민감한 이모지를 제외하고 받기: 모든 리액션을 받지만, 자신이 있는 서버에서 리액션을 받을 때 "민감한 이모지" 로 설정되어져 있는 커스텀 이모지를 사용한 리액션을 받을 수 없습니다. - 민감한 이모지를 제외하고 받기(리모트에서는 좋아요만 받기): 자신이 있는 서버에서 "민감한 이모지"로 설정된 커스텀 이모지로된 리액션을 받을 수 없고, 다른 서버에서 받은 리액션은 전부 좋아요(❤)로 표시됩니다. - 좋아요만 받기: 좋아요(❤) 이외의 리액션은 할 수 없습니다. 그리고 설정한 리액션 받기 설정은 자신의 서버에 대해서만 활성화 됩니다.예를 들어, 리액션 받기를 "좋아요만 받기"로 설정한 노트를 다른 서버에서는 커스텀 이모지를 사용한 리액션으로 표시되는 경우가 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/safemode.md ================================================ # 세이프 모드 v2025.8.0 이후의 Misskey Web에서는 플러그인·커스텀 CSS·테마에 따라 클라이언트의 동작에 지장을 가져온 경우, 이를 비활성화한 상태로 시작하는 '세이프 모드'가 갖추어져 있습니다. 아래의 방법으로 세이프 모드로 들어갈 수 있습니다. - (시작 시 에러 화면이 표시된 경우) 에러 화면 위의 'Misskey를 세이프 모드로 시작' 버튼을 클릭 - (키보드가 연결된 경우) 'g' 키를 연타 - URL에 '?safemode=true'를 붙이기 - (PWA를 이용하고 있는 경우) 단축키로 Safemode를 선택해 시작하기 세이프 모드 실행 중에는 아래의 기능이 제한됩니다. - 활성화·비활성화 설정과 상관없이 플러그인이 전부 비활성화되고, 신규 설치는 할 수 없습니다. - 커스텀 CSS는 적용되지 않습니다. - 설정과 상관없이 기본 테마로 시작하고, 테마의 변경을 할 수 없습니다. (테마의 관리 페이지에서 삭제할 수 있습니다) - 화면 위에 항상 '세이프 모드'의 표시가 나옵니다. 세이프 모드를 활용하고, 문제의 원인이 된 부분을 특정·대처해 주십시오.대응이 완료되면 세이프 모드 실행중 항상 표시되는 메뉴에서 '끄기'를 클릭해 세이프 모드를 비활성화해 주십시오. :::tip 세이프 모드로 상용하는 것은 상정돼있지 않습니다.처리가 완료되면 꺼서 일반 모드로 시작해 주십시오. ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/share-form.md ================================================ # 공유 양식 Misskey Web의 `/share`를 열면 공유를 위한 포스팅 양식을 열 수 있습니다.이 공유 양식을 사용하면 외부 웹페이지에서 페이지의 내용을 사용자에게 Misskey로 공유해 달라고 요청할 때 유용하게 사용할 수 있습니다.공유 폼 중계 서비스(이하 '본 서비스'라 함)는 웹사이트 관리자의 편의를 위해 Misskey Development Division(이하 '당사'라 함)이 무상, 무보증으로 제공하는 기능입니다.본 서비스를 이용했거나 어떤 원인으로 인해 본 서비스를 이용하지 못하여 발생한 어떠한 손해에 대해서도 당사는 어떠한 책임도 지지 않습니다. URL에 공유 내용을 포함한 몇 가지 옵션을 쿼리 파라미터로 지정할 수 있습니다. ## 쿼리 파라미터 :::tip 모든 파라미터는 **옵션**이며, 필수 항목이 아닙니다. ::: | 이름 | 설명 | | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `title` | 주소.본문의 끝에 표시됩니다.타이틀.본문의 처음에 [… ]가 표시됩니다. | | `text` | 본문. | | `url` | 주소.본문의 끝에 표시됩니다. | ### 답글 정보 다음 중 하나를 지정하면 지정된 노트에 대한 답글이 될 수 있습니다. | 이름 | 설명 | | ---------- | ------------------------------------------------------ | | `replyId` | 리노트 대상의 노트 ID. | | `replyUri` | 답글 주소.(원격 기록 대상 지정) | ### 리노트 정보 아래 중 하나를 지정하면 지정한 노트에 대한 리노트(인용)를 할 수 있습니다. | 이름 | 설명 | | ----------- | ------------------------------------------------------------ | | `renoteId` | 답글 기록의 아이디. | | `renoteUri` | 리노트 대상의 URL.(원격 기록 대상 지정) | ### 공개 범위 다음 옵션으로 공개 범위를 지정할 수 있습니다. | 이름 | 설명 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` 중 하나 이상 | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 대상 사용자 ID(쉼표로 구분) | | `visibleAccts` | 대상 사용자[acct](../resources/glossary/#acct)(쉼표로 구분) | :::warning `visibility`에 `specified`를 지정한 경우 `visibleUserIds` 또는 `visibleAccts`의 지정도 필요합니다. ::: ### 첨부 파일 아래 옵션으로 첨부 파일을 지정할 수 있습니다. | 이름 | 설명 | | --------- | ------------------------------------- | | `fileIds` | 첨부할 파일의 아이디(쉼표 구분) | ## Misskey Hub의 공유 양식 중계 서비스 정보 [공유 버튼 생성기](/tools/share-link-generator/)도 함께 사용하시기 바랍니다. 새로운 미스키 허브에서는 미스키 공유 버튼 설치의 번거로움을 줄이기 위해 공유 양식 중계 서비스를 제공하고 있습니다.\ 이 서비스는 누구나 무료로 이용할 수 있습니다. 이 서비스는 누구나 무료로 이용할 수 있습니다. 기존 공유 폼 링크의 각 서버 도메인 부분을 `misskey-hub.net`으로 변경하기만 하면 다양한 Misskey 서버에 대한 공유 링크로 진화할 수 있습니다! :::tip [공유 버튼 생성기](/tools/share-link-generator/)도 함께 사용하시기 바랍니다. ::: :::warning 공유 폼 중계 서비스(이하 '본 서비스'라 함)는 웹사이트 관리자의 편의를 위해 Misskey Development Division(이하 '당사'라 함)이 무상, 무보증으로 제공하는 기능입니다.본 서비스를 이용했거나 어떤 원인으로 인해 본 서비스를 이용하지 못하여 발생한 어떠한 손해에 대해서도 당사는 어떠한 책임도 지지 않습니다. ::: ### 기본 파라미터 기본적으로 위에서 소개한 파라미터를 그대로 사용할 수 있지만, 사용자 ID, 파일 ID 등 **각 서버에 따라 달라지는 파라미터는 사용할 수 없습니다.** 지정되어 있다면 Misskey Hub에서 삭제됩니다.\*\* 지정되어 있다면 Misskey Hub에서 삭제됩니다. ### 독자적인 기능 #### 추천 서버 기능 URL 파라미터 `manualInstance`에 Misskey 서버의 도메인을 입력하면 '공유 웹사이트의 추천'으로 해당 서버에 대한 링크를 별도로 설정할 수 있습니다.자신의 서버로 유도할 때 등에 사용할 수 있습니다.자신의 서버로 유도할 때 등에 사용할 수 있습니다. :::warning '추천 서버 기능'은 웹사이트 관리자의 편의를 위해 설치한 기능이며, 당사가 '공유 웹사이트의 추천'란에 있는 서버를 추천하는 것이 아닙니다. '공유 웹사이트의 추천'에서 전환된 서버를 이용, 등록함으로써 발생하는 어떠한 손해 및 불이익에 대해서도 당사는 책임을 지지 않습니다. ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/silence.md ================================================ # 침묵 침묵은 계정에 적용되는 상태 중 하나입니다. 계정이 침묵 상태가 되면 노트의 공개 범위를 공개할 수 없게 됩니다. 홈, 팔로워, 다이렉트 선택이 가능하기 때문에 침묵을 당해도 팔로워나 내 사용자 페이지를 직접 방문하면 게시물을 볼 수 있지만, GTL(연합 타임라인)이나 LTL(로컬 타임라인)에는 게시물이 흐르지 않습니다. 계정의 침묵 상태는 서버 관리자가 활성화/비활성화할 수 있습니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/theme.md ================================================ # 테마 테마를 설정하여 Misskey 클라이언트의 외관을 변경할 수 있습니다. ## 테마 설정 [설정 > 테마](x-mi-web://settings/theme) ## 테마 만들기 테마 코드는 JSON5로 작성된 테마 객체입니다. ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... 테마는 다음과 같은 객체입니다.테마의 고유 ID.UUID를 추천합니다. - `name` ... 테마 이름 - `author` ... 테마 제작자 - `desc` ... 테마 설명(옵션) - `base` ... 밝은 테마인지, 어두운 테마인지 - light로 하면 밝은 테마가 되고, dark로 하면 어두운 테마가 됩니다. - 테마는 여기서 상속된 베이스 테마를 기준으로 합니다. - `props` ... 테마 스타일 정의。이제부터 설명하겠습니다. ### 테마 스타일 정의 베이스 테마는 이 테마의 `base`가 `light`라면 [\\_light.json5][_light.json5]이고, `dark`라면 [\\_dark.json5][_dark.json5]입니다. - [_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)을 사용할 수 있는 구문 - 16진수 색상 표기 - 예: `#00ff00` - `rgb(r, g, b)` 색상 표기 - 예: `rgb(0, 255, 0)` - `rgba(r, g, b, a)` 색상 표기 (색상과 투명도) - 예: `rgba(0, 255, 0, 0.5)` - 다른 변수 값 참조 - `@{변수 이름}`을 입력하여 다른 변수 값을 참조합니다.`{변수 이름}`은 사용할 변수 이름을 정하세요. - 예: `@panel` - 정수 값 참조 (후술) - `${정수 이름}`과 사용할 정수 값을 참조합니다.`{정수 이름}`과 사용할 정수 이름을 정하세요. - 예: `$main` - 함수 (후술) - `:{함수 이름}<{인수 값}<{색상 값}` #### 정수 "CSS 변수로 출력하고 싶진 않지만, 다른 CSS 변수의 값으로 쓰고 싶을 때", 정수로 사용하시면 좋습니다. 키를 `$`로 하면, 그 키는 CSS 변수로 출력되지 않습니다. #### 함수 "버튼에 커서를 올렸을 때 밝게하고 싶은 경우" 등, 원래 색상 값에서 바뀐 색상 값을 사용하려면, 함수를 사용하시면 편리합니다. '버튼 위에 커서를 올렸을 때만 색상을 밝게 하고 싶다'와 같이 기존 색상에서 조금 변경된 색상을 사용하고 싶을 때 이 함수를 사용하면 편리합니다. ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 사용 가능한 함수 - `lighten` ... 넘겨받은 색 휘도 값(0 ~ 100)에 인수 값(0 ~ 100)을 추가한 값을 출력합니다. - `darken` ... 넘겨받은 색 휘도(0 ~ 100)에 인수 값(0 ~ 100)을 뺀 값을 출력합니다. - `alpha` ... 넘겨 받은 투명도 값에 설정한 인수 값(0.0 ~ 1.0)을 출력합니다. - 완전히 투명할 땐 0.0, 완전히 불투명 할 땐 1.0을 설정합니다. - `hue` ... 넘겨 받은 색조 휠의 색조 값(-360 ~ 360)에 인수 값(-360 ~ 360)을 넣어 출력합니다. - `saturate` ... 넘겨 받은 휘도 값(0 ~ 100)에 인수 값(0 ~ 100)을 추가해 출력합니다. ## 테마 배포 v2023.11.0 이후의 버전은, 당신의 웹 사이트에서 원 클릭으로 바로 테마를 직접 설치할 수 있습니다. 테마 설치 기능을 추가하고 싶은 경우, 당신의 사이트에 직접 API를 추가해야 합니다.상세 내용은[여기](../../for-developers/publish-on-your-website/)를 참조하세요. ================================================ FILE: content/ko/docs/2.for-users/3.features/thread-mute.md ================================================ # 스레드 뮤트 :::tip 버전 12.95.0 이후 기능입니다. ::: 스레드 뮤트는 지정한 노트의 스레드를 음소거합니다.스레드(thread)는 시작 노트에서 연결된 모든 답글을 의미합니다.스레드(thread)는 시작 노트에서 연결된 모든 답글을 의미합니다. 스레드를 뮤트하면 해당 스레드에 대한 새로운 답글과 답글에 포함된 내 멘션에 대한 알림을 받지 못하며, '나에게'에도 표시되지 않습니다. Misskey Web에서 스레드를 뮤트하려면 대상 스레드에 속한 모든 노트 또는 시작 노트의 메뉴를 열고 '스레드 뮤트'를 선택합니다. :::warning 스레드 내 어느 노트에서 뮤트 조작을 수행하든 상관없이 해당 스레드 전체가 뮤트됩니다. ::: ================================================ FILE: content/ko/docs/2.for-users/3.features/timeline.md ================================================ # 타임라인 타임라인은 [노트](/docs/for-users/features/note/)가 시간순으로 표시되는 기능입니다. ## 홈 내가 팔로우하고 있는 사용자의 게시물이 흐릅니다.HTL로 표기합니다.HTL로 표기합니다. ## 로컬 모든 로컬 사용자의 '홈'으로 지정되지 않은 게시물이 흐릅니다.LTL로 표기합니다.LTL로 표기합니다. ## 소셜 내가 팔로우하고 있는 사용자의 게시물과 모든 로컬 사용자의 '홈'으로 지정되지 않은 게시물이 흐릅니다.STL로 표기합니다.STL로 표기합니다. ## 글로벌 모든 로컬 사용자의 '홈'이 지정되지 않은 게시물과 서버에 도착한 모든 원격 사용자의 '홈'이 지정되지 않은 게시물이 흐릅니다.GTL로 표기합니다.GTL로 표기합니다. ## 비교
소스 공개 범위 타임라인
로컬 소셜 글로벌
로컬 (팔로우) 공개
팔로워
리모트 (팔로우) 공개
팔로워
로컬 (팔로우 안함) 공개
팔로워
리모트 (팔로우 안함) 공개
================================================ FILE: content/ko/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip 버전 12.109.0 이후 기능입니다. ::: :::warning 실험적인 기능이기 때문에 작동이 불안정하거나 향후 사양이 변경될 수 있습니다. ::: 또한, 요청 헤더에는 `X-Misskey-Hook-Secret`이라는 이름으로 등록 시 설정한 시크릿이 포함됩니다.이 시크릿이 올바른지 확인하여 요청이 유효한지 판단할 수 있습니다.Misskey에는 Webhook이 준비되어 있습니다.Webhook을 이용하면 Misskey의 다양한 이벤트를 실시간으로 받아볼 수 있습니다. 설정 > Webhook에서 Webhook을 관리할 수 있습니다. Webhook이 등록되면 지정한 이벤트가 발생하면 지정한 URL로 HTTP 요청이 전송됩니다.요청의 메서드는 POST이고, 본문은 JSON입니다.요청의 메서드는 POST이고, 본문은 JSON입니다. 또한, 요청 헤더에는 `X-Misskey-Hook-Secret`이라는 이름으로 등록 시 설정한 시크릿이 포함됩니다.이 시크릿이 올바른지 확인하여 요청이 유효한지 판단할 수 있습니다. 요청 페이로드에는 다음과 같은 속성이 들어갑니다. 대상 서버가 5xx 오류를 반환하거나 응답하지 않는 경우 시간을 열어 요청을 다시 전송합니다. Webhook은 관리 화면에서 개별적으로 활성 상태를 설정할 수 있으며, 일시적으로 요청 전송을 중지시킬 수 있습니다. ## 이벤트 각 이벤트마다 설명과 페이로드를 표시합니다. ### follow 자신이 누군가를 팔로우했을 때 발생합니다. ### followed 누군가가 나를 팔로우했을 때 발생합니다. ### unfollow 자신이 누군가를 팔로우 해제했을 때 발생합니다. ### note 자신이 메모를 게시할 때 발생합니다. ### reply 자신의 노트에 답장을 받았을 때 발생합니다. ### renote 자신의 노트가 Renote 되었을 때 발생합니다. ### mention 자신에게 멘션이 왔을때 발생합니다. ================================================ FILE: content/ko/docs/2.for-users/3.features/widgets.md ================================================ # 위젯 위젯은 Misskey의 UI에 설치할 수 있는 작은 정보 표시, 조작이 가능한 부품입니다. 위젯을 편집하려면 위젯 편집 모드로 전환합니다.위젯을 편집하려면 위젯 편집 모드로 전환합니다.전환 방법은 UI에 따라 다릅니다. 위젯 편집 모드에서는 위젯의 추가, 삭제, 정렬 및 각 위젯의 설정을 할 수 있습니다. ## 사용 가능한 위젯 목록 - 프로필 - 서버 정보 - 위젯 - 타임라인 - 달력 - RSS 리더 - RSS Ticker - 트렌드 - 시계 - 활동 - 사진 - 디지털 시계 - UNIX 시계 - 연합우주 - 서버 구름 - 글 입력란 - 슬라이드 쇼 - 서버 통계 - 온라인 사용자 - 작업 대기열 - 버튼 - AiScript 콘솔 - AiScript App - 아이(Ai,藍) - 사용자 목록 - 클리커 ### 프로필 이름, 사용자 이름, 아바타 이미지, 배너 이미지를 표시합니다.여러 계정을 사용할 때 사용 중인 사용자 이름을 쉽게 확인할 수 있습니다. ### 서버 정보 서버명, 도메인, 아이콘 이미지, 배너 이미지를 표시합니다. ### 트렌드 텍스트를 저장할 수 있습니다. ### 타임라인 라임 라인을 표시합니다.라임 라인을 표시합니다.홈, 로컬, 소셜, 글로벌을 전환하여 표시할 수 있습니다. ### 달력 오늘의 날짜, 요일, 오늘, 이번 달, 올해를 백분율로 표시합니다.기본 UI에서는 처음부터 표시되어 있습니다.기본 UI에서는 처음부터 표시되어 있습니다. ### RSS 리더 RSS 피드 제목을 나열합니다. ### RSS Ticker RSS 피드를 순차적으로 스크롤하여 표시합니다. ### 트렌드 최근 자주 사용되는 해시태그를 표시합니다. ### 시계 아날로그 시계로 현재 시간을 표시합니다. ### 활동 가동 상황을 점으로 표시합니다. ### 사진 최근 드라이브 내용을 표시합니다. ### 디지털 시계 디지털 시계로 현재 시간을 표시합니다. ### UNIX 시계 UNIX 시간으로 현재 시간을 표시합니다. ### 연합우주 주로 통신 중인 다른 서버를 표시합니다. ### 서버 구름 다른 서버를 구형으로 표시합니다. ### 글 입력란 메모를 게시할 수 있는 양식을 고정 표시합니다. ### 슬라이드 쇼 드라이브 내 특정 폴더를 순차적으로 표시합니다. ### 서버 통계 서버의 CPU, 메모리, 인터넷 송수신, 스토리지 용량을 표시합니다.서버 환경에 따라 표시되지 않을 수 있습니다.서버 환경에 따라 표시되지 않을 수 있습니다. ### 온라인 사용자 현재 온라인 상태인 사용자 수를 표시합니다. ### 작업 대기열 다른 서버와 송수신 중인 노트 등의 큐 상태를 표시합니다. ### 버튼 글 입력란버튼을 표시합니다.동작은 AIScript로 설명하겠습니다. ### AiScript 콘솔 AiScript를 실행할 수 있는 콘솔을 표시합니다. ### AiScript App AIScript 소스를 사용하여 앱을 표시합니다.AIScript 소스를 사용하여 앱을 표시합니다.Misskey Play와 동일한 UI를 사용할 수 있습니다.v13부터 추가되었습니다.v13부터 추가되었습니다. ### 아이(Ai,藍) 아이를 표시합니다.커서에 맞춰 시선을 바꾸기도 합니다. ### 사용자 목록 목록을 표시합니다.더 보기!더 보기! - 목록에서 설정할 수 있습니다. ### 클리커 쿠키를 표시합니다.쿠키를 표시합니다.표시된 쿠키를 클릭/탭하여 주십시오. ================================================ FILE: content/ko/docs/2.for-users/3.features/word-mute.md ================================================ # 단어 뮤트 단어 뮤트 설정을 하면, 조건과 일치하는 노트는 최소화되며, 대신 "○○님이 무언가를 말했습니다"라는 내용이 표시됩니다.최소화된 노트를 클릭하면 원래 내용을 볼 수 있습니다. 단어 뮤트는, [설정 > 뮤트와 차단](x-mi-web://settings/mute-block)에서 설정할 수 있습니다. ## 하드 단어 뮤트 하드 단어 뮤트를 설정하면, 조건과 일치하는 노트는 아예 보이지 않습니다.단어 뮤트랑은 다른 점은 노트 자체가 화면에 표시되지 않습니다. ================================================ FILE: content/ko/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '문제가 발생하면 먼저 이곳을 확인하시기 바랍니다.' --- # 문제 해결 :::tip [자주 묻는 질문](./faq.md)도 함께 참고하시기 바랍니다. ::: 해당 항목이 없거나, 해당 절차를 시도해도 해결되지 않는 경우, 서버 관리자에게 문의하거나 [문제 신고](../../about-misskey/# 토론에 참여)해 주시기 바랍니다. ## 클라이언트가 작동하지 않을 때 브라우저 및 운영체제를 최신 버전으로 갱신하고 다시 시도해 보세요. 클라이언트가 실행하는 페이지가 로드되지 않는다는 오류가 발생한다면, 네트워크에 문제가 없는지 확인해 보시기 바랍니다.또한 서버가 다운되지 않았는지 확인해야 합니다. ## 페이지가 로드되지 않음 클라이언트가 실행하는 페이지가 로드되지 않는다는 오류가 발생한다면, 네트워크에 문제가 없는지 확인해 보시기 바랍니다.또한 서버가 다운되지 않았는지 확인해야 합니다.또한 서버가 다운되지 않았는지 확인해야 합니다. 드물지만 캐시가 원인인 경우도 있습니다.브라우저의 캐시를 지우고 다시 시도해 보세요. 인터넷 서비스 제공 업체의 장애 및 유지 보수 일정 확인, 네트워크의 통신 속도 상태 및 네트워크 설정 확인, 서버 측의 장애 및 유지 보수 여부를 확인한 후 다음 설정을 시도하거나 확인하십시오. ## 클라이언트 동작이 느림 인터넷 서비스 제공 업체의 장애 및 유지 보수 일정 확인, 네트워크의 통신 속도 상태 및 네트워크 설정 확인, 서버 측의 장애 및 유지 보수 여부를 확인한 후 다음 설정을 시도하거나 확인하십시오. 아래 설정은 Misskey의 일부 기능이 작동하지 않을 수 있음을 인지하고 시도해 보시기 바랍니다. - 동작의 'Pages의 스크립트 비활성화' 비활성화하기 - 외형에서 '움직이는 MFM 비활성화'를 활성화하기. - 외형에서 '시스템 기본 글꼴 사용' 활성화하기 - 외형에서 'OS 기본 이모티콘 사용'을 활성화하기. 아래 설정은 Misskey의 일부 기능이 작동하지 않을 수 있음을 인지하고 시도해 보시기 바랍니다. - 동작의 'Pages의 스크립트 비활성화' 비활성화하기 - 외형에서 '움직이는 MFM 비활성화'를 활성화하기. 웹 브라우저 설정 - 웹 브라우저 설정에서 하드웨어 가속을 사용하도록 설정합니다. - 웹 브라우저의 애드온 및 확장 프로그램 설정을 확인하거나 해당 기능을 끄십시오. - 웹 브라우저의 기타 설정 확인 3. 기타 - PC나 스마트폰의 시스템 설정 확인하기 ## Misskey Web의 사용자 인터페이스의 일부 표시가 이상할 때(배경이 투명한 경우 등) 웹 브라우저의 애드온 및 확장 프로그램 설정을 확인하거나 해당 기능을 끄십시오. 기타 갱신으로 사용자 인터페이스의 변경이 있는 경우에 테마의 캐시 시스템의 영향으로 이러한 표시가 나타날 수 있습니다. 클라이언트 설정에서 ‘캐시 초기화’를 하면 고쳐집니다. ‘클라이언트’의 캐시 초기화입니다.‘브라우저’의 캐시 초기화는 하지 마십시오. :::warning ‘클라이언트’의 캐시 초기화입니다.‘브라우저’의 캐시 초기화는 하지 마십시오. ::: ## Misskey Web의 UI에서 특정 요소가 표시되지 않음 웹브라우저에서 광고 차단기와 같은 애드온이나 확장 프로그램을 사용하다 보면 이런 문제가 발생할 수 있습니다.해당 설정을 확인하거나 끄고 사용하시기 바랍니다. ## Misskey Web의 UI에 번역되지 않은 부분이 존재함. 공개 범위가 팔로워로 한정된 노트 및 DM은 리노트를 할 수 없습니다. ## Misskey Web의 UI에서 특정 요소가 표시되지 않음 웹브라우저에서 광고 차단기와 같은 애드온이나 확장 프로그램을 사용하다 보면 이런 문제가 발생할 수 있습니다.해당 설정을 확인하거나 끄고 사용하시기 바랍니다.해당 설정을 확인하거나 끄고 사용하시기 바랍니다. ## Misskey Web의 UI에 번역되지 않은 부분이 존재함. 대부분의 경우 Misskey Web의 UI가 제대로 번역되지 않았기 때문이므로 결함이 아닙니다.번역이 끝날 때까지 잠시만 기다려 주시기 바랍니다.번역이 끝날 때까지 잠시만 기다려 주시기 바랍니다. 만약 당신이 Misskey의 번역에 관심이 있다면 [번역에 참여하기](../../about-misskey/#텍스트를 번역하기)해 주시는 것도 물론 가능합니다. ================================================ FILE: content/ko/docs/2.for-users/4.resources/_dir.yml ================================================ title: "기타 자료" description: "기능적인 면 이외의 지식이나 곤란한 상황에서의 대처법을 소개합니다." ================================================ FILE: content/ko/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskey를 사용하기 위한 앱을 소개합니다.' --- # 앱 Misskey를 사용하기 위한 앱(클라이언트)을 소개합니다. 브라우저에서 Misskey 서버에 로그인하면 타임라인이 표시됩니다.이때 표시되는 것이 Misskey의 유일한 공식 클라이언트인 **Misskey Web**입니다.브라우저에서 구동되는 앱이지만, PWA(Progressive Web Apps, 웹앱)를 지원하므로 모바일 운영체제의 네이티브 앱처럼 동작할 수도 있습니다.자세한 내용은 [여기](/docs/for-users/stepped-guides/how-to-use-pwa/)에서 확인할 수 있습니다.참고로 미스키 프로젝트에서는 네이티브 앱을 개발하지 않습니다. 미스키 웹에 익숙해지면, 자원봉사자들이 개발하는 비공식 앱을 사용해보는 것도 좋습니다.다음은 널리 사용되는 앱을 소개합니다(가나다 순). - **Aria** (iOS, Mac, Android, Windows, Linux): Misskey의 대부분의 기능을 이용할 수 있습니다.공식 Misskey Web 클라이언트에 가까운 UI.[공식 사이트](https://misskey.io/@aria_app).[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880).[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria).[소스 코드](https://github.com/poppingmoon/aria) - **Flare** (iOS, Mac, Android, Windows): 열람 이력의 저장이나 RSS 리더를 이용할 수 있습니다.Mastodon, Bluesky, X에 대응하고, 이들의 타임라인을 하나로 통합할 수 있습니다.[공식 사이트](https://flareapp.moe).[TestFlight](https://testflight.apple.com/join/iYP7QZME).[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare).[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357).[소스 코드](https://github.com/DimensionDev/Flare). - **Milktea** (Android): 타임라인과 특정 검색 결과에 대한 탭을 통해 빠르게 접근할 수 있습니다.다른 사용자에게 닉네임을 부여할 수 있습니다.[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[소스 코드](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): 탭에 사용자 지정 이모티콘을 설정할 수 있는 기능, MFM의 입력 보완 등 미스키에 특화된 독자적인 기능을 가지고 있습니다.[공식 사이트](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[소스 코드](https://github.com/shiosyakeyakini-info/miria). - **MissRirica** (iOS, Android): Misskey용 iOS/Android 클라이언트.거의 Misskey Web(v13)의 UI, Push 알림이 도착합니다.[소스 코드](https://github.com/fruitriin/missRirica-client). - **Misscat** (iOS): 스마트폰에 적합한 직관적인 조작성을 제공하는 것을 목표로 개발되고 있습니다.[공식 사이트](https://yuiga.dev/misscat/)。[소스 코드](https://github.com/YuigaWada/MissCat). - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblr에도 대응하는 유료 앱입니다.[공식 사이트](https://uakihir0.github.io/socialhub/).[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582). - **ZonePane(조펜)** (Android): 타임라인, 목록, 채널을 탭할 수 있습니다.노트를 읽었는지 쉽게 알아볼 수 있습니다.Twitter앱 TwitPane의 Misskey판으로 Mastodon이나 Bluesky에도 대응됩니다. [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): 타임라인이나 리스트의 게시물을 실시간으로 댓글 형식으로 화면에 표시하는 맥용 앱입니다. [사이트](https://b123400.net/tootrain/ja), [소스 코드](https://github.com/b123400/TootRain). 하지만 Misskey는 활발하게 기능 업데이트가 이루어지고 있기 때문에 최신 기능에 대한 대응이 늦어질 수 있습니다. 특별한 조건이 없다면 Misskey Web을 이용하는 것을 추천합니다.미스키 웹에 익숙해지면, 자원봉사자들이 개발하는 비공식 앱을 사용해보는 것도 좋습니다.다음은 널리 사용되는 앱을 소개합니다(가나다 순). ================================================ FILE: content/ko/docs/2.for-users/4.resources/faq.md ================================================ --- description: '리노트의 시간 표시 옆에 있는 "..."' --- # 자주 묻는 질문 Misskey를 이용할 때 자주 묻는 질문에 대한 내용을 담고 있습니다.
Misskey 프로젝트 자체에 대한 자주 묻는 질문은 [여기](../../about-misskey#자주 묻는 질문)을 참고하세요. ## Android/iOS용 앱이 있나요? 미스키 프로젝트에서는 이러한 모바일 OS를 위한 네이티브 앱을 개발하지 않고 있지만, 서드파티에서 만든 앱이 몇 가지 존재합니다.자세한 내용은 [여기](./apps)에서 확인하실 수 있습니다.
다만, 서드파티 앱은 Misskey의 최신 기능에 대한 대응이 늦어질 수밖에 없으므로, 특별한 이유가 없다면 Misskey 공식 웹 클라이언트인 Misskey Web을 사용하는 것을 추천합니다.또한, 이 경우에도 사용료를 징수할 계획은 없습니다.자세한 내용은 [여기](/docs/for-users/stepped-guides/how-to-use-pwa/)에서 확인할 수 있습니다. ## Mastodon용 앱으로 로그인할 수 있나요? Misskey는 Mastodon의 API와 호환되지 않기 때문에, 일부를 제외한 타사 Mastodon용 앱이나 웹 클라이언트 등에서는 Misskey를 사용할 수 없습니다.
Misskey 공식 웹 클라이언트인 Misskey Web을 이용하세요. ## misskey.io는 Misskey 프로젝트의 공식 서버인가요? misskey.io는 Misskey 공식 서버가 아니며, Misskey 프로젝트에도 포함되지 않습니다.misskey.io는 특정 테마 없이 범용적이며, 쉽게 등록할 수 있는 Misskey에서 가장 큰 규모의 서버입니다. ## 주식회사 미스키HQ와의 관계는? 주식회사 MisskeyHQ는 misskey.io의 운영을 목적으로 하는 회사입니다.따라서 Misskey 개발 프로젝트와 직접적인 관계는 없습니다.다만 미스키 프로젝트 리더인 슈이로(suuilo)도 임원으로 참여하고 있으며, 함께 미스키를 발전시켜 나가는 관계입니다. ## '미스키'라는 이름의 유래는 무엇인가요? 메인 개발자인 슈이로(syuilo)가 이름을 고민하던 중 우연히 듣게 된 메이앤(May'n)의 곡 'Brain Diver'의 가사에서 따왔습니다. ## 다른 Misskey, Pleroma 서버, Mastodon 서버 등의 사용자를 팔로우하려면 어떻게 해야 하나요? 메뉴에서 검색을 선택하고 사용자 계정을 아래 형식으로 입력합니다.사용자 계정은 사용자 이름과 사용자가 속한 서버 또는 서버의 호스트 이름을 포함합니다.미스키뿐만 아니라 Mastodon, Pleroma 등 많은 분산형 소프트웨어에서 다음과 같은 사용자 계정 형태가 일반적입니다.
사용자 계정 형식: `@사용자 이름 @Misskey, Pleroma 서버 또는 Mastodon 서버의 호스트 이름`
사용자 계정 예시: `@syuilo@misskey.io`
사용자 계정의 형식은 모든 분산형 소프트웨어에서 공통적으로 사용되는 것은 아니지만, 이 형식을 통해 다양한 분산형 소프트웨어가 구현된 다른 서버나 서버의 사용자를 추적할 수 있습니다. ## 리노트를 삭제하려면 어떻게 해야 하나요? 리노트의 시간 표시 옆에 있는 "..." 를 누르고 '리노트 해제'를 선택합니다.를 누르고 '리노트 해제'를 선택합니다.
Renote에 대한 자세한 내용은 [여기](../features/note/#renote)에서 확인하실 수 있습니다. ## 노트 내 URL의 미리보기를 표시하고 싶지 않습니다. MFM(Markup language For Misskey)이라는 Misskey의 자체 마크업 언어에는 URL의 미리보기를 비활성화하는 구문이 있습니다.자세한 내용은 MFM 치트시트를 참고하세요.MFM 치트시트는 여러분이 속한 서버에서 다음 주소를 입력하면 볼 수 있습니다.`https://서버 호스트 이름/mfm-cheat-sheet` ## 사용자 지정 이모티콘을 추가, 편집, 삭제하고 싶습니다. 사용자 지정 이모티콘을 추가, 편집, 삭제할 수 있는 권한은 해당 서버의 관리자만 가질 수 있습니다.이를 원할 경우, 서버 관리자에게 직접 문의하시기 바랍니다. ## Bot을 개발하고 싶어요 Misskey API를 이용한 Bot 개발이 가능합니다.자세한 내용은 [여기](../../for-developers/api/)에서 확인할 수 있습니다. ## 노트의 번역 기능은 어떤 서비스를 사용하나요? 기계번역 서비스인 [DeepL 번역](https://www.deepl.com/)을 이용하고 있습니다. ## 서비스에 대한 문의를 하고 싶습니다. 'Misskey'는 웹 서비스를 만들기 위한 소프트웨어이자 그 프로젝트의 명칭입니다.따라서, 'Misskey' 자체는 웹 서비스가 아닙니다.
또, 본 Misskey Project는 어떠한 웹 서비스도 운영, 관할하고 있지 않으므로 Misskey를 사용한 웹 서비스에 대한 문의는 해당 웹 서비스의 문의 창구에 문의할 것을 부탁드립니다.
사람에 따라서는 'Misskey를 사용해 만들어진 웹 서비스'를 가리켜 'Misskey'라고 표기하는 경우가 있으므로 주의가 필요합니다. ## 지원금은 어떻게 활용되나요? 지속적인 Misskey 개발을 위해 활용됩니다. 구체적인 주요 용도는 풀타임 개발자(=현재 @syuilo)에게로의 급여(보수)입니다. 풀타임 개발자가 있는 것으로 Misskey Project가 유지되고 있습니다. 또 풀타임이 아닌 개발자에 대해 업무 위탁을 했을 때의 보수의 지불이나 비정기적인 급여 지급에도 사용됩니다. 외에는 비율은 낮습니다만, 관계자 접대 교제 비용, 타 OSS로의 지원 비용, 도메인 유지 비용, 개발에 제공하는 각종 소프트웨어·서비스의 이용 요금, 자료(서적 등) 구입 비용, 비품(동작 검증용 장치 등) 비용, 상표 등 권리 유지 비용, 세무사 보수, 굿즈 상품(Misskey 카드 등)에 관한 비용(제작비, 발송 비용 등), 에셋(로고, 아이콘, 일러스트, 사운드 등) 발주 비용, 가상 오피스 이용 요금 등에 사용되는 경우도 있습니다. 광고에 관해서는 현재 실시되고 있지 않으므로 선전 광고 비용은 발생하고 있지 않습니다. 더욱이 기본적으로 받은 지원금은 세제상 '매출'로 다뤄지고, 수취측에서 과세 대상이 되는 것 외에, 수취측에서 송금에 사용된 서비스에 대한 수수료를 지불하므로 받은 지원금의 전액을 활용할 수 있는 것은 아닌 점에 유의해 주십시오. ## 서버를 만들었는데, 전기통신사업 신고를 해야 하나요? ### 짧은 답변 **비즈니스 목적**으로 운영한다면 **예**입니다.그렇지 않으면 **아니요**. ### 긴 답변 '사업자'의 정의는 [총무성 문서](https://www.soumu.go.jp/main_content/000477428.pdf)에 따르면 '서비스를 제공하고 그 대가로 요금을 징수하여 수익을 얻으려는 자'로 되어 있습니다.따라서 사업적으로 수익을 창출할 목적으로 서버를 운영하지 않는 한 신고가 필요하지 않습니다.따라서 기부금이나 광고 등으로 수익이 발생하더라도 서버 운영비 등을 충당하기 위한 수익이라면 신고대상 사업자에 해당하지 않습니다.(총무성에 확인)
자세한 내용은 총무성의 [전기통신사업 진출 매뉴얼](https://www.soumu.go.jp/main_content/000477428.pdf) 등의 자료를 참고하시거나 총무성에 문의하시기 바랍니다. ## DM 기능이 있으니 전기통신사업의 신고가 필요하지 않은가요? ['서버를 만들었습니다만, 전기통신사업의 신고는 필요한가요?'](#서버를 만들었는데, 전기통신사업 신고를 해야 하나요?)에서 설명하고 있는 대로입니다. 운영하는 서비스가 어떤 기능을 가지고 있든 '요금을 징수하는 것으로 수익을 얻으려 하는 것'에 해당하지 않으면 신고가 필요한 사업자로 간주되지 않습니다. ## 이름에 'Misskey'가 포함된 서비스를 공개해도 되나요? 'Misskey'는 Misskey 프로젝트의 등록상표(일본)이지만, 이름에 'Misskey'가 포함된(예: Misskey Tools 등) 서비스를 공개해도 문제가 되지 않습니다. 또한, 이 경우에도 사용료를 징수할 계획은 없습니다. ================================================ FILE: content/ko/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskey 관련 용어집입니다.' --- # 용어집 Misskey 관련 용어집입니다. ## Acct 특정 사용자를 나타내는 `@username@host` 형식의 문자열.멘션을 할 때 등에 사용된다. ## ActivityPub (읽기: 액티비티 펍)
연합우주(Fediverse)라는 비중앙집권형 연합형 소셜 네트워크를 형성하기 위해 사용되는 개방형 표준 프로토콜(규격)을 말한다.이 프로토콜에 따라 서버끼리 연결되고, 콘텐츠와 알림 등의 정보를 서로 주고받는다.연합우주의 네트워크 형성에 필수적인 요소이다. ## AiScript ( 읽기: 아이 스크립트 )
Misskey에서 사용할 수 있는 자바스크립트 기반의 프로그래밍 언어이다.자세한 내용은 [여기.](https://aiscript-dev.github.io/) ## API (읽기: 에이피아이)
Misskey의 서버가 공개하고 있는, 프로그램에서 Misskey를 다루기 위한 인터페이스.자세한 내용은 [여기.](../../for-developers/api) ## Bot (읽기: 봇)
프로그램에 의해 운영되고 있는 계정. ## CW (읽기: 콘텐츠 워닝)
Contents Warning의 약자.노트의 내용을 조작하지 않으면 표시되지 않도록 할 수 있는 기능.주로 장황한 내용을 숨기거나 스포일러 방지 등에 사용된다.자세한 내용은 [여기.](../features/note/#cw) ## 연합우주 (Fediverse) (읽기: 연합우주 또는 페디버스)
. 'Federated(Federation)'과 'Universe'를 합친 신조어.미스키를 포함한 다양한 분산형 소프트웨어를 구현한 서버로 구성된 비중앙집권적이고 연합된 소셜 네트워크.미스키 이외의 분산형 소프트웨어로는 Mastodon, Pleroma, Pixelfed 등이 있다. ## GTL 글로벌 타임라인(Global Timeline)의 약자.타임라인에 대한 자세한 내용은 [여기.](../features/timeline) ## HTL 홈 타임라인(Home Timeline)의 약자.타임라인에 대한 자세한 내용은 [여기.](../features/timeline) ## LTL 로컬 타임라인(Local Timeline)의 약자.타임라인에 대한 자세한 내용은 [여기.](../features/timeline) ## MFM (읽기: 엠에프엠)
Markup language For Misskey의 약자로, Misskey에서 사용할 수 있는 마크업 언어이다.자세한 내용은 [여기.](../features/mfm) ## Misskey Web (읽기: 미스키 웹)
。 Misskey 공식 웹 클라이언트(인터페이스).Misskey 서버에 PC, 스마트폰 등의 웹브라우저로 접속하면 자동으로 표시된다. ## NSFW (읽기: 낫 세이프 포 워크)
Not Safe For Work의 약자.이미지를 '민감'하게 처리하여 조작이 없으면 표시되지 않도록 할 수 있는 기능이다. ## Renote (읽기: 리노트)
이미 있는 노트를 인용하거나 그 노트를 새로운 노트로 공유하는 행위, 또는 그로 인해 생성된 노트.자세한 내용은 [여기.](../features/note/#renote) ## STL 소셜 타임라인(Social TimeLine)의 약자.타임라인에 대한 자세한 내용은 [여기.](../features/timeline) ## 아이(Ai,藍) (읽기: 아이)
Misskey의 공식 마스코트입니다.자세한 내용은 [여기.](https://xn--931a.moe/) ## 서버 todo ## 커스텀 이모티콘 각 Misskey 서버의 관리자와 사용자가 자체적으로 만든 이모티콘.커스텀 이모티콘이 아닌 일반 이모티콘은 '유니코드 이모티콘'이라고 부른다.자세한 내용은 [여기.](../features/custom-emoji) ## 제어판 Misskey 서버의 설정 화면을 말한다. ## 시스템 계정 Misskey 서버가 다른 서버와 통신하기 위해서 사용하는 특수한 계정을 말한다.Misskey 서버에 내장되어져 있으며, 필요에 따라 자동으로 서버가 컨트롤한다. ## 정지 (읽기: 비활성화)
계정이 사용 불가로 설정된 상태를 말한다. ## 드라이브 Misskey의 서버에서 사용자가 업로드한 이미지, 음악 등의 파일을 관리할 수 있는 기능이다.자세한 내용은 [여기.](../features/drive) ## 노트 Misskey의 서버에 사용자가 올린 글을 말한다.이미지, 음악 등의 파일, 설문조사 등 미스키만의 다양한 콘텐츠를 담을 수 있다.자세한 내용은 [여기.](../features/note) ## 프록시 계정 다른 서버 유저를 자신의 서버에서 받을 수 있도록, Misskey 서버가 자동으로 관리하고 있는 시스템 계정을 말한다.자신의 서버에 있는 유저가, 다른 서버의 유저의 컨텐츠를 그 유저가 팔로우하지 않는 상태에서 받으려고 했을 때 등, 그 유저를 대신해서 팔로우 하는 경우가 있다. ## 미스키스트 Misskey의 서버에 계정을 가진 사용자.또는 그 중에서도 헤비유저를 지칭하는 말. ## 모더레이터 스팸 동결 및 뮤트, 부적절한 게시물 삭제 등 서버 운영과 관련된 권한을 가진 사용자.서버 관리자가 서버 내에서 중재자를 모집하고 채용하는 경우가 많다. ## 리모트 자신이 속한 서버와 구별하여, 다른 서버를 가리키는 말. '리모트 유저'와 같이 접두사처럼 사용하기도 한다. 반대말로는 '로컬'이 있다. ## 연합 (읽기: 연합)
여러 대의 서버나 서버끼리 서로 연결되어 콘텐츠나 알림 등의 정보를 서로 주고받는 집합체를 뜻한다. ## 로컬 자신이 속한 서버를 가리키는 말. '로컬 유저', '로컬 타임라인'과 같이 접두사처럼 사용하기도 한다. 반대말로는 '리모트'가 있다. ================================================ FILE: content/ko/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey에 대하여 Misskey Hub는 Misskey에 대한 지식 등의 문서, 개발 블로그, 플러그인 스토어 등을 제공하는 Misskey의 공식 사이트입니다. Misskey Hub도 [오픈소스로 공개되어 있습니다.](https://github.com/misskey-dev/misskey-hub)'Misskey의 모든 것이 여기에 있다'를 지향합니다. :::tip Misskey Hub는 Nuxt를 사용하여 구축된 정적 사이트입니다. ::: ## Misskey Hub에 이바지하기 설명 문서의 추가나 번역 등을 환영합니다. ================================================ FILE: content/ko/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS 공격에 대해서 ![](/img/docs/for-users/resources/self-xss/console_warn.png) 누군가의 부탁으로 Misskey를 만졌더니 위에 있는 이미지처럼 되어서 이 페이지에 오셨나요? **지금 당신은 나쁜 목적을 가진 사람한테 속고 있습니다. 사기입니다.** 붙여넣기 하거나 입력하라고 부탁받은 내용(대체적으로 악성 프로그램이나 코드입니다)을 입력하지 않는 한, 나쁜 사람한테 정보가 유출될 일은 없습니다.**당신은 지금 속고 있으니, 지금, 당장 하던 작업을 멈추십시오.** 이 화면은 개발자가 코드를 확인하거나 버그를 고치기 위해서 사용하는 "콘솔"이라고 불리는 도구입니다. **이건 프로그래머나 컴퓨터를 정말로 잘 알고 있는 사람이 아니면 일반적인 사람은 쓸 일이 진짜 잘 없습니다.** ## 좀 더 자세히 알고 싶다구요? Self-XSS 공격은 공격자가 사용자를 속여서 브라우저(인터넷 사이트를 보는 프로그램: 예를 들어 크롬, 사파리, 웨일 등)의 개발자 도구를 사용해서 악성 프로그램, 악성 코드를 넣도록 합니다.이 때, 사용자(당신)에게 아래와 같은 이야기를 할 수도 있습니다. - "숨겨진 기능 또는 좀 더 좋은 기능을 쓸 수 있어" - "보안에 관련된 테스트를 해보고 싶으니까 이 코드를 입력해줘" - "여기나 다른 서버(사이트)의 해킹하거나 버그를 써서 댓가(포인트, 돈, 리밋 해제)를 받을 수 있어" 지금 혹시 위에 있는 내용이랑 비슷한 내용으로 개발자 도구를 띄워서 무언가를 입력하라고 부탁받진 않았습니까? 입력하면 본인이 해킹당하거나 사기를 당할 수도 있습니다. 이 공격은 일반적인 DDoS(디도스)나 해킹같은 사이버 공격과는 다르게, 여기서 말하는 Self-XSS 공격은 개발자 도구와 같은 콘솔을 사용해서 "사용자 본인이 직접 원해서 기밀 데이터를 보내는 것"같이 속일 수 있으므로, 서버 운영자에서 대책을 해도 어려운 경우가 있으므로, 사용자가 조심해야 할 필요가 있습니다. ================================================ FILE: content/ko/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # 단계별 가이드 이 섹션에서는 Misskey를 이용하면서 볼 수 있는 복잡한 조작을 단계별로 꼼꼼하게 설명하고 있습니다. :::warning 이 섹션은 베타입니다.내용이 언제든지 수정/변경될 수 있습니다. ::: ================================================ FILE: content/ko/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "단계별 가이드" description: "Misskey의 조작을 단계별로 정성스럽게 알려드립니다. 조작 방법을 모르겠다면 여기를 체크!" ================================================ FILE: content/ko/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "계정을 삭제하는 방법" description: "Misskey의 계정을 삭제하는 방법을 소개합니다." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskey 계정이 필요하지 않아, 계정을 삭제하고 싶은 분도 계실 거라 생각합니다. 이 페이지에서는, - 계정 삭제 시의 주의점 - 계정 삭제 방법 에 대해 소개하겠습니다. :::danger 뒤에 자세히 소개하겠지만, **계정을 삭제하면 Misskey의 이용을 재개하는(다시 등록하는) 때까지 영향을 미칩니다.** 계정 삭제는 부디 신중하게 해주세요. ::: ## 계정 삭제 시의 주의점 계정을 삭제하면 다음과 같은 일이 발생합니다: - 계정에 로그인할 수 없게 됩니다 - 데이터 삭제는 시간을 두고 이루어집니다 - 같은 아이디는 다시는 쓸 수 없게 됩니다 하나씩 설명해드릴게요. ### 계정에 로그인할 수 없게 됩니다 계정 삭제를 실시하면 해당 계정에 다시 로그인할 수 없습니다. **잘못 삭제했을 때의 복구 기능 등은 없습니다.** 주의하세요. ### 데이터 삭제는 시간을 두고 이루어집니다 데이터 삭제는 매우 높은 부하가 걸리는 조작입니다. 따라서 다른 사용자의 이용에 지장을 주지 않도록 데이터 삭제는 시간을 두고 이루어집니다. 계정 삭제와 동시에 모든 데이터가 삭제되는 것은 아니므로 주의하시기 바랍니다. ### 같은 아이디는 다시는 못쓰게 됩니다 연합처리와의 균형상, 현시점에서는, 한 번 취득한 ID(`@someone@misskey.example.com ` 의 '@someone' 부분)는 **다시는 사용할 수 없게 됩니다.** 같은 서버에서 다시 같은 아이디로 계정을 취득할 수는 없으므로 **각별히 주의해 주십시오.** --------------- 이상 모든 것을 이해하시고, 그래도 계정을 삭제할 필요가 있는 분은, 아래에서 사용의 기기 타입을 선택해, 계정 삭제를 실시해 주세요. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "스마트폰" steps: - title: "설정 열기" image: "sp/1.png" description: | Misskey 를 열고, 화면 우측 하단의 「≡」버튼을 선택, 나온 메뉴의 「설정」을 선택합니다. - title: "\"기타\"를 탭" image: "sp/2.png" description: | 설정 카테고리 안에서 "기타" 탭을 찾아 선택합니다. - title: "\"계정 삭제 요청\"을 탭" image: "sp/3.png" description: | "계정 삭제 요청"을 탭해 열고 주의사항을 확인한 후 "계정 삭제 요청"을 탭합니다. - title: "비밀번호 입력" image: "sp/4.png" description: | 중요한 조작에 대한 확인 절차로, 사용 중인 계정에 로그인할 때 사용하고 있는 비밀번호를 입력합니다. - title: "계정 삭제 요청 완료" image: "sp/5.png" description: | 이 화면이 뜨면 계정 삭제 요청이 완료됩니다. "확인"을 탭하면 Misskey에서 로그아웃됩니다. - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "설정 열기" image: "pc/2.png" description: | "설정"을 열고 조금 내리면 보이는 "기타"를 클릭합니다. - title: "\"계정 삭제 요청\"을 선택" image: "pc/3.png" description: | "계정 삭제 요청"을 선택해 열고 주의사항을 확인한 후 "계정 삭제 요청"을 선택합니다. - title: "비밀번호 입력" image: "pc/4.png" description: | 중요한 조작에 대한 확인 절차로, 사용 중인 계정에 로그인할 때 사용하고 있는 비밀번호를 입력합니다. - title: "계정 삭제 요청 완료" image: "pc/5.png" description: | 이 화면이 뜨면 계정 삭제 요청이 완료됩니다. "확인"을 선택하면 Misskey에서 로그아웃됩니다. ================================================ FILE: content/ko/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2단계 인증 (2FA, 일회용 비밀번호) 을 설정하는 방법" description: "Misskey 계정에 일회용 비밀번호를 설정해 보안을 강화하는 방법을 설명합니다." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2차 인증을 설정하면 계정 도난 위험을 줄이고 보안을 강화할 수 있습니다. 여기서는 일회용 비밀번호 설정 방법을 소개합니다. guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "스마트폰" steps: - title: "2차 인증용 앱 다운로드" description: | 작업을 시작하기 전에 2차 인증용 일회용 비밀번호를 생성하기 위한 앱을 설치해야 합니다. 아래에 몇 가지를 소개합니다. - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - Twilio Authy Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.authy.authy) [App Store](https://itunes.apple.com/app/authy/id494168017) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "설정 열기" image: "sp/1.png" description: | Misskey 를 열고, 화면 우측 하단의 「≡」버튼을 선택, 나온 메뉴의 「설정」을 선택합니다. - title: "\"보안\" 탭" image: "sp/2.png" description: | 설정 카테고리 안에서 "보안" 탭을 찾아 선택합니다. - title: "이어 \"인증 앱 설정 시작하기\"를 선택합니다." image: "sp/3.png" description: | "2단계 인증" 안에 있는 "인증 앱"에서 "인증 앱 설정 시작"을 누릅니다. - title: "비밀번호를 입력하세요" image: "sp/4.png" description: | 보안 관련 설정을 위한 확인 절차로, 사용 중인 계정에 로그인할 때 사용하고 있는 비밀번호를 입력합니다. - title: "인증 앱 설정 시작" image: "sp/8.png" description: | 2단계 인증 앱을 설정하기 위한 코드가 생성됩니다. 다음 중 한 가지 방법으로 설정해 주세요. ### 지금 사용 중인 단말기에서 2단계 인증 앱을 설정하는 경우 '앱 실행' 버튼을 누릅니다. 이 버튼이 없는 경우 **QR코드를 누르면 앱이 실행됩니다. ** :::tip 앱이 실행되지 않는 경우, 2단계 인증용 앱이 제대로 설치되었는지 확인해주세요. ::: ### 다른 단말기에 설치된 2단계 인증 앱을 설정하는 경우 2단계 인증 앱을 열고, 앱의 안내에 따라 일회용 비밀번호를 새로 등록합니다. 이때 화면에 표시되는 QR코드를 스캔해 주세요. - title: "인증 앱에서 생성된 코드 복사하기" image: "sp/9.png" description: | 이후 Misskey 측 설정에서 인증 앱이 올바르게 설정되었는지 확인하기 위해 앱에서 생성된 일회용 비밀번호를 입력하는 절차가 있습니다. 앱의 안내에 따라 일회용 비밀번호를 기억하거나 복사해 두어야 합니다. :::warning 일회용 비밀번호는 즉시(약 30초) 만료됩니다. 주의하시기 바랍니다. ::: - title: "일회용 비밀번호 입력하기" image: "sp/6.png" description: | 앞서 입력한 일회용 비밀번호를 입력하고 '계속'을 누릅니다. - title: "백업 코드 다운로드하기" image: "sp/7.png" description: | **2단계 인증 설정이 완료되었습니다. ** 마지막으로 2단계 인증을 사용할 수 없게 되었을 때 사용할 수 있는 '백업 코드'도 생성되므로 반드시 다운로드 후 종료하시기 바랍니다. :::warning 백업 코드는 일회용 비밀번호를 사용할 수 없게 되었을 때 계정에 로그인할 수 있는 복구 기능입니다. 이 코드가 없으면 계정에 로그인할 수 없으므로 반드시 다운로드하여 안전한 곳에 보관하시기 바랍니다. 이 코드는 이후 다시는 나타나지 않습니다. ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2차 인증용 앱 다운로드" description: | 작업을 시작하기 전에 2단계 인증을 위한 일회용 비밀번호를 생성할 수 있는 앱을 스마트폰 등에 설치해야 한다. 다음은 그 예시입니다: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store]( https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app /freeotp-authenticator/id872559395) :::tip PC용 일회용 비밀번호 생성 프로그램도 있지만, 휴대성 측면에서 스마트폰용 앱을 추천합니다. ::: - title: "설정 열기" image: "pc/8.png" description: | '설정' → '보안'으로 이동하여 '2단계 인증' 중 '인증 앱'에서 '인증 앱 설정 시작'을 누릅니다. - title: "비밀번호 입력" image: "pc/3.png" description: | 보안과 관련된 설정이므로 확인을 위해 계정에 로그인할 때 사용하는 비밀번호를 입력합니다. - title: "인증 앱 설정 시작하기" image: "pc/7.png" description: | 2단계 인증 앱을 설정하기 위한 코드가 생성됩니다. 다음 중 한 가지 방법으로 설정해 주세요. ### 스마트폰 2단계 인증 앱으로 설정하는 경우 (권장) 스마트폰에서 2단계 인증 앱을 열고 앱의 안내에 따라 일회용 비밀번호를 새로 등록합니다. 이때 화면에 표시되는 QR코드를 스캔해 주세요. ### PC에서 2단계 인증 앱을 사용하는 경우 '앱 실행' 버튼을 누릅니다. 이 버튼이 없는 경우, QR코드를 누르면 앱이 실행됩니다. - title: "인증 앱에서 생성된 코드 복사하기" image: "sp/9.png" description: | 이후 Misskey 측 설정에서 인증 앱이 올바르게 설정되었는지 확인하기 위해 앱에서 생성된 일회용 비밀번호를 입력하는 절차가 있습니다. 앱의 안내에 따라 일회용 비밀번호를 기억하거나 복사해 두어야 합니다. :::warning 일회용 비밀번호는 즉시(약 30초) 만료됩니다. 주의하시기 바랍니다. ::: - title: "일회용 비밀번호 입력하기" image: "pc/5.png" description: | 앞서 입력한 일회용 비밀번호를 입력하고 '계속'을 누릅니다. - title: "백업 코드 다운로드하기" image: "pc/6.png" description: | **2단계 인증 설정이 완료되었습니다. ** 마지막으로 2단계 인증을 사용할 수 없게 되었을 때 사용할 수 있는 '백업 코드'도 생성되므로 반드시 다운로드 후 종료하시기 바랍니다. :::warning 백업 코드는 일회용 비밀번호를 사용할 수 없게 되었을 때 계정에 로그인할 수 있는 복구 기능입니다. 이 코드가 없으면 계정에 로그인할 수 없으므로 반드시 다운로드하여 안전한 곳에 보관하시기 바랍니다. 이 코드는 이후 다시는 나타나지 않습니다. ::::: ::: ================================================ FILE: content/ko/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Web을 앱으로 활용하는 방법" description: "Misskey Web을 PWA 앱으로 만드는 방법을 소개합니다. 스마트폰에서 Misskey를 이용할 때 추천하는 방법입니다." #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 여기서는 Misskey Web을 PWA 앱으로 만드는 방법을 소개합니다. 스마트폰에서 Misskey를 이용할 때 추천하는 방법입니다. ## PWA란? PWA는 Progressive Web App의 약자로, 웹 페이지를 앱처럼 취급할 수 있는 기술로 Misskey는 표준으로 PWA를 지원합니다. 여기서는 PWA 설정 방법을 단말기 OS별로 소개하고 있습니다. 아래에서 사용 중인 OS를 선택해 진행해주세요! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "안드로이드 (구글 크롬)" description: | 안드로이드에서 PWA를 사용하려면 구글 크롬을 추천합니다. 여기서는 구글 크롬을 이용한 설정 방법에 대해 설명합니다. steps: - title: "PWA로 만들고 싶은 Misskey 서버를 엽니다." image: "android/sp_0.png" description: | PWA로 단말기에 설치하고자 하는 Misskey 서버에 접속하여 로그인합니다. - title: "상세 설정 메뉴 열기" image: "android/sp_1.png" description: | Misskey 서버의 아무 페이지나 열어둔 상태에서 오른쪽 상단에 있는 '︙' 버튼을 누릅니다. - title: "'홈 화면에 추가' 또는 '앱 설치'를 누릅니다." image: "android/sp_2.png" description: | 메뉴 내 '홈 화면에 추가' 또는 '앱 설치' 항목을 누르고 나오는 대화창의 지시를 따릅니다. - title: "홈 화면 확인하기" image: "android/sp_3.png" description: | 잠시 후 홈 화면에 서버 아이콘 또는 Misskey 아이콘이 추가됩니다. 이 아이콘을 누르면 Misskey가 앱 모드로 실행됩니다. - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS 또는 iPadOS에서 PWA를 사용하려면 Safari를 사용하십시오. 시작하기 전, 사용 중인 단말기의 OS가 최신 버전인지 확인하시기 바랍니다. 최신 버전이 아닌 경우 [여기](https://support.apple.com/ja-jp/ios/update)를 참고하여 업데이트하시기 바랍니다. steps: - title: "PWA로 만들고 싶은 Misskey 서버 열기" image: "ios/sp_0.png" description: | PWA로 단말기에 설치하고자 하는 Misskey 서버에 접속하여 로그인합니다. - title: "공유 버튼을 눌러 열기" image: "ios/sp_1.png" description: | Misskey 서버의 아무 페이지나 열어둔 상태에서 메뉴바의 공유 버튼을 누릅니다. - title: "'홈 화면에 추가'를 누릅니다." image: "ios/sp_2.png" description: | 옵션 목록을 아래로 스크롤하여 '홈 화면에 추가'를 탭합니다. 이후 알림 전송 권한을 요청할 수 있으므로 화면의 지시에 따라 필요에 따라 허용해 주세요. '홈 화면에 추가'가 표시되지 않으면 설정 항목이 숨겨져 있을 수 있습니다. 표시하려면 목록의 맨 아래로 스크롤하여 '동작 편집'에서 '홈 화면에 추가' 항목을 추가하십시오. 자세한 내용은 [Apple 지원 페이지](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)를 참고하세요. - title: "홈 화면 확인하기" image: "ios/sp_3.png" description: | 잠시 후 홈 화면에 서버 아이콘 또는 Misskey 아이콘이 추가됩니다. 이 아이콘을 누르면 Misskey가 앱 모드로 실행됩니다. ================================================ FILE: content/ko/docs/2.for-users/_dir.yml ================================================ title: "Misskey 유저용" ================================================ FILE: content/ko/docs/3.for-admin/_dir.yml ================================================ title: "서버 운영자용" description: "서버 생성 방법 및 운영 시 유용한 정보를 공개 중입니다." ================================================ FILE: content/ko/docs/3.for-admin/features/1.index.md ================================================ --- description: "서버 관리자를 위한 기능 설명 입니다." --- # 서버의 기능 Misskey에서는 서버 운영에 도움되는 여러가지 기능을 제공하고 있습니다. ================================================ FILE: content/ko/docs/3.for-admin/features/abuse-report.md ================================================ # 신고하기 Misskey에서는 서버 안팎에 있는 유저가 신고한 컨텐츠에 관한 신고를 받을 수 있습니다. 신고받은 내용은 [제어판 → 신고](x-mi-web://admin/abuses)에서 볼 수 있습니다.**자주 확인합시다.** ## 신고에 대처하기 신고받은 내용에는, - 신고를 받은 유저 - 신고 내용(본문) - 신고한 사람 에 대한 정보가 있습니다. :::tip 리모트 서버에서 신고가 들어오는 경우가 있습니다.이 경우엔 신고자가 그 서버의 시스템 계정(`@instance.actor`)으로 표시될 수도 있습니다. ::: 필요에 따라, 신고 기록이나 모더레이션 기록을 남길 수 있도록 관리자 및 모더레이터 권한을 가진 계정만 볼 수 있는 모더레이션 노트를 남길 수도 있습니다. 신고 처리를 완료하면, 완료 처리를 해주세요. - 내용이 정당하고, 신고에 대한 대응이 있었던 경우엔 "해결(인용)" - 내용이 올바르지 않고, 특히 대처를 하지도 않았다면 "해결(기각)" 이런 느낌으로, 신고 처리를 어떻게 했느냐에 따라 상태를 구별해서 신고 대응을 할 수 있습니다. ## 리모트 서버로 신고 전달하기 리모트 유저에 관한 신고가 있는 경우, 그 신고를 해당되는 서버로 보낼 수 있습니다.신고를 전달하는 경우, 상대방의 서버에서는 신고자가 익명의 시스템 계정 (`@instance.actor`)으로 표시됩니다. ## 신고 알림받기 신고가 들어온 경우, 웹 훅 또는 이메일로 알림을 받을 수 있습니다.[제어판 → 신고](x-mi-web://admin/abuses)를 연 다음, "알림 설정"에서 설정해주세요. ================================================ FILE: content/ko/docs/3.for-admin/features/announcement.md ================================================ # 공지사항 공지사항(announcement)는 Misskey에서 사용할 수 있는 서버 기능 중 하나입니다. 공지사항 기능을 사용하여, 서버 전체에 있는 유저에게 공지사항을 등록할 수 있으며, 개별적으로도 유저에게 서버를 통해 메시지를 보낼 수도 있습니다. :::warning 활성화된 공지사항의 수가 많으면 특히 새 사용자의 확인 활동이 늘어나 사용자 경험이 줄어들 가능성이 있습니다.이 경우, 아래와 같이 검토할 수 있습니다.이 경우, 아래와 같이 검토할 수 있습니다. - "기존 유저만" 옵션을 켜고 공지사항을 작성하기 - "알림 없음" 옵션을 켜고 공지사항을 작성하기 - 이전의 공지사항을 저장하기 ::: ::: ## 표시 방식 공지사항의 표시 방식은 아래의 종류 중에서 선택할 수 있습니다. - **일반** ... 공지사항 목록 페이지에 공지사항이 등록됩니다. - **배너** ... 공지사항 목록 페이지에 올린 글에 더해서, 클라이언트 화면 위에 배너로도 표시할 수 있습니다. - **다이얼로그** ... 공지사항 목록 페이지에 올린 글에 더해서, 클라이언트를 켰을 때 모달 다이얼로그로도 표시할 수 있습니다. - 다이얼로그 형식의 공지사항이 동시에 2개 이상 있는 경우, UX에 악영향을 끼칠 가능성이 매우 높습니다. ## 공지사항 작성 ### 전체 공지사항 1. 관리자 또는 모더레이터 권한을 가진 계정으로 [제어판 → 공지사항](x-mi-web://admin/announcements)으로 들어갑니다. 2. "추가" 버튼을 클릭하면 새로운 공지사항 항목이 추가됩니다. 3. 내용을 편집한 다음 "저장"버튼을 클릭하면, 공지사항이 공개됩니다. ### 사용자 공지사항 1. 공지사항을 보내고 싶은 유저의 모더레이션 페이지를 띄웁니다. - 관리자 또는 모더레이터 권한을 가지고 있는 유저의 프로필 페이지를 열고 "팔로우" 버튼 옆의 ""를 클릭하고, "모더레이션"을 클릭 - 관리자 또는 모더레이터 권한이 있는 계정에서 [제어판 → 유저](x-mi-web://admin/users)창을 띄운 다음, 계정을 검색한 다음 클릭 2. 위에 있는 탭의 "공지사항"을 클릭합니다. 3. "+"를 클릭하면, 새 공지사항을 작성하기 위한 다이얼로그가 표시됩니다. 4. 내용을 편집한 다음 "저장" 버튼을 클릭하면, 해당하는 유저에게만 공지사항이 표시됩니다. ================================================ FILE: content/ko/docs/3.for-admin/features/cli.md ================================================ # 관리 명령 2025.8.0 이후의 Misskey에서는 서버 관리 명령을 이용할 수 있습니다. 'pnpm cli <명령>'의 형식으로 사용할 수 있습니다. - 'reset-captcha' - CAPTCHA 설정을 리셋합니다. ================================================ FILE: content/ko/docs/3.for-admin/features/federation.md ================================================ # 연합 모드 Misskey는 분산형 플랫폼으로써 ActivityPub 프로토콜을 이용한 연합 기능을 기본적으로 지원하고 있습니다. 다만 서버의 운영 방침에 따라 연합할 서버를 따로 정하거나, 연합을 하지 않도록 설정할 수도 있습니다. :::tip 연합은 기본적으로 활성화 되어져 있으므로, 일반적인 경우(다른 서버와 연합)엔 따로 설정하실 필요는 없습니다. ::: ## 설정 방법 [제어판 → 일반](x-mi-web://admin/settings)의 "연합"에서 설정할 수 있습니다. ### 모두 모든 서버(차단한 서버를 제외)와 연합합니다.기본 설정입니다. ### 호스트 설정 따로 정해둔 서버만 연합합니다. (화이트 리스트 방식)"연합을 할 서버"에, 연합하고 싶은 서버의 호스트 이름을 줄바꿈으로 구분하여 입력합니다. ### 없음 다른 서버와 연합하지 않습니다.연합과 관련된 일부 설정 화면, 항목 등이 생략됩니다. ================================================ FILE: content/ko/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTT란 Misskey에서 사용할 수 있는 서버 기능 중 하나입니다. 활성화 하시면 각종 타임라인을 로딩 할 때 퍼포먼스를 많이 향상시킬 수 있으므로, 데이터 베이스 부하를 줄일 수 있습니다.단, Redis의 메모리 사용량이 커집니다.서버의 메모리 용량이 적은 경우, 또는 동작이 불안정한 경우엔 비활성화 하실 수 있습니다. 제어판 → 일반 에서 설정하실 수 있습니다. ## 데이터 베이스 폴백 - 활성화 하시면 타임라인이 캐시 되어지지 않은 경우에 DB에 추가로 쿼리를 보내는 폴백 처리를 실행합니다. - 비활성화 하시면, 폴백 처리를 실행하지 않으므로 서버의 부하를 덜을 수 있으나, 타임라인을 불러올 때의 범위에 제한이 생깁니다. ## FTT를 적용할 수 있는 타임라인 - 홈 타임라인 - 로컬 타임라인 - 소셜 타임라인 - 유저 리스트 타임라인 ================================================ FILE: content/ko/docs/3.for-admin/features/managing-emojis.md ================================================ # 커스텀 이모지 관리 :::warning 현재 이 문서는 업데이트 작업 중입니다.과거 정보가 포함되어 있을 수 있으니 주의하시기 바랍니다. ::: 사용자 지정 이모티콘은 관리자 및 관리자와 사용자 지정 이모티콘 관리 역할 정책을 가진 사용자가 설정에서 사용자 지정 이모티콘 페이지의 하위 메뉴에 액세스하여 관리할 수 있습니다. 기본적으로 현재 로컬에 설치된 이모티콘 목록이 표시됩니다. 처음에는 이 목록이 비어 있지만, 다양한 방법으로 사용자 지정 이모티콘을 추가할 수 있습니다. ## 다른 인스턴스에서 이모티콘 복사하기 이모티콘은 다른 인스턴스에서 쉽게 복사할 수 있습니다. 먼저 사용자 지정 이모티콘 설정의 '원격' 탭으로 전환합니다.이모티콘은 이름이나 호스트로 검색할 수 있습니다. 원하는 이모티콘을 찾으면 해당 이모티콘을 클릭하여 메뉴를 열고 이모티콘을 가져올 수 있습니다. 이모티콘은 저작권의 보호를 받을 수 있으므로 이모티콘을 사용할 수 있는지 저작권을 확인하는 것을 잊지 말자. ## 개별 이모티콘 가져오기 커스텀 이모티콘으로 만들고 싶은 이미지 파일이 있다면 해당 이미지를 이모티콘으로 가져올 수 있습니다. :::danger 드라이브에서 이모티콘을 가져오는 경우, 파일은 드라이브에 남아 있습니다. Misskey는 이 파일의 복사본을 만들지 않기 때문에 파일을 삭제하면 이모티콘이 표시되지 않습니다. ::: 이모티콘이 서버에 추가되고, 평소처럼 편집 및 삭제가 가능해집니다. ## 전체 가져오기 이모티콘은 특수한 형식으로 포장된 ZIP 파일로 일괄적으로 가져올 수 있습니다. 이 기능은 사용자 지정 이모티콘 메뉴의 오른쪽 상단에 있는 메뉴 버튼에서 사용할 수 있습니다. :::warning 일괄 가져오기는 기존 이모티콘을 덮어쓰거나 서버에 문제를 일으킬 수 있습니다. 가급적 직접 내보낸 이모티콘만 가져오도록 하고, 외부에서 일괄 가져오기를 할 경우 신뢰할 수 있는 출처인지 확인하시기 바랍니다. ::: ### 패키지화된 이모티콘 형식 최상위 레벨에는 `meta.json`이라는 파일이 있는데, 이 파일에는 패키지화된 이모티콘에 대한 정보가 포함되어 있습니다. 이 파일의 유형 정의는 다음과 같으며, `Meta`는 전체 파일의 구조입니다. ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` 필드는 현재 이모티콘을 가져올 때 사용되거나 체크되지 않지만 `emojis` 필드는 사용됩니다. 각 `Emoji`에 대해:. - `downloaded`: 항상 true로 설정합니다.이 필드가 없거나 true가 아니면 해당 이모티콘은 가져오지 않습니다. - `fileName`: 패키지 파일 내의 이미지 파일 이름. - `emoji`: 데이터베이스에 저장된 이모티콘 관련 데이터.현재 사용 중인 항목은 다음과 같습니다. - `name`: 사용자가 입력하는 이모티콘의 이름, 예: ` blobfox`(사용자가 `:blobfox:`를 입력하면 해당 이모티콘이 표시됨). 같은 이름의 이모티콘이 이미 존재하는 경우\*\* 덮어씁니다\*\*. - `category`: 이모티콘 카테고리 - `aliases`: 별칭으로 추가되는 문자열 목록.관리자 UI에서는 이를 '태그'라고 부릅니다. ## 이모티콘 편집 및 삭제 이모티콘의 속성은 로컬 이모티콘 목록에서 클릭하여 편집할 수 있습니다. 사용자 지정 이모티콘을 클릭하면 해당 이모티콘의 속성을 편집할 수 있는 대화 상자가 열립니다. 이 대화 상자에서 이모티콘을 삭제할 수도 있습니다. :::danger 사용자 지정 이모티콘을 삭제하면 해당 이모티콘이 포함된 이전 노트에는 이모티콘 이름이 텍스트로 남아 있습니다. 해당 이모티콘은 더 이상 제대로 표시되지 않습니다. ::: 원격 이모티콘은 편집 및 삭제가 불가능하다는 점에 유의하세요. 각 이모티콘은 이름과 카테고리, 몇 가지 태그를 설정할 수 있습니다. 카테고리는 이모티콘 선택기의 구조화에 사용됩니다. 태그는 이모티콘 피커에서 검색할 때 이모티콘을 찾기 위한 별칭으로 사용됩니다. 편집이 끝나면 대화 상단의 오른쪽 상단에 있는 체크 표시를 클릭하여 변경 사항을 저장합니다. ### 일괄 편집 이모티콘은 검색 필드 아래에 있는 박스를 체크하여 일괄 편집할 수 있습니다. 이 기능을 활성화하면 이모티콘을 클릭해도 편집 대화 상자가 열리지 않고 이모티콘이 선택됩니다. 편집 옵션은 체크박스 아래에 버튼으로 표시됩니다. 정상 동작으로 돌아가려면 다시 한 번 확인란을 선택 해제합니다. ================================================ FILE: content/ko/docs/3.for-admin/features/role.md ================================================ # 역할 역할은 유저에게 부여할 수 있는 속성으로, 각 롤마다 뱃지를 표시하거나 정책 설정을 하여 유저의 권한을 정할 수도 있습니다. 유저의 역할 부여(할당)는 수동으로 할 수 있으며, 조건을 지정해서 자동으로 부여되게 할 수도 있습니다. 역할은 한 유저에 대해서 여러 개를 할당 할 수 있습니다. ## 기본 역할 모든 유저에게 기본으로 적용되는 정책 설정은 기본 역할 설정에서 하실 수 있습니다. 기본 역할 설정은 제어판의 "역할→기본 역할"에서 할 수 있습니다. ## 할당할 수 있는 종류 할당 방법은 매뉴얼 또는 조건부 설정에서 선택할 수 있습니다. - **수동** ... 수동으로 유저에게 할당시키거나 해제할 수 있습니다.(수동 역할)(수동 역할) - 부여할 때 부여되는 기간에 대해서도 설정할 수 있습니다. - **조건부 역할** ... 조건을 설정하여 이에 맞는 유저가 자동으로 역할을 부여받게 됩니다.(조건부 역할)(조건부 역할) :::warning 조건부 롤은 수동 롤에 비해 다음과 같은 한계가 있습니다. - 수동으로 부여/부여 해제는 불가능합니다. - 지정한 조건부 역할에 포함되는 유저 목록을 불러올 수는 없습니다. ::: ## 권한 역할의 기본적인 권한은 아래에서 선택하실 수 있습니다. - **일반 유저** ... 특별한 권한은 없습니다. - **모더레이터** ... 일반적인 관리에 대한 조작을 할 수 있습니다. - **관리자** ... 서버에 있는 모든 권한을 변경할 수 있습니다. 좀 더 자세한 권한은 정책 설정에서 할 수 있습니다. ## 정책 권한의 정책을 관리하여 권한이나 기능에 대한 제한 사항을 바꿀 수 있습니다. 정책은 기본 역할으로 설정된 값을 계승시켜 설정할 수도 있습니다. ### 우선 순위 여러 개의 역할이 할당되어 하나의 정책이 서로 다른 값으로 설정되어져 있는 경우에, 이러한 것들을 얼마나 우선할건지 설정할 수 있습니다. 우선도는 각각의 정책에 할 수 있는 설정이지, 각 역할에 대한 설정이 아닙니다.또한, 기본 역할에서는 이를 설정할 수 없습니다.또 기본 역할에서는 설정할 수 없습니다. **우선도가 같은 경우, 기본적으로 제일 크거나 제일 권한이 넓은 값이 자동으로 선택됩니다.**::: :::tip 예를 들어, 사용자에게 역할 A와 역할 B가 할당되어 있고, 역할 A의 드라이브 용량 정책이 500MB, 역할 B의 드라이브 용량 정책이 300MB로 정의되어 있는 경우, - 우선도나 같거나 역할 A의 드라이브 용량 정책이 우선도가 높은 경우 500MB 값이 적용됩니다. - 역할 B의 드라이브 용량 정책의 우선도가 높은 경우 300MB 값이 적용됩니다. 또한, 유저에게 역할 C와 역할 D가 부여되어 있고, 롤 C의 공개 노트 가능 정책이 "아니요", 역할 D의 공개 노트 가능 정책이 "예"로 설정되어진 경우, - 우선도가 같거나 또는 역할 D의 공개 노트 가능 정책의 우선도가 높은 경우 "예" 값이 적용됩니다. - 역할 C의 공개 노트 가능 정책 우선도가 높은 경우 "아니오" 값이 적용됩니다. ::: ### 기본 역할 값을 사용 이 설정을 활성화하면, 정책 값을 기본 역할에서 받아올 수 있습니다. ## 역할 작성 제어판의 "역할"에서 새로운 역할을 만들 수 있습니다. ## 역할 정보의 확인, 편집 및 삭제 기본 역할 설정은 제어판의 "역할→기본 역할"에서 할 수 있습니다. ## 유저에게 역할 부여하기, 해제하기 또한, 유저의 메뉴에서 직접 부여할 수도 있습니다. 또한, 유저의 메뉴에서 직접 부여할 수도 있습니다. 할당 되어지는 기간을 따로 설정할 수 있습니다. :::tip 역할의 부여/해제가 반영되기까지 시간이 걸릴 수 있습니다. ::: :::warning 조건부 역할은 수동으로 부여할 수 없습니다. ::: ## 유저 정책 확인 유저의 "모더레이션→개요→정책"에서 할 수 있습니다. ================================================ FILE: content/ko/docs/3.for-admin/features/search.md ================================================ # 노트 검색 Misskey에는 노트의 검색 기능이 있습니다.활성화하는 것으로 노트의 검색이 가능하게 됩니다. :::tip 검색 기능은 기본 비활성화돼있습니다. 이용하는 경우는, 역할의 '노트 검색 이용'을 활성화해주십시오. ::: ## 서포트하고 있는 검색 엔진 Misskey는 노트 검색에 사용하는 알고리즘을 여럿 준비했습니다.서버의 규모나 요구에 따라 교체할 수 있습니다. - sqlLike ... PostgreSQL의 표준 기능을 사용해 검색합니다.(기본값) - 내장 데이터베이스 기능을 사용하기에 편리합니다. - 데이터 사용량이 증가하면 검색에 시간이 걸릴 수 있습니다. - sqlPgroonga ... 전체 문장 검색 엔진인 [Pgroonga](https://pgroonga.github.io)를 사용해 검색합니다. - Pgroonga의 설치가 필요합니다. - sqlLike보다 빠른 속도의 검색이 가능합니다. - meilisearch ... 전체 문장 검색 엔진인 [Meilisearch](https://www.meilisearch.com)를 사용해 검색합니다. - Meilisearch의 설치가 필요합니다. - sqlLike보다 빠른 속도의 검색이 가능합니다. - 검색 대상 노트는 공개 범위가 '퍼블릭' 혹은 '홈'입니다.팔로워 한정 게시도 포함하고 싶은 경우 'sqlLike' 혹은 'sqlPgroonga'를 사용할 필요가 있습니다. 검색 엔진을 변경할 경우에는 설정 파일의 'fulltextSearch'의 'provider'를 교체해 Misskey 프로세스를 재기동해주십시오. ## Pgroonga를 사용하기 ### Pgroonga의 설치 :::warning 작업 전에 데이터베이스의 백업을 권장드립니다. 또, Misskey를 정지한 뒤 작업을 시작해주십시오. ::: Ubuntu 22.04, PostgreSQL 15의 환경에 Pgroonga를 설치하는 예시입니다. 상세는 [공식 PostgreSQL용 설치 방법](https://pgroonga.github.io/ja/install/ubuntu.html)를 확인해주십시오. ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCab 베이스 토크나이저를 사용하고 싶은 경우에는 아래도 실행합니다. ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker 환경을 사용하고 있는 경우 Docker 환경에서는 PGroonga가 도입된 Docker 이미지를 사용할 수 있습니다. PGroonga가 도입된 PostgreSQL 이미지를 사용하려면 `postgres:15-alpine` 대신에 `groonga/pgroonga:latest-alpine-15-slim`을 사용해 주십시오. ### Pgroonga의 활성화 다음으로 PostgreSQL에 로그인합니다. ```sh sudo -u postgres psql ``` 로그인이 됐다면 Misskey 데이터베이스를 선택합니다. ```sh \c "mk1" ``` PGroonga를 활성화합니다. ```sh CREATE EXTENSION pgroonga; ``` PGroonga용 인덱스를 작성합니다. :::warning 인덱스 작성에는 시간이 걸립니다.충분한 작업 시간을 확보해주십시오. ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 완료되면 'exit'라고 입력한 뒤 PostgreSQL에서 로그아웃합니다. ### 검색 엔진의 변경 Misskey의 설정 파일을 편집합니다. 'fulltextSearch'를 'sqlPgroonga'로 변경해주십시오. ```sh fulltextSearch: provider: sqlPgroonga ``` Misskey 프로세스를 기동하고 노트의 검색이 가능하면 완료입니다. ================================================ FILE: content/ko/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskey 설치 및 유지관리" description: "Misskey의 설치 방법 및 이후 유지관리 작업에 도움이 되는 정보를 제공합니다." ================================================ FILE: content/ko/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Misskey 서버를 만드는 방법에 대해서 안내합니다.' --- # Misskey 서버 만들기 Misskey 서버 구축에 관심을 가져주셔서 감사합니다.서버를 만드는 방법은 여러가지가 있으므로, 아래 중에서 가이드를 골라서 읽어주세요.서버를 만드는 방법은 여러가지가 있으므로, 아래 중에서 가이드를 골라서 읽어주세요. :::danger 일단 작동하기 시작한 서버의 도메인 및 호스트 이름으로는 데이터베이스를 다시 만들지 마십시오! ::: :::warning Misskey의 소스코드를 변경하는 경우(포크 포함), 라이선스에 따라 그 변경 사항을 공개해야 합니다.자세한 내용은 [여기](/docs/for-admin/install/resources/forking/)에서 확인할 수 있습니다. ::: ## Xserver VPS에서 설치하기 [Xserver VPS](https://vps.xserver.ne.jp/)에서는 Misskey의 애플리케이션 이미지가 기본적으로 구비되어 있으므로, 간단하게 Misskey 서버를 만들 수 있습니다. 자세한 내용은 [「Misskey애플리케이션 이미지 사용하기」 (일본어)](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php)를 확인해주세요. 자세한 내용은 [여기](https://sns.xserver.ne.jp/misskey.php)를 확인하세요. (일본어) ## 설치 방법 목록 ================================================ FILE: content/ko/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: '서드파티가 제공하는 서비스를 이용해 쉽게 Misskey 서버를 생성할 수 있습니다.' --- # 서비스 이용하기 Misskey의 서버는 호스팅 서비스 등에서 제공하는 기능을 이용해 쉽게 구축할 수 있습니다.여기서는 Misskey에 대응하는 서비스 중 일부를 소개합니다. :::warning 여기에 소개된 서비스는 Misskey 프로젝트가 파악하고 있는 서비스이며, 모든 서비스를 나열한 것은 아닙니다.또한, 별도의 언급이 없는 한 운영사가 Misskey Project의 스폰서인지 여부와 상관없이 작동 확인 및 서비스 공인 인증 등은 진행하지 않음을 알려드립니다 \*\* (서비스 관련 문의는 Misskey Project가 아닌 각 서비스 운영자에게 문의해 주시기 바랍니다.) \*\*. ::: ## Misskey의 호스팅 전문 서비스 Misskey 전용으로 커스터마이징된 관리 화면 등을 제공하는 서비스도 있습니다.이를 활용하면 특별한 기술 지식 없이도 미스키 서버를 구축할 수 있습니다. ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)에서는 사용할 수 있는 SNS 소프트웨어로 Misskey를 제공하고 있습니다.서버의 유지보수 및 버전업은 XServer가 수행하기 때문에 기술적인 지식이 거의 필요 없이 쉽게 Misskey 서버를 구축할 수 있습니다. ## VPS 앱 이미지 VPS(Virtual Private Server) 서비스 중 일부는 '간편 설치', '앱 이미지' 등의 이름으로 쉽게 환경을 구축할 수 있는 기능을 제공하고 있습니다.Misskey를 표준으로 지원하는 것도 있습니다.그 중 일부를 소개합니다. ### XServer VPS - Thin VPS [XServer VPS](https://vps.xserver.ne.jp/) 및 [Thin VPS](https://www.shin-vps.jp/)에서는 Misskey가 앱 이미지로 제공되고 있습니다. 자세한 내용은, - XServer: [Misskey 앱 이미지 이용하기](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - Thin VPS: [Misskey 앱 이미지 이용하기](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) 를 참고하세요. ### 사쿠라 VPS [사쿠라 VPS](https://vps.sakura.ad.jp/)에서는 스타트업 스크립트로 Misskey가 제공되고 있습니다. 자세한 내용은 [Sakura VPS Manual Startup Script](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)에서 확인할 수 있다. ================================================ FILE: content/ko/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskey를 간단하게 설치하기 위한 쉘 스크립트가 만들어졌습니다! 몇 가지의 질문에 답변하는 것으로, Ubuntu 서버에 Misskey (v12)를 간단하게 설치할 수 있습니다! 또한, 업데이트 스크립트도 있습니다. [v12은 여기로 (일본어)](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\ [**English version**](./README.en.md) ## 준비할 것 1. 도메인 2. Ubuntu가 설치된 서버 3. Cloudflare 계정 (권장) :::danger 한 번 사용한 서버의 도메인, 호스트 이름 안에선, 데이터 베이스를 다시 만들지 말아주세요! ::: Let's Encrypt 인증을 할 수 있는 횟수가 적으므로, 서버의 네트워크가 DNS 설정을 확실히 확인한 후에 설치하시길 바랍니다. ## Cloudflare 설정 Cloudflare를 사용하는 경우, Cloudflare에서 도메인 설정을 끝낸 뒤에 설치를 하시길 바랍니다. \ 네임 서버 설정이 각 DNS에 전파될 때까지 최대 3일 정도 걸리는 경우가 있습니다. 또한, nginx와 Cloudflare를 설정하는 경우, Cloudflare의 설정 화면에서, - DNS 설정을 하시길 바랍니다. - SSL/TLS 설정에서 암호화 설정을 "전체"로 해주세요. ## 조작 ### 1. SSH 서버에 SSH로 연결합니다. \ (서버 화면을 직접 보고 계신 분은 터미널을 열어주세요.) ### 2. 최신 환경으로 업데이트하기 모든 패키지를 업데이트하고, 다시 시작합니다. ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. 설치 시작하기 SSH를 다시 연결하고, Misskey를 설치 해봅시다. 다만, 설치 전에 [Tips](#tips)를 읽고 시작하는 것을 매우 권장합니다. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.com은 자신의 도메인으로 바꿔주세요. ### 4. 업데이트 하기 업데이트를 위한 스크립트도 있습니다. 업데이트 스크립트는, 서버 환경의 업데이트와는 관계가 없습니다.CHANGELOG(일본어) 및 [GitHub 릴리즈 목록 (영어)](https://github.com/joinmisskey/bash-install/releases)를 참고하여, 필요에 따라 마이그레이션을 해주세요. 모든 다운로드부터 시작합니다. ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` 업데이트를 하고 싶을 땐, 아래의 스크립트를 실행해주세요. ```sh sudo bash update.sh ``` - systemd 환경에서는 `-r` 옵션을 추가하여 시스템 업데이트와 다시 시작을 같이 할 수 있습니다. - docker 환경에서는, 명령어에 업데이트 이후의 리포지터리 명:태그명을 지정할 수 있습니다. ## 정상 작동을 확인한 환경 ### Oracle Cloud Infrastructure 이 스크립트는, Oracle Cloud Infrastructure의 Always Free 서비스로 제공되어지는 2 종류의 구성 중 어느 곳에서도 동작합니다. - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) \[1OCPU RAM6GB or greater] iptables를 쓸 수 있게 설정하세요. ## Issues & PRs Welcome 위의 환경에서 정상적으로 작동하지 않는 경우, 버그인 경우가 있습니다.설치 했을 때 사용했던 조건들을 적고, GitHub의 Issue에서 알려주시길 바랍니다. 위에 적은 환경이 아닌 경우 서포트는 어려우나, 상황을 자세하게 알려주신다면 문제가 해결될 수도 있습니다. 기능 제안에 대해서도 환영하고 있습니다. # Tips 선택지를 고르는 방법이나 사양에 대해서 등. ## Systemd or Docker? v1부터 설치 메소드에 systemd와 Docker 등을 고를 수 있게 되었습니다. Docker라고 했지만, **Misskey만 Docker에서 실행**하고, Redis나 Postgres 등은 호스트에서 직접 실행합니다. \ [docker-compose에서 모든 기능을 움직이는 방법에 대해선, mamemononga님이 작성하신 이 포스트를 추천합니다.](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hub 이미지를 사용하는 설정이라면, Misskey를 빌드할 필요가 없으므로, **제일 추천하고 있습니다**. \ 하지만, 마이그레이션 작업이 필요하므로, 업데이트 할 때 Misskey를 쓰지 못하는 시간이 사라지는 것은 아닙니다. \ 또한 Misskey의 빌드 환경을 준비하지 않으므로(git pull을 안함), 포크해서 움직이게 하고 싶을 땐 설정이 많이 어려워집니다. 로컬에서 Docker를 빌드하는 방식은, 퍼포먼스적으로는 권장하지 않고 있습니다. systemd는, Docker Hub에 이미지를 올리지는 않지만 포크를 사용하고 싶을 때 추천합니다. 추천하는 순위는 아래와 같습니다. 1. Docker Hub 2. systemd 3. Docker 빌드 ## nginx의 사용 여부 서버 1대 위에 Misskey를 구축하는 경우, nginxfmf 사용하는 것을 추천합니다. - 사용자는 자신만 (1인 서버) 또는 극소수 - 로드 밸런서 등 nginx의 리버스 프록시 캐시 기능을 다른 수단으로 제공할 용의가 있다 (상급자용) nginx를 리버스 프록시로 채택함으로써 이미지 파일 등 정적 콘텐츠를 캐시하고 서버 리소스 낭비를 줄일 수 있습니다.\ 또, nginx에는 캐시가 없는 상태에서의 대량 액세스를 컨트롤하는 기능이 탑재되어 있기 때문에, Misskey의 부하 증가를 억제하는 효과를 기대할 수 있습니다. 설정 예시는 [nginx 설정](../resources/nginx/)에 기재되어 있습니다. ## 스왑을 더 추가하세요! 스왑을 설정하고 있는 경우, 메모리가 합쳐서 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 디렉토리는, 아래와 같이 이동하는 것을 추천합니다. ```sh sudo -iu 유저명 cd 디렉토리 ``` 앞에서 사용 중이던 유저에 돌아가기 위해선 exit를 실행합니다. ```sh exit ``` ### systemd systemd의 프로세스명은 example.com 입니다. \ 예를 들어서 다시 시작하려면 다음과 같이하면 됩니다. ```sh sudo systemctl restart example.com ``` journalctl에서 로그를 확인할 수 있습니다. ```sh journalctl -t example.com ``` 설정 파일은 `/etc/systemd/system/example.com.service`에 저장되어져 있습니다. ### Docker Docker는 Misskey 유저에서 rootless로 실행되어져 있습니다. sudo에서 Misskey 유저에 로그인 할 때, `XDG_RUNTIME_DIR`과 `DOCKER_HOST`를 변경할 필요가 있습니다. ```sh 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 ``` 한 줄로 하고 싶을 땐 아래와 같이 하시면 됩니다. ```sh 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 디렉토리에서 다음의 내용을 실행해서, 한 번 더 업데이트를 해보시길 바랍니다. ```sh pnpm run clean-all ``` journalctl으로 로그를 확인해보면, 대부분 re2... 로 시작하는 내용이 보입니다. ## Q. 같은 서버에 Misskey 인스턴스를 하나 더 열고 싶어요. 스크립트가 같은 서버에 추가로 Misskey를 설치하는 것을 상정하고 만들어져 있진 않습니다. \ 여러가지 설정이 덮어 씌여지거나, 도중에 에러가 날 수도 있습니다. ================================================ FILE: content/ko/docs/3.for-admin/install/guides/docker.md ================================================ --- description: '이 가이드는 Docker를 사용하여 Misskey를 설정하는 방법을 설명합니다.' --- # Docker Compose로 Misskey 구축하기 이 가이드는 Docker Compose를 사용하여 Misskey를 설정하는 방법을 설명합니다. :::danger 일단 작동하기 시작한 서버의 도메인 및 호스트 이름으로는 데이터베이스를 다시 만들지 마십시오! ::: :::tip{label='前提条件'} - Docker 및 Docker Compose가 설치되어 있어야 합니다. ::: ## 리포지토리 가져오기 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 설정 아래 명령어로 각종 설정 파일 샘플을 복사합니다. ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./docker-compose_example.yml ./docker-compose.yml ``` `default.yml`과 `docker.env`를 파일 내 설명에 따라 편집합니다. 또한, 필요에 의해서 `docker-compose.yml`을 편집합니다.(포트를 변경하고 싶은 경우 등) ## 빌드 및 초기화 다음 명령어로 Misskey를 빌드하고 데이터베이스를 초기화합니다. 이 작업은 시간이 좀 걸립니다. ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 실행 수고하셨습니다.아래 명령어로 Misskey를 실행할 수 있습니다. ```sh sudo docker compose up -d ``` GLHF✨ ## Misskey 업데이트 방법 :::warning 업데이트 시 반드시 [릴리스 노트](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)를 확인하여 변경 사항 및 추가 작업 여부(대부분 없음)를 미리 파악하시기 바랍니다. ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` 업데이트 내용 및 데이터베이스 규모에 따라 시간이 걸릴 수 있습니다. ## cli 명령을 실행하는 방법 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/ko/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNAS를 이용한 Misskey 구축 이 가이드에서는 Kubernetes와 HelmChart를 사용하여 Misskey를 설정하는 방법을 설명합니다. :::danger 일단 작동하기 시작한 서버의 도메인 및 호스트 이름으로는 데이터베이스를 다시 만들지 마십시오! ::: ## TrueCharts 및 TrueNAS Scale Misskey의 HelmCharts는 TrueNAS Scale에서 사용할 수 있도록 TrueCharts로 공개되어 있지만, HelmCharts로 설치할 수도 있습니다. [TrueCharts](https://truecharts.org/charts/description_list) 사이트에는 사용 가능한 모든 Charts와 설치 방법 등의 문서가 있습니다. 또한, 궁금한 점이 있으면 TrueCharts의 [Discord](https://discord.gg/Ax9ZgzKx9t) 서버에서 질문할 수 있습니다. 현재 Misskey는 _incubator_ train을 진행 중입니다. :::tip{label='前提条件'} - TrueNAS Scale 또는 - Kubernetes 클러스터와 Helm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)의 절차를 따르십시오. _incubator_ train을 추가하고 Misskey를 설치합니다. 설정의 URL 란은 반드시 변경해 주십시오. TrueCharts는 기본적으로 Traefik을 사용하여 HTTPS로 서비스를 외부에 공개하지만, 수동으로 다른 소프트웨어를 사용할 수도 있습니다. ## Helm을 사용하여 수동으로 구축 TrueNAS Scale을 사용하지 않는 경우 Helm을 사용하여 Misskey를 설치할 수 있습니다. values.yaml의 `misskey:`의 `url:`을 반드시 다시 작성해 주세요. 다른 부분은 필요에 따라 다시 작성해 주세요. 이 Chart는 현재 Misskey 컨테이너 내에서 TLS를 활성화하는 것을 지원하지 않으므로, 서버에 대한 액세스를 보호하고 싶다면 리버스 프록시를 사용하는 것이 좋습니다. ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey 업그레이드 Misskey를 업그레이드하려면 TrueNAS Scale에 내장된 업그레이드 기능을 사용하거나, kubernetes를 수동으로 실행하는 경우 [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) 또는 [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/)를 사용할 수 있습니다. 문제가 발생할 가능성도 있으므로, 업그레이드 전에 데이터를 백업하는 것이 좋습니다. ================================================ FILE: content/ko/docs/3.for-admin/install/guides/manual.md ================================================ --- description: '이 가이드에서는 Misskey의 설치 및 설정 방법에 대해 설명합니다.' --- # Misskey를 수동으로 구축하기 이 가이드에서는 Misskey의 설치 및 설정 방법에 대해 설명합니다. :::danger 일단 사용하기 시작한 서버의 도메인 및 호스트 이름은 절대로 변경하지 마십시오! ::: :::tip{label='前提条件'} #### 다음 소프트웨어가 설치 및 설정되어 있어야 합니다. - **[Node.js](https://nodejs.org/en/)** (v22) - **[pnpm](https://pnpm.io/)** (v10 이상) - **[PostgreSQL](https://www.postgresql.org/)** (v15 이상) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** 데비안/우분투를 사용 중이라면 `build-essential` 패키지를 설치하면 좋습니다. ::: ## 사용자 생성 Misskey는 루트 사용자로 실행하지 않는 것이 좋으므로, 대신 사용자를 생성합니다. ```sh adduser --disabled-password --disabled-login misskey ``` ## misskey 서비스 시작 ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 설정 파일 내 지침에 따라 `default.yml`을 편집합니다. ```sh cp .config/example.yml .config/default.yml ``` 파일 내 지침에 따라 `default.yml`을 편집합니다. ## 빌드 및 초기화 다음 명령어로 Misskey를 빌드하고 데이터베이스를 초기화합니다. 이 작업은 시간이 좀 걸립니다. ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 실행 수고하셨습니다.아래 명령어로 Misskey를 실행할 수 있습니다. ```sh NODE_ENV=production pnpm run start ``` systemd 서비스 파일 생성하기 ::::g-details{summary="systemd를 이용한 관리"} systemd 서비스 파일 생성하기 `/etc/systemd/system/misskey.service` 편집기에서 열어, 다음 코드를 붙여넣고 저장합니다. ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOS에서 1024 이하의 포트를 사용하여 Misskey를 사용하려면 `ExecStart=/usr/bin/sudo /usr/bin/npm start`로 변경해야 합니다. ::: systemd 리로드 및 misskey 서비스 활성화 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskey 서비스 시작 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`를 입력하면 서비스 상태를 확인할 수 있습니다. ::: 업데이트가 끝나면 Misskey 프로세스를 다시 시작하십시오. ## Misskey 업데이트 방법 :::warning 업데이트 시 반드시 [릴리스 노트](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)를 확인하여 변경 사항 및 추가 작업 여부(대부분 없음)를 미리 파악하시기 바랍니다. ::: master를 다시 풀링하고, 설치, 빌드, 데이터베이스 마이그레이션을 수행합니다. ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` 업데이트 내용 및 데이터베이스 규모에 따라 시간이 걸릴 수 있습니다. 업데이트가 끝나면 Misskey 프로세스를 다시 시작하십시오. ```sh sudo systemctl restart misskey ``` :::tip 빌드 또는 시작 시 오류가 발생하면 다음 명령을 시도해 보세요. - `pnpm run clean` 또는 `pnpm run clean-all`을 실행합니다. - `pnpm rebuild` ::: ================================================ FILE: content/ko/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu 버전 Misskey 설치 방법 자세히 알아보기 ## 기타 Misskey 설치 방법 - [기본 버전 Misskey 구축 가이드 (manual)](./manual/) - [기타 설치 방법 목록](/docs/for-admin/install/guides/#설치-방법-목록) ## 쉘 스크립트 안내 복사, 붙여넣기만 하는 것보단 쉘 스크립트로 하면 되지 않겠느냐는 생각으로 **쉘 스크립트로 거의 모든 것을 해주는 방법을 만들어 보았습니다!**\ [**쉘 스크립트에 대한 자세한 내용과 사용법은 여기에서 확인하세요!**](./bash/) :::tip 쉘 스크립트를 통한 개발 환경에서의 설치는 상정하지 않았습니다. ::: :::tip 도메인 구매 및 Cloudflare 설정, 서버 확보는 여러분이 직접 준비해 주시기 바랍니다. ::: 문제가 있으면 [@aqz@p1.a9z.dev에 멘션](https://p1.a9z.dev/@aqz)으로 알려주시면 감사하겠습니다. ## 소개 이 글에서는 [Misskey 구축 가이드 (manual)](./manual/)에 소개된 대로 systemd에서 Misskey를 설치 및 실행합니다. [docker-compose](./docker/)를 사용하면 수작업으로 조금 더 쉽게 실행할 수 있을 것입니다. :::danger 일단 작동하기 시작한 서버의 도메인 및 호스트 이름으로는 데이터베이스를 다시 만들지 마십시오! ::: ## 환경 및 조건 이 글에서는 [Misskey 구축 가이드 (manual)](./manual/)을 바탕으로 일반적인 우분투 서버에 Misskey를 설치하고 공개하는 방법을 하나하나 설명합니다. Bash 명령어 입력과 몇 가지 설정 파일 편집, 그리고 브라우저 조작만으로 설정이 완료될 수 있도록 했습니다.설치해야 할 소프트웨어에 대해 간략하게 설명하고 있지만, 크게 신경 쓸 필요는 없습니다. 이 글에서는 구체성을 중시하여 특정 환경에 특화된 설명을 하고 있습니다. OS의 차이, Misskey 본체나 의존하는 소프트웨어의 버전업으로 변경된 부분 등이 있을 수 있지만, 양해 부탁드립니다. 모르는 단어에 대해서는 ["알 것 같지만""모르지만""알았다""알 것 같지만""알았다""알 것 같지 않은 IT 용어사전](https://wa3.i-3-i.info/)에서 찾아보고 확인하시면 좋겠습니다. ## 환경 및 조건 - OS는 **Ubuntu 22.04.1 LTS**를 사용합니다. - 하드웨어 요구 사항으로 CPU는 최신 제품이라면 최소사양으로도 작동합니다.아키텍처는 amd64 및 arm64를 가정합니다. - 램은 4GB 정도 있으면 충분합니다. - (기존에 Vite의 도입으로 1.5GB만 있어도 빌드가 가능하다고 설명했지만, 최근 들어 프론트엔드 빌드 문제로 필요한 용량이 늘어났습니다.) - 자체 도메인을 구입하고 CloudFlare를 사용하세요. - 도메인은 [Google Domains](https://domains.google/intl/ja_jp/) 등에서 미리 준비해야 합니다. - 여기서는 도메인을 example.tld로 설명할 것이므로, 자신이 구입한 도메인으로 적절히 대체하여 읽도록 합니다.개발 환경의 경우 localhost로 대체합니다(설정 파일 항목에서 별도 설명). :::danger 일단 사용하기 시작한 서버의 도메인 및 호스트 이름은 절대로 변경하지 마십시오! ::: ## nano 사용법 이번에는 텍스트 편집기로 nano를 사용합니다.다음과 같이 실행합니다. ```sh nano /path/to/file ``` 일반적인 화살표 버튼이나 Home/End 등을 이용해 커서를 이동할 수 있습니다. 종료는 Ctrl+X, 변경사항을 저장할 것인지 묻는다면 Y(Yes)를 입력하고 Enter를 누르면 저장할 수 있습니다. 하단에 명령어 목록이 표시되므로 ^를 Ctrl, M-를 Alt로 바꿔서 참고합니다. ## 사용자 생성 Misskey는 루트에서 실행하지 않는 것이 좋기 때문에 전용 사용자를 생성합니다. ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 개발 환경의 경우 사용자를 구분할 필요가 없습니다. ::: ## 기본적인 소프트웨어 설치 및 설정 기본적인 소프트웨어를 설치합니다. ### 사용자 및 데이터베이스 생성 Node.js는 서버사이드 자바스크립트 환경으로 Misskey의 기본 실행 환경입니다. ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=20; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.js가 설치되었으므로 버전 확인을 진행합니다 node -v # corepack enable sudo corepack enable ``` v20.x.x 등으로 표시되면 OK.v8.x.x와 같이 낮은 버전이 표시되면 제대로 설치가 되지 않은 것이므로 서버를 재부팅하고 다시 설치하는 등 다시 한 번 시도해 봅니다. ### pnpm pnpm은 Misskey에서 사용하는 패키지 관리 툴로, 외부 라이브러리를 참조하거나 종속성을 관리하는 경우 등에 사용합니다. 여기에서는, Node.js에 포함되어 있는 패키지 관리 툴 "npm"을 사용해서 pnpm을 설치하는 방법을 소개하는데, [pnpmのウェブサイト](https://pnpm.io/installation)에서는 다른 방법으로도 설치하는 방법을 소개하고 있으므로, 한 번 보신 다음에 사용할 환경에 알맞는 방법으로 설치하는 것을 추천합니다. ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQL은 객체 관계형 데이터베이스 관리 시스템이며, 미스키의 다양한 데이터를 저장하는 데 필수적인 소프트웨어입니다. #### 설치 쉘 스크립트를 실행하고 최신 버전(v15)을 설치합니다. ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctl로 데몬의 상태 확인. systemctl status postgresql ``` active라면 OK. #### 사용자 및 데이터베이스 생성 psql을 실행합니다. ```sh sudo -u postgres psql ``` Misskey에서 사용할 사용자를 생성합니다.\ 사용자 이름을 misskey, 비밀번호를 hoge로 설정하면 다음과 같습니다.\ (리눅스 사용자와 PostgreSQL 사용자는 별개이므로 혼동하지 않도록 주의.) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` 데이터베이스를 생성합니다.데이터베이스 이름을 mk1이라고 합니다. ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redis는 NoSQL의 인메모리 데이터베이스 소프트웨어로, 데이터베이스 및 연합과의 통신 관리 등을 위해 필요합니다. redis.io의 문서에 따라, snap을 이용해 설치합니다. https://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo snap install redis ``` 시작 ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctl로 데몬 상태 확인. ```sh systemctl status nginx ``` active이면 OK. ### FFmpeg FFmpeg는 영상이나 음성에 관한 처리를 담당합니다.아래로 설치합니다. ```sh sudo apt install ffmpeg ``` ### nginx nginx는 주로 리버스 프록시에 사용되는 웹 서버 소프트웨어입니다.Misskey에 필수적인 것은 아니지만, 캐시 등을 하면 성능이 향상되고 http에서 https로 전송하는 등의 작업을 위해 설치해 둡니다. :::tip 개발 환경의 경우 nginx 설정이 필요하지 않습니다. ::: nginx.org의 문서 http://nginx.org/en/linux_packages.html#Ubuntu 에 따라 설치합니다. ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` 이때 출력에 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62가 있는지 확인합니다. ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctl로 데몬 상태를 확인합니다. ```sh systemctl status nginx ``` active라면 OK.그렇지 않은 경우 다음 명령을 실행합니다. ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` 에 접속하여 \*Welcome to nginx!\*라고 표시되면 OK.\ curl에서 확인하는 것도 좋은 방법입니다. ```sh curl http://localhost ``` ### 기타 Git(버전 관리 소프트웨어) 및 build-essential(Misskey 빌드 시 필요)을 설치합니다. ```sh sudo apt update sudo apt install -y git build-essential ``` ## 추가 설정 및 설치 서버를 인터넷에 공개할 준비를 합니다. :::tip 개발 환경의 경우 방화벽, CloudFlare, Certbot 설정이 필요하지 않습니다. ::: ### 방화벽 HTTPS・WSS 통신에 사용할 인증서를 CloudFlare를 사용하는 방식으로 Let's Encrypt에서 발급받습니다. 다음은 접속 허용을 화이트리스트 형식으로 하여 22번 SSH 포트를 접속 횟수 제한을 두어 개방하고, 80번 HTTP 포트와 443번 HTTPS 포트를 개방하는 예입니다. ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufw의 상태를 확인합니다. ```sh sudo ufw status ``` systemctl로 영구화합니다. ```sh sudo systemctl enable ufw ``` :::tip ufw는 넷필터(iptables)를 사람이 쉽게 조작할 수 있도록 하는 앱입니다.설치 스크립트는 OCI 환경에서는 netfilter를 직접 조작합니다. ::: ### CloudFlare CloudFlare는 자신의 도메인에 대해 DNS 서버, 리버스 프록시, CDN을 한 번에 제공해 주는 매우 편리한 서비스입니다.\ CloudFlare를 경유하지 않고 서버를 공개하는 것도 가능하지만, 매우 편리하기 때문에 도입하는 것이 좋습니다. [**→ CDN 설정**](../resources/cdn/) [CloudFlare에 가입(https://dash.cloudflare.com/sign-up)하고, 구매한 도메인을 안내에 따라 등록합니다. DNS 등록 화면에서 서버의 IP 주소를 입력하면 됩니다. 도메인 구입처에 따라 적용에 최대 3일 정도 소요될 수 있습니다. ### Certbot (Let's Encrypt) 설정 HTTPS・WSS 통신에 사용할 인증서를 CloudFlare를 사용하는 방식으로 Let's Encrypt에서 발급받습니다. certbot과 CloudFlare 플러그인 설치하기 ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` Cloudflare의 API 키를 얻습니다.아래 절차에 따라 취득합니다. 1. 에 접속 2. Global API Key의 View 선택 3. 비밀번호 입력 및 hCaptcha 해제, View 선택 CloudFlare의 정보를 담은 설정 파일 /etc/cloudflare/cloudflare.ini를 생성합니다. ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(아래 예에서는 bar\@fuga.foo)에는 CloudFlare에 등록한 이메일 주소를 설정합니다. ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` 이를 저장하고 권한을 600으로 설정합니다. ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 다음 내용을 붙여넣고 적절하게 바꿉니다.**중간에 있는 2곳의 example.tld는 자신의 것으로 교체합니다**. ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*라고 표시되면 OK.생성된 .pem 파일의 경로는 나중에 사용할 것이므로 기록해 두어야 합니다. 자동 업데이트 설정은 설치와 동시에 이루어지기 때문에 불필요합니다. ## Misskey 설치하기 지정이 완료되면 저장합니다. misskey 사용자로 변경. ```sh sudo su - misskey ``` Git으로 파일들을 전개. ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 필요한 npm 패키지를 설치합니다. ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` ## Misskey 구성하기 ### default.yml 설정 파일 .config/default.yml을 생성합니다. ```sh nano .config/default.yml ``` 다음 내용을 붙여넣고 적절하게 바꿉니다.설정값의 변경이 필요한 부분은 ●, 지금까지의 흐름에서 설정된 값을 사용하는 부분은 ○으로 표시하였습니다. 이 설정 파일은 YAML 형식으로 작성되어 있으며, 줄의 시작 부분의 띄어쓰기 등을 잘못하면 Misskey가 동작하지 않으므로 특히 주의해야 합니다. 설정할 수 있는 값과 작성 방법은 [.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)에 나와 있습니다. :::tip 개발 환경의 경우 url은 `url: http://localhost:3000`로 지정합니다. ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 지정이 완료되면 저장합니다. ### nginx 설정하기 nginx를 설정합니다. 루트 권한으로 변경합니다. ```sh exit ``` /etc/nginx/conf.d/misskey.conf를 작성합니다. ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)의 설정 예시를 nano에 복사하여 붙여넣고, 다음 부분을 자신의 것으로 바꿔서 작성합니다. - 18행과 30행의 도메인 이름 - 34-35번째 행의 인증서 경로를 Certbot으로 취득한 인증서로 바꾸면 됩니다(기본적으로 example.tld를 대체하면 됩니다). - 56행 (다른 리버스 프록시 또는 CDN 뒤에 있는 경우 다음을 제거합니다.) 에서 4행 삭제 변경 사항을 저장합니다. 설정 파일이 제대로 작동하는지 확인합니다. ```sh sudo nginx -t ``` OK라면 nginx 데몬을 재시작합니다. ```sh sudo systemctl restart nginx ``` 상태를 확인합니다. ```sh sudo systemctl status nginx ``` active라면 OK. ## Misskey 빌드 misskey 사용자로 다시 로그인합니다. ```sh sudo su - misskey ``` 빌드합니다.네, 이제 할 수 있습니다... ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 개발 환경의 경우 `NODE_ENV=production`은 필요하지 않습니다.이후 명령어에서도 마찬가지로 삭제해 주세요. ::: ### 서버에서 빌드할 수 없는 경우 RAM 부족이 원인일 수 있습니다. 미스키의 빌드 및 데이터베이스 마이그레이션(초기화 포함)을 위해서는 4GB 이상의 RAM이 필요합니다.\ RAM이 부족한 경우 다음과 같은 해결책을 생각해 볼 수 있습니다. - 서버에 스왑 추가하기 - 로컬에서 빌드한 것(built 디렉토리)을 sftp로 전송하기 ## 데이터베이스 초기화 ```sh pnpm run init ``` ## Misskey 실행하기 ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) 라고 표시되면 설정한 URL에 접속합니다. Misskey의 웰컴 페이지가 표시되어야 합니다. 계정 생성, 노트 작성, 파일 업로드 등 일련의 작업이 제대로 이루어지고 있는지 확인해 봅니다. ### 액세스 할 수 없는 경우 #### CloudFlare의 DNS 확인하기 CloudFlare의 DNS 설정이 올바른 IP 주소로 설정되어 있는지 다시 한 번 확인해봅니다. #### 라우터 설정 확인하기 홈 서버의 경우, 라우터가 서버와 외부와의 80포트, 443포트 통신을 허용하도록 설정되어 있는지 확인합니다. 클라우드의 경우에도, 네트워크 설정에서 포트를 개방해줘야 하는 일이 많습니다. ## Misskey의 데몬 생성 :::tip 개발 환경의 경우, 데몬을 만들 필요가 없습니다. ::: 일단 Ctrl+C로 프로세스를 종료하고, Misskey를 데몬으로 실행하도록 설정해 봅시다. 루트 권한으로 변경합니다. ```sh exit ``` /etc/systemd/system/misskey.service를 만듭니다. ```sh sudo nano /etc/systemd/system/misskey.service ``` 다음 내용을 붙여넣고 저장합니다. ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemd를 설정하고 misskey 데몬을 실행합니다. ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctl로 데몬의 상태를 확인합니다.데몬 시작에 시간이 조금 걸리므로 15초 정도 기다렸다가 실행하는 것이 좋습니다. ```sh sudo systemctl status misskey ``` active라면 OK. **이것으로 Misskey 설치가 거의 완료되었습니다.** Misskey 서버에 자신의 계정을 등록하고 로그인하여 설정을 진행합니다. ## Misskey 설정 계속하기 - [**Misskey 서버에서 가장 먼저 설정해야 할 서버 설정 및 기타 설정에 대한 설명**](https://hide.ac/articles/Y504SIabp) - [**Squid 프록시를 설정하여 Misskey를 보호하세요**](https://hide.ac/articles/MC7WsPDqw) - [**Misskey의 데이터베이스를 백업하자【OCI 오브젝트 스토리지 편】**](https://hide.ac/articles/E2Ea3cauk) ## Misskey 업데이트 [Misskey 업데이트 방법](./manual/#misskey-업데이트-방법) 작업 중에는 Misskey를 사용할 수 없습니다. ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgrade를 하는 경우 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 재부팅 후 Misskey는 자동으로 시작됩니다. ### Case 2: 그대로 실행 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/ko/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskey 유지관리 및 문제 해결" description: "Misskey 서버 운영에는 정기적인 유지보수가 필수적입니다. 유용한 정보와 문제 발생 시 대처 방법을 소개합니다." ================================================ FILE: content/ko/docs/3.for-admin/install/resources/cdn.md ================================================ # CDN 설정 Misskey 서버를 공개할 때는 [Cloudflare](https://www.cloudflare.com/)와 같은 CDN을 사용할 것을 강력히 추천합니다. CDN을 사용하면 다음과 같은 장점이 있습니다. - 정적 콘텐츠를 캐싱할 수 있어 서버의 부하를 줄일 수 있습니다. - 서버의 IP 주소가 노출되지 않아 DoS 공격 등을 완화할 수 있습니다. ## 캐시 Misskey Web은 완전히 정적이며, 작동을 위해 서버가 필요하지 않습니다.따라서 Misskey 웹 전체를 CDN에서 캐싱할 수 있습니다.Misskey API는 캐싱할 수 없습니다. CDN에서 다음과 같이 설정해 주세요. - `api/api/*`를 제외한 모든 요청을 캐시. :::tip Misskey를 업데이트할 때 캐시를 지울 필요가 없습니다. ::: ================================================ FILE: content/ko/docs/3.for-admin/install/resources/forking.md ================================================ # Misskey 포크 커스터마이징 시 주의 사항 Misskey가 채택하고 있는 GNU Affero General Public License v3.0(AGPL-3.0)은 Misskey의 소스코드를 변경한 경우, 그 변경 사항을 공개할 것을 의무화하고 있습니다. Misskey v2024.2.0 이상에서는 이 라이선스를 쉽게 적용할 수 있는 기능을 구현했습니다.여기서는 그 설정 방법을 소개합니다. :::warning 물론 그 이전 버전을 기반으로 하는 경우에도 라이선스를 준수하기 위한 조치를 취해야 합니다. ::: ## Misskey를 그대로 사용하는 경우 Misskey의 코드베이스를 전혀 변경하지 않고 내장된 기능만 사용하는 경우, 별도의 작업을 할 필요가 없습니다. ## Misskey의 코드를 수정하고 그 수정된 버전을 GitHub 등에 공개하는 경우 Misskey의 코드를 수정하고, 그 수정된 버전을 GitHub 등에 공개할 경우, 다음 사항을 확인해야 합니다. - 리포지토리를 공개할 것(접근 제한 등을 두지 않고 누구나 접근할 수 있도록 할 것) 그럼 지금부터 바로 설정해 보겠습니다. 1. 수정된 버전의 Misskey를 빌드하고 프로덕션 환경에서 실행합니다. 2. Admin 계정으로 로그인한 상태에서 [관리자 화면](x-mi-web://admin/settings)을 엽니다. 3. '저장소 URL'란에 Misskey의 저장소 URL을 입력합니다. ## Misskey의 코드를 어떤 식으로든 변경하지만, 그 변경된 버전을 GitHub 등에 공개하지 않는 경우(할 수 없는 경우) 이 경우에도 소스 코드를 Misskey의 인터페이스에서 직접 접근할 수 있도록 해야 합니다.Misskey v2024.2.0 이상에서는 빌드 시 자동으로 소스 코드를 서고 파일에 정리하는 기능이 구현되어 있습니다. :::tip 또한 **소스코드를 요청이 있을 때만 공개하는 조치는 라이선스 이행에 불충분한 것으로 간주됩니다.** Misskey에 내장된 소스 코드 제공 기능을 사용하지 않더라도, 어떤 식으로든 Misskey 웹 인터페이스에서 Misskey의 작동 중인 버전의 소스 코드에 대한 링크를 직접 액세스할 수 있도록 해야 합니다. ::: 그럼 지금부터 바로 설정해 보겠습니다. 1. Misskey의 설정 파일(기본값은 `.config/default.yml`)을 엽니다. 2. `publishTarballInsteadOfProvideRepositoryUrl`을 `true`로 설정한다(설정 파일에서 지정한 주석 처리된 부분만 제거하면 됩니다). 3. Misskey를 빌드합니다(이 때 소스 코드 tarball이 생성됩니다). 4. 생성된 서고 파일을 열고 **토큰 등 기밀 정보가 배포용 소스코드에 포함되어 있지 않은지 확인합니다.** 5. 기밀 정보가 포함된 경우 `scripts/tarball.mjs`를 편집하여 해당 정보를 제외하도록 합니다. :::warning 소스 코드의 서고 파일 생성은 빌드 시점에 이루어집니다.`scripts/tarball.mjs`를 변경한 경우 반드시 다시 빌드해야 합니다. ::: ================================================ FILE: content/ko/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginx 설정 [nginx](https://nginx.org/)를 리버스 프록시로 활용하여 Misskey 서버를 직접 인터넷에 공개하지 않고 운영할 것을 권장합니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다. - 보안 강화: 리버스 프록시를 통해 접근을 제어함으로써 Misskey 서버에 대한 직접적인 공격의 위험을 줄일 수 있습니다. - 유연한 설정: nginx는 리버스 프록시 기능뿐만 아니라 캐시[^1] 및 보안 정책 설정, 리버스 프록시 기능 등 유연한 설정 옵션을 제공합니다. 이러한 장점을 활용하여 Misskey 서버를 보다 안전하고 효율적으로 운영할 수 있습니다. 또한, Cloudflare와 같은 CDN과 함께 구성하면 더 큰 효과를 기대할 수 있습니다. [^1]: nginx의 기능인 [proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)과 [proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)를 활용하면 캐시 미작성 상태에서 대량 접속이 발생하더라도 Misskey 서버의 부하 증가를 줄일 수 있는 효과를 기대할 수 있습니다. ## 설정 방법의 예시 다음은 서버 머신(VPS 등)에 직접 nginx를 설치하고 인증기관으로 [Let's Encrypt](https://letsencrypt.org/)를 채택한 경우의 설정 예시입니다. 1. `/etc/nginx/conf.d/misskey.conf` 또는 `/etc/nginx/sites-available/misskey.conf`를 생성하고 아래 설정 예시를 복사합니다..\. (파일명은 misskey가 아니어도 상관없습니다.)) 2. 다음과 같이 편집합니다. 1. example.tld를 자신이 준비한 도메인으로 대체합니다.example.tld를 자신이 준비한 도메인으로 대체합니다.\ `ssl_certificate`와 `ssl_certificate_key`는 Let's Encrypt에서 발급받은 인증서의 경로가 되도록 합니다. 2. Cloudflare 등의 CDN을 사용하는 경우 'If it's behind another reverse proxy or CDN, remove the following.’ 3. (파일명은 misskey가 아니어도 상관없습니다.))`/etc/nginx/sites-available/misskey.conf`를 만들었다면 `/etc/nginx/sites-enabled/misskey.conf`로 심볼릭 링크를 생성합니다.\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t`로 설정 파일이 정상적으로 로드되는지 확인합니다. 5. `sudo systemctl restart nginx`로 nginx를 리로드 합니다. ## 설정 예시 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.tld; ssl_session_timeout 1d; ssl_session_cache shared:ssl_session_cache:10m; ssl_session_tickets off; # To use Let's Encrypt certificate ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem; # To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate) #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; # SSL protocol settings ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; # Change to your upload limit client_max_body_size 80m; # Proxy to Node location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_http_version 1.1; proxy_redirect off; # If it's behind another reverse proxy or CDN, remove the following. proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; # For WebSocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # Cache settings proxy_cache cache1; proxy_cache_lock on; proxy_cache_use_stale updating; proxy_force_ranges on; add_header X-Cache $upstream_cache_status; } } ``` ================================================ FILE: content/ko/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actions를 사용하여 Docker Hub에 Push하는 방법 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml)에\ GitHub Action을 통해 Docker Hub에 푸시하는 워크플로우가 설명되어 있습니다. 원본 저장소에서는 릴리스된 시점에 `latest`, `<릴리즈명>` 각각의 태그와 함께 Docker Hub에 푸시됩니다.\ ※ Docker Hub에 `<브랜치명>`과 같은 태그가 있을 수 있지만, 이 태그는 자동 푸시 대상이 아닙니다. ※ Docker Hub에 `<브랜치명>`과 같은 태그가 있을 수 있지만, 이 태그는 자동 푸시 대상이 아닙니다. Fork에서 이 워크플로우를 실행하면 실패합니다. 아래에서는 Fork를 통해 자신의 Docker Hub 리포지토리에 푸시하도록 하는 방법을 설명합니다. ## 자신의 Docker Hub 리포지토리에 푸시하도록 설정하는 방법 1. Docker Hub에서 리포지토리를 생성합니다. 2. 워크플로우 파일의 [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20)을 생성한 저장소로 대체합니다. 3. GitHub에서 [암호화된 시크릿](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository)을 생성합니다. 생성해야 하는 것은 `DOCKER_USERNAME`과 `DOCKER_PASSWORD`로, 각각 Docker Hub의 사용자와 비밀번호가 됩니다. ## push하는 방법 위 설정을 통해 릴리스 시 자동으로 Docker Hub에 푸시되도록 설정합니다. 구체적으로는 GitHub의 릴리즈 기능으로 릴리즈한 시점에 `latest`, `<릴리즈명>` 각각의 태그와 함께 Docker Hub에 푸시됩니다. 또한 GitHub에서 수동으로 푸시할 수도 있습니다. 이를 위해 Actions => Publish Docker image => Run workflow에서 branch를 선택하여 워크플로우를 실행합니다. 단, 이 경우 생성되는 태그는 `<브랜치명>`이 됩니다. ================================================ FILE: content/ko/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskey 서버의 스케일아웃 PostgreSQL의 복제를 통해 데이터베이스의 부하를 여러 서버 머신에 분산시킬 수 있습니다.서버 이용자가 늘어남에 따라 서버 머신의 사양을 강화하거나 대수를 늘려 부하를 감당해야 하는 상황이 발생합니다.이 글에서는 Misskey 서버의 스케일아웃에 대한 팁을 소개합니다. ## PostgreSQL 복제 Misskey에서는 PostgreSQL의 복제를 지원하며, config 파일에서 다음과 같이 설정합니다.(일부 발췌)(일부 발췌) ```yml # 복제를 사용하는 경우 true로 설정합니다. dbReplications: true # 여기에서 리드 복제본 목록을 설정합니다(개수 제한 없음). dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` 이렇게 설정하면 Misskey가 데이터베이스에 대해 read 쿼리를 발행할 때 설정한 `dbSlaves` 중에서 무작위로 read replica를 선택하여 쿼리를 전송하게 되므로 데이터베이스의 부하를 분산시킬 수 있습니다. ## 역할에 따른 Redis 분할 Misskey는 다음과 같이 다양한 용도로 Redis를 사용합니다. - 작업 대기열 관리 - 속도 제한 관리 - 캐시 - 알림 등의 정보 저장 - 글로벌 이벤트의 Pub/Sub Misskey에서는 이러한 용도별로 다른 Redis 서버를 사용하도록 설정할 수 있으며, 여러 서버 머신에 부하를 분산시킬 수 있습니다.(일부 발췌) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 현재 설정 가능한 Redis는 메인 Redis 외에 위와 같이 '글로벌 이벤트의 Pub/Sub'와 '작업 대기열 관리'를 위한 Redis가 있습니다. ## 원격 차트 비활성화 개별 원격 사용자 활동과 같은 차트나 개별 원격 서버의 차트가 필요하지 않은 경우, 해당 차트의 생성을 비활성화하면 성능이 향상됩니다. ================================================ FILE: content/ko/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # 수동 설치 시 문제 해결 2018년 10월 07일 / 2021년 12월 20일 최종 업데이트 / 문책 aqz/tamaina MisskeyInstallBattle 참가자가 늘어났지만, 그에 따라 시간이 지날수록 중경상자가 증가하고 있습니다.\ 이 글에서는 이러한 부상을 줄이기 위해 과거에 사고가 발생했던 부분의 경향과 대책을 알기 쉽게 설명합니다. **먼저, [구축 안내서](../guides/manual/)를 숙지하시기 바랍니다.** 또한, 제 저서 [Ubuntu용 systemd 해설](https://hide.ac/articles/iFwm5HDvH), [Oracle Cloud 버전 상세 해설](https://hide.ac/articles/csERs-7SU)도 참고해 주시면 감사하겠습니다. # 우분투용 쉘 스크립트 안내 우분투에 대한 설명은 복사, 붙여넣기로만 이루어져 있어 재미없어요!시간이 걸린다!어쨌든 귀찮다! ……어라, 복사-붙여넣기만으로 할 수 있다면 완전 자동화가 가능하지 않을까? 그래서 **쉘 스크립트로 거의 모든 것을 해주는 것을 만들어 보았습니다!**\ [\*\*자세한 내용 및 사용법은 여기에서 확인하세요!]\*\*https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) 도메인 구매 및 Cloudflare 설정, 서버 확보는 여러분이 직접 준비해 주시기 바랍니다. 쉘 스크립트에 문제가 있으면 [제작자(aqz)](https://p1.a9z.dev/@aqz)에게 알려주시면 감사하겠습니다. # 설치 및 빌드 [구축 안내서](../guides/manual/)을 잘 읽어보세요. ## ImageMagick 관련 _**ImageMagick이 필요하지 않습니다!**_ ## 빌드가 실패하는 경우 Misskey를 빌드하기 위해서는 최소 2GB의 메모리가 필요하다는 것이 경험상 권장됩니다.\ 서버를 확장하는 방법도 있지만, PC에서 빌드하여 서버에 배포하는 방법도 있습니다. ## 왠지 잘 안 풀린다 - [구축 안내서](../guides/manual/)을 잘 읽어보세요. - node.js의 버전이 오래되었나요? - 새로운 버전으로 해봅시다. - 설치나 빌드시 Error나 WARN 같은 것이 나올 수 있지만, 문제가 없는 경우도 있습니다.일단 `npm start`로 동작을 확인해 봅시다. - node-gyp이 설치되지 않았나요? - `apt install build-essential`을 시도합니다. - 윈도우는 [이 글](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)도 참고해 보세요. - 그래도 안 되면 처음부터 다시 [구축 가이드](../guides/manual/)의 절차에 따라 다시 시도해 보세요. ## 버전업 후 문제 발생 - [구축 가이드](../guides/manual/) 및 릴리즈 노트를 잘 읽어보세요. - Misskey 버전업 시에는 반드시 `pnpm install`이나 `pnpm run migrate`를 해주시기 바랍니다.그래도 해결되지 않으면 `pnpm run clean-all && pnpm install`을 시도하고, `pnpm run build && pnpm run migrate && pnpm start`를 시도해 보십시오. - 그래도 안 되면 처음부터 다시 [구축 가이드](../guides/manual/)의 절차에 따라 다시 시도해 보세요. --- # 설정 [구축 안내서](../guides/manual/)를 잘 읽어보세요. `.config/default.yml`에서 설정을 합니다. [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)을 복사하여 주석에 따라 작성합니다. (YAML 형식에서는 `#`부터 줄 끝까지는 주석으로 취급합니다.) ## URL 및 포트 번호 URL과 포트 번호의 구조가 조금 이해하기 어려운 것 같습니다. `.config/example.yml`에 "Port and TLS settings"로 설명도에 따른 내용이 순서대로 적혀져 있으므로, 그 내용에 따라서 설정해봅시다. ### URL의 설정 ```yml # Final accessible URL seen by a user. # 사용자가 최종적으로 접속하는 URL url: https://example.tld/ ``` **`url`은, 서버를 브라우저로 접속했을 때 주소창에 표시 될**(하고 싶은)**URL을 적습니다.** ### 포트 설정 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### 포트와 TLS 설정 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # Misskey로 HTTPS 연결을 하려면 리버스 프록시 설정이 필수입니다. # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # 이 방법으로는, 리버스 프록시(예: nginx)를 따로 설정해야 합니다. # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GET 리퀘스트로 토큰이 URL에 포함될 가능성이 있으므로, # HTTPS로 암호화 하는 것을 강력히 권장합니다. ``` ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### 포트 및 인증서 설정 #################################### # # Misskey supports two deployment options for public. # Misskey는 두 가지 서버 개설 방법을 지원합니다. # # Option 1: With Reverse Proxy # 방법 1 리버스 프록시 거치기 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to setup reverse proxy. (eg. Nginx) # 이 방법을 사용하려면 리버스 프록시(예: Nginx)를 설정해야 합니다. # You do not define 'https' section. # 'https' 섹션(후술)은 설정하지 않고 주석 처리된 상태로 둡니다. # Option 2: Standalone # 방법 2 독립 실행형 # (리버스 프록시를 거치지 않고, node의 프로세스에서 직접 사용자로부터 접근을 받습니다.) # # +- https://example.tld/ -+ # +------+ | +---------------+ | # | User | ---> | | Misskey (443) | | # +------+ | +---------------+ | # +------------------------+ # # You need to run Misskey as root. # 이 방법을 사용하려면 Misskey를 루트(권한이 부여된 상태)로 실행해야 합니다. # You need to set Certificate in 'https' section. # 'https' 섹션(후술)에서 인증서를 설정해야 합니다. ``` 위의 예시는 Misskey가 3000번 포트로 연결됩니다. 리버스 프록시에선, 로컬에서 쓰는 포트 번호를 설정합니다. ---- # `npm start` 및 접속 시 자주 발생하는 오류 `npm start`로 서버를 시작했지만, 그 후 문제가 발생하는 경우도 있습니다. 먼저, [구축 안내서](../guides/manual/) 를 잘 읽어보세요. ## YAML 오류 발생 `default.yml` 구문에 오류가 있을 수 있습니다. 줄머리에 여분의 공백은 없나요? ## redis에 연결할 수 없음 redis-server가 실행되고 있습니까? 어떤 연결 수 제한에 도달하지 않았습니까? 11.20.2 이전 버전의 Misskey는 redis의 비밀번호를 풀 수 없습니다.다음 두 가지 사항을 확인하시기 바랍니다. - redis에 비밀번호를 설정하지 않는다. - `default.yml`의 `redis:`의 `pass:` 행을 주석 처리한다. ## 상단에 '개발용 빌드입니다'라고 적힌 빨간색 막대가 표시된다. 서버를 공개할 때는 반드시 production 빌드를 사용해야 합니다. 제품 빌드로 설정하려면 환경 변수를 `NODE_ENV=production`으로 설정하고 `npm run build && npm start`를 실행합니다. ## 신규 등록 불가 API에 접속할 수 없는 것 같습니다. `default.yml`의 시작 부분인 `url:`이 제대로 설정되어 있는지 확인합니다. Node.js의 버전과 설치 설정도 다시 한 번 꼼꼼히 확인해 봅시다. 또한 `default.yml`이 제대로 작성되어 있습니까? ## 타임라인 표시 문제 발생, 실시간으로 TL이 업데이트되지 않음 타임라인 불러오기에 실패하는 경우, mongoDB나 PostgreSQL의 버전이 오래된 것일 수 있습니다. PostgreSQL은 가급적 v13으로 업데이트해 주세요. redis의 연결도 확인하는 것이 좋습니다. [→ redis에 접속할 수 없나요? 참조](#redis에 연결할 수 없음) ## 영원히 '재접속 중'이라고 오른쪽 하단에 표시되고, 실시간으로 TL이 업데이트되지 않는다. 프록시를 이용하고 있다면, 그것이 WebSocket 통신을 방해하고 있을 가능성이 있습니다. ## 오브젝트 스토리지 사용 시 오류 발생 오브젝트 스토리지의 권한 설정이 엄격하게 설정되어 있을 수 있습니다.'누구나 파일(객체)을 가져올 수 있음'으로 권한을 설정해 보시기 바랍니다. 또한, `default.yml`을 다시 한 번 확인해보시기 바랍니다. ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)은 AWS의 기본 도메인이 아닌 자체 도메인으로 스토리지를 공개하고 싶은 경우의 설정입니다. endpoint와 공개 도메인이 동일한 서비스의 경우 S3 example처럼 `baseUrl`은 명시하지 않아도 되며, 또한 region 개념이 없는 서비스의 경우 region 라인은 필요하지 않습니다. ### S3 호환 서비스 설정 Misskey에서는 오브젝트 스토리지 연결에 [aws-sdk](https://www.npmjs.com/package/aws-sdk)를 이용하고 있습니다. 아마존 S3와 호환되는 오브젝트 스토리지라면 사용할 수 있습니다. 각 서비스/소프트웨어의 설명서를 잘 읽고 설정해 보세요. ### 로딩이 끝나지 않음 Cloudflare를 사용하는 경우, Rocket Loader 또는 Auto Minify가 활성화되어 있는지 확인하십시오.활성화된 경우 비활성화하면 해결될 수 있습니다. --- # 전혀 해결되지 않은 경우 다음 순서를 시도해 보세요. 1. Misskey의 문서를 잘 읽는다. 2. 구글에서 검색해 본다. 3. [Misskey 저장소의 Issues](https://github.com/misskey-dev/misskey/issues)를 검색해 본다(동일한 오류가 발생하거나, Misskey의 버그일 가능성도 있습니다). 4. 검색을 해도 잘 안 나오면 전문가에게 물어보세요. 1. [Misskey Discord 서버(영어/일본어)](https://discord.gg/P4yYqYBjEp)등에 물어보기 2. 개발자([aqz](https://p1.a9z.dev/@aqz)나 shuiro)에게 답글이나 직접 글을 보내 물어보기 ================================================ FILE: content/ko/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "모더레이션 관련 유용한 정보" description: "실제로 서버를 운영할 때 도움이 되는 정보를 정리했습니다." ================================================ FILE: content/ko/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTL 비활성화 Misskey에서는 LTL/STL/GTL을 각각 비활성화할 수 있습니다.활성화/비활성화를 전환하려면 서버 제어판에서 설정합니다.활성화/비활성화를 전환하려면 서버 제어판에서 설정합니다. LTL이나 STL은 해당 서버에 있는 모든 사용자의 게시물을 볼 수 있기 때문에 신규 사용자 입장에서는 사용자를 찾을 필요가 없고, 관심 있는 사용자를 쉽게 찾을 수 있다는 장점이 있다. :::warning 비활성화를 하면 사용자가 혼란스러워하고 단기적으로 사용자가 감소할 수 있습니다.비활성화를 하면 사용자가 혼란스러워하고 단기적으로 사용자가 감소할 수 있습니다.따라서 비활성화 시에는 그 영향을 신중하게 검토하고, 사전에 설명하고 후속 조치를 마련할 수 있는 기간을 어느 정도 두는 것이 좋습니다. ::: 단, 관리자/모더레이터는 이러한 타임라인 비활성화 상태가 적용되지 않으며, 계속 사용할 수 있습니다. ================================================ FILE: content/ko/docs/4.for-developers/_dir.yml ================================================ title: "개발자용" description: "플러그인 및 Play 개발자와 API를 이용한 외부 애플리케이션 개발자를 위한 리소스입니다." ================================================ FILE: content/ko/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScript는 Misskey의 다음 부분에서 사용할 수 있는 스크립트 언어입니다. - [플러그인](./plugin/create-plugin/) - [위젯](/docs/for-users/features/widgets/) - 버튼 - AiScript 콘솔 - AiScript App - [Misskey Play](./plugin/create-play/) - 스크래치 패드 :::tip AiScript의 구현은 Misskey와는 별도의 리포지토리로 [오픈소스로 공개되어 있습니다](https://github.com/aiscript-dev/aiscript). ::: ## 사용법 AiScript 표준 구문과 내장 함수 등을 사용할 수 있습니다. :::tip 문서는 [여기](https://aiscript-dev.github.io/)에서 확인할 수 있습니다.\ Misskey 본체 버전에 따라 사용할 수 있는 AiScript 버전이 다를 수 있습니다.버전 확인은 `<: Core:v`를 Scratchpad 등에서 실행해 보세요.버전 확인은 `<: Core:v`를 Scratchpad 등에서 실행해 보세요. ::: 이 외에도 Misskey 전용 내장 상수 및 함수가 그룹으로 나뉘어 제공되고 있습니다. ### Misskey AiScript API 접두사: `Mk:`\ Misskey 내의 모든 AiScript 환경에서 사용할 수 있는 상수 함수군입니다. ### Plugin API 접두사: `Plugin:`\ [플러그인](./plugin/)에서만 사용할 수 있는 상수 함수군입니다. ### UI API 접두사: `Ui:`\ [위젯](/docs/for-users/features/widgets/)(AiScript App), Misskey Play, Scratchpad에서 사용할 수 있습니다. ### 표준입출력 AiScript 표준에서 정의된 `readline` 함수와 `print` 함수(및 `<:` 구문)의 내부 구현은 Misskey 측에서 독자적으로 제공하고 있습니다. #### readline(message) `message`: `str`\ 반환값: `str`\ Misskey 내 모든 AiScript 환경에서 사용할 수 있습니다.\ 문자열 입력을 요청하는 팝업을 표시합니다. 문자열 입력을 요청하는 팝업을 표시합니다. #### print(message) `message`: `any`\ 반환값: `null`\ [위젯](/docs/for-users/features/widgets/) (AiScript 콘솔), Scratchpad에서 사용할 수 있습니다.\ 콘솔에 문자열을 출력합니다.\ `<:`구문도 비슷한 역할을 합니다. 콘솔에 문자열을 출력합니다. `<:`구문도 비슷한 역할을 합니다. ================================================ FILE: content/ko/docs/4.for-developers/api/1.index.md ================================================ --- description: 'Misskey는 API를 공개하고 있습니다.API를 사용하여 Misskey 클라이언트, Misskey 연동 웹서비스, Bot 등(이하 ''애플리케이션''이라 함)을 개발할 수 있습니다.Misskey는 API를 공개하고 있습니다.API를 사용하여 Misskey 클라이언트, Misskey 연동 웹 서비스, Bot 등(이하 ''애플리케이션''이라 함)을 개발할 수 있습니다.' --- # Misskey API Misskey는 API를 공개하고 있습니다.스트리밍 API도 있어 실시간 애플리케이션을 만들 수도 있습니다. :::tip Misskey 공식 SDK나 서드파티 라이브러리를 사용하면 이 문서에서 설명하는 몇 가지 단계를 간소화할 수 있는 등 보다 편리하게 API를 사용할 수 있습니다.\\\ ::: ================================================ FILE: content/ko/docs/4.for-developers/api/endpoints.md ================================================ # 엔드포인트 목록 :::tip 현재 엔드포인트 목록은 준비 중입니다.제공이 시작될 때까지 각 Misskey 서버에서 [`/api-doc` 페이지](x-mi-web://api-doc)에 접속하거나, [Misskey 소스 코드](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)를 참조하십시오. 또한, 조금 오래된 정보이지만 [기존 미스키 허브](https://legacy.misskey-hub.net/docs/api/endpoints.html)도 이용할 수 있습니다. ::: ================================================ FILE: content/ko/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey API 관련 라이브러리 목록' --- # 라이브러리 목록 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/ko/docs/4.for-developers/api/permission.md ================================================ --- description: '애플리케이션이 요구하는 권한 목록' --- # 권한 목록 :::tip ::: ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: '스트리밍 API를 사용하면, 실시간으로 다양한 정보(예를 들어 타임라인에 새로운 노트가 올라왔다거나, 리액션을 받았거나 팔로우 되었다거나 등)를 받거나, 다양한 작업을 할 수 있습니다.' --- # 스트리밍 API :::tip 스트리밍 API를 사용하면, 실시간으로 다양한 정보(예를 들어 타임라인에 새로운 노트가 올라왔다거나, 리액션을 받았거나 팔로우 되었다거나 등)를 받거나, 다양한 작업을 할 수 있습니다. ::: 스트리밍 API를 사용하면, 실시간으로 다양한 정보(예를 들어 타임라인에 새로운 노트가 올라왔다거나, 리액션을 받았거나 팔로우 되었다거나 등)를 받거나, 다양한 작업을 할 수 있습니다. ## 스트림에 접속하기 스트리밍 API를 이용하려면, 먼저 Misskey 서버에 **websocket**으로 접속이 필요합니다. 아래 형식의 URL로 websocket에 접속합니다: ``` wss://{host}/streaming?i={token} ``` 여기서, - `{host}`의 부분을 접속하고 싶은 서버의 호스트명으로 바꿉니다. - `{token}`의 부분은, 유저의 액세스 토큰으로 바꿉니다. :::tip 액세스 토큰은 생략할 수 있지만, 이 경우 비로그인으로 작동하기 때문에 수신할 수 있는 정보나 조작은 제한됩니다. ::: 이러한 이벤트를 수신하기 위해서는, 스트림 상에 후술할 **채널**에 접속해야 합니다. \*\*스트림상에서 주고 받는 정보는 모두 JSON입니다.어떠한 채널이 있는 지는, [채널 목록](./channel/index.md)를 참조해 주세요. ## 채널에 접속하기 Misskey의 스트리밍 API에는 채널이라는 개념이 있습니다.이것은 송수신하는 정보를 분리하기 위한 구조입니다.이것은 송수신하는 정보를 분리하기 위한 구조입니다. 스트림 상에서 채널에 접속함으로써, 다양한 정보를 받거나 보낼 수 있게 됩니다. :::tip 하나의 스트림 연결에서, 동시에 여러 개의 채널에 접속할 수 있습니다. ::: 아래에서 채널의 사용 방법을 설명합니다.어떠한 채널이 있는 지는, [채널 목록](./channel/index.md)를 참조해 주세요.\*\*스트림상에서 주고 받는 정보는 모두 JSON입니다.어떠한 채널이 있는 지는, [채널 목록](./channel/index.md)를 참조해 주세요. ### 채널에 접속하기 채널에 연결하려면 다음과 같은 데이터를 JSON으로 스트림에 전송합니다. ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` 여기서, - 스트림에 접속하면, 후술할 노트의 구독을 하는 것이 가능합니다.`channel`에는 접속하고자 하는 채널명을 입력합니다.[채널 목록](./channel/index.md)를 참고하세요. - `id`에는 해당 채널과 상호작용할 수 있는 임의의 ID를 설정합니다.스트림에는 다양한 메시지가 흘러나오기 때문에 어떤 채널에서 온 메시지인지 식별해야 하기 때문입니다.이 ID는 UUID나 난수 같은 것이 될 수 있습니다.이 문제를 해결하기 위해 Misskey는 게시물 캡처 기능을 제공하고 있습니다.게시물을 캡처하면 해당 게시물에 대한 이벤트를 수신할 수 있기 때문에 실시간으로 반응을 반영할 수 있습니다.이 ID는 UUID나 난수 같은 것이 될 수 있습니다. - `params`는 채널에 연결할 때의 파라미터입니다.스트리밍 API를 이용하려면, 먼저 Misskey 서버에 **websocket**으로 접속이 필요합니다.`params`는 채널에 연결할 때의 파라미터입니다.채널에 따라 연결 시 필요한 파라미터가 다릅니다.파라미터가 필요 없는 채널에 연결할 때는 이 속성을 생략할 수 있습니다. :::tip ID는 채널 단위가 아니라 '채널 연결 단위'입니다.왜냐하면 같은 채널에 서로 다른 파라미터로 다중접속 하는 경우도 있기 때문입니다.그러나, 아직 이 단계에서는 타임라인의 새로운 노트를 확인하는 등의 행동을 할 수 없습니다. ::: ### 채널에서 메시지 받기 예를 들어, 타임라인 채널의 경우 새로운 게시물이 올라오면 메시지를 발신합니다.해당 메시지를 받으면 타임라인에 새로운 게시물이 올라왔다는 것을 실시간으로 알 수 있습니다.해당 메시지를 받으면 타임라인에 새로운 게시물이 올라왔다는 것을 실시간으로 알 수 있습니다. 채널이 메시지를 보내면 다음과 같은 데이터가 JSON으로 스트림에 유입됩니다. ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` 여기서, - `id`에는 앞서 언급한 해당 채널에 접속할 때 설정한 ID가 설정되어 있습니다.이제 이 메시지가 어느 채널에서 온 것인지 알 수 있습니다.이제 이 메시지가 어느 채널에서 온 것인지 알 수 있습니다. - `type`에는 메시지 종류가 설정됩니다.채널에 따라 어떤 종류의 메시지가 흘러나오는지는 달라질 수 있습니다.스트림 상에서 채널에 접속함으로써, 다양한 정보를 받거나 보낼 수 있게 됩니다. - `body`에는 메시지 내용이 설정됩니다.채널에 따라 어떤 내용의 메시지가 흘러나오는지는 달라질 수 있습니다.예를 들어 타임라인을 가져와서 사용자에게 보여줬다고 가정해 봅시다.여기서 누군가가 해당 타임라인에 포함된 어떤 게시물에 리액션을 했다고 가정해봅시다. ### 채널에 메시지 보내기 채널에 따라서는 메시지를 받을 수 있을 뿐만 아니라, 여기에서 메시지를 보내거나 어떤 조작을 할 수 있는 경우도 있습니다. 채널에 메시지를 보내려면 다음과 같은 데이터를 JSON으로 스트림에 전송합니다. ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` 여기서, - `id`에는 앞서 설명한 해당 채널에 접속할 때 설정한 ID를 설정합니다.이제 이 메시지가 어떤 채널을 대상으로 하는 메시지인지 식별할 수 있습니다.이제 이 메시지가 어떤 채널을 대상으로 하는 메시지인지 식별할 수 있습니다. - `type`에는 메시지 종류를 설정합니다.채널에 따라 어떤 종류의 메시지를 받을 수 있는지는 달라질 수 있습니다.이 메시지를 보내면 이후 해당 게시물에 대한 이벤트가 발생하지 않습니다. - `body`에는 메시지 내용을 설정합니다.채널에 따라 어떤 내용의 메시지를 받아들이는지는 달라질 수 있습니다.해당 게시물이 더 이상 화면에 표시되지 않거나, 해당 게시물에 대한 이벤트를 더 이상 받을 필요가 없을 때는 캡처 해제를 신청하세요. ### 채널 연결 끊기 채널에서 연결을 끊으려면 다음과 같은 데이터를 JSON으로 스트림에 전송합니다. ```js { type: 'disconnect', body: { id: 'foobar' } } ``` 여기서, - `id`에는 앞서 설명한 해당 채널에 접속할 때 설정한 ID를 설정합니다. ## 게시물 캡처 Misskey는 게시물 캡쳐라는 메커니즘을 제공하고 있습니다.지정한 게시물의 이벤트를 스트림으로 받아볼 수 있는 기능입니다.지정한 게시물의 이벤트를 스트림으로 받아볼 수 있는 기능입니다. 예를 들어 타임라인을 가져와서 사용자에게 보여줬다고 가정해 봅시다.하지만 클라이언트 입장에서는 어떤 게시물에 리액션이 붙었다는 것을 알 길이 없기 때문에 실시간으로 리액션을 타임라인의 게시물에 반영하여 표시하는 등의 작업을 할 수 없습니다. 이 문제를 해결하기 위해 Misskey는 게시물 캡처 기능을 제공하고 있습니다.게시물을 캡처하면 해당 게시물에 대한 이벤트를 수신할 수 있기 때문에 실시간으로 반응을 반영할 수 있습니다. 아래에서는 게시물 캡처 기능을 사용하는 방법을 설명합니다.아래에서는 게시물 캡처 기능을 사용하는 방법을 설명합니다.어떤 캡처 이벤트가 있는지는 [캡처 이벤트 목록](./note-capture-events.md)에서 확인할 수 있습니다. ### 게시물 캡처하기 게시물을 캡처하려면 스트림에 다음과 같은 메시지를 보냅니다. ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` 여기서, - `id`에 캡처하고자 하는 게시물의 `id`를 설정합니다. 이 메시지를 보내면 Misskey에 캡쳐를 요청하는 것이며, 이후 해당 게시물에 대한 이벤트가 흘러나오게 됩니다. 여기서, ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` 이 메시지를 보내면 이후 해당 게시물에 대한 이벤트가 발생하지 않습니다. - `body` 내의 `id`에는 이벤트를 발생시킨 게시물의 ID가 설정됩니다. - `body` 내의 `type`에는 이벤트의 종류가 설정됩니다. - `body` 내의 `body`에는 이벤트의 세부 정보가 설정됩니다. ### 게시물 캡쳐 해제하기 해당 게시물이 더 이상 화면에 표시되지 않거나, 해당 게시물에 대한 이벤트를 더 이상 받을 필요가 없을 때는 캡처 해제를 신청하세요. 다음 메시지를 보냅니다: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` 여기서, - `id`에 캡처를 해제하고 싶은 게시물의 `id`를 설정합니다. 이 메시지를 보내면 이후 해당 게시물에 대한 이벤트가 발생하지 않습니다. ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # 채널 목록 ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "글로벌 타임라인의 노트를 표시하는 채널입니다." --- # `globalTimeline` 글로벌 타임라인의 노트를 표시하는 채널입니다. ## 파라미터 없음 ## 이벤트 ### `note` 글로벌 타임라인에 새로운 노트가 추가되었을 때 발생합니다. ## 동작 없음 ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "홈 타임라인의 노트를 표시하는 채널입니다." --- # `homeTimeline` 홈 타임라인의 노트를 표시하는 채널입니다. ## 파라미터 없음 ## 이벤트 ### `note` 홈 타임라인에 새로운 노트가 추가되었을 때 발생합니다. ## 동작 없음 ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "소셜 타임라인의 노트를 표시하는 채널입니다." --- # `hybridTimeline` 소셜 타임라인의 노트를 표시하는 채널입니다. ## 파라미터 없음 ## 이벤트 ### `note` 소셜 타임라인에 새로운 노트가 추가되었을 때 발생합니다. ## 동작 없음 ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "로컬 타임라인의 노트를 표시하는 채널입니다." --- # `localTimeline` 로컬 타임라인의 노트를 표시하는 채널입니다. ## 파라미터 없음 ## 이벤트 ### `note` 로컬 타임라인에 새로운 노트가 추가되었을 때 발생합니다. ## 동작 없음 ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "기본적인 정보가 흐르는 채널입니다." --- # `main` 기본적인 정보가 흐르는 채널입니다. ## 파라미터 없음 ## 이벤트 ### `notification` 알림을 받았을 때 발생합니다. ### `mention` 멘션을 받았을 때 발생합니다. ### `reply` 답장을 받았을 때 발생합니다. ### `renote` Renote 될 때 발생합니다. ### `follow` 다른 사용자가 나를 팔로우했을 때 발생합니다. ### `followed` 자신이 다른 사용자를 팔로우했을 때 발생합니다. ### `unfollow` 자신이 다른 사용자를 팔로우 해제했을 때 발생합니다. ### `messagingMessage` 메시지를 받았을 때 발생합니다. ### `readAllNotifications` 모든 알림을 이미 읽었을 때 발생합니다. ### `unreadNotification` 새로운 알림이 있을 때 발생합니다. ### `unreadMention` 새로운 멘션이 있을 때 발생합니다. ### `readAllUnreadMentions` 모든 멘션이 이미 읽혔을 때 발생합니다. ### `unreadSpecifiedNote` 새로운 다이렉트 포스팅이 있을 때 발생합니다. ### `readAllUnreadSpecifiedNotes` 모든 다이렉트 포스팅을 이미 읽었을 때 발생합니다. ### `unreadMessagingMessage` 새로운 메시지가 있을 때 발생합니다. ### `readAllMessagingMessages` 모든 메시지가 이미 읽은 상태일 때 발생합니다. ## 조작 없음 ================================================ FILE: content/ko/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 게시물 캡처 이벤트 ## `reacted` 대상 노트에 리액션이 발생했을 때 발생합니다. ## `pollVoted` 대상 노트에 첨부된 설문지에 투표를 한 경우 발생합니다. ## `deleted` 대상 노트가 삭제된 경우 발생합니다. ================================================ FILE: content/ko/docs/4.for-developers/api/token/1.index.md ================================================ # 액세스 토큰 획득하기 API를 사용하기 위해서는 API를 사용할 계정에 연결된 **액세스 토큰**을 발급받아야 합니다. 기본적으로 API는 요청 시 액세스 토큰이 필요합니다. :::tip 사용자와 그 사용자와 연결된 액세스 토큰은 일대다 관계이며, 한 사용자에게 여러 개의 액세스 토큰이 발급될 수 있습니다. ::: 자신의 액세스 토큰을 쉽게 획득할 수 있을 뿐만 아니라, 자신의 애플리케이션을 사용하게 될 불특정 사용자의 액세스 토큰을 획득할 수도 있습니다. - 전자의 경우: \*\*"자신의 액세스 토큰을 수동으로 발행하기"\*\*로 이동합니다. - 후자의 경우: \*\*"애플리케이션 사용자에게 액세스 토큰 발급 요청하기"\*\*로 이동합니다. ## 자신의 액세스 토큰을 수동으로 발행하기 Misskey Web의 '설정 > API'에서 자신의 액세스 토큰을 발행할 수 있습니다. :::danger 액세스 토큰은 다른 사람이 알 수 없도록 해야 합니다. ::: ## 애플리케이션 사용자에게 액세스 토큰 발급 요청하기 애플리케이션을 이용하는 사용자(이하 단순히 '사용자'라 칭함)의 액세스 토큰을 얻기 위해서는 아래의 방법 중 하나를 사용합니다. :MkIndex ## API 이용 액세스 토큰을 획득하면 각종 엔드포인트에 요청하여 API를 사용할 수 있습니다. :::tip - HTTP API는 모두 POST이며, 요청/응답 모두 JSON 형식입니다(drive/files/create 제외). - 요청 헤더에 `Content-Type: application/json`을 지정합니다. - 액세스 토큰은 `i`라는 파라미터 이름으로 요청 본문 JSON에 포함합니다. - 기본 URL은 `https://{서버의 도메인}/api`입니다. ::: ### Authorization header를 사용하는 방식 아래와 같이 헤더의 `Authorization` 필드를 지정합니다. ```js fetch("https://misskey.io/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### i를 사용하는 방식 액세스 토큰이 있는 바디의 예시 (meta의 경우):. ```json { "i": "HogEFugA1341", "detail": false } ``` API에 대한 자세한 내용은 API 레퍼런스를 참조하세요. :::warning Misskey는 REST를 채택하고 있지 않습니다. ::: 또한 Misskey는 HTTP API뿐만 아니라 스트리밍 API도 제공하고 있습니다.스트리밍 API에 대한 자세한 내용은 [이 문서](../streaming/)를 참고하세요. ================================================ FILE: content/ko/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0 이상에서 사용할 수 있는 Misskey만의 간단한 인증 방법을 설명합니다. --- # MiAuth 방식의 액세스 토큰 획득 방식 애플리케이션을 이용하는 사용자(이하 단순히 '사용자'라 칭함)의 액세스 토큰을 발급받으려면 아래 절차에 따라 발급을 요청합니다. :::tip 아래 설명할 방법은 앱을 만들지 않고 즉시 액세스 토큰을 발급하는 MiAuth라는 방법입니다. - [더 많이 사용되는 OAuth 방식으로 액세스 토큰을 획득하는 방법도 있습니다.](./oauth.md) - [앱 생성 방식으로 액세스 토큰을 획득하는 방법도 있습니다(구식).](./app.md) ::: ::: ## Step 1 UUID를 생성합니다.이후 이를 **세션 ID**라고 부릅니다. :::danger 이 세션 ID는 매번 생성해야 하며, 반복해서 사용하지 않도록 해야 합니다. ::: ## Step 2 사용자가 애플리케이션 접근을 허용한 후 다음 형식의 URL에 POST 요청하면 응답으로 액세스 토큰이 포함된 JSON이 반환됩니다.애플리케이션 인증 양식을 사용자의 브라우저에 표시하도록 합니다.인증 양식은 다음 형식의 URL로 열 수 있습니다. ``` https://{host}/miauth/{session} ``` 여기서, - HTTP API는 모두 POST이며, 요청/응답 모두 JSON 형식입니다(drive/files/create 제외).보통 호스트는 사용자가 입력합니다. - `{session}`부분은 세션 ID로 대체합니다. 또한 URL에 몇가지 옵션을 쿼리 파라미터로 설정할 수 있습니다: | 이름 | 설명 | | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | `name` | 애플리케이션 이름. | | `icon` | 애플리케이션 아이콘의 이미지 URL. | | `callback` | 인증이 끝난 후 리디렉션되는 URL.인증이 끝난 후 리디렉션되는 URL.
리디렉션 시에는 `session`이라는 쿼리 파라미터로 세션 ID가 붙습니다. | | `permission` | 애플리케이션이 요구하는 권한.
요청하는 권한을 `,`로 구분하여 열거합니다.권한 목록은 [여기](../permission.md)에서 확인할 수 있습니다. | :::tip{label='例'} ``` https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 사용자가 애플리케이션 접근을 허용한 후 다음 형식의 URL에 POST 요청하면 응답으로 액세스 토큰이 포함된 JSON이 반환됩니다. ``` https://{host}/api/miauth/{session}/check ``` 여기서, - `{host}`부분은 사용자 서버의 호스트로 대체합니다.보통 호스트는 사용자가 입력합니다. - 요청 헤더에 `Content-Type: application/json`을 지정합니다. 응답에 포함된 속성은 다음과 같습니다. | 이름 | 설명 | | ------- | --------------------------- | | `token` | 사용자 액세스 토큰. | | `user` | 사용자 정보. | ================================================ FILE: content/ko/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0 이상에서 사용할 수 있는 OAuth2.0 방식의 인증 방법을 설명합니다. --- # OAuth 방식의 액세스 토큰 획득 방식 애플리케이션을 이용하는 사용자(이하 단순히 '사용자'라 칭함)의 액세스 토큰을 발급받으려면 아래 절차에 따라 발급을 요청합니다. :::tip 아래 설명할 방법은 [OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)이라는 방법입니다.일반 OAuth는 앱을 만들어야 하지만, [IndieAuth](https://indieauth.spec.indieweb.org/)의 확장으로 앱을 만들지 않고도 사용할 수 있도록 되어 있습니다.앱 소개를 위한 웹페이지를 만듭니다.페이지가 HTTPS 주소로 접속할 수 있어야 합니다.페이지 어딘가에 아래와 같은 HTML 코드를 작성합니다. OAuth 방식은 사용할 수 있는 라이브러리가 많기 때문에 가능하면 라이브러리를 사용하는 것을 추천합니다. 현재 이 방식을 사용하려면 웹페이지가 필요합니다.현재 이 방식을 사용하려면 웹페이지가 필요합니다.웹페이지를 준비할 수 없거나 Misskey 2023.9.0 이전 버전을 지원하고자 하는 경우, 아래의 방법을 사용하시기 바랍니다. - [Misskey 전용 MiAuth 방식으로 액세스 토큰을 얻는 방법](./miauth.md) - [앱 생성 방식으로 액세스 토큰을 획득하는 방법(구식).](./app.md)](./app.md) ::: ::: ## Step 1 앱 소개를 위한 웹페이지를 만듭니다.페이지가 HTTPS 주소로 접속할 수 있도록 해 주세요.페이지 어딘가에 아래와 같은 HTML 코드를 적습니다. ```html ``` 나중에 `redirect_uri` 주소로 인증 코드가 전송됩니다. ## Step 2 PKCE `code_verifier`와 `code_challenge` 문자열, 그리고 `state` 문자열을 생성합니다. - code_verifier`의 경우 최소 43자, 최대 128자로 알파벳 대/소문자 및 `-. - code_challenge`문자열은`code_verifier\\` 문자열을 SHA256 알고리즘으로 해시하여 base64url로 인코딩한 결과를 사용합니다. - `state` 문자열에는 특별한 제한이 없습니다.임의의 문자열을 사용합니다. :::danger 이 문자열은 매번 생성해야 하며, 반복해서 사용하지 마십시오. ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)와 같은 라이브러리를 사용하거나 OAuth 라이브러리의 PKCE 기능을 사용하는 것을 추천합니다. ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 상대 서버의 OAuth 정보를 가져옵니다.데이터는 JSON 형식으로 되어 있습니다. ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`부분은 사용자 서버의 호스트로 대체합니다.보통 호스트는 사용자가 입력합니다._\~\\` 안에 있는 문자로 제한됩니다. 여기서는 `authorization_endpoint`와 `token_endpoint`를 사용합니다. :::tip 다음 단계에서 사용되는 `scope`에 대한 정보도 `scopes_supported`에서 확인할 수 있습니다. ::: ## Step 4 애플리케이션 인증 양식을 사용자의 브라우저에 표시합니다.애플리케이션 인증 양식을 사용자의 브라우저에 표시합니다.인증 양식은 다음 형식의 URL로 열 수 있습니다. ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` 여기서, - `{authorization_endpoint}`부분은 이전 정보 획득에서 얻은 주소로 대체합니다. - `{client_id}`부분은 앱 소개 페이지의 주소로 대체합니다. - `{code_challenge}`부분은 앞서 생성한 `code_challenge` 문자열로 대체합니다. - `code_challenge_method`부분은 항상 `S256`으로 합니다. - `{redirect_uri}`부분은 소개 페이지에서 사용하고 있는 전송처 주소로 대체합니다. - `{scope}`부분은 애플리케이션이 요청하는 권한으로 대체합니다.요청하는 권한을 \`\`로 구분하여 열거합니다.권한 목록은 [여기](../permission.md)에서 확인할 수 있습니다.요청할 권한을 ` `로 구분지어 열거합니다.권한 목록은 [여기](../permission.md)에서 확인할 수 있어요. - `{state}`부분은 앞서 생성한 `state` 문자열로 대체합니다. :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 사용자가 애플리케이션 접근을 허용하면 `redirect_uri` 주소로 인증 코드가 URL 파라미터 형태로 전송됩니다. | 이름 | 설명 | | ------- | --------------------------------------- | | `code` | 사용자 인증 코드. | | `state` | 인증 요청에 사용된 `state` 문자열. | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`문자열이 제대로 일치하는지 확인하고 다음 단계로 넘어갑니다. ## Step 6 전송된 인증 코드를 사용하여 POST로 액세스 토큰을 요청합니다.요청 대상은 `token_endpoint`가 됩니다.전송된 인증 코드를 사용하여 POST로 액세스 토큰을 요청합니다.요청 대상은 `token_endpoint`가 됩니다.데이터 형식은 `application/json`과 `application/x-wwww-form-urlencoded`를 사용할 수 있습니다.각 매개변수는 다음과 같습니다.각 매개변수는 다음과 같습니다. | 이름 | 설명 | | --------------- | ----------------------------------------------- | | `grant_type` | 항상 `authorization_code`로 설정합니다. | | `client_id` | 인증 요청에 사용되는 `client_id` 문자열. | | `redirect_uri` | 인증 요청에 사용된 `redirect_uri` 문자열. | | `scope` | 인증 요청에 사용된 `scope` 문자열. | | `code` | 획득한 인증 코드. | | `code_verifier` | 앞서 생성한 `code_verifier` 문자열. | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: 응답은 JSON 객체 형태로, 거기서 `access_token`을 가져와서 사용합니다. ================================================ FILE: content/ko/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth 도입 이전(v12.27.0 미만)의 액세스 토큰 획득 방법을 설명합니다. --- # 앱 생성 방식으로 액세스 토큰을 획득하는 방법(구식) [MiAuth](./miauth.md) 도입(12.27.0)이나 [OAuth](./oauth.md) 도입(2023.9.0) 이전의 기존 접근 토큰 획득 방법에 대해 설명합니다. 12.27.0 이하 버전의 서버에서는 이 구식 방식을 사용해야 합니다. ## 1. 애플리케이션 제작 [`app/create` 엔드포인트(endpoints/app/create.html)에 정보를 전송하고 `appSecret`을 가져옵니다. ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` 이때 `callbackUrl`에 원하는 URL을 포함시키면 다음 접근 권한 작업이 종료될 때 `token`을 쿼리 문자열에 포함시키면서 해당 URL로 콜백하게 됩니다. ## 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', }); ``` ================================================ FILE: content/ko/docs/4.for-developers/bot/1.index.md ================================================ # Bot 만들기 [Misskey API](/docs/for-developers/api/)를 이용하여 Bot을 개발할 수 있습니다. - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js에서 동작하는 TypeScript로 만든 Bot 구현 봇을 만들 때는 프로필 설정에서 봇 플래그를 켜두는 것을 강력히 추천합니다. ## 관련 자료 - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/ko/docs/4.for-developers/plugin/_dir.yml ================================================ title: "플러그인 및 Play 생성" description: "플러그인과 Play를 만드는 방법 및 각종 레퍼런스를 공개 중입니다." ================================================ FILE: content/ko/docs/4.for-developers/plugin/create-play.md ================================================ # Play 만들기 Play는 AiScript로 자신만의 UI를 조립하여 사용자 측에서 미니 앱이나 게임을 만들 수 있는 기능입니다. 만든 Play는 Misskey 서버에 공개할 수 있으며, 누구나 당신이 만든 Play를 플레이할 수 있습니다. ## AiScript Play는 AiScript를 사용하여 만들 수 있습니다. ## API Misskey Web은 플러그인에 대한 API를 공개하고 있으며, 이를 이용하여 클라이언트의 기능을 확장할 수 있습니다. 어떤 API가 있는지 [AiScript Misskey 확장 API 레퍼런스](./plugin-api-reference/)를 참고하시기 바랍니다. ================================================ FILE: content/ko/docs/4.for-developers/plugin/create-plugin.md ================================================ # 플러그인 만들기 Misskey 웹 클라이언트의 플러그인 기능을 사용하면 클라이언트를 확장하고 다양한 기능을 추가할 수 있습니다. ## 플러그인 예시 다음은 완전한 플러그인의 예시입니다.이 플러그인은 [`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)를 사용하여, 게시 폼에 "복어 펀치 버튼"(フグパンチボタン)을 추가하는 내용입니다. 이 플러그인을 설치하면, 게시 폼에 있는 플러그인 메뉴에 "복어 펀지" 항목이 추가됩니다.클릭 후, 게시 폼에 있는 텍스트에 `フグパンチ!!!!🐡( '-' 🐡 )`(복어펀치!!!!)가 추가됩니다. ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // 노트에 아무것도 적지 않은 경우 フグパンチ 를 대신 올리기 rewrite('text', fugu) } else { // 내용이 있는 노트의 경우 제일 앞에 フグパンチ 를 추가 후 다음 줄로 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript 플러그인은 AiScript로 작성되는 스크립트입니다. ## 메타데이터 플러그인은 AiScript의 메타데이터 임베딩 기능을 사용하여 기본적으로 플러그인의 메타데이터를 정의해야 합니다.메타데이터의 예는 다음과 같습니다.메타데이터의 예는 다음과 같습니다. ```AiScript /// @ 0.12.4 ### { name: "플러그인 이름" version: "4.2.1" author: "저자명" description: "설명" } ``` 메타데이터는 다음과 같은 속성을 포함하는 객체입니다. ### name 플러그인 이름 ### author 플러그인 제작자 ### version 플러그인 버전.숫자를 지정해 주세요.숫자를 지정해 주세요. ### description 플러그인 설명 ### permissions 플러그인이 요구하는 권한.플러그인이 요구하는 권한.MisskeyAPI에 요청할 때 사용됩니다. API 요청 방법은 [AiScript Misskey 확장 API 레퍼런스](/docs/for-developers/plugin/plugin-api-reference/)에서 확인할 수 있습니다. :::tip permission 목록은 [여기](/docs/for-developers/api/permission/)에서 확인할 수 있습니다. ::: ### config 플러그인의 설정 정보를 나타내는 객체. 키에 설정명, 값에 다음 속성을 포함합니다. 어떤 API가 있는지 [플러그인 API 레퍼런스](./plugin-api-reference/)를 참고하시기 바랍니다. #### type 설정값의 종류를 나타내는 문자열.아래에서 선택하세요.string number boolean #### label 사용자에게 표시할 설정 이름 #### description 설정 설명 #### default 설정 기본값 ## API Misskey Web은 플러그인에 대해 API를 공개하고 있으며, 이를 이용하여 클라이언트의 기능을 확장할 수 있습니다. ## 플러그인 배포하기 v2023.11.0 이상에서는 웹 사이트에서 한 번의 클릭으로 플러그인을 직접 설치할 수 있습니다. 플러그인 설치 기능을 제공하는 경우, 사이트에 API를 구현해야 합니다.자세한 내용은 [여기](./publish-on-your-website.md)에서 확인할 수 있습니다.자세한 내용은 [여기](../publish-on-your-website.md)에서 확인할 수 있습니다. ================================================ FILE: content/ko/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # 플러그인 API 레퍼런스 여기서는 Misskey에서 독자적으로 확장한 AiScript API에 대해 소개합니다. :::tip 표준으로 제공되는 AiScript API는 [여기](https://aiscript-dev.github.io/guides/get-started.html)에서 확인할 수 있습니다. ::: ## `Mk:api(endpoint params)` ### `USER_ID` 현재 사용자 ID ### `USER_NAME` 현재 사용자 이름 ### `USER_USERNAME` 현재 사용자의 핸들(`@`보다 뒤쪽 부분.예: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` 커스텀 이모티콘 목록.다음과 같은 객체가 배열로 저장되어 있습니다. ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 현재 Misskey Web의 설정 언어.RFC4646 호환 형식(예: `ja-JP`)으로 표현됩니다. ### `SERVER_URL` 현재 서버의 URL.`https://www.example.com`과 같이 오리진으로 표현됩니다. ## 전 분야 공통 함수 ### `Mk:dialog(title, text, type)` 대화 상자를 표시합니다.type에는 다음과 같은 값을 설정할 수 있습니다.\ `info` `success` `warn` `error` `question`\ 생략하면 `info`가 됩니다. ### `Mk:toast(text)` 토스트를 표시합니다.다이얼로그와 달리 유저가 다이얼로그를 닫는 조작이 필요하지 않기에 어떠한 조작이 완료됐다 등의 단순한 알림에 사용할 수 있습니다. ### `Mk:confirm(title, text, type)` 확인 대화상자를 표시합니다.type에는 다음과 같은 값을 설정할 수 있습니다.\ `info` `success` `warn` `error` `question`\ 생략하면 `question`이 됩니다.확인 대화상자를 표시합니다.type에는 다음과 같은 값을 설정할 수 있습니다.\ `info` `success` `warn` `error` `question`\ 생략하면 `question`이 됩니다.\ 사용자가 "OK"를 선택하면 `true`를, "취소"를 선택하면 `false`를 반환합니다. ```AiScript let response = Mk:confirm( '조작을 계속하시겠습니까?' '이 조작은 취소할 수 없습니다. 잘 확인해주십시오.' 'warning' ) if (response) { // OK한 경우 } else { // 취소한 경우 } ``` ### `Mk:api(endpoint, params, token?)` Misskey API에 요청합니다.Misskey API에 요청합니다.첫 번째 인수로 엔드포인트 이름, 두 번째 인수로 매개변수 객체를 전달합니다. 세 번째 인수에 token을 넣을 수도 있습니다.플러그인에서 동작하는 경우, 인수 지정 없이 로그인 중인 사용자의 token이 사용됩니다. :::tip permission 목록은 [여기](/docs/for-developers/api/permission/)에서 확인할 수 있습니다. ::: ```AiScript ### { name: "플러그인 이름", version: "4.2.1", author: "작성자", description: "설명문", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 추후에 구분할 수 있도록 임의의 키와 값을 정합니다. 여기서 정한 값은 AiScript 컨텍스트가 끝나도 남아있으므로, Mk:load로 다시 불러올 수 있습니다. ### `Mk:load(key)` Mk:save에서 정해둔 키로 값을 불러올 수 있습니다. ### `Mk:remove(key)` ※v2025.1.0(가칭) 이후에 사용 가능 Mk:save에서 정해둔 키로 값을 삭제할 수 있습니다. 정해둔 키 값을 입력한 경우 아무것도 하지 않습니다. ### `Mk:url()` 지금 열고 있는 페이지의 URL 주소(브라우저의 주소 창에 표시된 URL)을 불러옵니다. ### `Mk:nyaize(text)` 지정된 텍스트를 Nyaize합니다.MFM 문장에는 적용되지 않습니다. ## 플러그인 전용 ### `Plugin:register_post_form_action(title, fn)` 글 작성란에 액션을 추가합니다.\ 첫 번째 인수에 액션 이름, 두 번째 인수에 액션이 선택되었을 때의 콜백 함수를 적습니다.\ 첫 번째 인수에 글 작성란 오브젝트 안에 있는 `text` 또는 `cw`를, 두 번째 인수엔 첫 번째 인수에서 정한 항목의 값을 콜백 함수로 정할 수 있습니다. ```AiScript Plugin:register_post_form_action('메뉴에 표시될 항목명', @(note, rewrite) { // 노트에 변경을 가한다. rewrite('text', `{{note.text}{Str:lf}#해시태그`) }) ``` ### `Plugin:register_note_action(title, fn)` 노트 메뉴에 항목을 추가합니다.첫 번째 인수로 항목 이름, 두 번째 인수로 항목이 선택되었을 때의 콜백 함수를 전달합니다.\ 콜백 함수에는 첫 번째 인수에 대상 노트 객체가 전달됩니다. ```AiScript Plugin:register_note_action('메뉴에 표시할 항목 이름', @(note) { // 노트를 사용하여 무언가 하기 Mk:api('notes/create', { text: '인용' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` 사용자 메뉴에 항목을 추가합니다.첫 번째 인수에 항목 이름, 두 번째 인수에 항목이 선택되었을 때의 callback 함수를 전달합니다.사용자 메뉴에 항목을 추가합니다.첫 번째 인수로 항목 이름, 두 번째 인수로 항목이 선택되었을 때의 콜백 함수를 전달합니다.\ 콜백 함수에는 첫 번째 인수로 대상 사용자 객체가 전달됩니다. ```AiScript Plugin:register_user_action('메뉴에 표시할 항목명', @(user) { // 사용자 정보를 이용하여 무언가 하기. Mk:api('notes/create', { text: `{user.name}님, 환영합니다! ` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UI에 표시되는 노트 정보를 다시 작성합니다.\ 콜백 함수가 첫번 째 인수를 대상으로 노트 오브젝트를 전달합니다.\ 콜백 함수의 반환값으로 노트를 다시 작성합니다.\ `null`을 반환하면 해당 노트를 숨깁니다. :::warning v2025.8.0 이후에서는 이 함수는 **동기적으로 실행**됩니다. 내부적으로 비동기적인 처리가 실행되는 함수('Mk:api' 등)는 실행되지 않고 에러가 발생합니다. 또 동기적으로 실행된다는 것은 플러그인의 실행 중에는 다른 JavaScript의 처리가 전부 정지된다는 것을 의미합니다.이로 인해 다른 플러그인에 비해 문제가 있는 스크립트(무한 반복 등)가 실행된 경우, 호스트의 Javascript 환경에 큰 영향을 끼칠 수 있습니다.충분히 주의해 주십시오. ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // 노트 내용 바꾸기 note.text = note.text.replace('apple', 'banana') // null을 반환하면 숨기기 if (note.text.include('낫토')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` 노트를 올렸을 때 노트 정보를 다시 작성합니다.\ 콜백 함수가 첫 번째 인수를 대상으로 노트 객체를 전달합니다.\ 콜백 함수의 반환값으로 노트를 다시 작성합니다. ```AiScript Plugin:register_note_post_interruptor(@(note) { // 노트 내용 바꾸기 note.text = note.text.replace('사과', '바나나') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` 페이지 열람 시 페이지 정보를 다시 작성합니다.\ 콜백 함수에는 첫 번째 인수로 대상 Page 객체가 전달됩니다.\ 콜백 함수의 반환값으로 Page가 다시 작성됩니다. ```AiScript Plugin:register_note_post_interruptor(@(page) { // 페이지 내용 재작성(생략) return page }) ``` ### `Plugin:open_url(url)` 첫 번째 인수로 전달된 URL을 브라우저의 새 탭에서 엽니다. ### `Plugin:config` 플러그인 설정이 저장되는 오브젝트입니다.플러그인 정의의 config에서 설정한 키로 값이 들어갑니다.플러그인 정의의 config에서 설정한 키로 값이 들어갑니다. ## Play 전용 상수 ### `THIS_ID` Play의 ID ### `THIS_URL` Play의 URL ## UI 제어 함수 (Play, AiScript App 위젯에서 사용 가능) ### `Ui:root` UI의 루트 요소. ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` 의 당의구문.UI의 루트 요소를 다시 작성합니다. ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` ID를 부여한 컴포넌트를 가져와서 조작할 수 있습니다. ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## 컴포넌트 함수(Play, AiScript App 위젯에서 사용 가능) 아래 요소에서는 초기화 시 `Ui:C:xxx(props id)`와 같이 두 번째 인수에 컴포넌트 id를 지정할 수 있습니다(아래 레퍼런스에서는 모두 생략했습니다).지정한 id는 `Ui:get(id)` 함수로 얻을 수 있으며, `update` 함수로 컴포넌트의 내용을 직접 변경할 수 있습니다(자세한 내용은 `Ui:get(id)` 레퍼런스를 참고하세요). ### 레이아웃 #### `Ui:C:container` 너비, 색상 등 서식 설정이 가능한 외곽 틀(컨테이너) ```AiScript Ui:C:container({ children: [ // 컨테이너 안에 넣고 싶은 컴포넌트 배열 Ui:C:text({text: "A"}) ] align: 'center' // 정렬 left,center,right bgColor: '#000' // 배경색 fgColor: '#00f' // 글자색 font: 'serif' // 폰트 serif,sans-serif,monospace borderWidth: 1 // 테두리 폭 borderColor: '#f00' // 테두리 색 padding: 1 // 여백 폭 rounded: false // 모서리 둥글게 하기 hidden: false // 감추기 }) ``` #### `Ui:C:folder` 아코디언 요소(사용자가 열고 닫을 수 있는 컨테이너) ```AiScript Ui:C:folder({ children: [ // 컨테이너 안에 넣고 싶은 컴포넌트 배열 Ui:C:text({text: "A"}) ] title: "타이틀" // 폴더의 개폐 부분에 기재할 제목 opened: true // 처음부터 열려있는가 }) ``` ### 텍스트 #### `Ui:C:text` 일반 텍스트 ```AiScript Ui:C:text({ text: "내용" // 표시할 텍스트 size: 1 // 글자크기 bold: false // 굵게(볼드) color: '#000' // 글자색 font: 'monospace' // 폰트 serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFM 텍스트 ```AiScript Ui:C:mfm({ text: "내용" // 표시할 텍스트 size: 1 // 글자크기 bold: false // 굵게(볼드) color: '#000' // 글자색 font: 'monospace' // 폰트 serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] 의 MFM 구문 핸들러 <: `{id} clicked` } }) ``` ### Forms #### `Ui:C:button` 버튼 ```AiScript Ui:C:button({ text: "버튼" // 버튼에 표시할 텍스트 onClick: @() { // 누를 때의 이벤트 } primary: false // 색을 입힐까? rounded: false // 모서리를 둥글게 할까? disabled: false // 비활성화할 것인가? }) ``` #### `Ui:C:buttons` 버튼 (가로로 나란히) ```AiScript Ui:C:buttons({ buttons: [ // 버튼 정의 배열. props의 지정 형식은 Ui:C:button과 동일. {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 변경되었을 때의 이벤트. 첫 번째 인수로 변경 후 상태 (boolean) } default: false // 기본값 label: "라벨" // 스위치 옆의 텍스트 caption: "캡션" // 스위치 아래에 표시되는 보조 텍스트 }) ``` #### `Ui:C:textInput` 1줄의 텍스트 입력 ```AiScript Ui:C:textInput({ onInput: @(text) { // 입력되었을 때의 이벤트. 첫 번째 인수로 변경 후의 값 } default: "default" // 기본값 label: "라벨" // 입력란 위의 텍스트 caption: "캡션" // 입력란 하단에 표시하는 보조 텍스트 }) ``` #### `Ui:C:numberInput` 1줄의 텍스트 입력 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 입력되었을 때의 이벤트. 첫 번째 인수로 변경 후의 값 } default: "default" // 기본값 label: "라벨" // 입력란 위의 텍스트 caption: "캡션" // 입력란 하단에 표시하는 보조 텍스트 }) ``` #### `Ui:C:textarea` 여러 줄의 텍스트 입력 ```AiScript Ui:C:textarea({ onInput: @(text) { // 입력되었을 때의 이벤트. 첫 번째 인수로 변경 후의 값 } default: "default" // 기본값 label: "라벨" // 입력란 위의 텍스트 caption: "캡션" // 입력란 하단에 표시하는 보조 텍스트 }) ``` #### `Ui:C:select` 여러 값 중 하나를 선택하는 형식 ```AiScript Ui:C:select({ items: [ // text에는 표시할 텍스트를, value에는 변경 시 이벤트에서 전달할 값을 입력합니다. {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 변경되었을 때의 이벤트. 첫 번째 인수로 변경 후 value } default: "v1" // 기본값 value label: "라벨" // 입력란 위의 텍스트 caption: "캡션" // 입력란 하단에 표시하는 보조 텍스트 }) ``` ### 노트 게시 관련 #### `Ui:C:postForm` Play에 직접 게시 양식 삽입하기 ```AiScript Ui:C:postForm({ form: { cw: "CW 주석" // CW를 지정할 경우 '요약' 텍스트 text: "게시글 내용" // 게시글 양식의 기본 문자열 // 다음은 Misskey v2024.5.0 이상에서 지정할 수 있습니다. visibility: "home" // 기본 게시물의 공개 범위 (지정하지 않은 경우 public) localOnly: false // 기본적으로 연합 없음 여부 (미지정인 경우 false) } }) ``` #### `Ui:C:postFormButton` 투고 양식을 호출할 수 있는 특수 버튼 ```AiScript Ui:C:postFormButton({ text: "게시!" // 버튼에 표시할 텍스트 primary: false // 색을 입힐까? rounded: false // 모서리를 둥글게 할까? form: { cw: "CW 주석" // CW를 지정할 경우 ‘요약’ 텍스트 text: "게시글 내용" // 게시글 양식의 기본 문자열 // 다음은 Misskey v2024.5.0 이상에서 지정할 수 있습니다. visibility: "home" // 기본 게시물의 공개 범위 (지정하지 않은 경우 public) localOnly: false // 기본적으로 연합 없음 여부 (미지정인 경우 false) } }) ``` ================================================ FILE: content/ko/docs/4.for-developers/publish-on-your-website.md ================================================ # 플러그인 테마 배포하기 Misskey v2023.11.0 이상에서는 다양한 추가 리소스를 웹 사이트에서 직접 설치할 수 있습니다.특히 플러그인이나 테마 등을 많이 제작하는 분이나 플러그인 배포 사이트를 만들고 싶은 분들에게 유용한 기능입니다.특히 플러그인이나 테마 등을 많이 제작하는 분이나 플러그인 배포 사이트를 만들고 싶은 분들에게 유용한 기능입니다. ## 외부에서 설치할 수 있는 리소스 - [플러그인](./plugin/create-plugin/) ... `plugin` - [테마](../for-users/features/theme/) ... `theme` ## 구조 설치 시 Misskey Web에서 수신하는 리소스에 예기치 않은 변조가 발생하지 않도록 배포 사이트 측과 Misskey에서 해시값을 계산하고, Misskey에서 대조하는 과정을 거칩니다. 해시값이 일치하지 않으면 리소스를 설치할 수 없도록 되어 있습니다. ## 구현 방법 ### 배포 페이지 측 '설치' 버튼에 아래와 같은 URL을 가진 링크를 생성합니다. ``` https://{HOST}/install-extentions?url={API_URL}&hash={HASH} ``` - `{HOST}`: 사용자 서버의 호스트로 대체합니다.호스트는 일반적으로 사용자가 입력할 수 있도록 하는 것이 일반적입니다.호스트는 일반적으로 사용자가 입력할 수 있도록 하는 것이 일반적입니다. - `{API_URL}`: 리소스 배포용 API(후술)의 URL로 대체합니다.상대 경로 불가상대 경로 불가 - `{HASH}`: 배포할 리소스의 SHA-512 해시로 대체합니다.\*\*리소스 내 줄바꿈 코드는 LF로 통일해 주세요.**구조** ### 리소스 배포용 API 측 위의 `{API_URL}`로 지정한 엔드포인트에서 아래와 같은 JSON 객체를 반환합니다. ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@kakkokari_gtyih@misskey.io',\n}" } ``` - `type`: 위의 '외부에서 설치 가능한 리소스'의 코드를 참고하여 입력합니다. - `data`: 리소스의 소스 코드를 **문자열**로 입력하세요. - 이때 줄 바꿈 코드는 **LF**로 해주세요. ================================================ FILE: content/ko/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # 릴리즈 노트 Misskey의 릴리즈 노트를 표시합니다. ## 2025.11.1 출시일: 2025/11/28 ### 클라이언트 - Enhance: 리액션의 수신 설정에 캡션을 추가 #15921 - Fix: 페이지의 내용이 빠져 나오는 경우가 있는 문제를 수정 - Fix: 내비게이션 바를 아래에 표시하고 있을 때, 항목 수가 많으면 표시가 깨지는 문제를 수정 - Fix: 헤더 메뉴의 채널 신규 작성 항목에서 채널 작성 페이지로 넘어가지 않는 문제를 수정 #16816 - Fix: 라디오 버튼에 공백의 선택지가 표시되는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 일부 상황에서 글 입력란의 투어가 올바르게 표시되지 않는 문제를 수정 - Fix: 글 입력란의 리셋 버튼으로 주석이 리셋되지 않는 문제를 수정 - Fix: Play의 AiScript 버전 판정(v0.x계·v1.x계의판정)이 올바르게 작동하지 않는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: 팔로우 신청을 취소할 때 확인 다이얼로그의 글이 부정확한 문제를 수정 - Fix: 첫 로딩 시에 에러가 발생하는 경우가 있는 문제를 수정 - Fix: 즐겨찾기 클립의 목록 표시가 올바르게 작동하지 않는 문제를 수정 - Fix: AiScript Misskey 확장 API에서 각종 함수의 매개변수로 명시적으로 `null`이 지정돼있는 경우의 처리를 수정 ### 서버 - Enhance: 메모리 사용량을 줄였습니다. - Enhance: 종속성 업데이트 - Fix: 단어 뮤트의 문자 수 계산을 수정 - Fix: 채널의 실시간 업데이트 시, Locked down 설정에서 로그인하지 않은 경우에 노트를 표시할 수 없게 설정한 경우에도 노트가 표시되는 문제를 수정 - Fix: DeepL API의 API 키 지정 방식 업데이트에 대응 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 내부 실장의 업데이트에서 대응 가능한 업데이트입니다.Misskey 측의 설정 방법에 업데이트는 없습니다. - Fix: DB 복제를 이용하는 환경에서 쿼리가 실패하는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 출시일: 2025/11/16 ### 일반 - Feat: 채널 음소거 기능의 실장 #10649 - 채널의 개요 화면 우상단에서 음소거를 할 수 있습니다. (링크 복사, 공유, 설정과 같은 열) - Enhance: Node.js 24.10.0를 지원하게 되었습니다. - Enhance: Docker의 Node.js가 24.10.0으로 업데이트됐습니다. - 종속성 업데이트 ### 클라이언트 - Feat: 이미지에 메타 데이터를 포함한 프레임을 붙일 수 있는 기능 - Enhance: 프리셋을 작성하지 않아도 이미지에 워터 마크를 붙일 수 있게 되었습니다. - Enhance: 관리하고 있는 채널의 구분이 쉽게 되었습니다. - Enhance: 프로필로의 링크를 사용자 팝업의 아바타에 추가했습니다. - Enhance: 사용자의 노트, 팔로우, 팔로워 페이지로의 링크를 사용자 팝업에 추가했습니다. - Enhance: 푸시 알림을 하기 위한 권한 확인을 더욱 확실하게 할 수 있게 되었습니다. - Enhance: 글 입력란의 튜토리얼을 추가했습니다. - Enhance: '자동으로 더 보기'를 대부분의 기능에서 이용할 수 있게 되었습니다. - Enhance: 안테나·목록 설정 화면과 타임라인의 동선을 개선했습니다. - 안테나·목록의 목록 화면의 항목을 선택하면 설정 화면이 아닌 타임라인으로 이동하게 되었습니다. - 안테나·목록의 설정 화면의 우상단에 타임라인으로 이동하는 버튼을 추가했습니다. - Fix: 컨페티 효과가 애니메이션 설정을 고려하지 않고 항상 표시되는 문제를 수정 - Fix: 내비게이션 바의 실시간 모드 전환 버튼의 상태를 더욱 알기 쉽게 표시하도록 수정 - Fix: 페이지의 제목이 길 때, 빠져나오는 문제를 수정 - Fix: 글 입력란의 아바타가 올바르게 표시되지 않는 문제를 수정 #16789 - FIx: 커스텀 이모티콘(β) 화면에서 변경이 올바르게 하이라이트되지 않는 문제를 수정 #16626 ### 서버 - Enhance: Remote Notes Cleaning이 복잡도가 높은 노트의 처리를 중단하지 않고 다음 노트에서 재개하게 되었습니다. - Fix: 채널의 설명란의 최소 문자 수 제한을 제거했습니다. ## 2025.10.2 출시일: 2025/10/27 ### 클라이언트 - Fix: 앱 내에서 캐시를 삭제하면 테마를 재적용하기까지 렌더링이 바르게 이루어지지 않는 문제를 수정 - Fix: 기한이 무기한인 설문에 투표할 수 없는 문제를 수정 ## 2025.10.1 출시일: 2025/10/24 ### 일반 - Enhance: 리모트 사용자에게 부여한 역할 배지를 표시할 수 있게 되었습니다. (옵트인) 성능 상의 문제로 기본으로 비활성화돼있습니다.'제어판 > 성능'에서 활성화할 수 있습니다. - 종속성 업데이트 ### 클라이언트 - Enhance: 덱 메인 컬럼의 헤더를 클릭해 페이지 상단/하단으로 스크롤할 수 있게 되었습니다. - Enhance: 초안/예약 게시물 목록은 글 입력란의 계정 메뉴 안으로 이동됐고, 초안 보존은 '...' 메뉴 안으로 이동됐습니다. - Fix: 커스텀 이모티콘 화면(beta)의 aliases에서 사용되는 구분 문자가 일치하지 않은 문제를 수정 #15614 - Fix: 배너 이미지의 폭이 표시 영역과 일치하지 않는 문제를 수정 - Fix: 일부 브라우저에서 배너 이미지가 상하 중앙에 표시되지 않는 문제를 수정 - Fix: 내비게이션 바의 설정에서 삭제한 항목이 바로 다시 추가되지 않는 문제를 수정 - Fix: 역할 정책에 따라 다이렉트 메시지가 비활성화돼있을 때 덱의 다이렉트 메시지 컬럼의 작동을 개선 - Fix: 이미지의 마스크에서 터치 조작이 불안정한 문제를 수정 - Fix: 워터 마크의 각종 작동 수정 - 워터 마크를 회전시키면 왜곡되는 문제를 수정 - 워터 마크를 전면에 깔면 상하 좌우 반전된 이미지/문자가 표시되는 문제를 수정 - 워터 마크를 회전시켰을 때 화면에서 빠져 나온 부분을 고려할 수 있게끔 수정 - Fix: 투표가 종료된 후 투표 결과가 바르게 표시되지 않는 문제를 수정 - Fix: 다크 모드의 동기화가 제대로 기능하지 않는 경우가 있는 문제를 수정 - Fix: iOS에서 동영상의 압축을 하면 음성 트랙을 잃어버리는 문제를 수정 ### Server - Enhance: 관리자/모더레이터는 파일의 업로드 제한을 우회할 수 있게 되었습니다. - Enhance: 보안 향상 ## 2025.10.0 출시일: 2025/10/08 ### NOTE - pnpm 10.16.0이 필요합니다. - 역할의 가져오기 기능의 이용 여부 정책 기본값이 '아니오'로 바뀌었기에 기본에서 변경하지 않은 서버에서는 적절히 설정을 변경해 주십시오. - 역할의 업로드 가능 파일 종류 정책의 기본값으로 'text/\*'가 추가되었기에 기본에서 변경하지 않은 서버에서는 적절히 설정을 변경해 주십시오. ### 일반 - Feat: 예약 게시를 할 수 있게 되었습니다. - 기본 작성 가능 수는 1입니다.적절히 역할 정책에서 설정을 해주십시오. - Enhance: 광고마다 민감한 광고 플래그를 설정할 수 있게 되었습니다. - Enhance: 종속성 업데이트 - Enhance: 번역 업데이트 ### 클라이언트 - Feat: 계정의 QR 코드를 표시하고 읽어들일 수 있게 되었습니다. - Feat: 동영상을 압축해 업로드할 수 있게 되었습니다. - Feat: (실험적) 브라우저 상에서 노트의 번역을 할 수 있게 되었습니다. - Enhance: 채팅의 일본어 명칭이 다이렉트 메시지로 돌아왔기에 베타 버전 기능에서는 없어졌습니다. - Enhance: 이미지 편집에서 마스크 이펙트(칠하기, 흐림 처리, 모자이크)를 추가했습니다. - Enhance: 이미지 편집의 집중선 이펙트를 강화했습니다. - Enhance: 워터 마크에 계정의 QR 코드를 추가할 수 있게 되었습니다. - Enhance: 테마를 드래그 앤 드롭할 수 있게 되었습니다. - Enhance: 이모티콘 선택기의 크기를 더 크게 할 수 있게 되었습니다. - Enhance: 커스텀 이모티콘이 많은 경우 서버의 이모티콘 목록 페이지가 멈추지 않게 되었습니다. - Enhance: 시각 계산을 위한 기준값을 한 곳에서 관리할 수 있게 되었고, 성능을 향상시켰습니다. - Enhance: '문의' 페이지에서 버그의 조사 등에 도움이 되는 정보(OS나 브라우저의 버전 등)를 얻고 복사할 수 있게 되었습니다. - Fix: iOS에서 장치가 다크 모드인 경우 처음 읽어들일 때 에러가 발생하는 문제를 수정 - Fix: 액티비티 위젯의 그래프 모드가 동작하지 않는 문제를 수정 - Fix: 유니코드 이모티콘의 추가 사전을 설치하면 유니코드 이모티콘이 이모티콘 선택기에서 검색할 수 없게 되는 이모티콘이 있는 버그를 수정 ### 서버 - Enhance: 유저 IP를 확실하게 불러오기 위해 설정 파일에 FastifyOptions.trustProxy를 추가했습니다. ## 2025.9.0 출시일: 2025/09/08 ### 클라이언트 - Enhance: AiScriptApp 위젯으로 구문 에러를 감지해도 다이얼로그가 아닌 위젯 내에 에러를 표시하게 되었습니다. - Enhance: /flush 페이지로 사이트 캐시를 삭제할 수 있게 되었습니다. - Enhance: 클립/목록/안테나/역할 추가계 메뉴 항목에서 표시 건수를 확장했습니다. - Enhance: '캐시 삭제' 버튼으로 브라우저의 캐시 삭제를 할 수 있게 되었습니다. - Enhance: Ctrl 키(Command 키)를 누르면서 링크를 클릭하면 새로운 탭에서 열게 되었습니다. - Fix: 푸시 알림을 활성화할 수 없는 문제를 수정 - Fix: RSS Ticker 위젯이 올바르게 작동하지 않는 문제를 수정 - Fix: 프로필을 복원 후 계정 교체가 되지 않는 문제를 수정 - Fix: 에러 이미지가 가로로 늘려지는 문제를 수정 ### 서버 - Fix: webp 등의 이미지에 대해 민감한 미디어 검출이 적용되지 않는 문제를 수정 ## 2025.8.0 출시일: 2025/08/31 ### 안내 - 지원되는 Node.js의 최소 버전이 **22.15.0**으로 되었습니다. ### General - 노트를 삭제했을 때 관련 노트가 동시에 삭제되지 않게 되었습니다. - API에서 'replyId가 존재하지만 reply가 null'이거나 'renoteId가 존재하지만 renote가 null'이라는 지금까지는 없던 패턴이 나타나게 됩니다. - 정기적으로 오래된 리모트 게시를 삭제하는 기능이 실장됐습니다. - 제어판→성능→Remote Notes Cleaning에서 활성화할 수 있습니다. - 데이터베이스의 비대화를 방지할 수 있습니다. - 기존 서버에서 해당 기능을 활성화한 경우, 처리량이 많아지기에 일시적으로 스토리지 사용량이 증가할 수 있습니다. - 증가량을 억제하려면 최대 처리 단속 시간을 기본보다 짧게 해 주십시오. - 데이터베이스 크기로의 효과가 보이지 않는 경우 autovacuum이 활성화돼있는지 확인해 주십시오. - 서버의 초기 설정이 완료되기까지는 연합이 켜져 있지 않게 되었습니다. - 공개 범위 명칭인 '다이렉트'가 '지명'으로 고쳐졌습니다. - 실제 동작에 맞는 명칭으로 되었고, 익숙하지 않은 사람도 이해하기 쉽게 되었습니다. - 다른 서비스의 '다이렉트 메시지'에 해당하는 Misskey의 기능은 '채팅'입니다만, (과거 버전 Misskey에서도 해당 기능은 '채팅'이 아닌 '다이렉트 메시지'였습니다) '다이렉트 게시'라는 명칭의 기능이 존재하면 이쪽이 다이렉트 메시지 기능인 것처럼 오해를 불러일으켰습니다. - 이후 '채팅'의 명칭을 '다이렉트 메시지'로 되돌릴 수도 있습니다. - mfm.js를 업데이트했습니다. - Enhance: Unicode 15.1 및 16.0에 수록된 이모티콘에 대응하게 되었습니다. - Enhance: acct에 '.'가 들어있는 사용자의 멘션에 대응하게 되었습니다. - Fix: Unicode 이모티콘에 인접한 이체자 선택기('U+FE0F')가 이모티콘으로 인식되는 문제를 수정 - Enhance: 사용자 검색을 역할 정책에서 제한할 수 있게 되었습니다. ### Client - Feat: AiScript가 1.1.0으로 업데이트되었습니다. - 플러그인은 1.x에 대응한 것이 필요합니다. - Play는 그대로 동작합니다만, 신규로 작성된 프리셋은 1.x로 됩니다. - 이전 버전에서 비활성화된 note_view_interruptor가 활성화되었습니다. - 핸들러는 동기적이어야 합니다. - Feat: 세이프 모드 - 플러그인·테마·커스텀 CSS의 사용에서 클라이언트의 시작에 문제가 발생했을 때 이를 비활성화해 시작합니다. - 아래의 방법으로 세이프 모드를 시작할 수 있습니다. - 'g' 키를 연타하기 - URL에 '?safemode=true'를 붙이기 - PWA의 단축키로 Safemode를 선택해 시작하기 - Feat: 로그인되지 않았을 때 표시되는 톱 페이지의 스타일을 선택할 수 있게 되었습니다. - 제어판→브랜딩→입구 페이지의 스타일 - Feat: 페이지의 탭 바를 아래에 표시할 수 있게 되었습니다. - Feat: (실험적) iOS에서의 촉각 피드백을 활성화할 수 있게 되었습니다. - Feat: 제어판을 검색할 수 있게 되었습니다. - Enhance: '자동으로 더 보기' 옵션이 활성화되고, 안정성이 향상되었습니다. - Enhance: 튀르키예어 (tr-TR)에 대응하게 되었습니다. - Enhance: 불필요한 번역 데이터를 읽지 않게 되고, 성능이 향상되었습니다. - Enhance: 이미지 이펙트의 매개변수명의 다언어 대응을 하게 되었습니다. - Enhance: 노트를 비표시하는 상대 기간을 1개월 단위로 자유롭게 지정할 수 있게 되었습니다. - Enhance: 메일 주소 확인 화면의 UI를 개선했습니다. - Enhance: 아이콘의 스크롤 따르기를 비활성화할 때 적용 범위를 강화했습니다. - Enhance: 렌더링 성능 향상 - Enhance: 의존 소프트웨어 업데이트 - Fix: 글 입력란에서 파일의 업로드가 중지 또는 실패했을 때 처리를 수정 - Fix: 일부 설정 검색 결과가 존재하지 않는 경로로 되는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: 테마 에디터가 동작하지 않는 문제를 수정 - Fix: 채널의 하이라이트 페이지에 노트가 표시되지 않는 문제를 수정 - Fix: 컬럼의 이름이 바르게 목록/채널의 이름으로 되지 않는 문제를 수정 - Fix: 여러 멘션을 한 행에 기술한 경우 제안이 바르게 표시되지 않는 문제를 수정 - Fix: 멘션의 조건을 만족해도 특정 조건('-'가 포함되는 경우 등)으로 바르게 제안되지 않는 문제를 일부 수정 - Fix: 사용자의 앞뒤 노트를 열람하는 기능이 동작하지 않는 문제를 수정 - Fix: 조회 다이얼로그에서 ap/show로 로컬 사용자를 해결했을 때 @username@null로 넘어가는 문제를 수정 - Fix: 아이콘의 장식을 붙일 때 장식이 표시되지 않는 문제를 수정 - Fix: 터치 조작 중에 마우스 호버 시 사용자 미리보기가 열리는 문제를 수정 - Fix: 관리중인 계정 목록에서 바르게 표시되지 않는 문제를 수정 - Fix: lookup 페이지에서 리모트 URL을 지정했을 때 바르게 동작하지 않는 문제를 수정 ### 서버 - Feat: 서버 관리 명령 - 'pnpm cli foo' 형식으로 실행할 수 있습니다. - 현재 아래의 명령을 이용할 수 있습니다. - 'reset-captcha' - CAPTCHA 설정을 리셋합니다. - Enhance: 노트의 삭제 처리를 효율화했습니다. - Enhance: 전체적인 성능 향상 - Enhance: 의존 소프트웨어 업데이트 - Enhance: 'clips/list' API가 페이지 매김에 대응하게 되었습니다. - Fix: 'notes/mentions'에서 경우에 따라 정렬 순서가 바르게 돌려지지 않는 문제를 수정正 - Fix: SystemWebhook 설정에서 secret을 공란으로 할 수 없는 문제를 수정 - Fix: 삭제된 사용자가 채팅 메시지에 반응하는 경우 'chat/history' 등에서 에러로 되는 문제를 수정 - Fix: Page의 아이캐치 이미지를 드라이브에서 지워도 Page째로 지워지지 않도록 문제를 수정 - Fix: 타임라인 API의 withRenotes: false 시 응답을 수정 ## 2025.7.0 출시일: 2025/07/18 ### Note - Node.js의 최소 버전을 20.10.0에서 20.18.1로 올렸습니다. - 더욱이 특별한 필요가 없는 한 Node.js는 권장 버전인 v22를 사용해 주십시오. ### 일반 - Feat: 노트 초안 기능 - Feat: 클립 내에서 노트를 검색할 수 있게 되었습니다. - Feat: Play를 검색할 수 있게 되었습니다. - Feat: 조정에서 특정 드라이브 파일을 첨부한 채팅 메시지를 목록으로 볼 수 있게 되었습니다. - Enhance: 워터마크 기능을 역할에서 제어할 수 있게 되었습니다. ### Client - Note: '자동으로 더 보기' 옵션은 비활성화로 돼있습니다. - Feat: 조정 로그를 검색할 수 있게 되었습니다. - Enhance: 설정의 자동 백업을 켠 직후에 자동 백업을 하게 되었습니다. - Enhance: 파일 업로드 전에 캡션 설정을 할 수 있게 되었습니다. - Enhance: 파일 업로드 시에 민감한 미디어로 설정돼있는지 표시되게 되었습니다. - Enhance: 글 입력란에 파일을 붙여넣기/드롭했을 때의 UX 개선 - Enhance: 페이지 매김(목록 표시)의 정렬을 거꾸로 할 수 있게 되었습니다. - Enhance: 페이지 매김(목록 표시)의 기준 날짜를 지정할 수 있게 되었습니다. - Enhance: 렌더링 성능 향상 - Fix: 파일이 드라이브의 기정 업로드 위치에 지정한 폴더에 업로드되지 않는 문제를 수정 - Fix: 플러그인을 설치해도 저장 데이터가 남는 문제를 수정 - Fix: 수 시간 후 Misskey의 탭으로 돌아왔을 때 탭이 스로틀링돼있는 동안 업데이트 애니메이션을 계속 보이는 문제를 수정 - Fix: 로그인 하지 않았을 때의 하이라이트 노트의 이미지가 CW의 유무를 고려하지 않고 표시되는 문제를 수정 - Fix: 범위 선택 및 드롭다운에서 조작을 비활성화해야 할 곳에서 비활성화되지 않는 문제를 수정 - Fix: Pull to refresh가 활성화돼있을 때 가로 스크롤이 되지 않는 문제를 수정 ### Server - Enhance: sinceId/untilId를 지정할 수 있는 엔드포인트에서 sinceDate/untilDate도 지정할 수 있게 되었습니다. - Enhance: 메일의 송신자로 서버명을 표시할 수 있게 되었습니다. (서버명이 설정돼있는 경우에만) - Fix: 작업 대기열의 Progress 값을 바르게 계산하도록 수정 ## 2025.6.3 릴리스 날짜: 2025/06/16 ### Client - Fix: 캐시를 삭제하지 않으면 클라이언트가 사용 불가능한 문제를 수정했습니다. ## 2025.6.2 출시일: 2025년 6월 16일 ### Client - Fix: 캐시를 삭제하지 않으면 클라이언트가 사용되지 않을 수 있는 문제를 수정 - 번역 업데이트 ## 2025.6.1 출시일: 2025년 6월 16일 ### Note - AiScript Misskey 확장 API(Misskey 웹 플러그인)의 [note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)는 현재 기술적 문제로 인해 일시적으로 사용이 중지되었습니다. - Misskey 웹 게시물 작성 양식의 미리보기 전환 기능이 “...” 메뉴 내에 배치되었습니다. ### Client - Feat: 이미지에 워터마크를 추가할 수 있게 되었습니다. - Feat: 이미지 편집 기능이 추가되었습니다(실험적) - Enhance: 노트 반응 목록에서, 클릭 가능한 반응을 우선적으로 표시할 수 있는 옵션을 추가합니다. - Enhance: 모든 채팅 메시지를 읽은 상태로 표시할 수 있도록 (설정 → 기타) - Enhance: 음소거한 이모티콘을 기기 간에 동기화할 수 있도록 - Fix: 드라이브 파일 선택이 불안정한 문제를 수정 - Fix: 제어판의 파일 섹션 등의 디자인이 깨진 문제를 수정 - Fix: 사용자의 검색 결과를 추가로 로드할 수 없는 문제를 수정 - Fix: 터치 조작 시 차트의 툴팁이 사라지지 않는 문제를 수정 - Fix: 웰컴 타임라인에 리액션이 표시되지 않는 문제를 수정 - Fix: 데크의 타임라인 열에서 새로운 노트가 추가될 때 소리가 재생되지 않는 문제를 수정 ### Server - Feat: 모든 채팅 메시지를 읽은 것으로 표시하는 API를 추가(chat/read-all) - Fix: 계정 삭제 기능이 정상적으로 작동하지 않는 문제를 수정 - Fix: 아웃박스 페이지의 페이지 분할이 제대로 작동하지 않는 문제를 수정 ### Misskey.js - Fix: misskey-js의 drive/file/create에서 파일 업로드가 되지 않는 문제를 수정 ## 2025.6.0 출시일: 2025/06/02 ### Client - Enhance: 비동기적인 컴포넌트를 불러오기할 때 처리를 강화 - Fix: 리액션의 일부 이모티콘이 중복돼 표시되는 문제를 수정 - Fix: 비유저에 대한 유저 작성 콘텐츠의 공개 범위가 모두 비공개로 된 경우, 로그인할 수 없는 문제를 수정 ### Server - Fix: 비유저에 대한 유저 작성 콘텐츠의 공개 범위가 모두 비공개로 된 경우에도 users/show를 허가할 수 있게 수정 ## 2025.5.1 출시일: 2025/05/31 ### Note - 설정 파일의 아래의 항목이 제어판에서 설정 가능하게 되었습니다. - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 허가하지 않을 것인가가 아닌, 허가할 것인가의 설정(allowExternalApRedirect)으로 되었습니다. ### 일반 - Feat: 로그아웃된 상태로 서버를 열람할 때, 서버 내의 콘텐츠를 비공개할 수 있게 되었습니다. - 조정을 하기 힘든 부적절한 리모트 콘텐츠 등이 자신의 서버 경유로 의도치 않게 인터넷에 공개되는 문제의 방지 등에 도움을 줍니다. - '전부 공개(지금까지의 동작)', '로컬 콘텐츠만 공개(=서버 내에서 받은 리모트 콘텐츠는 비공개)', '전부 비공개' 중에서 선택할 수 있습니다. - 기본값은 '로컬 콘텐츠만 공개'입니다. - Feat: 역할로 업로드 가능한 파일 유형을 설정 가능하게 되었습니다. - 기본은 **텍스트, JSON, 이미지, 동영상, 음성 파일**입니다.zip 등 그 외의 유형의 파일은 포함돼있지 않기에 필요에 따라 설정을 변경해 주십시오. - 경우에 따라서는 파일 유형을 바르게 검사하지 못하는 경우가 있습니다. (특히 텍스트 형식)그 경우, 파일 유형은 application/octet-stream으로 간주됩니다. - 따라서 이들 유형 불명 파일을 허가하고 싶은 경우는 application/octet-stream을 지정에 추가해 주십시오. - Feat: 미리보기 위치가 리디렉션을 포함할 경우, 리디렉션 위치의 콘텐츠를 불러올 것인지를 설정 가능하게 되었습니다. (#16043) - Enhance: UI 아이콘 데이터의 불러오기를 최적화 ### Client - Feat: 드라이브의 UI가 강화됐습니다. - 여러 파일을 정리해 이동할 수 있게 되었습니다. - Feat: 파일의 업로드 UI가 개선됐습니다. - 업로드 전에 파일 정보를 확인할 수 있게 되었습니다. - 압축의 화질을 선택 가능하게 되었습니다. - 업로드에 실패했을 때 재시도할 수 있게 되었습니다. - 업로드 전에 이미지의 자르기를 할 수 있게 되었습니다. - 파일 사이즈의 검사는 압축 후 실제로 업로드되는 사이즈를 검사하게끔 되었습니다. - 파일의 업로드를 중단할 수 있게 되었습니다. - Feat: 서버 초기 설정 위자드가 실장됐습니다. - 간단히 위자드에 따르는 것으로 서버에 최적화된 설정이 적용됩니다. - Feat: Websocket 접속을 하지 않고 Misskey를 이용하는 No Websocket 모드가 실장됐습니다. (beta) - 서버의 성능 향상 기여가 기대됩니다. - 어떠한 이유로 Websocket 접속이 되지 않는 환경에서도 쾌적하게 이용하실 수 있습니다. - 본래의 Websocket 접속을 하는 모드는 실시간 모드로 재정의됐습니다. - 채팅 등 일부 기능은 계속해서 설정과 상관없이 Websocket 접속이 됩니다. - Feat: 이모티콘을 뮤트하는 기능 - 이모티콘(유니코드 이모티콘, 커스텀 이모티콘)별로 뮤트해 안 보이게 할 수 있게 되었습니다. - Feat: 모바일 장치에서 접힌 UI의 펼치기 표시에 전체 화면 페이지를 사용할 수 있게 되었습니다. (실험적) - Enhance: 설정의 동기화를 켜둔 경우 값이 충돌했을 때 값을 병합할 수 있게 되었습니다. - Enhance: 메모리 사용량을 줄였습니다. - Enhance: 이미지의 고화질 플레이스홀더를 비활성화해 성능을 향상시키는 옵션을 추가했습니다. - Enhance: 초대받았지만 참가돼있지 않은 룸을 열었을 때, 초대를 수락할지 묻게끔 되었습니다. - Enhance: 답글에 설문이 있다는 것이 표시되게끔 되었습니다. - Enhance: 노트의 서버 정보의 디자인 개선, 성능 향상 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: 유저 설정에서 URL 미리보기를 비활성화할 수 있게 되었습니다. - Enhance: 팁과 유용한 정보를 추가 - Enhance: 팁과 유용한 정보를 재표시 가능하게끔 되었습니다. - Enhance: AiScript에서 toast를 표시하는 함수 'Mk:toast'를 추가 - Enhance: 구문 하이라이트의 엔진을 JavaScript 베이스로 변경 - 프론트엔드의 불러오기 사이즈를 줄였습니다. - 대부분의 언어의 하이라이트는 문제 없이 작동합니다만, 상호성의 문제로 일부 언어가 정상적으로 하이라이트가 작동하지 않을 가능성이 있습니다.상세한 것은 https://shiki.style/references/engine-js-compat 를 참조해주십시오. - Fix: 채팅에서 동영상 파일을 보내면 동영상의 표시가 깨져 시청할 수 없게 되는 문제를 수정 - Fix: 계정 의존, 초기 상태인 설정 값을 서버 동기화하려 할 때 충돌해 검출되지 않는 문제를 수정 - Fix: "시계" 위젯(Clock)에서 Transparent 설정이 활성화돼있어도 그 배경이 투과되지 않는 문제를 수정 - Fix: 일정 시간 조작이 없으면 동영상 플레이어의 조정을 숨기도록 수정 - Fix: Twitch의 클립이 플레이어에서 재생되지 않는 문제를 수정 ### Server - Enhance: 목록이나 팔로우를 내보내기할 때 답글을 포함할지에 대한 정보를 포함하게 되었습니다. - Enhance: 채팅 룸의 최대 인원 수를 30명에서 50명으로 수정 - Enhance: 노트의 응답에 설문이 첨부돼있는지를 나타내는 플래그 'hasPoll'을 추가 - Enhance: 채팅 룸의 응답에 초대돼있는지를 나타내는 플래그 'invitationExists'를 추가 - Enhance: 속도 제한의 계산 방법을 조정(#13997) - Enhance: 외부 사이트의 OGP 캐시 기간을 조정 - Fix: 채팅 룸이 삭제된 경우, 채팅 룸에서 나온 경우에 읽지 않은 알림의 상태가 계속 남아있는 것을 수정 - Fix: 유저 제외 안테나를 가져오지 못하는 문제를 수정 - Fix: 안테나의 민감한 채널의 노트를 포함할지에 대한 정보가 내보내지지 않는 문제를 수정 - Fix: 뮤트 대상 유저가 인용돼있는 노트가 RN됐을 때 뮤트를 관통하는 문제를 수정 #16009 - Fix: 연합 모드가 '없음'일 경우, 생성되는 HTML 내의 activity json으로의 링크 태그를 생략하도록 수정 - Fix: 제어판에서 초대 코드를 작성하면 작성자의 정보가 기록되지 않는 문제를 수정 - Fix: 제어판의 작업 대기열 페이지에서 Paused인 작업 목록을 열람할 수 없는 문제를 수정 ## 2025.5.0 출시일: 2025/05/07 ### Note - Docker의 Node.js가 22.15.0으로 변경됐습니다. ### Client - Feat: 마우스 휠 드래그로 타임라인을 당겨 업데이트가 가능하게 되었습니다. - 접근성 설정에서 끌 수 있습니다. - Enhance: 타임라인의 성능 향상 - Enhance: 백업된 설정의 프로필을 삭제 가능하게 되었습니다. - Fix: 일부 브라우저에서 아코디언 메뉴의 애니메이션이 작동하지 않는 문제를 수정 - Fix: 다이얼로그의 알림이 화면 밖으로 나가는 문제를 수정 - Fix: 유저 팝업에서 에러가 발생해도 지표가 계속 표시되는 문제를 수정 ### Server - Enhance: 정지된 유저의 노트가 각종 타임라인에서 표시되지 않게 되었습니다. '#15775' - Enhance: 연합의 소프트웨어 및 버전 이름에 따라 발신 정지를 할 수 있도록 되었습니다. '#15727' - Enhance: 2025.4.1 에서 추가된 인덱스의 재생성을 노트를 추가하며 할 수 있도록 되었습니다. '#15915' - 'MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY' 환경 변수를 '1'로 설정하면 거대한 테이블의 기존 컬럼에 관한 인덱스 재생성이 'CREATE INDEX CONCURRENTLY'를 사용할 수 있게 되었습니다. - 여러 서버 프로세스를 클러스터 분석하고 있는 서버에서, 일부 프로세스가 기동하고 있는 상태에서 이 옵션을 활성화해 마이그레이션하는 것으로 타임라인을 줄일 수 있습니다. - 단, 이 옵션을 활성화하는 경우, 인덱스의 작성에 걸리는 시간이 2~3배 이상으로 될 수 있습니다. - 또, 규모가 큰 서버(인스턴스)인 경우에는 인덱스의 작성에 실패해 여러번의 재시도가 필요할 수 있습니다. - Fix: 채널의 팔로우 목록의 결과가 일부 바르지 않은 것을 수정(#12175) - Fix: 파일을 업로드했을 때 파일 이름이 항상 untitled로 되는 문제를 수정 - Fix: 파일의 업로드에 실패하는 문제를 수정 - 글 입력란에서 이미지의 자르기를 하면 'Invalid Param.' 에러로 노트가 게시되지 않는 문제도 해결됩니다. - 이 현상에 의해 이미 노트가 게시되지 않은 상태로 되어있는 경우에는 입력란 우상단의 메뉴에서 초안 데이터의 '리셋'을 해주십시오. ## 2025.4.1 릴리스 날짜: 2025/04/30 ### 일반 - Feat: bull-board를 대체하는 작업 대기열 관리 도구가 구현되었습니다. - Feat: 업로드 가능한 최대 파일 크기를 롤별로 설정할 수 있습니다. - 기본적으로 10MB로 설정되어 있습니다 - Enhance: 채팅의 새 메시지를 푸시 알림으로 알려주는 기능 - Enhance: 서버 블록 대상 서버에 대해 해당 서버의 사용자 및 알려진 게시물이 보이지 않도록 설정합니다. - Enhance: 종속성 업데이트 - Enhance: 번역 업데이트 - Fix: 보안 관련 수정 ### Client - Feat: 채팅 위젯 추가 - Feat: 덱에 채팅 컬럼 추가하기 - Feat: 제목 표시줄을 표시할 수 있도록 - Enhance: 슬러그에서 유니코드 이모티콘을 입력할 때 `:ok:`와 같이 마지막 `:`를 입력한 후 유니코드 이모티콘으로 변환할 수 있도록 개선 - Enhance: 제어판에서 작업 대기열을 지울 수 있는 기능 추가 - Enhance: 테마에서 페이지 헤더 색상 변경 가능 - Enhance: 스와이프 탭 전환 기능 강화 - Enhance: 디자인 다듬기 - Fix: 로그아웃 시 처리가 종료되지 않는 문제 수정 - 수정: 자동 백업이 설정된 환경에서 로그아웃 직전에 설정 백업을 수행하도록 수정 - Fix: 폴더를 연 상태에서 메뉴에서 업로드해도 루트 폴더에 업로드되는 문제 수정 #15836 - Fix: 타임라인의 스크롤 위치를 기억하도록 수정 - Fix: 노트 바로 뒤의 노트 표시 기능에서 노트가 역순으로 표시되는 문제 수정 #15841 - Fix: 계정 마이그레이션 시 안테나 필터 사용자가 업데이트되지 않는 문제 수정 #15843 - 수정: 타임라인에서 노트가 중복으로 표시되는 문제 해결 ### Server - Enhance: 작업 대기열의 성공/실패한 작업도 일정 기간 동안 저장하도록 하여 나중에 문제를 쉽게 조사할 수 있도록 함. - Enhance: 팔로워가 팔로우하고 있는 사용자라면 팔로워 한정 게시물의 노트도 안테나로 감지할 수 있게 함 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: 사용자별로 노트 표시 속도가 더 빨라지도록 - 수정: 시스템 계정 이름이 서버 이름과 동기화되지 않는 문제 수정 - Fix: 대문자가 포함된 사용자 URL로 조회할 때 404 오류를 반환하는 문제 #15813 - Fix: 리드 복제본 설정 시 레코드 추가, 갱신, 삭제가 포함된 쿼리 발행 시 master 노드에서 실행되도록 조정( #10897 ) - Fix: 파일 업로드 시 동작 일부 조정(#15895) ## 2025.4.0 릴리스 날짜: 2025/04/09 ### General - Feat: 채팅(쪽지)이 리뉴얼되어 돌아왔습니다. - 기존 DM 기능보다 더 편리하고 효율적으로 구현되었습니다. - 채팅 상대 제한이 가능합니다. - 누구나 / 팔로워만 / 팔로워만 / 상호만 / 허용하지 않음 중에서 선택할 수 있습니다. - 내가 메시지를 보낸 상대와는 위의 설정과 상관없이 채팅이 가능합니다. - 채팅 기능의 개방 여부를 규칙으로 제어할 수 있습니다. - 방을 만들어 여러 명이 함께 채팅할 수도 있습니다. - 과거에 내가 보낸 메시지, 나에게 보낸 메시지를 검색할 수 있습니다. - 참여 중인 방을 음소거하여 알림이 오지 않도록 설정할 수 있습니다. - 메시지에도 리액션이 가능합니다. - 현재로서는 원격 사용자가 채팅을 허용하도록 설정되어 있는지 여부를 확인할 방법이 없기 때문에 로컬 사용자끼리만 사용할 수 있습니다. - Feat: 계정 이전 시 이전 계정에서 새 계정으로 역할을 복사할 수 있는 기능이 추가되었습니다. - 관리자가 역할 설정에서 마이그레이션 시 복사 여부를 지정할 수 있습니다. - Enhance: 보안 강화를 위해 작업 대기열의 대시보드(bull-board) 통합이 삭제되었습니다. - Misskey 네이티브로 대시보드를 구현할 예정입니다. - Enhance: 프런트엔드 오류 추적이 가능하도록 - `.config/default.yml` 중 `sentryForFrontend` 항목을 적절히 설정해 주세요. - 외부 서비스인 Sentry에 오류 정보가 전송됩니다.해당 지역의 법규에 따라 적절한 개인정보 보호정책을 수립하여 운영하시기 바랍니다. - Enhance: 음소거 중인 사용자를 사용자 검색 결과에서 제외하도록 설정합니다. - Enhance: 안테나에서 민감한 채널의 노트를 제외할 수 있도록 '#14177' - Fix: 알림의 페이지 매김에서 2개 이상 불러오지 못하는 문제 수정 ### Client - Feat: 설정 관리 기능 강화 - 내부 프로세싱이 새롭게 개선되어 안정성과 성능이 향상되었습니다. - 모든 클라이언트 설정이 내보내기(백업)/가져오기 대상에 포함되었습니다. - 플러그인, 테마, 클라이언트에 추가된 모든 계정 정보도 포함되었습니다. - 설정 데이터를 서버에 자동으로 백업할 수 있도록 - 설정 → 설정의 프로필 → 자동 백업에서 활성화할 수 있습니다. - 새로운 기기에서 로그인하거나 브라우저에서 설정 데이터가 사라졌을 때 자동으로 복원됩니다(복원을 건너뛸 수도 있습니다). - 원하는 설정 항목을 기기 간 동기화할 수 있도록 - 설정 항목의 “...” 메뉴 → “기기 간 동기화” - 동기화를 켰을 때 서버에 저장된 값과 로컬에 저장된 값이 충돌하는 경우, 어느 쪽을 우선시할지 선택할 수 있습니다. - 임의의 설정 항목을 초기값으로 재설정할 수 있도록 - 설정 항목의 “...” 메뉴 → “초기값으로 재설정” - 계정별로 설정값이 분리되는 설정과 그렇지 않은 클라이언트 설정이 혼재되어 있던(그리고 분리 여부를 설정할 수 없었던) 것을, 기본적으로 클라이언트 전체에 일률적으로 적용되도록 하고, 개별적으로 계정별로 다른 설정을 할 수 있도록 변경하였습니다. - 설정 항목의 '...' 메뉴 → '계정으로 덮어쓰기'를 켜면 해당 계정에서만 설정값을 적용하도록 할 수 있습니다. - 로그아웃 시 설정 데이터도 브라우저에서 삭제되어 프라이버시가 향상되었습니다. - 다시 로그인하면 서버 백업에서 설정 데이터를 복원할 수 있습니다. - 내보낸 설정 데이터를 다른 서버에서 가져와서 적용할 수 있게 되었습니다(설정 이동). - 설정 정보 마이그레이션은 자동으로 이루어지지만, 어떤 이유로 실패한 경우 설정 → 기타 → 이전 설정 정보 마이그레이션에서 재시도할 수 있습니다. - 과거에 생성된 백업 데이터는 현재 호환되지 않으므로 주의하시기 바랍니다. - Feat: 화면을 겹쳐서 표시하는 옵션 구현(실험적) - 설정 → 기타 → 실험적 기능 → Enable stacking router view - Enhance: 플러그인 관리 강화 - 설치/제거/설정 변경 시 리로드가 필요 없게 되었습니다. - Enhance: 로그아웃 시 브라우저에 저장된 웹 클라이언트 데이터를 모두 지우도록 설정 - Enhance: Deck UI에서 컬럼 간 여백을 설정할 수 있도록 - Enhance: Deck UI에서 Deck 메뉴의 위치를 설정할 수 있도록 - Enhance: Deck UI에서 내비게이션 바 위치 설정 가능 - Enhance: 아이콘의 스크롤 추적을 비활성화하여 성능을 향상시킬 수 있습니다. - Enhance: CW 주석 텍스트가 입력되지 않은 경우, Post 버튼을 비활성화합니다. - Enhance: CW를 비활성화한 경우, 주석 텍스트가 최대 입력 글자 수를 초과하더라도 게시할 수 있도록 - Enhance: 테마 설정 화면 디자인 개선 - Enhance: 게시 양식 설정 메뉴 개선 - 제출 양식을 재설정할 수 있도록 - 문자 수 카운트 부활 - Enhance: 2단계 인증 시 복구 코드 파일 이름에 서버 URL을 포함하도록 - Enhance: 전체적인 다듬기 - Enhance 전반적인 성능 향상 - Enhance: 파일 업로드 시 기본적으로 압축 여부를 선택할 수 있는 옵션이 사라지고, 업로드 시 압축 여부를 선택할 수 있도록 변경되었습니다. - 이미지 데이터 붙여넣기 및 삭제 시 압축이 적용되었습니다. - Fix: 로딩 직후 스크롤을 시도할 때 중간에 멈추는 경우가 있는 문제 수정 - Fix: 테마 전환 시 일부 색상이 변경되지 않는 문제 수정 - Fix: iPadOS에서 마우스 커서로 Deck UI를 스크롤할 수 없는 문제 해결 - 참고: 구조상 클래식 UI를 새로운 디자인 시스템으로 전환하는 것이 어렵기 때문에 클래식 UI가 삭제되었습니다. - Deck UI에서 컬럼을 중앙에 배치하고, 메인 컬럼 좌우에 위젯 컬럼을 배치하고, 내비게이션 바를 상단에 표시하여 클래식 UI를 어느 정도 재현할 수 있습니다. ### Server - Enhance 전반적인 성능 향상 - Fix: 프로필 추가 정보에서 잘못된 URL을 입력했을 때 조회 오류를 내는 문제 수정 - Fix: ActivityPub 요청 URL 검사 구현이 사양을 따르지 않는 문제를 수정 - Fix: 연합 없음 모드에서도 외부에서 조회가 가능했던 문제 수정 - Fix: 테스트용 WebHook 페이로드의 `emojis` 파라미터가 실제와 다른 문제를 수정 - 수정: 비로그인 상태에서 타임라인 스트림에 접속했을 때, 로그인이 필요한 노트가 표시되는 경우가 있는 문제 수정 ## 2025.3.1 릴리즈 날짜: 2025/03/09 ### General - pnpm을 v10으로 업데이트 - Corepack 제거 ### Client - Feat: 설정 검색 추가 (실험적) - Enhance: 설정 항목 재배치 ### Server - Fix: DB 마이그레이션 중에 시스템 계정의 사용자 ID 결정이 잘못되는 문제 수정 - Fix: user.featured 열이 상황에 따라 JSON 문자열이 되었던 문제 수정 ## 2025.3.0 출시일: 2025/03/06 ### General - Enhance: 프록시 계정을 시스템 계정으로 작성하도록 개정 - Enhance: OAuth에서 외부 앱에서 로고를 제공하는 경우 표시할 수 있도록 개정 (서식은 https://indieauth.spec.indieweb.org/20220212/#example-2 에 준합니다.) - Fix: 시스템 계정을 삭제할 수 있는 문제 수정 ### Client - Enhance: 모더레이터가 민감한 설정을 변경할 때 확인 대화상자를 내도록 개정 - Enhance: 'UI 애니메이션 줄이기'로 화면상의 이펙트도 줄일 수 있게 되었습니다. - Enhance: 글 입력란에서 미디어의 첨부 가능 개수를 반전시켰습니다. - 여태까지의 표시는 '첨부 가능 남은 개수/상한수'였습니다만, '첨부 개수/상한수'로 변경됐습니다. - Fix: 팔로우됐을 때 메시지가 깜빡이는 문제를 수정 - Fix: 게시 다이얼로그가 사이즈 한도를 초과했을 때 스크롤되지 않는 문제를 수정 ### Server - Fix: 특정 경우에 ActivityPub의 처리가 교착 상태로 되는 문제를 수정 - Fix: S3 호환 오브젝트 스토리지에서 파일 업로드에 실패하는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 출시일: 2025/02/27 ### General - Feat: 액세스 토큰 발행 시에 알림이 오게 되었습니다. - Feat: 실험적인 GoogleAnalytics 서포트를 추가 - 종속성 업데이트 ### Client - Feat: 글 입력란에서 이미지를 미리보기 가능하게 되었습니다. - Enhance: 글 입력란의 '성가신 경우도 있습니다' 다이얼로그를 표시하는 조건에 CW를 고려하게 되었습니다. - Enhance: 안테나, 목록 등의 이름을 컬럼명의 기본값으로 하게 되었습니다. '#13992' - Enhance: 클라이언트 에러 화면을 여러 언어로 대응합니다. - Enhance: 개발자 모드로 메뉴에서 파일 ID를 복사 가능하게 되었습니다. '#15441' - Enhance: 노트에 묻힌 미디어의 텍스트 메뉴에서 관리자용 파일 관리 화면을 열 수 있게 되었습니다.(#15440) - Enhance: 리액션할 때 확인 다이얼로그를 표시할 수 있게 되었습니다. - Enhance: 제어판의 유저 검색에서 입력된 정보를 페이지 이동으로 사라지지 않게 되었습니다. '#15437' - Enhance: CW의 주석으로 입력된 문자 수를 표시 - Enhance: 노트 검색 페이지의 디자인 수정 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: 노트 페이지에서 클립 목록이 표시되지 않는 문제를 수정 - Fix: 조건부 역할을 수동으로 할당할 수 있는 도선을 삭제했습니다. '#13529' - Fix: 임베디드 플레이어에서 외부 페이지로 이동이 되지 않는 문제를 수정 - Fix: Play의 재불러오기 시에 UI가 이전 상태 그대로인 문제를 수정 '#14378' - Fix: 커스텀 이모티콘 관리 화면(beta)에서 isSensitive/localOnly 고급 검색이 제대로 되지 않는 문제 수정(#15445) - Fix: 유저의 추천에 @을 입력해도 추천 결과가 사라지지 않도록 수정 '#14385' - Fix: CW의 주석이 100 문자를 넘은 경우, 노트 게시 버튼이 비활성화되도록 수정 - Fix: 테마 선택에서 현재 테마가 초기 표시되지 않는 문제를 수정 - 번역의 업데이트 ### Server - Enhance: 사칭 대책으로 ActivityPub 조회가 되었을 때 리모트 리디렉션을 거부 가능하게 되었습니다. (config.disallowExternalApRedirect) - Fix: 'following/invalidate'에서 팔로워를 해제하려는 유저의 정보를 반환하도록 수정 - Fix: 오브젝트 스토리지 설정에서 Prefix를 설정하지 않은 경우 null 혹은 공백 문자로 되는 문제를 수정 - Fix: HTTP 프록시와 그 제외 설정을 한 상태에서 커스텀 이모티콘의 일괄 가져오기를 했을 때, 제외 설정이 제대로 되지 않는 것을 수정(#8766) - Fix: Pgroonga에서의 검색 시에 처음 키워드만이 검색에 사용되는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: 메일 주소의 형식이 바르지 않으면 이후의 처리를 하지 않도록 수정 - Fix: 'update-meta'에서 objectStoragePrefix에 S3_SAFE이고 URL-safe이지 않은 문자열을 사용하지 못하도록 수정 - Fix: 클립의 설명란을 업데이트할 때 공란으로 되지 않는 문제를 수정 - Fix: 팔로워가 아닌 유저에게 리노트 혹은 답글을 받았을 경우에 노트의 Delete 접근성이 보내지지 않는 문제를 수정 ## 2025.2.0 출시일: 2025/02/05 ### General - Fix: Docker 빌드에 실패하는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: 패스키에서 패스워드리스 로그인이 되지 않는 문제를 수정 - Fix: 일부 환경에서 민감한 파일을 포함한 노트의 비표시가 제대로 되지 않는 문제를 수정 - Fix: 데이터 세이버 활성화 시에도 유저 페이지의 '파일' 탭에서 이미지가 불러오기되는 문제를 수정 - Fix: MFM의 'sparkle' 이펙트가 바르게 표시되지 않는 문제를 수정 - Fix: 페이지의 URL에 슬래시가 포함돼있는 경우 페이지가 바르게 표시되지 않는 문제를 수정 - Fix: 덱의 프로필이 신규 작성되지 않는 문제를 수정 - Fix: 보안에 관한 수정 - 지역화 업데이트 - Play가 실장됐기에 페이지 기능인 '소스 보기'는 삭제됐습니다. ### Server - Enhance: 페이지의 URL에 사용 가능한 문자를 한정할 수 있게 되었습니다. - FIx: 개별 알림 페이지의 meta 태그 출력 조건이 잘못돼있던 것을 수정 ## 2025.1.0 릴리즈 날짜: 2025/01/28 ### Note - [중요] 노트 검색 공급자 추가에 따라 config 파일(default.yml 등)의 구성이 약간 변경됩니다. - 새로운 설정 항목 “fulltextSearch.provider”가 추가되었습니다. sqlLike, sqlPgroonga, meilisearch 중 하나를 설정할 수 있습니다. - 이미 Meilisearch를 사용하고 있다면 **“fulltextSearch.provider”를 “meilisearch”로 설정**해야 합니다. - 자세한 내용은 #14730 및 `.config/example.yml` 또는 `.config/docker_example.yml`의 'Fulltext search configuration'을 참고하시기 바랍니다. - 【개발자 대상】기존 개발 모드에서 HMR이 작동하지 않는 문제가 수정되어 백엔드/프론트엔드 분리형 개발 모드가 삭제되었습니다.개발 환경에서 config 변경이 필요할 수 있습니다. ### General - Feat: 커스텀 이모티콘 관리 화면 리뉴얼 #10996 - 베타버전으로 공개되어 기존 화면도 계속 사용할 수 있습니다. ### Client - Enhance: PC 화면에서 채널이 여러 열로 표시되도록 하기 (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 조회에 실패한 경우, 그 이유를 표시하도록 - Enhance: 단어 뮤트에서 감지된 단어를 표시할 수 있도록 - Enhance: 원격 노트의 링크를 복사할 수 있는 기능 추가 - Enhance: 연합이 화이트리스트 또는 비활성화 된 서버에 대한 디자인 수정 - Enhance: AiScript의 저장 데이터를 명시적으로 삭제하는 함수 `Mk:remove`를 추가했습니다. - Enhance: 노트의 첨부 파일 목록으로 거슬러 올라갈 수 있는 '파일' 탭을 추가했습니다. (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScript의 확장 API 함수에서 인수의 유형 검사를 보다 엄격하게 수행합니다. - Enhance: 쿼리 파라미터로 UI를 일시적으로 변경할 수 있도록 개선 #15240 - Enhance: 원격 이모티콘 가져오기 시 세부 정보 확인 가능 #15336 - 수정: 화면 크기 변경 시 탐색바가 자동으로 접히지 않는 문제 수정 - 수정: 서버 정보 메뉴에 구분선이 없는 문제를 수정했습니다. - Fix: 로그인한 사용자만 노트를 볼 수 있는 경우 로그인 대화창을 닫으면 이후 동선이 사라지는 문제 수정 - Fix: 퍼블릭 범위의 홈 노트의 임베디드 위젯이 로드되지 않는 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 이모티콘 관리 화면에서 일부 이모티콘이 표시되지 않는 문제 수정 - Fix: 플러그인 `register_note_view_interruptor`에서 노트의 서버 정보를 다시 쓸 수 없는 문제 수정 - Fix: Bot 보호 설정 변경 시 실제 검증을 통과해야만 저장할 수 있도록 수정( #15137 ) - Fix: 노트 검색을 사용할 수 없는 경우에도 채널의 노트 검색창이 표시되는 문제 수정 - Fix: `Ui:C:select`에서 값 변경이 화면에 반영되지 않는 문제 수정 - Fix: MiAuth 인증 화면에서 인증 처리 실패 시 콜백 URL로 전환되는 문제 수정 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: 노트 작성 화면에서 첨부 가능한 파일 개수를 초과해도 노트 버튼을 누를 수 있는 문제 수정 - Fix: '계정 관리' 화면에서 사용자 정보 가져오기에 실패한 계정(삭제된 계정 등)이 표시되지 않는 문제 수정 - Fix: MacOS에서 Chrome 계열 브라우저를 사용하는 경우 Misskey를 닫을 때 다른 탭의 오디오 기능을 방해하는 문제 수정 - Fix: 언어 데이터 캐시 상태에 따라 임베디드 위젯이 제대로 실행되지 않는 문제 수정 - Fix: '삭제 후 편집'에서 노트 인용을 해제할 수 없는 문제 수정( #14476 ) - Fix: RSS 위젯이 제대로 표시되지 않는 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: 단어 뮤트 저장 실패 시 API 에러가 발생하는 문제 수정 - Fix: 설문 조사에서 원격 이모티콘이 제대로 그려지지 않는 문제 수정 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 비로그인 시 서버 개요 화면의 메뉴 버튼을 누를 수 없는 현상 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URL에 처음부터 `#pswp`가 포함된 경우 이미지 뷰어가 브라우저의 뒤로 가기 버튼으로 닫히지 않는 문제 수정 - Fix: 롤 생성 화면에서 설정할 수 있는 아이콘 장식의 최대 설치 개수 16개로 제한 - Fix: Firefox Nightly 등에서 아이콘이 불러오지 않는 문제 수정 ### Server - Enhance: pg_bigm을 사용할 수 있도록 노트 검색을 ILIKE 연산자가 아닌 LIKE 연산자로 LOWER()를 곱한 텍스트에 대해 검색하도록 한다. - Enhance: 노트 검색 옵션으로 pgroonga 지원 ( #14730 ) - Enhance: 차트 업데이트 시 DB에 동시 접속하지 않도록 하기 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)에서 SQL 로그 전문 출력 여부 설정 가능 ( #15266 ) - Fix: 사용자 프로필 화면을 주소 입력 등으로 직접 표시할 때 요약 탭 그리기에 실패하는 문제 수정( #15032 ) - Fix: 시작 전 통신 확인이 작동하지 않던 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: 노트 열람을 위해 로그인이 필수인데도 불구하고 피드에 노트가 표시되는 문제 수정 - Fix: 이모티콘 연합에서 라이선스 칸을 서로 주고받도록 수정 ( #10859, #14109 ) - Fix: Locked down 기간 지정 노트가 Streaming을 통해 LTL에 나타나는 문제 수정 ( #15200 ) - Fix: disableClustering 설정 시 초기화 로직 조정( #15223 ) - Fix: URL과 URI가 다른 엔티티 조회 실패 문제 수정( #15039 ) - Fix: ActivityPub 요청인지 아닌지 판단이 잘못되는 문제 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`에서 `name`을 지정하지 않고 요청하면 오류가 발생하는 문제 수정 - Fix: arm64 환경에서 AI 민감도 판단이 arm64 환경에서 작동하지 않는 문제 수정 - Fix: Misskey가 아닌 다른 소프트웨어에서 HTML `` 태그가 포함된 메모를 수신할 경우 MFM의 가나(루비) 문법으로 변환하여 표시 - Fix: 연합 OFF로 게시된 노트에 대한 중복 처리 억제 ( #15018 ) - Fix: `/api.json`의 응답이 두 번째 요청 이후 이상해지는 문제 수정 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 출시일: 2024/11/22 ### Note - Node.js 20.x는 권장하지 않게 되었습니다.Node.js 22.x (LTS)의 이용을 권장합니다. - 더욱이 Node.js 23.x는 대응하고 있지 않습니다. - Docker의 Node.js가 22.11.0로 업데이트됐습니다. ### General - Feat: 콘텐츠 표시에 로그인을 필수로 할 수 있게 되었습니다. - Feat: 과거 노트를 비공개화/팔로워만 표시 가능으로 할 수 있게 되었습니다. - Enhance: 종속성 업데이트 - Enhance: l10n 업데이트 - Fix: 알림 작성 시에 이미지 URL 입력란을 공란으로 업데이트할 수 없던 것을 수정(#14976) ### Client - Enhance: Bull Dashboard에서 Relationship Queue의 상태도 확인할 수 있게 되었습니다. (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: 드라이브에서 노트가 가능하게 되었습니다. - Enhance: 아이콘 장식 관리 화면의 개선 - Enhance: '그냥 운이 좋았어'의 취득 조건을 업데이트 - Enhance: 글 입력란에서 Esc 키를 눌렀을 때 IME 입력 중이면 입력란을 닫지 않게 되었습니다. (#10866) - Enhance: MiAuth, OAuth의 허가 화면의 개선 - 어느 계정으로 인증하려고 하는지를 알 수 있게 되었습니다. - 인증하는 계정을 교체할 수 있게 되었습니다. - Enhance: Self-XSS 방지용 경고를 추가 - Enhance: 카탈루냐어(ca-ES)에 대응 - Enhance: 개별 알림 페이지에서는 Meta 태그를 출력할 수 있게 되었습니다. - Enhance: 노트 상세 화면에 역할의 배지를 표시 - Enhance: 과거에 보낸 팔로우 요청을 확인할 수 있게 되었습니다. (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: 사이드 바에 대한 간단히 펼치기, 접기가 가능하게 되었습니다.(#14981) - Enhance: 리노트 메뉴에 '리노트의 상세'를 추가 - Enhance: 비로그인 상태에서 Misskey를 열었을 때 성능을 향상 - Fix: 알림의 범위 지정의 설정 항목이 필요하지 않은 알림 설정에서도 범위 지정의 설정이 나오는 문제를 수정 - Fix: Turnstile이 실패, 기간 만료됐을 때에도 성공으로 되는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: 덱의 타임라인 컬럼에서 '민감한 파일을 포함한 노트를 표시' 설정을 사용하지 못했던 문제를 수정 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: 링크 깨짐 문제를 수정 - Fix: 노트 게시 버튼에 마우스를 올렸을 때의 스타일이 적용되지 않는 문제를 수정 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: 메일 주소 등록 활성화 시 '완료' 다이얼로그 박스의 표시 조건을 수정 - Fix: 화면 폭이 좁은 환경에서 디자인이 깨지는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScript의 유형 검사 대상 파일을 한정해 빌드를 고속화할 수 있게 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: Docker의 Node.js를 22.11.0로 업데이트 - Enhance: 기동 전 통신 확인에서 DB와 메인 이외의 Redis의 통신 확인도 하게 되었습니다. (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: 리모트 유저의 조회를 오리지널로 리디렉션하게 되었습니다. - Fix: sharedInbox가 없는 Actor에 연결되는 리모트 유저를 조회할 수 없는 것을 수정 - Fix: Aproving request from GtS appears with some delay - Fix: 팔로워로의 메시지의 이모티콘을 emojis에 포함하도록 수정 - Fix: Nested proxy requests를 검출했을 때 블록하도록 수정 [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 초대 코드의 남은 발행 가능 수 산출에 사용할 역할 정책의 값이 다른 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 연합으로의 발신 때 acct의 대소문자가 구별되어 바르게 멘션이 처리되지 않는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: 로컬 유저로의 멘션을 포함한 노트가 연합될 때 바른 URL로 변환되지 않는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT 비활성화 시 유저 목록 타임라인을 사용할 수 없는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhook 테스트 기능인 Mock Payload를 수정 - Fix: 계정 삭제 조정 로그가 작동하지 않는 것을 수정 - Fix: 리노트 뮤트가 신규 게시 알림에 대해 작용되지 않던 문제를 수정 - Fix: Inbox 처리에서 생기는 에러를 잘못해 Activity로 처리하는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: 보안에 관한 수정 ### Misskey.js - Fix: Stream 초기화 시 별도 WebSocket을 지정하는 경우의 유형 정의를 수정 ## 2024.10.1 릴리즈 날짜: 2024/10/15 ### Note - 스팸 대책을 위해, 모더레이터 권한을 가진 유저의 활동이 7일 이상 확인되지 않는 경우, 서버 가입 설정을 자동적으로 초대제로 변경(제어판 → 모더레이션 → "신규 회원가입을 활성화"를 끔)하도록 했습니다. ( #13437 ) - 설정이 바뀐 경우, 중재자에게 알림을 보냅니다.회원 가입을 개방된 상태로 두고 싶은 경우, 설정에서 다시 바꾸시길 바랍니다. ### General - Feat: 유저 이름에 금지 단어를 설정할 수 있도록 함 ### Client - Enhance: 타임라인 표시의 퍼포먼스를 향상 - Enhance: 아카이브한 개별 유저 공지를 표시 및 편집 할 수 있도록 함 - Enhance: l10n 업데이트 - Fix: 이메일 주소 등록이 임의로 되어져 있는 상태에서 Captcha가 켜져 있는 경우, 계정 등록 후에 자동 로그인이 되지 않는 문제를 수정 ### Server - Feat: 중재 권한을 가진 유저가 7일 이상 활동하지 않은 경우, 자동적으로 회원 가입을 초대제 설정으로 바꾸기 ( #13437 ) - Enhance: 개별 유저 전용 공지의 "알겠어요"를 누른 후, 자동적으로 아카이브 시키기 - Fix: `admin/emoji/update` 엔드포인트의 id만 지정한 경우, 에러가 발생하는 버그를 수정 - Fix: RBT 활성화 후, 리노트한 리액션이 반영되지 않는 문제를 수정 - Fix: 큐의 에러 로그 간략화 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 출시일: 2024/10/09 ### Note - 보안 강화를 위해 서버 초기 설정 시 사용할 초기 비밀번호를 설정할 수 있게 되었습니다.향후 Misskey 서버를 새로 설치할 때, 처음 실행하기 전에 설정 파일의 `setupPassword`를 주석 처리하여 초기 비밀번호를 설정하는 것을 권장합니다.(이미 초기 설정이 완료된 서버의 경우, 이번 변경에 따라 대응할 필요가 없습니다.) - 호스팅 서비스를 운영하는 경우, 설정파일을 구축할 때 `setupPassword`를 임의의 값으로 설정하여 사용자에게 알릴 수 있도록 시스템을 업데이트하는 것을 권장합니다. - 초기 비밀번호가 설정되어 있지 않은 경우에도 초기 설정이 가능합니다(UI에서 초기 비밀번호 입력란을 비워두면 계속 진행할 수 있습니다). - 사용자 데이터를 불러오는 타입이 일부 변경되었습니다. - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 본인 및 중재자 외의 사용자로부터는 더 이상 얻을 수 없습니다. ### General - Feat: 서버 초기 설정 시 초기 비밀번호를 설정할 수 있도록 함. - Feat: 신고에 중재 메모를 남길 수 있도록 - Feat: 신고의 해결 유형을 설정할 수 있도록 - Enhance: 신고 해결 및 전달을 개별적으로 처리할 수 있도록 지원 - Enhance: 보안 강화를 위해 로그인 시에도 CAPTCHA를 요구하게 되었습니다. - Enhance: 종속성 업데이트 - Enhance: l10n 업데이트 - Enhance: Play의 '인기' 탭에서 10건 이상 표시 가능 #14399 - Fix: 연합 화이트리스트가 정상적으로 등록되지 않는 문제 수정 ### Client - Enhance: 디자인 조정 - Enhance: 로그인 화면의 인증 흐름 개선 - Fix: 클라이언트에서 시간 기반 도전 과제 획득 동작이 도전 과제 획득 후에도 발동되는 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: 보안을 강화하기 위해 로그인 시 이메일 알림을 제공하도록 설정 - Enhance: 본인 및 중재자 외의 사용자가 이중 인증 관련 데이터를 획득할 수 없도록 - Enhance: 신고 및 신고 해결 시 전송되는 SystemWebhook에 사용자 정보 포함 ( #14697 ) - Fix: `admin/abuse-user-reports` 엔드포인트의 스키마가 잘못된 문제 수정 ## 2024.9.0 릴리즈 일시: 2024/09/29 ### General - Feat: 노트 단독, 사용자 노트, 클립 노트의 노트 삽입 기능 - 임베디드 코드 및 웹사이트에 구현하는 방법에 대한 자세한 내용은 https://misskey-hub.net/docs/for-users/features/embed/ 에서 확인할 수 있습니다. - Feat: 패스키에 로그인 버튼 구현 (#14574) - Feat: 팔로잉 시 메시지 설정 가능 - Feat: 연합을 화이트리스트제로 만들 수 있도록 - Feat: UserWebhook과 SystemWebhook의 테스트 전송 기능 추가 (#14445) - Feat: 중재자가 사용자에 관계없이 파일이 첨부된 노트를 검색할 수 있도록 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: 데이터 내보내기가 완료되면 알림을 발행하도록 설정 - Enhance: 사용자별 콘텐츠 가져오기 허용 여부를 역할 정책으로 제어할 수 있도록 지원 - Enhance: 종속성 업데이트 - Enhance: l10n 업데이트 ### Client - Enhance: 크기 제한을 초과하는 파일을 업로드하려고 할 때 오류를 내도록 설정 - Enhance: 아이콘 장식 관리 화면에 미리보기 기능 추가 - Enhance: 제어판 내 파일 목록에서 민감한 파일을 쉽게 구분할 수 있습니다. - Enhance: Scratchpad에 UI 인스펙터를 추가했습니다. - Enhance: Play 편집 화면의 항목 순서를 약간 재설계 - Enhance: 각종 메뉴의 서랍 표시 여부를 설정할 수 있습니다. - Enhance: AiScript의 Mk:C:container 옵션에 `borderStyle`과 `borderRadius` 추가 - Enhance: CW에서도 이모티콘을 클릭하여 메뉴를 표시할 수 있도록 개선 - 수정: 서버 통계가 2개 이상일 때 리로드 직후에 표시가 이상하게 나타나는 문제 수정 - Fix: 제어판 내 Ap requests 내 차트 표시가 비정상적으로 표시되는 문제 수정 - Fix: 달이 다른 같은 날에 구분자가 표시되지 않는 문제 수정 - Fix: 터치스크린에서 범위 슬라이더를 조작할 때 툴팁이 여러 개 표시되는 문제 수정 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 종횡비가 극단적인 커스텀 이모티콘을 표시할 때 레이아웃이 깨지는 현상이 수정되었습니다. (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 설정 변경 시 재로드 확인 대화 상자가 여러 개 표시될 수 있는 문제 수정 - Fix: 파일 상세 페이지의 파일 설명에서 줄바꿈이 제대로 표시되지 않는 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 일부 화면에서 페이지 매김이 제대로 작동하지 않는 문제 수정 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)를 통해 반응 생성 부하를 줄일 수 있습니다. - Fix: 안테나 쓰기 시 키워드가 주어지지 않은 경우 에러를 ApiError로 던지도록 수정 - 이 변경으로 인해 공식 프런트엔드에서 내부 오류로 보고되는 대신 일반 오류 대화 상자에서 입력 오류를 보고하게 됩니다. - 수정: 파일 크기 제한을 초과하여 업로드할 때 오류를 반환하지 않는 문제를 수정했습니다. - Fix: 외부 페이지를 분석할 때 페이지에 연결된 관련 리소스도 함께 불러오는 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - 수정: 단일 이모티콘 가져오기에 실패한 경우 파일에서 가져오기를 계속합니다. - Fix: `Retry-After` 헤더가 전송되지 않는 문제 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: 서버 측 DOM 분석 완료 시 리소스를 개방하도록 변경 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``을 추적하여 조회하는 것은 OK 응답이 반환된 경우에만 가능합니다. (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - 수정: 이메일에 스타일이 적용되지 않는 문제 수정 ## 2024.8.0 릴리즈 날짜: 2024/08/18 ### General - Enhance: 모더레이터는 모든 유저의 팔로우, 팔로워 리스트를 볼 수 있음 - Enhance: 계정을 삭제할 때의 모더레이션 로그를 남길 수 있음 - Enhance: 부적절한 페이지, 갤러리, Play를 관리자 권한으로 삭제할 수 있도록 함 - Fix: 리모트 유저의 팔로우, 팔로워 일람이 비공개 설정인 경우에도 표시되는 문제를 수정 ### Client - Enhance: "나의 Play" 페이지에서 Play를 비공개로 설정했는지 바로 알 수 있도록 함 - Enhance: 부적절한 페이지, 갤러리, Play를 신고할 수 있도록 함 - Fix: Play를 편집할 때 공개 범위가 "퍼블릭"으로 초기화되는 문제를 고침 - Fix: 페이지가 바뀌지 않는 문제를 수정 - Fix: iOS에서 사용자 이름 등이 링크로 처리되는 현상을 억제 함 - Fix: mCaptcha를 사용하고 있어도 bot 차단에 관련한 경고가 사라지지 않는 문제를 수정 - Fix: 사용자의 모더레이션 페이지에서 사용자 이름에 점(.)이 있는 경우 시스템 어카운트로 표시되는 문제를 수정 - Fix: 특정 조건 하에서 노트 삭제 버튼이 표시되지 않는 문제를 수정 ### Server - Enhance: 연합에 조회 할 때 URL이 html 또는 head 태그 안에 `rel="alternate"`, `type="application/activity+json"`의 `link`태그도 추적해서 그 링크도 조회할 수 있도록 함 - Enhance: 동결된 계정의 팔로우 리퀘스트를 표시하지 않도록 함 - Fix: WSの의 `readAllNotifications` 메시지에 `body` 가 없는 경우 동작하지 않는 문제를 해결함 #14374 - 알림 페이지나 알림 칼럼(덱)을 보는 중에 새로 받은 알림이 읽음 상태로 바뀌지 않는 문제를 수정함 - 동시에, 푸시 알림이 활성화 되어져 있는 상태의 비슷한 상태에서 푸시 알림이 항상 오는 문제도 수정함. - Fix: Play의 각종 엔드 포인트의 리턴 값에 `visibility`가 포함되지 않는 문제를 해결함 - Fix: 서버 정보를 받아올 때 모더레이터만 가지고 올 수 있는 정보를 받을 수 없는 문제를 해결함 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 공개 범위가 다이렉트인 노트를 유저 액티비티의 차트를 생성할 때 사용하지 않도록 함 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPub의 엔티티 타입 판정에서 알 수 없는 타입을 받아온 경우에도 처리를 지속 할 수 있도록 함 - 이 Fix로 큐 처리가 쌓이는 문제가 있는 경우 개선되는 경우가 있습니다. - Fix: 리버시 대국 설정 변경이 반영되지 않는 문제를 수정함 - Fix: 스트리밍 채널에 무한으로 연결되는 문제를 수정함 - Fix: 베이스 롤의 규칙을 바꾸었을 때, 모더레이팅 로그가 기록되지 않는 문제를 수정함 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 출시일: 2024/07/31 ### Note - 덱 UI의 신착 노트를 사운드로 알리는 기능 추가(v2024.5.0)와 함께 이전부터 작동하지 않게 된 클라이언트 설정 내 '안테나 수신', '채널 알림' 사운드를 삭제했습니다. - Streaming API에서 입력이 올바르지 않은 경우에는 그 메시지를 무시하게 되었습니다. #14251 ### General - Feat: 알림을 받았을 때 혹은 해결했을 때, 미리 등록한 수신자에게 알림을 보내게 되었습니다.(mail or webhook) #13705 - Feat: 유저의 아이콘/배너의 변경 여부를 역할에서 설정 가능하게 되었습니다. - 변경 불가로 돼있어도 설정 완료된 것을 해제해 기본 이미지로 돌리는 것은 가능합니다. - Feat: 유저 작성 시에 SystemWebhook이 송신 가능하게 되었습니다. #14281 - Feat: 미디어 사일런스 실장 #13842 - 미디어가 사일런스된 서버의 계정에 의해 업로드된 파일은 모두 민감한 미디어로 처리되며, 커스텀 이모티콘을 사용할 수 없게 됩니다. - Enhance: 관리 화면에서 아카이브한 알림을 표시, 편집할 수 있게 되었습니다. - Fix: 발신 정지한 인스턴스 목록이 보이지 않는 문제를 수정 - Fix: Docker 컨테이너의 부팅 시에 'pnpm'의 설치로 멈추는 문제를 수정 - Fix: 기본 테마에 무효한 테마 코드를 입력하면 UI를 사용할 수 없게 되는 문제를 수정 - 번역의 업데이트 - 종속성 업데이트 ### Client - Feat: 유저 페이지에서 '이 유저의 노트를 검색' 가능하게 되었습니다.(#14128) - Feat: 검색 페이지는 쿼리를 받게 되었습니다.(#14128) - Enhance: 검색 페이지 UI 개선(#14128) - Enhance: 내장 API 문서 디자인, 성능을 개선 - Enhance: 비로그인 시 서버로 이동하는 액션을 추가 - Enhance: 비로그인 시 하이라이트 TL의 디자인을 개선 - Enhance: 프론트엔드 접근성 개선 - Enhance: 서버 정보 페이지, 문의 페이지를 개선 - Enhance: AiScript를 0.19.0으로 업데이트 - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: 민감한 미디어를 열 때 확인 다이얼로그가 나오게 되었습니다. - Enhance: 검색(노트/유저)에서 '#'로 시작하는 문자열을 입력하면 그 해시태그의 노트/유저 목록 페이지가 표시되게 되었습니다. - Enhance: 검색(노트/유저)에서 입력에 공백이 포함돼있는 경우는 조회를 하지 않도록 되었습니다. - Enhance: 검색(노트/유저)에서 조회를 할지, 해시태그의 노트/유저 목록을 표시할지에 대한 확인 다이얼로그가 나오게 되었습니다. - Enhance: 검색(노트/유저)에서 '@'로 시작하는 문자열('@user@host' 등)을 입력하면 그 유저를 조회할 수 있게 되었습니다. - Enhance: 드라이브의 파일, 폴더를 드래그하지 않아도 이동할 수 있게 되었습니다.(Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: 덱의 안테나, 목록 선택 화면에서 각각 신규 작성이 가능하게 되었습니다. - Enhance: 브라우저의 컨텍스트 메뉴를 사용할 수 있게 되었습니다. - Enhance: 연합의 '연합 중', '구독 중', '배포 중'에 대해 블록하고 있는 서버, 배포 정지된 서버를 포함하지 않게 됐습니다. - Fix: '/about#federation' 페이지 등에서 각 인스턴스의 채팅이 표시되지 않는 문제를 수정 - Fix: 유저 페이지의 추가 정보 라벨을 게시자의 서버의 이모티콘으로 표시하도록 수정(#13968) - Fix: 리버시 대국을 바르게 공유하지 못하는 문제를 수정 - Fix: 제어판에서 기본 역할의 정책을 편집해도 UI에서는 변경이 반영되지 않는 문제를 수정 - Fix: 안테나의 편집 화면 버튼에 틈을 추가 - Fix: 테마 미리보기가 보이지 않는 문제를 수정 - Fix: 단축키가 연타 가능했던 문제를 수정 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vue의 credentialRequest에서 Reactivity를 삭제(Proxy가 Passkey 인증 처리로 건너가는 것을 막기 위해) - Fix: '애니메이션 이미지를 생성하지 않는다'가 켜져 있을 때도 서버의 배너 이미지, 배경 이미지가 애니메이션되는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitch 게시물이 열리지 않는 문제를 수정 - Fix: 자식 메뉴의 높이가 창에서 빠져 나오는 문제를 수정 - Fix: 개인에게로의 다이얼로그 형식의 알림이 즉시 표시되지 않는 문제를 수정 - Fix: 일부 이미지가 민감한 미디어로 지정돼있을 때 화면에 아무 것도 표시되지 않는 것을 수정 - Fix: 리액션한 유저 목록의 유저명이 빠져 나오는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: '/share' 페이지에서 이모티콘 선택기를 열지 못하는 문제를 수정 - Fix: deck ui의 알림음이 겹치는 문제를 수정(#14029) - Fix: 다이렉트 포스팅의 "삭제 후 편집"에서 수신자가 유지되지 않은 문제를 수정 - Fix: 글 입력란의 URL 첨부에 의한 인용이 초안에 보존되지 않은 문제를 수정 - Fix: "삭제 후 편집"이나 초안에서 리액션을 받는 설정이 유지/보존되지 않은 문제를 수정 - Fix: 조회에서 '#'로 시작하는 문자열을 입력해 그 해시태그의 페이지를 표시할 때, 입력이 '#' 뿐일 경우 '지정된 URL에 해당하는 페이지는 없었습니다.'가 표시되는 문제를 수정 - Fix: 조회에서 '@'로 시작하는 문자열을 입력해 유저를 조회할 때, 입력이 '@' 뿐일 경우 '문제가 발생했습니다.'가 표시되는 문제를 수정 - Fix: 글 입력란에 노트의 URL을 첨부해 "인용해서 첨부"한 경우, 게시글을 공백으로 해 Renote화가 되지 않던 문제를 수정 - Fix: 팔로우 중인 유저에 관한 "타임라인에 다른 사람에게 보내는 답글을 포함"의 설정이 파악하기 어렵다는 문제를 수정 - Fix: 타임라인 페이지를 열었을 때, '타임라인에 다른 사람에게 보내는 답글을 포함'이 꺼져 있을 때 '미디어를 포함한 노트만'을 켤 수 없는 문제를 수정 - Fix: deck ui에서 타임라인을 교체했을 때 타임라인의 설정 항목이 업데이트되지 않고 '타임라인에 다른 사람에게 보내는 답글을 포함' 토글이 표시되지 않는 문제를 수정 - Fix: 위젯의 타임라인 선택란에서 비활성화된 타임라인이 표시되는 문제를 수정 - Fix: 사운드에서 드라이브의 음성을 사용하고 있을 때 드라이브의 음성이 재생되지 않으면 설정이 변경되지 않는 문제를 수정 ### Server - Feat: 속도 제한에 걸렸을 때 'Retry-After' 헤더를 반환하게 되었습니다.(#13949) - Enhance: 엔드포인트 'clips/update'의 필수 항목을 'clipId'만으로 - Enhance: 엔드포인트 'admin/roles/update'의 필수 항목을 'roleId'만으로 - Enhance: 엔드포인트 'pages/update'의 필수 항목을 'pageId'만으로 - Enhance: 엔드포인트 'gallery/posts/update'의 필수 항목을 'postId'만으로 - Enhance: 엔드포인트 'i/webhook/update'의 필수 항목을 'webhookId'만으로 - Enhance: 엔드포인트 'admin/ad/update'의 필수 항목을 'id'만으로 - Enhance: 'default.yml' 내의 'url', 'db.db', 'db.user', 'db.pass'가 환경 변수에서 불러올 수 있게 되었습니다. - Enhance: 엔드포인트 'api/meta'에서 프로퍼티 'noteSearchableScope'이 증가해 'string'값 'local' 혹은 'global'을 반환합니다. - Fix: 차트 생성 시 instance.suspensionState로 치환된 instance.isSuspended가 참조되는 문제를 수정 - Fix: 유저의 피드 페이지의 MFM을 HTML로 펼칠 수 있게 수정(#14006) - Fix: 안테나, 클립, 목록, 웹후크가 역할 정책의 상한으로 하나 더 많이 만들어지는 문제를 수정(#14036) - Fix: notRespondingSince가 실장되기 전에 사용할 수 없게 된 인스턴스가 자동적으로 발신 정지로 되지 않게끔 수정(#14059) - Fix: FTT 활성화 시, 타임라인용 엔드포인트에서 'sinceld'에 캐시 내 가장 오래된 것보다 오래된 것을 지정한 경우 바르게 결과가 반환되지 않는 문제를 수정 - Fix: 자신 이외의 클립 내 노트 개수가 보이는 문제를 수정 - Fix: 공백 문자열의 리액션은 폴백되지 않게 수정 - Fix: 리노트에 리액션을 할 수 없게 수정 - Fix: 유저명의 앞뒤에 공백 문자열이 있는 경우는 생략하도록 수정 - Fix: 프로필 편집 시에 이름을 공백 문자열만으로 할 수 있는 문제를 수정 - Fix: 유저명의 추천 시에 표시되는 내용과 순서를 정리(아래의 순서로 됩니다) #14149 1. 팔로우 중이고 활동 중인 유저 2. 팔로우 중이고 활동 중이지 않은 유저 3. 팔로우하고 있지 않고 활동 중인 유저 4. 팔로우하고 있지 않고 활동 중이지 않은 유저 또 자신의 계정도 추천되도록 수정됐습니다. - Fix: 일반 유저가 본 유저의 배지 목록에 공개되지 않은 것이 포함된 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: 유저의 리액션 목록에서 뮤트/블록이 기능되지 않은 문제를 수정 - Fix: FTT 활성화 시 리모트 유저의 노트가 HTL에 캐시되는 문제를 수정 - Fix: 일부 알림이 로컬 상의 리모트 유저에 대해 이뤄지지 않은 문제를 수정 - Fix: 에러 메시지의 오자를 수정(#14213) - Fix: 소셜 타임라인에 로컬 타임라인에서 표시되는 자신으로의 답글이 표시되지 않는 문제를 수정 - Fix: 리노트 뮤트가 적용되기까지 시간이 걸리는 문제를 수정 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Streaming API가 바르지 않은 데이터를 받은 경우 작동이 불안정한 문제를 수정 #14251 - Fix: 'users/search'에서 '@'로 시작하는 문자열이 주어졌을 때 처리가 바르지 않은 문제를 수정 - 이름이나 자기 소개에 '@'로 시작하는 문장이 포함되는 유저도 검색할 수 있게 됐습니다. - Fix: 일부 Misskey 이외의 소프트웨어에서 파일을 받지 못하는 문제를 수정 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: 'drive_file'의 'url', 'uri', 'src' 상한이 512에서 1024로 변경됩니다. Migration에서는 컬럼 정의의 변경만 됩니다. 서버 관리자는 각 서버의 필요에 따라 'drive_file', '("uri")'에 대한 인덱스가 다시 되는 것으로 안정되고 DB의 탐색을 할 가능성이 있습니다.상세는 [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)에서 확인 가능합니다. - Fix: 자신의 팔로워 한정 게시에 대한 답글이 홈 타임라인에서 보이지 않는 문제를 수정 - Fix: 팔로우하고 있지 않은 유저의 팔로워 한정 게시에 대한 답글이 소셜 타임라인에서 표시되지 않는 문제를 수정 ### Misskey.js - Feat: '/drive/files/create'의 요청에 대응('multipart/form-data'에 대응) - Feat: '/admin/role/create'의 역할 정책의 유형을 수정 ## 2024.5.0 릴리즈 날짜: 2024/05/31 ### Note - 제어판 내 요약 프록시 설정 부분이 보안에서 일반으로 변경됩니다. - 악의적인 제3자가 원격 사용자로 위장한 활동을 수신할 수 있는 문제를 수정했습니다.자세한 내용은 [GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)에서 확인할 수 있습니다. - 관리자 권한 `read:admin:show-users`는 `read:admin:show-user`로 통합되었습니다.필요한 경우 API 토큰을 재발급해 주세요. ### General - Feat: 오류 추적에 Sentry를 사용할 수 있게 되었습니다. - Enhance: URL 미리보기 활성화/비활성화를 설정할 수 있도록 개선 #13569 - Enhance: 안테나에서 봇에 의한 메모를 제외할 수 있도록 개선 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: 클립의 노트 수를 표시할 수 있습니다. - Enhance: 조건부 역할의 조건으로 다음이 새롭게 추가되었습니다 (#13667). - 고양이 유저인가 - bot 유저인가 - 정지된 사용자 또는 - 키 계정 사용자인가 - '계정 찾기 용이성' 기능이 활성화된 사용자 - Enhance: Gone을 보내지 않고 종료된 서버에 대해 자동으로 수신거부를 수행하도록 개선 - 만약 그런 서버에서 발신이 도착하면 자동으로 응답을 재개합니다. - Enhance: 수신거부 사유를 표시하도록 설정 - Enhance: 서버 문의처 URL을 설정할 수 있게 되었습니다. - Fix: Play 생성 시 설정한 공개 범위가 작동하지 않는 문제 수정 - Fix: 정규화되지 않은 상태의 해시태그가 연합된 html에 포함된 경우 해시태그가 올바른 해시태그로 복원되지 않는 문제를 수정했습니다. - Fix: 찾기 설문 항목에서 채널 설문이 포함되는 문제를 수정했습니다. ### Client - Feat: 업로드하는 파일 이름을 임의의 문자열로 지정할 수 있도록 함. - Feat: 개별 공지사항으로 바로 이동할 수 있는 링크 제공 (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 노트의 첨부 파일에서 바로 파일 세부 정보 페이지로 이동할 수 있습니다. - Enhance: 광고가 Misskey와 동일한 도메인일 경우 Router에서 전환되도록 - Enhance: 총 리액션 및 좋아요 수를 표시하도록 설정합니다. - Enhance: 리액션 수락이 '좋아요만'인 경우 리액션 이모티콘 목록을 표시하지 않음 - Enhance: 설정 > 플러그인 페이지에서 플러그인의 간단한 로그와 오류를 볼 수 있도록 설정 > 플러그인 페이지로 이동 - 구현의 편의성을 위해 플러그인은 하나의 오류가 발생하면 즉시 중지되도록 변경되었습니다. - Enhance: 페이지 디자인 변경 - Enhance: 2단계 인증(일회용 비밀번호) 입력창 개선 - Enhance: '오늘 생일인 팔로우 중인 사용자' 위젯을 수동으로 리로드할 수 있도록 개선 - Enhance: 브라우저의 네이티브 플레이어를 사용하여 영상과 음성을 재생할 수 있습니다. - Enhance: 영상/음성 재생 메뉴에 '재생 속도', '루프 재생', '픽처 인 픽처' 기능 추가 - Enhance: 영상/음성 재생에 키보드 단축키를 사용할 수 있도록 지원 - Enhance: 노트에 첨부된 리액션의 "더보기...!"에서 리액션 목록을 표시할 수 있도록 - Enhance: 답글에 인용문이 있는 경우 텍스트가 비어있는 상태에서도 메모할 수 있도록 개선 - 인용하고 싶은 노트의 URL을 복사하여 답글 게시 화면에 붙여넣기하여 첨부하면 됩니다. - Enhance: 팔로우 여부 확인 대화창을 표시할 수 있도록 개선 - Enhance: Play를 수동으로 재로드할 수 있도록 - Enhance: 신고 댓글에 있는 링크를 클릭했을 때 창이 열리도록 개선 - Enhance: `Ui:C:postForm` 및 `Ui:C:postFormButton`에 `localOnly` 및 `visibility` 설정 가능 - Enhance: AiScript 0.18.0으로 업그레이드 - Enhance: 일반 노트에서도 즐겨찾기에 등록한 채널에 대한 리노트를 할 수 있게 함. - Enhance: 긴 텍스트를 붙여넣을 때 텍스트 파일로 첨부할지 여부를 선택할 수 있도록 - Enhance: deck UI에 새로운 노트를 소리로 알려주는 기능이 추가되었습니다. - Enhance: 제어판의 퀵 액션에서 파일을 조회할 수 있게 되었습니다. - Enhance: 제어판의 퀵 액션에서 일반 조회를 할 수 있게 되었습니다. - Fix: 일부 페이지 내 링크가 바르게 작동하지 않는 문제를 수정 - Fix: 주년의 도전 과제이 윤년을 고려하지 않은 문제를 수정 - Fix: 로컬 URL의 미리보기 팝업이 좌상단에 표시되도록 수정 - Fix: WebGL2를 지원하지 않는 브라우저에서 '계절에 따른 효과 보이기'가 활성화돼있을 때, Misskey가 기동되지 않는 문제를 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: 페이지 타이틀에서 로컬 유저와 리모트 유저의 구별이 되지 않는 문제를 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: 코드 블록의 구문 강조로 사용된 정의 파일을 CDN에서 불러올 수 있게 수정 #13177 - CDN에서 불러오지 않고 Misskey 본체에서 다루는 경우는 'packages/frontend/vite.config.ts'를 수정해 주십시오. - Fix: 타임 존에 따라서는 '오늘이 생일인 팔로우 중인 유저' 위젯이 바르게 작동하지 않는 문제를 수정 - Fix: CW만 인용 리노트가 상세 페이지에서 순수한 리노트로서 잘못 취급되는 문제를 수정 - Fix: 노트 상세 페이지에서 CW 첨부 인용 리노트의 CW 버튼의 라벨에 '인용'이 포함되지 않는 문제를 수정 - Fix: 다이얼로그의 입력에서 글자 수 제한에 위반해도 Enter키가 눌리는 문제를 수정 - Fix: 다이렉트 포스팅의 수신자가 보존되지 않는 문제를 수정 - Fix: Play 페이지를 떠났을 때 Play가 정상적으로 초기화되지 않는 문제를 수정 - Fix: 페이지의 OGP URL이 틀린 것을 수정 - Fix: 리버시 대국을 바르게 공유하지 못하는 문제를 수정 - Fix: 알림을 그룹화했을 때, 인원 수가 정상적으로 표시되지 않는 문제를 수정 - Fix: 연합이 없는 상태의 읽고 쓰기가 되지 않는 문제를 수정 - Fix: '/share'에서 일본어 등을 포함한 url이 url 인코드되지 않는 문제를 숮어 - Fix: 파일을 5개 이상 첨부해도 텍스트가 없으면 노트가 접히지 않는 문제를 수정 ### Server - Enhance: 엔드포인트 'antennas/update'의 필수 항목을 'antennaId'만으로 - Enhance: misskey-dev/summaly@5.1.0의 수용(미리보기 생성 처리의 효율화) - Enhance: 드라이브의 파일이 NSFW인지 개별로 연합되게 되었습니다. (#13756) - 가능한 경우, 노트의 첨부 파일의 민감함 판정이 파일 단위로 됩니다. - Fix: 리모트에서 보내진 액티비티에 JSON-LD compaction을 걸도록 수정 - Fix: 팔로우 요청을 할 때 기존 것은 삭제하도록 수정 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: 엔드포인트 'notes/translate'의 에러를 개선 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 일부 음성 파일이 영상 파일로 취급되는 문제를 수정 - Fix: 답글만인 인용 리노트와 CW만인 인용 리노트가 순수한 리노트로 잘못 취급되는 문제를 수정 - Fix: 등록에 메일 인증이 필수로 된 경우, 등록된 메일 주소를 삭제할 수 있게 수정 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx 경유로 /files/에 Range가 요청된 경우에 바르게 응답되지 않는 문제를 수정 - Fix: 일부 타임라인의 스트리밍에서 인스턴스 뮤트가 제대로 되지 않는 문제를 수정 - Fix: 글로벌 타임라인에서 답글이 표시되지 않는 문제를 수정 - Fix: 리노트를 뮤트한 유저의 게시물 리노트가 뮤트되는 문제를 수정 - Fix: AP Link 등은 첨부 파일 취급하지 않게끔 수정(#13754) - Fix: FTT가 활성화돼있고 sinceld만 지정한 경우에 돌아오는 응답이 역순인 문제를 수정 - Fix: '/i/notifications'에 'includeTypes'나 'excludeTypes'를 지정했을 때 알림이 존재하는데 빈 배열을 반환하는 문제를 수정 - Fix: 여러 id를 지정하는 'users/show'가 상관없는 유저를 반환하는 문제를 수정 - Fix: '/tags'와 '/user-tags'가 검색 엔진에 인덱스되지 않도록 수정 - Fix: 본래 민감하지 않다고 연합된 파일이 민감하다고 연합된 경우 민감한 미디어로 그 파일을 다루지 않게끔 수정 - 민감한 미디어로 연합한 파일은 민감하지 않은 미디어로 연합돼도 민감한 미디어로 취급됩니다. ## 2024.3.1 릴리즈 날짜: 2024/03/02 ### Client - Fix: 이모지 관련 버그를 수정 (#13485) - 이력에 남아있거나 고정된 이모티콘이 제어판에서 삭제됐을 때 반응 덱이 표시되지 않게 됨. - Unicode 이모티콘이 이력에 남아있거나 고정돼있으면 반응 덱이 표시되지 않게 됨. - Fix: 커스텀 이모지를 불러오는 데에 실패했을 때 텍스트가 아니라 더미 이미지를 표시 #13487 ## 2024.3.0 릴리즈 날짜: 2024/03/01 ### General - Enhance: 게시자의 역할에 따라 하나의 노트에 포함시킬 수 있는 멘션과 다이렉트 포스팅의 수신자의 수에 상한을 설정할 수 있게 되었습니다. - 기본 멘션 상한은 스무 계정으로 설정됩니다.(관리자는 기본 역할 설정에서 변경할 수 있습니다.) - 연합의 문의에 응답하지 않는 서버의 리모트 유저로의 멘션은 상한의 인수에 포함되지 않습니다. - Enhance: 알림이 뮤트, 정지를 고려하게 되었습니다. - Enhance: 서버마다 조정 노트를 남길 수 있게 되었습니다. - Enhance: 조건부 역할의 조건에 '매뉴얼 역할 할당'을 추가 - Enhance: 알림 수신 설정에 '팔로우 중 혹은 팔로워'를 추가 - Enhance: 알림의 이력을 리셋할 수 있게 되었습니다. - Fix: 다이렉트 노트에 대해서는 다이렉트로만 답변할 수 있게 수정 ### Client - Enhance: 노트 작성 화면의 파일 첨부 메뉴의 구분선 위치를 조정했습니다. - Fix: syuilo/misskey 시절부터 있는 인스턴스가 개선된 버전이 있다고 오인식되는 문제를 수정 - Fix: MFM 자동완성이 나와야 할 상황에서 나오지 않는 문제를 수정 - Fix: 차트의 라벨이 사라지는 문제를 수정 - Fix: 화면 표시 후 첫 음성 재생이 폭음으로 되는 문제를 수정 - Fix: 설정의 백업 작성 시 이름을 입력하지 않은 경우 지역화가 이상하게 되는 문제를 수정 - Fix: 페이지 '/admin/emojis'의 이모티콘 편집 다이얼로그에서 '이 이모지를 리액션으로 사용할 수 있는 역할'을 추가할 때 아무 것도 선택하지 않고 OK를 누르면 화면이 멈추는 문제를 수정 - Fix: 이모티콘 추천 순서에서 이모티콘 자체의 이름이 같은 것보다 태그로 일치하는 것이 우선되는 문제를 수정 - Fix: 유저의 정보 팝업이 사라지지 않는 문제를 수정 ### Server - Enhance: 엔드포인트 'flash/update'의 'flashId' 이외의 파라미터는 필수가 아니게 되었습니다. - Fix: nodeinfo에서 enableMcaptcha와 enableTurnstile가 없는 것을 수정 - Fix: 손상된 알림을 클라이언트에 보내지 않도록 수정 - 알림란이 무한히 리로딩되는 문제가 개선될 수 있습니다. - Fix: 금지 키워드를 포함한 노트가 Delayed Queue에 추가돼 재처리되는 문제를 수정 - Fix: 자신이 팔로우하지 않은 계정의 팔로워 한정 노트가 열람되는 문제를 수정 - Fix: 타임라인 옵션에서 '리노트 보기'를 비활성화했을 때, 투표 뿐인 인용 리노트가 보이지 않는 문제를 수정 - Fix: 엔드포인트 'admin/emoji/update'에 대해 각종 수정 - 필수 파라미터를 'id' 혹은 'name' 중 하나만으로 수정 - 'id' 대신에 'name'에서 이모티콘을 지정할 수 있게 수정 ('id', 'name' 모두 지정 시에는 본래의 'name'을 변경하는 작동을 함) - 'category' 및 'licence'가 지정 없음일 때 null로 덮어 씌여지는 작동을 수정 - Fix: 알림 수신 설정에서 '맞팔로우'가 바르게 작동하지 않는 문제를 수정 ## 2024.2.0 릴리스 날짜: 2024/02/17 ### Note - 외부 사이트에서 플러그인을 설치할 때 경로가 `/install-extentions`에서 `/install-extensions`로 변경됩니다.이전 경로에서 자동으로 리디렉션되도록 되어 있지만, 새로운 경로로 변경하는 것이 좋습니다. ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha) 지원 추가 - Feat: TrueMail 지원 추가 - Feat: AGPLv3 라이선스 실수로 인한 라이선스 위반 방지 기능 추가 - 관리자가 repositoryUrl을 변경하거나 소스 코드를 직접 배포하도록 선택할 수 있습니다. - 본체 소스코드 수정 시 라이선스에 따른 적절한 안내를 표시합니다. - Enhance: 중재자가 모든 사용자들의 반응 목록을 볼 수 있도록 - Fix: 리스트 라임라인의 '리노트 표시'가 제대로 작동하지 않는 문제 수정 - Fix: 원격 사용자의 반응 목록이 모두 표시되는 문제 수정 - 모든 원격 사용자의 반응 목록을 보이지 않게 합니다. - Fix: 특정 키워드 및 정규식에 일치하는 문자열이 포함된 노트가 게시될 때 오류를 발생시킬 수 있는 설정 항목 추가 #13207 - 기본값은 비어있기 때문에 적용 전과 동일하게 동작합니다. ### Client - Feat: 신규 게임 추가 - Feat: 음성 및 영상 플레이어 추가 - Feat: 이모티콘 상세 대화상자 추가 - Feat: 테두리 넣기 MFM`$[border.width=1,style=solid,color=fff,radius=0 ...]. ` 추가 - 기본적으로 테두리 밖으로 튀어나온 부분이 숨겨지도록 했습니다.초기 동작과 동일한 동작을 하려면 `$[border.noclip`이 필요합니다. - Feat: 스와이프로 탭을 전환할 수 있도록 - Enhance: MFM 등의 코드 블록에 전체 텍스트 복사 버튼 추가 - Enhance: 해시태그 입력 시 본문 마지막 줄에 아무것도 적혀있지 않을 경우 공백을 새로 추가하지 않도록 - Enhance: 채널 노트를 노트 메뉴에서 핀으로 고정할 수 있도록 지원 - Enhance: 관리자의 경우 API token 발급 화면에서 관리 기능에 대한 권한을 부여할 수 있도록 개선. - Enhance: AiScript를 0.17.0으로 업데이트 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 배열의 범위를 벗어나거나 정수가 아닌 인덱스에 대한 대입이 완전히 금지되므로 주의하세요. - Enhance: 이모티콘 선택기 자동완성 기능으로 완벽하게 일치하는 이모티콘을 우선적으로 표시합니다. - Enhance: Play 설명란에 MFM 사용 가능 - Enhance: 채널 노트의 경우 상세 페이지에서 앞뒤의 노트를 볼 수 있게 함. - Enhance: 남반구에서도 계절에 따른 화면 연출을 이용할 수 있도록 - Enhance: 타임라인 필터의 모든 설정이 유지될 수 있도록 - 지금까지의 'TL에 다른 사람에 대한 답장 포함' 설정은 일단 초기화됩니다. - Enhance: 타임라인 필터에 '민감한 파일이 포함된 노트 표시'를 추가했습니다. - Enhance: 노트 작성 화면의 파일 첨부 메뉴에서 직접 파일 삭제 가능 - Enhance: MFM 속성에서 자동완성 사용 가능 #12735 - Enhance: 이모티콘 편집 대화창을 모달이 아닌 창으로 표시하도록 개선 - Enhance: 원격 사용자가 메뉴에서 직접 원격으로 볼 수 있는 기능 제공 - Enhance: 원격 인용 리노트와 동일한 링크에 대해 링크 미리보기를 표시하지 않도록 설정합니다. - Enhance: 코드의 구문 하이라이트에 테마를 적용할 수 있도록 - Enhance: 다음과 같은 이유로 사용할 수 없는 리액션에 대해, 사용 시 하트로 대체하는 대신 리액션 선택기에서 선택할 수 없도록 함. - 리모트 게시물에 로컬 전용 이모지로 리액션하려는 경우 - 민감한 이모지를 거부한 노트에 민감한 이모지로 리액션하려는 경우 - 리액션으로 사용 시 특정 역할만 사용 가능한 이모지로 리액션하려는 경우 - Enhance: 페이지 전환 시 Player를 닫을 수 있도록 - Enhance: 신고 페이지의 사용자를 클릭했을 때 사용자가 창을 열 수 있도록 - Enhance: 노트 신고 시 원격 노트일지라도 자체 인스턴스의 노트 링크가 포함되도록 개선 - Enhance: 오프라인 디스플레이 디자인 개선 및 다국어 지원 - Fix: 네이티브 모드에서 이모티콘이 흑백으로 표시되지 않도록 수정 - Fix: v2023.12.0에서 추가된 '중재자가 사용자의 아이콘 또는 배너 이미지를 미설정 상태로 설정할 수 있는 기능'이 관리자 화면에서 제대로 표시되지 않는 문제 수정 - Fix: AiScript의 `readline` 함수가 잘못된 값을 반환할 수 있는 문제의 v2023.12.0 시점 수정이 Play 외에는 적용되지 않는 문제를 수정했습니다. - Fix: v2023.12.1에서 추가된 `$[clickable ...]? ' 및 `onClickEv\`가 제대로 작동하지 않는 문제 수정 - Fix: Renote의 키보드 단축키가 작동하지 않는 문제 해결 - Fix: 설문지 제출 양식에서 설문지 날짜 및 시간을 지정한 상태에서 다시 불러오면 날짜가 복원되지 않는 문제 수정 - Fix: 설문조사를 설정한 노트를 '삭제 후 편집'하면 설문조사의 기일이 이어지지 않고 초기화되는 문제 수정 - Fix: 덱 프로필 생성 시 이름이 비어있는 문제 수정 - Fix: 테마 생성 시 이름이 비어있는 상태에서도 생성되는 문제 수정 - Fix: 플러그인에서 `Plugin:register_note_post_interruptor`를 사용하면 메모를 게시할 수 없는 문제 수정 - Fix: iOS에서 큰 이미지를 변환하여 업로드할 수 없는 문제 해결 - Fix: '애니메이션 이미지 재생 안 함' 또는 '데이터 절약(아이콘)'을 활성화해도 아이콘 꾸미기 애니메이션이 멈추지 않는 문제 수정 - Fix: 이미지 자르기 시 자른 후 해상도가 비정상적으로 낮아지는 문제 수정 - Fix: 이미지 자르기 시, 이미지 자르기가 정상적으로 완료되지 않는 문제 수정 - Fix: 캡션이 비어있는 이미지를 자르면 캡션에 null이라는 문자열이 들어가는 문제 수정 - Fix: 프로필을 편집해도 다시 로드할 때까지 반영되지 않는 문제 수정 - Fix: 오류 이미지 URL을 설정한 후 해제하면 기본 이미지가 표시되지 않는 문제 수정 - Fix: MkCodeEditor에서 줄이 어긋나는 문제 해결 - Fix: Summaly proxy 이용 시 플레이어가 작동하지 않는 현상 수정 #13196 ### Server - Enhance: 연합 대상의 속도 제한을 초과했을 때 재시도하도록 개선되었습니다. - Enhance: ActivityPub Deliver queue에서 Body를 사전 처리하도록 (#12916) - Enhance: 클립을 내보낼 수 있도록 - Enhance: `/files`의 파일에 대해 HTTP Range 요청을 할 수 있도록 - Enhance: `api.json`의 OpenAPI Specification 3.1.0으로 업데이트 - Enhance: 연합을 위한 노트 배포 경량화 #13192 - Fix: `drive/files/update`에서 파일명 유효성 검사가 작동하지 않는 문제를 수정했습니다. - Fix: `notes/create`에서 `text`가 공백으로만 구성되어 있거나 `null`이고 `text`만 있는 요청에 대한 응답이 400이 되도록 변경 - Fix: `notes/create`에서 `text`가 공백으로만 구성되고 리노트, 파일 또는 투표를 포함하는 요청에 대한 응답의 `text`가 `""`에서 `null`로 변경 - Fix: ipv4와 ipv6를 모두 사용할 수 있는 환경에서 allowedPrivateNetworks가 설정된 경우 사설 IP를 검증할 수 없는 문제 수정 - Fix: CC 팔로워를 올바르게 처리 - Fix: 작업 관련 설정 이름 수정 relashionshipJobPerSec -> relationshipJobPerSec으로 변경 - Fix: 제어판->조정->'누구나 신규 등록할 수 있도록 허용'의 초기값을 ON에서 OFF로 변경 #13122 - Fix: 원격 사용자가 부활해도 캐시로 인해 해당 사용자의 Activity가 허용되지 않는 문제 수정 #13273 ## 2023.12.2 릴리즈 일시: 2023/12/28 ### General - v2023.12.1에서 Docker를 이용해 서버를 시작할 수 없는 문제 해결 ### Client - Enhance: 검색 화면에서 Enter키를 눌러서 검색할 수 있도록 ## 2023.12.1 릴리스 날짜: 2023/12/27 ### Note - 액세스 토큰의 권한이 재정비되어 일부 API가 이전 API 토큰으로는 작동하지 않습니다.\ 권한이 부족할 경우 권한을 재설정하여 다시 생성해 주세요. ### General - Enhance: 현지화 업데이트 - Fix: 자신의 direct note가 user list timeline에 추가되지 않음 ### Client - Feat: AiScript 전용 MFM 구문 `$[clickable.ev=EVENTNAME ...]`를 추가.`Mk:C:mfm`의 옵션 `onClickEv`에 함수를 전달하면 클릭 시 `EVENTNAME`을 인수로 하여 호출 - Enhance: MFM 입력 보조 버튼을 게시 양식에 표시할 수 있도록 개선 #12787 - Fix: 일부 모델로그(logYellow로 표시되는 대상)에 대해 표시 색상이 변하지 않는 문제 수정 - Fix: `fg`/`bg`MFM에 긴 단어를 지정하면 오버플로우가 되지 않고 튀어나오는 문제 수정 ### Server - Enhance: 센서티브 워드 설정이 해시태그 트렌드에도 적용되었습니다. - Enhance: `auth/token` 엔드포인트 CORS 지원 - Fix: 1702718871541-ffVisibility.js가 손상되었습니다. - Fix: '민감하지 않음(리모컨은 좋아요만)'으로 설정해도 민감하게 설정된 커스텀 이모티콘을 반응할 수 있는 문제 수정 - Fix: 역할 지정 시 알림에서 역할 아이콘이 축소되지 않고 표시되는 문제 수정 - Fix: 써드파티 애플리케이션이 Websocket API에 무조건적으로 접근할 수 있는 문제 해결 - Fix: 써드파티 애플리케이션이 사용자의 허락 없이 비공개 정보를 볼 수 있는 문제 수정 ## 2023.12.0 릴리즈 일시: 2023/12/23 ### Note - 종속성 업데이트에 따라, Node.js 최소 요구 버전이 20.10.0으로 변경되었습니다 - 이전에 이모지 추가 사전을 설치하신 분은 이번 업데이트 이후 재설치가 필요합니다. - 이모지 선택기에 고정하는 이모지가 '리액션'과 '이모지 입력'으로 분할되었습니다.이전에 설정한 이모지는 '리액션'으로 분류됩니다. **영향**: 게시물 작성 창의 이모지 선택기가 초기화되어 보일 수 있습니다. (이번 버전부터 "고정(일반)" 이 대신해서 사용됩니다) 글을 쓸 때에 사용하는 커스텀 이모지 선택기에 적용하려면 다음과 같은 순서로 적용하십시오. 1. "설정" 메뉴에서 "이모지 선택기" 탭을 선택합니다. 2. "고정(일반)" 탭을 선택합니다. 3. "리액션 설정에서 덮어쓰기" 버튼을 눌러, 업데이트 이전의 상태로 복구할 수 있습니다. ### General - Feat: 이메일 인증에 verifymail.io를 사용할 수 있도록 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: 모더레이터가 유저의 아이콘 및 배너 이미지를 초기화시킬 수 있는 기능 추가 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: 지정된 키워드와 일치하는 노트를 타임라인에서 제거하는 하드 뮤트를 추가 - Enhance: 지정한 도메인의 메일 주소를 이용한 계정 생성을 제한하도록 - Enhance: 공개 역할에 할당되었을 때에 알림을 받도록 - Enhance: 아이콘 장식을 중복하여 설정할 수 있도록 - Enhance: 아이콘 장식의 위치를 미세 조정할 수 있도록 - Enhance: 팔로잉/팔로워 관계를 팔로우/팔로워 개별적으로 설정할 수 있도록 #12072 - Enhance: 현지화 업데이트 - Enhance: 종속성 업데이트 - Fix: MFM `$[unixtime ]`에 올바르지 않은 값을 입력하였을 때에 발생하는 각종 오류를 수정 ### Client - Feat: 팔로우 중인 유저 가운데 오늘 생일인 유저를 표시하는 위젯을 추가 - Feat: 화면에 눈이 흩날리는 효과를 추가 - Enhance: MFM의 애니메이션 요소(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) 에 `delay` 옵션을 추가 - Enhance: 민감함으로 판정된 웹 페이지의 썸네일을 보이지 않음 - 민감한 웹 사이트를 인식하는 기능은 summalyProxy를 사용하였을 경우에만 동작합니다. - Enhance: 노트 게시 폼의 이모지 선택기를 리액션용 선택기와 동일한 것을 사용하도록 #12336 #12560 - Enhance: 리액션용 고정 이모지와 게시용 고정 이모지를 나누어서 설정할 수 있도록 #12560 - Enhance: 이모지 자동완성 기능 강화 #12364 - Enhance: 유저의 Raw 데이터를 표시하는 페이지 부활 - Enhance: 리액션을 선택할 때에 사운드를 재생하도록 - Enhance: 사운드로 드라이브의 파일을 사용할 수 있도록 - Enhance: 내비게이션 바에 추가할 수 있는 항목에 '캐시를 삭제' 를 추가 - Enhance: Share 페이지를 통해 노트를 게시하면, 부모 윈도우(혹은 프레임)에 postMessage를 보내도록 - Enhance: 채널, 클립, 페이지, Play, 갤러리에 URL 복사 버튼을 추가 #11305 - Enhance: 노트 미리보기에 '내용 숨기기'가 반영되도록 - Enhance: 데이터 세이버에서 코드 하이라이트를 비활성화 - Enhance: 데이터 세이버의 적용 범위를 개별적으로 설정할 수 있도록 - 기존의 데이터 세이버 관련 설정은 초기화됩니다 - Enhance: 타임라신 상의 탭에서 리스트, 안테나, 채널 각각의 관리 페이지로 넘어갈 수 있도록 - Enhance: 사용자명, 프로필, 공지사항, 페이지 편집화면에서 MFM 및 이모지 자동완성을 사용할 수 있도록 - Enhance: 프로필, 공지사항의 편집 화면에서 MFM 미리보기를 표시하는 기능 추가 - Enhance: 이모지 상세 페이지에 기재되는 정보를 추가 - Enhance: 표시되는 리액션의 폭을 제한하는 옵션 추가 - Enhance: Unicode 15.0 지원 - Enhance: 코드 블럭에서 언어를 명시적으로 지정하지 않으면 하이라이트를 비활성화 - MFM에서 코드 블럭을 사용했을 때에 의도하지 않게 하이라이트되는 일이 발생하지 않게 되었습니다 - 반대로 MFM에서 코드 하이라이트를 사용하려는 경우, 언어를 명시적으로 지정하여야 합니다. (예시: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 이모지 등의 자동 완성에서 Shift+Tab을 눌러 이전 후보를 선택할 수 있도록 - Enhance: 채널에 새로운 게시물이 있을 때에 뱃지를 표시 - Enhance: 사운드 설정에 '사운드를 출력하지 않음'과 'Misskey가 활성 상태일 때에만 사운드를 출력' 옵션을 추가 - Enhance: 트렌드에 표시하지 않을 태그를 제어판에서 설정할 수 있도록 - Enhance: 이모지 선택기의 카테고리에 '/'를 삽입하여 하위 폴더로 나누어 표시하도록 - Fix: '환경설정 백업'에서 일부 항목이 백업에 포함되지 않던 문제를 해결 - Fix: 작업 대기열 위젯이 사운드 재생 방식 변경에서 누락되었던 문제를 수정 #12367 - Fix: 코드 편집기가 올바르게 표시되지 않는 문제를 해결 - Fix: 프로필의 '파일'에 표시되는 민감한 미디어의 디자인을 변경 - Fix: 한 번에 대량의 알림이 발생할 때에 사운드가 깨지는 문제를 수정 - Fix: 공유 기능을 지원하지 않는 브라우저에서는 공유 버튼을 보이지 않도록 변경 #11305 - Fix: 알림 그룹화 설정을 변경한 뒤에도 새로고침 이전까지 적용되지 않는 문제를 수정 - Fix: 이름이 긴 채널의 게시물 작성 창이 일그러지는 문제를 해결 - Fix: 보안 향상을 위해 AiScript의 `Mk:apiExternal`을 비활성화 - Fix: 노트의 이모지를 탭하여 '리액션하기' 했을 때에, 리액션 사운드가 재생되지 않는 문제를 해결 - Fix: 노트 중 리액션 표시 미세 조정 #12650 - Fix: AiScript의 `readline`이 잘못된 값을 반환할 수 있는 문제 수정 - Fix: 투표/이미지만 존재하는 노트의 인용 리노트가 알림에서 일반 리노트로 표시되는 버그 수정 - Fix: CW를 켜고 인용 리노트를 해도 일반 리노트로 취급되는 버그를 수정했습니다. - Fix: 「이미지가 1장뿐인 미디어 리스트의 높이」를 「디폴트」이외로 설정하고 있으면, CW로 첨부된 이미지를 볼 수 없는 버그를 수정 - Fix: DeepL Translation의 Pro account 토글 스위치가 표시되지 않은 것을 수정 - Fix: twitter의 게시물 확장카드 내부에서 링크를 열 수 없는 문제 수정 - Fix: WebKit 브라우저 상에서도 '디바이스 화면을 항상 켜는' 기능이 효과가 있도록 수정 - Fix: Misskey페이지 목록의 표시가 모바일 환경에서 무너지는 것을 수정 - Fix: MFM에서 루비 텍스트가 nyaize되지 않는 문제 수정 ### Server - Enhance: MFM `$[ruby ]`가 다른 소프트웨어와 연합할 수 있도록 - Enhance: Meilisearch를 활성화한 검색에서 사용자의 음소거 및 차단을 고려하도록 - Enhance: 커스텀 이모티콘을 가져올 때 동작 개선 - Fix: 시간 경과로 인해 비활성화된 안테나를 다시 활성화했을 때, 서버 재부팅 전까지 해당 상황이 반영되지 않는 문제 수정 #12303 - Fix: 역할 타임라인이 저장되지 않는 문제 수정 - Fix: api.json의 생성 로직 개선 #12402 - 수정: 초대 코드가 중복되는 문제 해결 - Fix: 특정 조건에서 채널 및 사용자 노트 목록에 최신 노트가 표시되지 않는 문제를 수정 - Fix: 아무것도 기록하지 않은 사용자의 피드에 접속하면 오류가 발생하는 문제 수정 - Fix: 리스트 타임라인에서 음소거가 작동하지 않는 경우와 채널 게시물이 스트리밍으로 흘러나오는 문제 수정 #10443 - Fix: '찾기' 중 뮤트된 사용자가 나타나는 문제 수정 #12383 - Fix: 소셜/로컬/홈 타임라인에서 인스턴스 뮤트가 작동하지 않는 문제 해결 - Fix: 사용자 노트 목록에서 인스턴스 뮤트가 작동하지 않는 문제 수정 - Fix: 채널 노트 목록에서 인스턴스 뮤트가 작동하지 않는 문제 수정 - Fix: 연말연시에 '찾기'가 깨지는 문제 수정 - Fix: 계정을 차단했을 때 자신의 사용자 페이지에서 상대방에게 노트가 표시되는 문제 수정 - Fix: 모더레이터가 모더레이터 로그를 열람하지 못하도록 수정 - Fix: 해시태그 트렌드 제외 설정이 즉각적인 효과를 발휘하도록 수정 - Fix: HTTP 다이제스트 헤더의 알고리즘 부분에 대문자 "SHA-256"만 사용할 수 있습니다. - Fix: 관리자용 API의 접근 권한이 제대로 설정되지 않는 문제 수정 ## 2023.11.1 릴리스 날짜: 2023/11/17 ### Note - 악의적인 제3자가 원격 사용자를 사칭하여 임의의 활동을 수신할 수 있는 문제를 수정했습니다.자세한 내용은 [GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)에서 확인할 수 있습니다. ### General - Feat: 관리자가 제어판에서 이메일 주소를 조회할 수 있게 되었습니다. - Enhance: 현지화 업데이트 - Enhance: 종속성 업데이트 ### Client - Enhance: MFM에서 루비를 흔들 수 있도록 - 예: `$[ruby 三須木 미스키]` - Enhance: MFM에서 UNIX 시간을 지정하여 날짜 및 시간 표시 가능 - 예: `$[unixtime 1701356400]` - Enhance: 플러그인에서 오류 발생 시 처리 강화 - Enhance: 세세한 UI 다듬기 - Fix: 효과음이 재생될 때 기기에서 재생 중인 동영상이나 음성이 멈추는 문제 수정 #12339 - Fix: 덱에 표시된 채널의 표시 대상 채널을 전환할 때 즉시 반영되지 않는 문제 수정 #12236 - Fix: 플러그인에서 노트 표시를 다시 작성할 수 없는 문제 수정 - Fix: 아이콘 장식이 보이지 않는 문제 수정 - Fix: '팔로우 중인 모든 사람의 답장 포함/비포함' 버튼을 눌렀을 때 확인이 작동하지 않는 문제 수정 - Fix: 비로그인 시 '메모 추가'를 표시하지 않도록 변경 #12309 - Fix: 이모티콘 피커에서 검색이 업데이트되지 않는 문제 수정 - Fix: 특정 조건에서 노트가 nyaize되지 않는 문제 수정 ### Server - Enhance: FTT의 데이터베이스에 대한 폴백 처리 여부를 설정할 수 있습니다. - Fix: 토큰이 없는 플러그인을 제거할 때 오류가 발생하지 않도록 수정 - Fix: 게시 알림이 켜져 있어도 직접 게시가 사용자에게 알림을 보내지 않도록 수정되었습니다. - Fix: 사용자 타임라인에서 '노트' 선택 시 리노트가 섞여있는 문제 수정 #12306 - Fix: LTL에서 특정 조건에서 채널에 게시물이 혼재되는 현상 수정 - Fix: ActivityPub: 사용자 정보 태그에 사용자 지정 이모티콘이 추가 정보 태그에 포함되지 않는 문제 수정 - 수정: ActivityPub 관련 보안 개선 - 수정: 비공개 게시물에 대한 답글을 달지 못하도록 수정 ## 2023.11.0 릴리스 날짜: 2023/11/05 ### Note - iOS 16.4 미만을 사용하는 경우 iOS 16.4 이상으로 업데이트하십시오. ### General - Feat: 아이콘 꾸미기 기능 - 서버에서 준비된 이미지를 아이콘에 중첩할 수 있습니다. - 이미지 템플릿은 여기: https://misskey-hub.net/brand-assets/#avatar-decoration - 최대로 노란색 영역 안에 장식을 넣는 것이 좋습니다. - 이미지 크기는 512x512px를 권장합니다. - Feat: 채널 설정에 리노트/인용 리노트 허용 여부를 설정할 수 있는 항목이 추가되었습니다. - Enhance: 계정 등록 시 이메일 주소 인증에 30분 유효기간을 설정합니다. - 유효기간이 만료된 후에는 등록 시 사용한 초대 코드를 다시 사용할 수 있도록 변경했습니다. - 사용자가 잘못된 이메일 주소를 입력할 경우 초대 코드가 만료되는 문제가 해결됩니다. - Enhance: 이미 팔로우한 모든 사람의 답글을 TL에 추가할 수 있도록 - Enhance: 읽지 않은 알림의 수를 표시할 수 있도록 - Enhance: 알림이 없고 확인이 필요 없는 알림(silence)을 생성할 수 있습니다. - Enhance: 현지화 업데이트 - Enhance: 종속성 업데이트 - Change: CW를 사용할 때 주석을 비우는 것이 더 이상 허용되지 않습니다. ### Client - Feat: 플러그인 테마를 외부 사이트에서 직접 설치할 수 있게 되었습니다. - 외부 사이트에서 구현이 필요합니다.자세한 내용은 Misskey Hub에서 확인할 수 있습니다. https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 알림을 그룹화하여 표시하는 옵션(선택 사항) - Feat: Misskey의 기본적인 튜토리얼 구현 - Feat: 스와이프해서 타임라인을 다시 불러올 수 있도록 - PC의 경우 오른쪽 상단의 버튼을 통해서도 다시 불러올 수 있습니다. - Enhance: 타임라인의 자동 업데이트를 비활성화할 수 있습니다. - Enhance: 코드의 구문 강조 엔진을 Shiki로 변경 - AiScript의 구문 강조 표시 지원 - MFM에서 AiScript를 강조 표시하는 경우, 코드 블록의 시작 부분을 ` ```is` 또는 ` ```aiscript`로 지정해 주십시오. - Enhance: 데이터 세이버 활성화 시 애니메이션이 적용된 아바타 이미지가 정지되도록 - Enhance: 플러그인 삭제 시 사용하던 액세스 토큰도 동시에 삭제되도록 개선되었습니다. - Enhance: 플러그인에서 `Plugin:register_note_view_interruptor`를 사용하여 note 대신 null을 반환하여 메모를 숨길 수 있게 되었습니다. - Enhance: AiScript 함수 `Mk:nyaize()`가 추가되었습니다. - Enhance: 정보 → 도구가 탐색 모음에 도구로 독립된 항목이 되었습니다. - Enhance: 노트 내 이모티콘을 클릭하여 복사 및 리액션을 할 수 있도록 - Enhance: 기타 세세한 부분까지 다듬기 - Fix: 게시글 양식에서 사용자 변경사항이 미리보기에 반영되지 않는 문제 수정 - 수정: 사용자 페이지의 노트 > 파일 포함 탭에 답글이 표시되는 문제 해결 - Fix: '검색' MFM에서 일부 검색 키워드가 제대로 인식되지 않는 문제 수정 - Fix: 일부 언어에서 Misskey Web이 충돌하는 문제 해결 - Fix: 채널 생성/갱신 실패 시 아무것도 표시되지 않는 문제 수정 #11983 - Fix: 개인 카드의 emoji가 배터리로 표시되는 문제 수정 - Fix: 표준 테마와 동일한 ID를 사용하여 설치되는 문제 수정 - Fix: 이모티콘 선택기에서 배터리 이모티콘이 여러 개 표시되는 문제 수정 #12197 - Fix: 11개 이상의 리액션에서 툴팁에 표시되는 리액션 수가 원래보다 1개 더 많은 문제 수정 #12174 - Fix: 뮤트 상태에서 공개 범위의 퍼블릭을 선택할 수 있는 문제 수정 #12224 - Fix: 덱 레이아웃에서 새로고침 후 답글 옵션이 저장되지 않음 - Fix: 보관한 공지사항이 제어판에 표시되는 문제 수정 - Note: 업데이트 후 사운드 관련 설정이 초기화됩니다. ### Server - Feat: 이제 서드파티에서 Registry API를 사용할 수 있습니다. - Enhance: Redis에 TL의 캐시(FTT)를 끌 수 있도록 개선 - Enhance: 팔로우하고 있는 채널을 팔로우 해제했을 때 (또는 그 반대로) 타임라인에 반영되는 간격 개선 - Enhance: 프로필의 자기소개란의 MFM이 연합을 이루게 되었습니다. - 상대방이 Misskey v2023.11.0 이상이어야 합니다. - Enhance: 채널 로딩 시 성능 향상 - Enhance: AP: Application 타입의 계정을 isBot으로 취급하도록 - Fix: 리스트 TL에 자신의 팔로워 한정 게시물이 포함되지 않는 문제 수정 - Fix: 로컬 타임라인에 게시자 자신의 게시글에 대한 답글이 포함되지 않는 문제 수정 - Fix: 내가 팔로잉하는 사용자의 팔로잉하지 않은 사용자의 visibility: followers 게시물에 대한 답글이 스트리밍으로 흘러나오는 문제 수정 - Fix: Redis에 TL 캐싱이 활성화된 경우 HTL/LTL/STL이 비어있는 문제 수정 - Fix: STL에서 팔로우하지 않는 채널이 검색되는 문제 수정 - Fix: `hashtags/trend`에서 Redis에서 트렌드 정보를 가져올 수 없을 때 Internal Server Error로 표시되는 문제 수정 - Fix: HTL을 다시 로드하거나 소급할 때 팔로우 중인 채널의 노트가 포함되지 않는 문제 수정 #11765 #12181 - Fix: 리노트를 다시 작성할 수 있는 문제 수정 - Fix: 액세스 토큰을 삭제하면 알림을 받을 수 없는 문제 해결 - Fix: 자신의 목적지 없는 직접 게시물이 스트리밍으로 전송되지 않는 문제 수정 - Fix: 서버 측에서 테스트 알림을 올바르게 수행할 수 있도록 수정 - Fix: GTL의 '리노트 보기' 옵션이 작동하지 않는 문제 수정 #1223 ## 2023.10.2 릴리스 날짜: 2023/10/21 ### General - Feat: 안테나 타임라인에서 로컬 노트만 수집하는 기능이 추가 되었습니다. - Feat: 서버 사일런스 기능이 추가 되었습니다. - Enhance: 새로 팔로우한 사람이 멘션한 노트를 기본적으로 TL에도 추가할 수 있는 옵션을 추가 - Enhance: HTL/LTL/STL을 2023.10.0 업데이트 이전의 내용까지 되짚어 볼 수 있음 - Enhance: 팔로우/팔로우 해제 했을 때 과거의 HTL에도 포함되는 노트가 반영 될 수 있도록 함 - Enhance: 현지화 업데이트 - Enhance: 종속성 업데이트 ### Client - Enhance: TL 멘션 표시 옵션을 기억할 수 있도록 함 - Enhance: 시간이 오래 지난 노트를 시각적으로 알기 쉽도록 함 ### Server - Enhance: 타임라인 로딩 시의 퍼포먼스를 향상 - Enhance: 스트리밍 API 퍼포먼스를 향상 - Fix: users/notes에서 DB를 참조 했을 때 채널에 있는 노트만 불러와지는 문제를 수정 - Fix: 제어판 설정 항목이 정상적으로 저장되지 않는 문제를 수정 - Fix: 관리자 권한 롤을 가지고 있어도 일부 API를 사용할 수 없었던 문제를 수정 - Change: 유저의 isCat 설정이 true여도, 서버에서는 nyaize를 하지 않도록 바뀌었습니다 - isCat인 경우, 클라이언트 측에서 nyaize 처리를 하게 하는 것을 권장 합니다. ## 2023.10.1 릴리스 날짜: 2023/10/12 ### General - Enhance: 로컬 타임라인, 소셜 타임라인에서 멘션을 할지 안할지 설정할 수 있도록 함 ### Client - Fix: 이모지 선택기에서 옆으로 길은 커스텀 이모지가 잘려 보이는 문제를 수정 ### Server - Fix: 본인의 노트에 팔로우 유저로부터 멘션을 해도 타임라인에서 보이지 않는 문제를 수정 - Fix: users/notes에서 열람 주의 채널에 올라온 노트가 포함되는 문제를 수정 ## 2023.10.0 릴리스 날짜: 2023/10/10 ### NOTE - 2023.9.2에서 추가된 노트 편집 기능은 정상적인 구현을 할 수 없었으므로 취소합니다. - 업데이트를 실행하면, 타임라인이 일시적으로 초기화 됩니다. ### 변경 - API: 더 이상 users/notes, notes/local-timeline에서 fileType 지정을 할 수 없습니다. - API: 앞으로 notes/featured에서 페이지네이션은 다른 API와 같이 untilId로 처리합니다. ### General - Feat: 다른 유저에 멘션한 노트를 타임라인에 표시할지 말지의 설정을 각 유저마다 설정할 수 있습니다. - Feat: 유저 리스트 안에 있는 멤버가 다른 유저에게 보낸 노트를 유저 리스트 타임라인에 보이게 하는지의 여부를 각 유저마다 설정할 수 있습니다. - Feat: 유저마다 하이라이트 하기 - Feat: 정보 보호 정책, 운영자 정보 (Impressum) 지정을 할 수 있습니다. - 정보 보호 정책은 서버에 회원 가입할 때 동의하도록 설정할 수 있습니다. - Feat: 타임라인 안에 실시간 업데이트 중에도 광고를 넣을 수 있게 되었습니다. - 기본 설정은 OFF - 표시 빈도는 제어판에서 바꿀 수 있습니다.운영하고 있는 서버의 TL이 어느 정도 속도로 지나가는지 확인하고, 여기에 맞춰서 설정하세요. - Enhance: 하드 단어 뮤트는 소프트 단어 뮤트에 통합 되었습니다. - Enhance: 조정 로그 기능 강화 - Enhance: 현지화 업데이트 - Enhance: 종속성 업데이트 - Fix: 다이렉트 노트인데도 리노트 되는 문제를 수정 - Fix: 유저 리스트 TL에 채널에서만 볼 수 있는 노트도 같이 표시되는 문제를 수정 ### Client - Feat: '파일 상세' 페이지를 추가 - 드라이브의 파일 확대 미리보기를 할 수 있게 되었습니다. - 파일이 첨부된 노트의 목록을 표시할 수 있게 되었습니다. - Enhance: 2단계 인증의 백업 코드 목록을 텍스트 파일로 다운로드 할 수 있게 되엇습니다. - Enhance: 동영상 재생 시 기본 음량이 30%로 되었습니다. - Fix: 리액션한 유저 목록 UI가 드물게 좌상단에 남아있는 문제를 수정 ### Server - Enhance: drive/files/attached-notes가 페이지 매김에 대응하게 되었습니다. - Enhance: 타임라인 로딩 시 성능을 대폭 향상 - Enhance: 하이라이트 로딩 시 성능을 대폭 향상 - Enhance: 트렌드 해시태그 로딩 시 성능을 대폭 향상 - Enhance: WebSocket 접속이 많은 경우 성능을 향상 - Enhance: 불필요한 PostgreSQL 인덱스를 삭제해 성능을 향상 - Fix: 연합되지 않은 설문에 투표하면 Update가 리모트로 발신되는 문제를 수정 - Fix: nodeinfo에서 CORS용 헤더가 설정되지 않은 문제를 수정 - Fix: 같은 종류의 TL 스트리밍을 여러 개 접속할 수 없는 문제를 수정 - Fix: 안테나 TL을 도중까지 밖에 페이지 매김되지 않는 문제를 수정 - Fix: '미디어를 포함한 노트만' TL에서 미디어가 없는 신착 노트가 나오는 문제를 수정 - Fix: 프로세스가 종료되지 않거나 매우 시간이 걸리는 문제를 수정 ## 2023.9.3 출시일: 2023/09/30 ### General - Enhance: 노트 번역 기능의 이용 여부를 역할로 설정할 수 있게 되었습니다. ### Client - Enhance: AiScript에서 호스트의 주소를 참조하는 정수 'SERVER_URL'을 추가 - Enhance: 조정 로그 기능 강화 - Enhance: 현지화 업데이트 ### Server - Fix: Redis에 낡은 버전의 캐시가 남아있는 경우에 캐시가 사라질 때까지 알림이 오지 않는 문제를 수정 - Fix: 하위 호환성 수정 ## 2023.9.2 출시일: 2023/09/29 ### General - Feat: 노트의 편집을 할 수 있게 되었습니다. - 역할에서 편집 여부 설정 가능 - Feat: 알림을 종류마다 전원에게서 수신/팔로우 중인 유저만 수신/팔로워만 수신/맞팔로우된 유저만 수신/지정한 목록의 멤버만 수신/수신하지 않음에서 고를 수 있게 되었습니다. - Enhance: 타임라인에서 Renote를 제외하는 옵션을 추가 - Enhance: 유저 페이지의 노트 목록에서 Renote를 제외할 수 있게 되었습니다. - Enhance: 타임라인에서 미디어를 포함한 노트만 표시하는 옵션을 추가 - Enhance: 모더레이션 로그 기능을 강화 함 - Enhance: 종속성 업데이트 - Enhance: 현지화 업데이트 ### Client - Enhance: Plugin:register_post_form_action을 사용해 CW를 로딩, 업데이트할 수 있게 되었습니다. - Enhance: admin/ad/list에서 게재 중인 광고의 종류를 좁힐 수 있게 되었습니다. - Enhance: AiScript에 리모트 서버의 API를 치기 위한 함수를 추가 ('Mk:apiExternal') ### Server - Enhance: Master 프로세스의 PID를 불러올 수 있게 되었습니다. - Enhance: admin/ad/create에서 응답 200, 설정한 광고 정보를 반환하게 되었습니다. ## 2023.9.1 출시일: 2023/09/25 ### General - Enhance: 조정 로그 기능 강화 ### Client - ral ### Server - Fix: 알림 페이지 매김이 기능되지 않는 것을 수정 - Fix: '유저의 새 글'의 알림 설정을 교체하면 서버 내부 에러가 나오는 것을 수정 ## 2023.9.0 출시일: 2023/09/24 ### Note - meilisearch를 사용하는 경우, v1.2 이상이 필요합니다. ### General - Feat: OAuth 2.0 지원 - Feat: 알림 기능 강화 - 유저 개별 알림을 작성할 수 있게 되었습니다. - 알림 배너 표시나 다이얼로그 표시가 가능하게 되었습니다. - 알림의 아이콘을 설정할 수 있게 되었습니다. - Feat: 채널을 민감한 채널로 지정할 수 있게 되었습니다. - 민감한 채널의 Note의 ReNote는 기본으로 Home TL에 나오게 되었습니다. - 민감한 채널의 노트는 유저 프로필에 표시되지 않습니다. - Feat: 2단계 인증의 백업 코드가 생성되게 되었습니다. - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 2단계 인증에서 패스키를 지원하게 되었습니다. - Feat: 지정한 유저가 게시했을 때 알림이 오게 되었습니다. - Feat: 프로필에서의 링크 검증 - Feat: 조정 로그 기능 - Feat: 알림을 테스트해볼 수 있게 되었습니다. - Feat: PWA 아이콘을 설정할 수 있게 되었습니다. - Enhance: 서버명의 약칭을 설정할 수 있게 되었습니다. - Enhance: 안테나의 수신 소스에 지정한 유저를 제외하는 것을 추가 - Enhance: 2단계 인증 설정 시 보안을 강화 - 비밀번호 입력이 필요한 조작을 할 때, 2단계 인증이 활성화돼있으면 확인 코드의 입력도 필요하게 되었습니다. - Enhance: manifest.json을 오버라이드할 수 있게 되었습니다. - Enhance: 종속성 업데이트 - Enhance: 현지화 업데이트 ### Client - Feat: 임의의 유저 목록을 타임라인 페이지에서 고정할 수 있게 되었습니다. - 설정 -> 클라이언트 설정 -> 일반에서 설정할 수 있습니다. - Feat: Play에서 직접 글 입력란을 삽입할 수 있게 되었습니다. ('Ui:C:postForm') - Feat: 클라이언트를 기동하는 동안 장치의 화면이 자동으로 꺼지는 것을 막는 옵션을 추가 - Feat: 새로운 도전 과제를 추가 - Enhance: 노트 상세 페이지에서 리노트 목록, 리액션 목록 탭을 추가 - 노트의 메뉴에서 해당 항목은 사라졌습니다. - Enhance: 민감한 미디어를 눈에 띄게 하는 설정을 추가 - Enhance: 프로필에 그 사람이 만든 Play 목록이 나오게 되었습니다. - Enhance: 메뉴 스위치 작동을 개선 - Enhance: 이모티콘 선택기의 검색 표시 건수를 100건으로 증가 - Enhance: 글 입력란 미리보기의 표시 상태를 기억하게 되었습니다. - Enhance: 유저 메뉴에서 스위치로 유저 목록에 추가, 삭제할 수 있게 되었습니다. - Enhance: 자신이 누른 리액션의 디자인을 개선 - Enhance: 노트 검색에 로컬만 검색 가능한 옵션 추가 - Enhance: Renote 자체를 통보할 수 있게 되었습니다. - Enhance: 데이터 세이버 모드 강화 - Enhance: Renote를 관리자 권한으로 삭제할 수 있게 되었습니다. - Enhance: '$[rainbow ]'기법이 움직임 있는 MFM이 비활성화돼있어도 사용할 수 있게 되었습니다. - Enhance: Play 조작을 하는 API Token을 API 콘솔에서 발행할 수 있게 되었습니다. - Enhance: 리액션의 표시 크기를 더욱 크게 할 수 있게 되었습니다. - Enhance: AiScript를 0.16.0으로 업데이트 - Enhance: AiScript에서 Misskey 서버 API를 불러올 때 제한을 철폐 - Enhance: AiScript에서 'LOCALE'로 현재 설정 언어를 로딩할 수 있게 되었습니다. - Enhance: Mk:api가 실패했을 때 에러 유형 값(AiScript 0.16.0에서 추가)을 반환할 수 있게 되었습니다. - Enhance: Scratchpad에서 Async:계 함수나 버튼의 콜백 등의 에러에도 다이얼로그를 낼 수 있게 되었습니다. (시험적이기에 Play 등에는 미실장) - Enhance: 노트 상세 페이지 불러오기 시 성능이 향상됐습니다. - Enhance: 타임라인에서 목록/안테나 선택 시 성능을 개선 - Enhance: 'Moderation Note', 'Add moderation note'를 현지화할 수 있게 되었습니다. - Enhance: 플러그인의 소스 코드를 확인, 복사할 수 있게 되었습니다. - Enhance: 세세한 디자인 조정 - Fix: 서버 정보 화면('/instance-info/{domain}')에서 블록이 되지 않는 문제를 수정 - Fix: 읽지 않은 알림의 '알겠어요'를 클릭, 탭해도 바로 '알겠어요'가 사라지지 않는 문제를 수정 - Fix: iOS에서 화면을 회전시키면 텍스트 사이즈가 변하는 문제를 수정 - Fix: word mute for sub note is not applied - Fix: 타임라인을 아래로 스크롤해 노트 화면으로 이동해 다시 돌아오면 이전의 스크롤 위치에서 벗어나는 문제를 수정 - Fix: Misskey 플러그인을 설치할 때 AiScript 버전 체크가 0.14.0 이후 대응되지 않는 문제를 수정 - Fix: 다른 서버의 유저에게 '메시지 보내기'를 했을 때 초기 텍스트의 멘션이 잘못된 문제를 수정 - Fix: 환경에 따라서는 Misskey Web이 열리지 않는 문제를 수정 - Fix: 플러그인 권한 목록이 보이지 않는 문제를 수정 - Fix: 여러 계층이 있는 메뉴에서 짧게 탭하면 정상적으로 작동되지 않는 문제를 수정 - Fix: 애니메이션이 꺼져 있을 때, 스마트폰에서 자식 메뉴의 선택이 되지 않는 문제를 수정 - Fix: 서랍 메뉴에서 부모 메뉴 항목에 마우스를 올리면 자식 메뉴가 표시되는 문제를 수정 - Fix: AiScript에서 Mk:api가 외부와 통신되는 문제를 수정 ### Server - Change: cacheRemoteFiles의 초기값은 false로 되었습니다. - Enhance: 파일 업로드 등에서 파일명의 확장자를 수정하는 함수(correctFilename)의 작동을 개선 - Enhance: Webhook의 페이로드에 서버의 url이 포함되게 되었습니다. - Enhance: Webhook 설정에서 secret을 공백으로 할 수 있게 되었습니다. - Enhance: 사용되지 않은 안테나의 자동 정지를 설정할 수 있게 되었습니다. - Enhance: nodeinfo 2.1 대응 - Enhance: 자신에게로의 멘션 목록을 로딩할 때 성능을 향상 - Enhance: Docker 환경에서 jemalloc을 사용해 메모리 사용량을 감소 - Enhance: ID 생성 방식으로 aidx를 추가, 기본값으로 설정 - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVER 옵션을 지정했을 때 크래시되는 문제를 수정 - Fix: notes/reactions의 페이지 매김이 기능되지 않는 문제를 수정 - Fix: 노트 검색 'notes/search'에서 host를 지정했을 때 검색 결과에 반영되게끔 수정 - Fix: 일부 featured note가 조회되지 않는 문제를 수정 - Fix: mute가 api에서 user list timeline을 불러와 기능되지 않는 문제를 수정 - Fix: 작업 대기열 관리 화면의 인증을 회피할 수 있는 문제를 수정 - Fix: 일부 서버 내부 에러가 스택 추적을 반환하지 않도록 수정 - Fix: 일부 리모트 유저를 팔로우할 수 없는 문제를 수정 ## 13.14.2 출시일: 2023/07/27 ### Client - 목록 타임라인에서 유저가 추가, 삭제돼도 타임라인을 초기화하지 않도록 수정 - URL 로딩 변수를 함수로 변경 CURRENT_URL -> Mk:url() - Fix: 모바일 표시에서 페이지 아랫쪽이 내비게이션 바로 가려지는 문제를 수정 - Fix: 일부 모달 다이얼로그에서 스크롤되지 않는 문제를 수정 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipe의 메모리 리크 수정 ### Server - Fix: API의 오프셋이 잘못돼있어서 '더 보기'로 더 볼 수 없는 문제를 수정 - Fix: 외부 서버의 게시물이 타임라인에 표시되지 않는 문제를 수정 ## 13.14.1 출시일: 2023/07/21 ### General - 초대 기능을 개선했습니다. - 과거에 발행한 초대 코드를 확인할 수 있게 되었습니다. - 역할마다 초대 코드의 발행 수 제한과 제한 대상 기간, 유효 기간을 설정할 수 있게 되었습니다. - 초대 코드를 작성한 유저와 사용한 유저를 확인할 수 있게 되었습니다. - 유저에게 역할이 기한부로 할당된 경우, 그 기한을 유저의 조정 페이지에서 확인할 수 있게 되었습니다. - identicon 생성을 비활성화해 성능을 향상시킬 수 있게 되었습니다. - 서버 머신 정보의 공개를 비활성화해 성능을 향상시킬 수 있게 되었습니다. ### Client - deck UI 컬럼의 메뉴에서 안테나와 목록의 편집 화면을 열 수 있게 되었습니다. - 드라이브 파일의 메뉴에서 이미지를 자르기할 수 있게 되었습니다. - 이미지를 동영상처럼 간단히 숨길 수 있게 되었습니다. - Enhance: 노트의 임베딩이 여러 이미지와 동영상을 표시할 수 있게 되었습니다. - 원본 이미지를 유지하지 않고 업로드하는 경우 webp로 업로드되도록 되었습니다. (Safari 이외) - 본 적 있는 Renote를 생략하여 표시가 켜져 있을 때 자신의 note의 renote를 생략하게 되었습니다. - 폴더나 파일에 대해서도 개발자 모드 사용 시, ID를 복사할 수 있게 되었습니다. - 인용 대상을 '더 보기'로 펼쳤을 때, '닫기'로 접을 수 있게 되었습니다. - 프로필 URL을 복사할 수 있는 버튼을 추가 #11190 - 'CURRENT_URL'에서 현재 표시 중인 URL을 로딩할 수 있게 되었습니다. (AiScript) - 유저의 ContextMenu에 '안테나에 추가' 버튼을 추가 - 팔로우나 즐겨찾기 등록을 하지 않은 채널을 열 때는 개요 페이지를 열게 되었습니다. - 화면 뷰어를 탭했을 때, 마우스 클릭처럼 이미지 뷰어를 닫을 수 있게 되었습니다. - 오프라인 시 화면에 리로딩 버튼을 추가 - Renote 시 공개 범위의 기본 설정이 적용되게 되었습니다. - Deck에서 비루트 페이지에 접근했을 때 간이 UI로 표시하지 않는 설정을 추가 - 역할 설정 화면에서 역할 ID를 확인할 수 있게 되었습니다. - 콘텍스트 메뉴 표시 시 성능을 개선 - 팔로우/팔로워 비공개 시 표시를 개선 - 본문에 MFM이 포함돼있는 경우 자동으로 접히는 기능이 답글 위치나 인용 RN에도 적용되게 되었습니다. - position은 대상 외로 되었습니다. - AiScript를 0.15.0으로 업데이트 - Fix: 서버 통계가 90도 회전돼있는 문제를 수정 - Fix: 로그인돼있지 않았을 때 자격 증명이 필요한 페이지로 가면 에러가 나오는 문제를 수정 - Fix: sparkle 내에 링크를 넣으면 클릭할 수 없게 되는 문제를 수정 - Fix: ZenUI에서 팝업 표시 위치가 이상하게 되는 문제를 수정 - Fix: 페이지 이동에서 스크롤 위치가 유지되지 않는 문제를 수정 - Fix: 폴더의 페이지 매김이 기능하지 않는 문제를 수정 #11180 - Fix: 긴 문장을 게시할 때, 미리보기가 화면에서 빠져 나오는 문제를 수정 - Fix: 시스템 글꼴 설정이 바르게 반영되지 않는 문제를 수정 - Fix: 설문 종료 시 푸시 알림이 바르게 표시되지 않는 문제를 수정 - Fix: MasterVolume이 0일 때 뿐만 아니라 각 알림음의 음량 설정이 0일 때에도 HTMLAudioElement.play가 실행되지 않도록 수정 ### Server - JSON.parse의 횟수를 줄여 스트리밍의 성능을 향상시켰습니다. - nsfwjs의 모델 로드를 배타함으로써 중복 로드로 메모리 사용량이 증가하지 않게 되었습니다. - 연합의 보내기 작업의 성능을 향상(잠금 장치 재검토, Redis 캐시 활용) - featured 노트의 signedGet 횟수를 줄였습니다. - ActivityPub의 사인용 키의 길이를 2048bit로 변경해 성능을 향상(신규 계정만) - 리모트 서버의 민감한 파일의 캐시만을 비활성화하는 옵션을 추가 - Meilisearch에 Index하는 노트의 범위를 설정할 수 있게 되었습니다. - Export notes with file detail - Add unix socket support - 설정 파일에서 ioredis의 모든 옵션을 설정할 수 있게 되었습니다. - Fix: 내보내기한 커스텀 이모티콘의 zip이 크기가 크면 불러올 수 없는 문제를 수정 - Fix: 리모트 서버에 무의미한 ActivityPub 발신을 하는 것을 수정 - Fix: Remove Meilisearch index when notes are deleted - Fix: 비영어권 환경에서의 PostgreSQL 에러 처리를 수정 - Fix: 인스턴스의 아이콘이 base64인 경우의 작동을 수정 - Fix: 로컬의 'Person'을 가리키는 'acct' URL을 해석할 때의 버그를 수정 - Fix: 비활성화된 안테나가 다시 활성화되지 않는 문제를 수정 ## 13.13.2 출시일: 2023/06/13 ### General - 에러 시나 항목이 존재하지 않을 때 등의 아이콘 이미지를 서버 관리자가 설정할 수 있게 되었습니다. - 역할이 부여된 유저 목록을 비공개로 할 수 있게 되었습니다. - 서버의 부하가 매우 높기에 유저 통계 표시 기능을 삭제했습니다. ### Client - Fix: 탭이 백그라운드에서도 stream이 끊기지 않도록 수정 ### Server - Fix: 캐시가 계속 쌓이지 않도록 수정 ## 13.13.1 출시일: 2023/06/06 ### Client - Fix: 탭이 활성화된 동안에는 stream이 끊기지 않도록 수정 ### Server - Fix: api/meta에서 TypeError: JSON5.parse is not a function' 에러가 발생하는 문제를 수정 ## 13.13.0 출시일: 2023/06/05 ### General - 커스텀 이모티콘마다 리액션으로 사용할 수 있는 역할을 설정할 수 있게 되었습니다. - 커스텀 이모티콘마다 연합할지에 대해 설정할 수 있게 되었습니다. - 커스텀 이모티콘마다 민감한 이모티콘 플래그를 설정할 수 있게 되었습니다. - 민감한 커스텀 이모티콘의 리액션을 받지 않도록 설정할 수 있게 되었습니다. - 타임라인에서 팔로우를 한 다른 유저에 대한 답글을 포함시킬지에 대한 설정을 계정에 보존하는 것을 하지 않게 되었습니다. - 이후로는 API 호출 시 및 스트리밍 접속 시에 설정할 수 있게 됩니다. - 목록을 공개할 수 있게 되었습니다. ### Client - 리액션의 취소/변경 시에 확인 다이얼로그가 나오게 되었습니다. - 개발자 모드를 추가 - AiScript를 0.13.3으로 업데이트 - Deck UI를 사용하고 있는 경우, '/' 이외로 접근했을 때 Zen UI로 표시하게 되었습니다. - 메인 컬럼을 설치하지 않은 경우의 문제를 해결 - 해시태그의 노트 목록 페이지에서 그 해시태그로 게시하는 버튼을 추가 - 계정 초기 설정 위자드로 돌아오는 버튼을 추가 - 계정의 초기 설정 위자드에 나중에 버튼을 추가 - 서버에 커스텀 이모티콘의 종류가 많은 경우 성능을 개선 - Fix: URL 미리보기에서 정보가 로딩되지 않았을 때의 작동을 수정 - Fix: Safari, Firefox에서의 신규 등록 시 비밀번호 관리자에 메일 주소가 등록돼있는 작동을 수정 - Fix: 역할 타임라인이 비활성화돼있어도 게시물이 보이는 문제를 수정 - Fix: 역할 타임라인에서 모든 게시물이 보이는 문제를 수정 - Fix: '액세스 토큰의 관리' 화면에서 애플리케이션의 정보가 표시되지 않는 문제를 수정 - Fix: Firefox의 이모티콘 선택기의 Tab 키 포커스 문제를 수정 - Fix: 팔로우 버튼이 테마의 컬러 스킴으로 눈에 잘 들어오지 않는 문제를 수정 - 새로운 프로퍼티 'fgOnWhite'가 추가됐습니다. ### Server - bull을 bull-mq로 업그레이드하고, 작업 대기열의 성능을 개선 - 스트리밍의 성능을 개선 - Fix: 비활성화된 안테나에 액세스가 있었을 때 다시 활성화되도록 수정 - Fix: 알림의 이미지 URL을 공백으로 할 수 없는 문제를 수정 - Fix: i/notifications의 sinceId가 기능하지 않는 문제를 수정 - Fix: page의 고정을 해제할 수 없는 문제를 수정 ## 13.12.2 출시일: 2023/05/12 ### NOTE Meilisearch의 설정에서 'index'가 필요하게 되었습니다.값은 Misskey 서버의 호스트명으로 하는 것을 권장합니다. (알파벳, 하이픈, 언더바만 사용 가능)예: 'misskey-io' 과거에 작성된 'notes' 인덱스는 '---notes'에서 이름 변경이 필요합니다.예: 'misskey-io---notes' ### General - 게시한 콘텐츠의 AI 학습을 줄이는 옵션을 추가 ### Client - 유저를 지정한 뒤 노트 검색을 할 수 있게 되었습니다. - 계정 초기 설정 위자드에 개인 정보 보호 설정을 추가 - 유지 보수율 차트에 꺾은 선 그래프를 추가 - Fix: 블러 이펙트를 활성화한 상태에서 과부하되는 문제를 수정 - Fix: Page에서 이미지 블록으로 이미지를 설정할 수 없는 문제를 수정 - Fix: 컬러 바가 답글에는 표시되지 않는 문제를 수정 - Fix: 채널 내 검색 박스가 작동이 이상해지는 문제를 수정 - Fix: 유지 보수 차트의 렌더링을 수정 - Fix: 리액션 이펙트의 렌더링 문제를 수정 ### Server - 민감한 단어 등록에 And, 정규 표현을 사용할 수 있게 되었습니다. - Fix: 하나의 Meilisearch 서버를 여러 Misskey 서버에서 사용할 수 없는 문제를 수정 ## 13.12.1 출시일: 2023/05/09 ### General - 프로필 화면의 조정 노트 표시를 조정 - Fix: 일부 다이얼로그가 표시되지 않는 문제를 수정 - Fix: MkUserInfo의 팔로우 버튼이 이상한 위치에 있는 문제를 수정 ### Server - Fix: 리모트 서버의 정보가 업데이트되지 않는 문제를 수정 - Fix: 13.11을 경험하지 않은 상태에서 13.12로 업데이트한 경우 유저 프로필 관련 이미지가 사라지는 문제를 수정 ## 13.12.0 출시일: 2023/05/09 ### NOTE - Node.js 18.6.0 이상이 필요하게 되었습니다. ### General - 계정 이전(팔로워 연계)에 대응 - Meilisearch를 전체 문장 검색에 사용할 수 있게 되었습니다. - 신규 등록 전에 간결한 규칙을 유저에게 표시할 수 있는 서버 규칙 기능을 추가 - 유저에게로의 자신 전용 메모 기능 - 유저에 대해 자신만 볼 수 있는 메모를 추가할 수 있게 되었습니다. (자신에 대해서도 메모를 추가할 수 있습니다.) - 유저 메뉴에서 추가할 수 있습니다. (데스크톱 표시에서는 username의 오른쪽 버튼에서도 추가 가능) - 채널에 색을 설정할 수 있게 되었습니다.각 노트에 설정한 색의 지표가 표시됩니다. - 채널을 아카이브할 수 있게 되었습니다. - 아카이브하면 채널 목록이나 검색 결과에 표시되지 않게 되고, 새로운 작성도 할 수 없게 됩니다. - 안테나의 내보내기/가져오기를 할 수 있게 되었습니다. - 역할 타임라인을 역할마다 표시할지를 선택할 수 있게 되었습니다. - 기본이 꺼진 것으로 되므로 역할 타임라인을 표시하는 경우에는 켜주십시오. - 역할에 강제적으로 NSFW를 부여하는 정책을 추가 - 업로드 완료 파일은 NSFW로 되지 않기 때문에 주의해주십시오. - 조정 노트가 유저의 프로필 페이지에서도 열람 및 편집할 수 있게 되었습니다. - 커스텀 이모티콘의 라이선스를 여러 개 설정할 수 있게 되었습니다. - 관리자가 예약 유저명을 설정할 수 있게 되었습니다. - Fix: 팔로우 요청의 알림이 남아있는 문제를 수정 ### Client - 계정 작성 시에 초기 설정 위자드를 표시하게 되었습니다. - 채널 내 검색을 할 수 있게 되었습니다. - 채널 검색에서 모든 채널의 로딩/표시를 할 수 있게 되었습니다. - 알림의 표시를 커스터마이징할 수 있게 되었습니다. - 드라이브의 파일 목록에서 직접 노트를 작성할 수 있게 되었습니다. - 노트 메뉴에서 Renote한 유저의 목록을 볼 수 있게 되었습니다. - 제어판의 커스텀 이모티콘 페이지 및 about 커스텀 이모티콘의 검색 입력에서 ':emojiname1::emojiname2:'처럼 검색해 이모티콘을 검색할 수 있게 되었습니다. - 이모티콘 선택기에서 입력 가능하게 되었습니다. - 데이터 세이버 모드 추가 - 이미지가 모두 숨겨진 상태로 표시됩니다. - 열람 주의 설정된 이미지는 표시한 상태여도 열람 주의라고 알 수 있는 표시를 할 수 있게 되었습니다. - 모더레이터는 노트에 첨부된 이미지 상에서 직접 NSFW 설정을 할 수 있게 되었습니다. - 프로필 설정 '추가 정보' 항목 삭제와 정렬을 할 수 있게 되었습니다. - 새로운 도전 과제를 추가 - AiScript를 0.13.2로 업데이트 - Fix: AiScript API의 Mk:dialog에서 아무 것도 반환하지 않은 것을 NULL을 반환하도록 수정 - Fix: 1:1이 아닌 이미지의 리액션 알림 배지가 왼쪽이나 위로 붙는 것을 중앙으로 오게 수정 - Fix: 리액션에 마우스를 올렸을 때 유저 목록에서 고양이 귀가 잘리는 문제를 수정 - Fix: NSFW 미디어에 표시된 '더 보기' 버튼을 누르기 힘든 문제를 수정 ### Client - channel/search의 query가 비어있는 경우 모든 채널을 반환하도록 변경 - 환경 변수 MISSKEY_CONFIG_YML에서 설정 파일을 default.yml에서 변경할 수 있게 되었습니다. - Fix: 다른 서버의 정보가 로딩되지 않는 문제를 수정 - Fix: 내보내기 데이터의 확장자가 unknown으로 되는 문제를 수정 - Fix: Content-Disposition의 패스에서 에러가 발생한 경우 다운로드가 완료되지 않는 문제를 수정 - Fix: API: i/update avatarld와 bannerId에 null을 넘겼을 때 이미지가 리셋되지 않는 문제를 수정 - Fix: .wav, .flac이 재생되지 않는 문제를 수정 (새롭게 업로드된 파일만 수정이 적용됩니다) - Fix: 정지된 유저가 일부 API의 응답에 포함되는 문제를 수정 - Fix: 메모리 사용량을 'used - buffers - cached'가 아닌 'total - available'에서 요구하도록 수정 (환경에 따라서 정상적으로 계산되지 않았기 때문) ## 13.11.3 출시일: 2023/04/13 ### General - 지정한 역할을 가진 유저의 노트만 보이는 역할 타임라인을 추가 - Deck의 컬럼으로도 추가 가능 - 커스텀 이모티콘 관련 개선 - 노트 등에 포함되는 emojis(populateEmoji 결과)는 (프록시된 URL이 아닌) 원본 URL을 가리키게 되었습니다. - MFM에서 x3/x4 혹은 scale.x/y가 2.5 이상으로 지정돼있던 경우에는 원본 화질의 이모티콘을 사용할 수 있게 되었습니다. - 커스텀 이모티콘에서 리액션되지 않는 문제를 수정 ### Client - 채널의 고정된 노트의 순서가 바르지 않은 문제를 수정 ### Server - 팔로우 가져오기 등에서 대량의 팔로우 등 조작을 큐잉하게 되었습니다. #10544 @nmkj-io - Misskey Web에서의 서버 사이드 에러 화면을 개선 - Misskey Web에서의 서버 사이드 에러 로그가 남게 되었습니다. - 노트 작성 시 안테나 추가 성능을 개선 - 안테나와 역할 타임라인의 until/since 프로퍼티가 작동하게 되었습니다. ## 13.11.2 출시일: 2023/04/11 ### Note - 13.11.0 혹은 13.11.1에서 13.11.2 이후로 업데이트한 경우 Redis의 커스텀 이모티콘의 캐시를 삭제할 필요가 있습니다. (https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 참조) ### General - 채널의 검색용 페이지 추가 ### Client - 항상 광고를 보이는 옵션을 추가 - 유저 페이지 이미지 목록이 표시되지 않는 문제를 수정 - webhook, 연휴 애플리케이션 목록에서 콘텐츠가 중복해서 표시되는 문제를 수정 - iPhone에서 이모티콘 선택기 표시가 일그러지는 문제를 수정 - iPhone에서 위젯 서랍의 '위젯 편집'을 누르기 힘든 문제를 수정 - 글 입력란의 디자인을 조정 - 갤러리의 인기 게시물이 무한히 페이징되는 문제를 수정 ### Server - channels/search Endpoint API 추가 - API 파라미터 사이즈 상한을 32kb에서 1mb로 완화 - 푸시 알림 송신 시 성능을 개선 - 로컬 커스텀 이모티콘의 캐시가 제대로 작동하지 않았던 문제를 수정 - 안테나의 노트, 채널의 노트, 알림이 정상적으로 작성되지 않는 문제를 수정 - 스트리밍의 LTL 채널에서 서버 측에 에러 로그가 나오는 문제를 수정 ### Service Worker - '푸시 알림이나 메시지를 읽은 뒤 푸시 알림을 삭제'를 부활 - '푸시 알림이 업데이트됐습니다'의 작동을 바꿨습니다. (호스트와 버전을 표시하고, 일정 시간 후 삭제는 하지 않도록) - 푸시 알림이 도전 과제 해제(achievementEarned)에 대응 - 푸시 알림의 액션에서 기존 클라이언트의 글 입력란을 열 때 작동을 수정 - 많은 푸시 알림을 닫았을 때 그 알림의 수만큼 notifications/mark-all-as-read를 치는 것을 그만 두도록 수정 ## 13.11.1 출시일: 2023/04/09 ### General - 채널의 게시물을 과거까지 돌아볼 수 있도록 수정 ### Client - PWA 시 이모티콘 선택기의 위치를 홈 바에 겹치지 않도록 수정 - 목록 관리 화면에서 목록을 무한히 불러오는 문제를 수정 - 자신의 클립을 무한히 불러오는 문제를 수정 - 채널의 즐겨찾기를 무한히 불러오는 문제를 수정 - 찾아보기의 로컬 유저(고정)가 무한히 생성되는 문제를 수정 - 채널을 신규 작성할 수 없는 문제를 수정 - 유저 미리보기가 표시되지 않는 문제를 수정 ### Server - 알림 불러오기에서 에러가 발생하는 문제를 수정 - 리액션이 되지 않는 문제를 수정 - ID를 aid 이외에 설정하고 있는 경우의 문제를 수정 - 연합하고 있는 인스턴스에 대해 예기 없이 배송이 모두 정지되는 문제를 수정 ## 13.11.0 출시일: 2023/04/08 ### NOTE - 이 버전부터 Redis 7.x가 필요합니다. - 업데이트를 하면 모든 알림 및 안테나의 노트는 리셋됩니다. ### General - 채널을 즐겨찾기 등록할 수 있게 되었습니다. - 타임라인의 안테나 선택 등에서는 팔로우하고 있는 안테나 대신 즐겨찾기한 안테나가 표시되게 되었습니다.채널을 즐겨찾기 등록하려면 해당 채널의 페이지 → ⭐️ 버튼을 누릅니다. - 채널에 노트를 고정할 수 있게 되었습니다. ### Client - 글 입력란의 디자인을 개선 - 검색 페이지에서 URL을 입력했을 때 조회했을 때와 같은 작동을 하게 되었습니다. - 노트의 리액션을 크게 표시하는 옵션을 추가 - 갤러리 목록에서 미디어 표시와 같이 NSFW 설정을 반영하게 되었습니다. (마우스를 올려 표시) - 오브젝트 스토리지의 설정 화면을 알기 쉽게 했습니다. - 광고, 알림이 신규 등록 시 증식하지 않도록 - '미야아아아오오오오오오오오오옹!!!!!!!'('isCat') 활성화 시 아바타에 표시되는 고양이 귀에 대해 작동을 업데이트 - 'UI에 흐림 효과 사용'('userBlurEffect')으로 다음 작동이 활성화됩니다. - 고양이 귀 아바타 내부 부분을 흐리게 하고 마스크 표시해 더욱 고양이 귀처럼 보이게 되었습니다. - 'UI의 애니메이션을 줄이기'('reduceAnimation')로 고양이 귀를 쓰다듬지 못하게 됩니다. - Add Minimizing ("folding") of windows ### Server - PostgreSQL의 복제 대응 - 설정 파일의 'dbReplications' 및 'dbSlaves'에서 설정할 수 있습니다. - 이벤트용 Redis를 다른 서버로 분리할 수 있게 되었습니다. - 작업 대기열용 Redis를 다른 서버로 분리할 수 있게 되었습니다. - 서버의 전체적인 성능을 향상 - 노트 작성 시 성능을 향상 - 안테나의 타임라인 로딩 시 성능을 향상 - 채널의 타임라인 로딩 시 성능을 향상 - 알림에 관한 전체적인 성능을 향상 - webhook가 content-type text/plain;charset=UTF-8로 날아오는 문제를 수정 ## 13.10.3 출시일: 2023/03/25 ### General - 제어판의 조건에 '노트 수가 다음 이하인 유저', '노트 수가 다음보다 많은 유저'를 추가 - 리액션 비대응 AP 실장에서의 Like 액티비티 해석을 👍에서 ♥로 되었습니다. ### Client - 클립 버튼을 노트 액션에 추가할 수 있게 되었습니다. - 민감한 단어 목록에 고정 유저의 ID가 표시되는 문제를 수정 ### Server - 리모트 유저의 차트 생성을 비활성화하는 옵션을 추가 - 리모트 서버의 차트 생성을 비활성화하는 옵션을 추가 - 드라이브의 차트는 로컬 유저만 생성하게 되었습니다. - 빈 안테나를 작성할 수 있는 것을 수정 ## 13.10.2 출시일: 2023/03/22 ### Server - 이모티콘을 편집하면 보존되지 않는 문제를 수정 ### Client - 드라이브 파일의 메뉴가 정상적으로 작동하지 않는 문제를 수정 ## 13.10.1 출시일: 2023/03/22 ### Client - Misskey Play의 Play 버튼을 눌렀을 때 에러가 발생하는 문제를 수정 ## 13.10.0 출시일: 2023/03/22 ### General - 유저마다 Renote를 뮤트할 수 있게 되었습니다. - 노트마다 이모티콘 리액션을 받아들일지 설정할 수 있게 되었습니다. - 클립을 즐겨찾기에 등록할 수 있게 되었습니다. - 노트 검색 이용 여부를 역할로 제어 가능하게 되었습니다. (기본 꺼짐) - 역할의 정렬 순서를 설정할 수 있게 되었습니다. - 커스텀 이모티콘에 라이선스 정부를 부여할 수 있게 되었습니다. - 지정한 문자열을 포함한 게시물의 공개 범위를 홈으로 할 수 있게 되었습니다. - 사용되지 않은 안테나는 자동 정지되게 되었습니다. ### Client - 설정에서 자신의 역할을 확인할 수 있게 되었습니다. - 광고 목록 페이지를 추가 - 드라이브 클리너를 추가 - DM 작성 시 멘션도 포함하게 되었습니다. - 팔로우 신청 버튼의 디자인을 개선 - 위젯의 높이를 설정할 수 있게 되었습니다. - AP 오브젝트를 입력해 페치하는 기능과 유저나 노트의 검색 기능을 분리 - 내비게이션 바 항목에 '프로필'을 추가할 수 있게 되었습니다. - 내비게이션 바의 커스터마이징을 드래그 & 드롭으로 할 수 있게 되었습니다. - 작업 대기열의 재시도를 클릭 한 번으로 가능하게 되었습니다. - AiScript를 0.13.1로 업데이트 - oEmbed를 지원하고 있는 웹사이트의 미리보기를 할 수 있게 되었습니다. - YouTube를 oEmbed에서 로드하고 미리보기에서 공유 버튼을 누르면 OS의 공유 화면이 나오게 되었습니다. - ([Firefox에서 Spotify의 미리보기를 열면 풀 사이즈가 아닌 미리보기 사이즈만 재생 가능한 문제](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)가 있습니다) - (바로 브라우저에서 캐시된 링크에 대해서는 이전의 미리보기 행동이 이뤄집니다.그 경우 브라우저의 캐시를 클리어해 다시 시도해주십시오.) - 프로필에서 설정한 정보가 삭제되지 않는 문제를 수정 - 역할에서 광고를 비활성화하면 admin/ads에서 미리보기가 나오지 않는 문제를 수정 - /api-console 페이지로 접근하면 404가 나오는 문제를 수정 - Safari에서 플러그인이 여러 개 있는 경우 정상적으로 불러올 수 없는 문제를 수정 - Bookwyrm의 유저 프로필 페이지에서 '리모트에서 보기'를 탭해도 반응이 없는 문제를 수정 - 로그인돼있지 않았을 때 'Misskey에 대하여'의 표시를 수정 - PC판에서 '설정', '제어판'의 링크를 두 번 이상 계속 클릭했을 때 공백 페이지가 표시되는 문제를 수정 ### Server - OpenAPI 엔드포인트를 복구 - WebP/AVIF/JPEG의 web 공개용 이미지는 서버 사이드에서는 JPEG가 아닌 WebP로 변환하도록 되었습니다. - 애니메이션 이미지 섬네일을 생성하게 되었습니다. - 액티브 유저 수 차트의 기록 상한치를장 - Play의 소스 코드 상한 문자 수를 2배로 확장 - 배송 위치 서버가 410 Gone으로 응답해온 경우 자동으로 배송 정지를 하게 되었습니다. - avatarBlurHash/bannerBlurHash의 유형을 string으로 한정 - 타임라인 로딩 시 성능을 개선 - SMTP Login id length is too short - API 상에서 'visibility'를 'followers'에서 설정해 renote하면 연합이나 삭제에서 오류가 생기는 문제를 수정 - AWS S3에서의 파일 삭제로 NoSuchKey 에러가 나오면 진행되지 않는 상태로 되는 문제를 수정 - 'disableCache: true'를 설정하고 있는 경우에 이모티콘 관리 조작에서 에러가 나는 문제를 수정 - 유지 보수 분석이 잘 기능하지 않는 문제를 수정 - 빈 안테나가 작성되지 않도록 수정 - 특정 조건으로 알림이 보이지 않는 문제를 수정 - 이모티콘의 이름에 임의의 문자가 사용되는 문제를 수정 ## 13.9.2 출시일: 2023/03/06 ### Improvements - 클립, 채널 페이지에서 공유 버튼을 가 - 채널에서 타임라인 위쪽에 글 입력란을 표시할지에 대한 옵션을 추가 - 브라우저에서 미디어 프록시(/proxy)로 파일을 보존했을 때 최대한 원본 파일명을 따르게 되었습니다. - 드라이브의 'URL로 업로드'에서 content-disposition의 filename이 있으면 그것을 파일 명으로 하게 되었습니다. - Identicon이 로컬과 리모트에서 같게 되었습니다. - 여태까지의 Identicon은 다른 이미지로 됩니다. - 서버의 성능을 개선 ### Bugfixes - 역할의 권한에서 '일반 유저'의 역할이 갑자기 설정되지 않는 문제를 수정 - 유저 페이지의 배지 표시를 적절히 반환하게 되었습니다 @arrow2nd - fix(client): 찾기의 역할 목록에서 조건부 역할이 포함되는 것을 수정 - macOS에서 Dev Container가 작동하지 않는 문제를 수정 @RyotaK ## 13.9.1 출시일: 2023/03/03 ### Bugfixes - 노트에 첨부한 파일이 표시되지 않는 문제를 수정 ## 13.9.0 출시일: 2023/03/03 ### Improvements - 시간 제한 역할 - 안테나에서 CW도 검색 대상으로 되었습니다. - 노트의 조작부에 마우스를 올렸을 때만 표시하는 옵션을 추가 - 사운드 추가 - 서버의 성능을 개선 ### Bugfixes - 외부 미디어 프록시 사용 시 아바타 자르기가 되지 않는 문제를 수정 - fix(server): 메일 주소 업데이트 시 유효성 검사가 바르게 이루어지지 않는 문제를 수정 - fix(server): 채널에서 뮤트가 바르게 기능하지 않는 문제를 수정 - 푸시 알림에서 커스텀 이모티콘 리액션이 표시되지 않던 문제를 수정 ## 13.8.1 출시일: 2023/02/26 ### Bugfixes - 모바일에서 서랍 메뉴가 표시되지 않는 문제를 수정 ## 13.8.0 출시일: 2023/02/26 ### Improvements - 채널 내 하이라이트 - 홈 타임라인의 성능을 개선 - renote했을 때의 표시를 개선 - 백그라운드에서 일정 시간이 경과하면 페이지 매김의 아이템 업데이트를 하지 않게 되었습니다. - enhance(client): MkUrlPreview의 닫기 버튼을 보기 쉽게 했습니다. - Add dialog to remove follower - enhance(client): improve clip menu ux - 검색 화면 통합 - enhance(client): 노트 메뉴에서 유저 메뉴를 열 수 있게 되었습니다. - photoswipe 표시 시 돌아오는 조작을 해도 전의 화면으로 돌아오지 않게 되었습니다. ### Bugfixes - Windows 환경에서 swc를 사용하면 바르게 빌드되지 않는 문제를 수정 - fix(client): Android Chrome에서 PWA로 설치되지 않는 문제를 수정 - 모르는 유저가 deleteActor되면 처리를 스킵되는 것을 수정 수정 - fix(server): notes/create에서 filelds로 발견된 파일 수가 다른 경우는 에러로 하도록 수정 - fix(server): notes/create의 유효성 검사가 기능되지 않는 문제를 수정 - fix(server): 에러의 스택 추적은 반환하지 않도록 수정 ## 13.7.2 출시일: 2023/02/23 ### Note 13.7.0 이전에서 업데이트하는 경우는 모든 알림이 삭제됩니다. ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - 마이그레이션이 실패하는 문제를 수정 ## 13.7.0 출시일: 2023/02/22 ### Changes - 채팅 기능이 삭제됐습니다. ### Improvements - Server: URL 미리보기(summaly)는 프록시를 통과하게 되었습니다. - Client: 2FA 설정의 UI를 바르게 고쳤습니다. - 보안 키의 이름을 변경할 수 있게 되었습니다. - enhance(client): add quiz preset for play - 광고 개시 시기를 설정할 수 있게 되었습니다. - 찾기에서 공개 역할 목록과 그 멤버를 열람할 수 있게 되었습니다. - enhance(client): MFM의 x3 x4가 포함돼있으면 노트를 접게 되었습니다. - enhance(client): make possible to reload page of window ### Bugfixes - 유저 검색 다이얼로그에서 로컬 유저를 고급 검색으로 검색되지 않는 문제를 수정 - fix(client): MkHeader 및 덱의 컬럼에서 채널 목록을 선택했을 때, 최대 5개까지 밖에 표시되지 않는 문제를 수정 - 관리 화면의 광고를 10개 이상 보이게끔 수정 - Moderation note가 보존되지 않는 문제를 수정 - 유저의 해시태그 검색이 기능되지 않는 문제를 수정 ## 13.6.1 출시일: 2023/02/12 ### Improvements - 애니메이션을 줄이는 설정에서 MkPageHeader의 탭 애니메이션을 비활성화했습니다. - Backend: activitypub 정보가 cors에서 블록되지 않도록 헤더를 추가 - enhance: 속도 제한을 0%로 할 수 있게 되었습니다. - 채널 내 Renote를 할 수 있게 되었습니다. ### Bugfixes - Client: 유저 페이지에서 액티비티를 볼 수 없는 문제를 수정 ## 13.6.0 출시일: 2023/02/11 ### Improvements - MkPageHeader를 모두 변경 - 모바일에서는 헤더는 위아래로 분할되고, 아래쪽에 탭이 표시되게 되었습니다. - iconOnly의 탭 항목이 활성화된 경우에는 탭의 타이틀을 표시하게 되었습니다. - 메인 타임라인에서는 타이틀을 표시하지 않게 되었습니다. - 메인 타임라인 그리고 모바일에서 표시되는 좌상단의 아바타를 선택하면 계정 메뉴가 열리게 되었습니다. - 유저 페이지의 노트 목록을 탭으로 분리 - 조건부 역할도 배지로 표시할 수 있게 되었습니다. - enhance(client): 역할을 더욱 간단히 부여할 수 있게 되었습니다. - enhance(client): 한 번 본 노트의 Renote는 생략해 표시할 수 있게 되었습니다. - enhance(client): 성가실 수 있는 게시물을 올리기 전에 경고를 표시하게 되었습니다. - 리액션의 수가 많은 경우의 표시를 개선 - 일부 MFM 구문이 opt-out으로 되었습니다. ### Bugfixes - Client: 유저 페이지에서 탭이 거의 보이지 않는 일이 없도록 수정 ## 13.5.6 출시일: 2023/02/10 ### Improvements - 로그인되지 않았을 때 MiAuth를 거쳤을 때 MiAuth인 것을 표시하게 되었습니다. - /auth/의 UI를 업데이트 - 이용 규약 동의 UI의 조정 - 자르기 시 질문을 알기 쉽게 했습니다. ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 출시일: 2023/02/09 ### Improvements - Server: UI의 HTML(노트 등의 특별한 페이지는 제외)의 캐시 시간을 15초에서 30초로 하게 되었습니다. - i/notifications의 속도 제한을 완화 ### Bugfixes - fix(client): validate url to improve security - fix(client): date의 초기값이 정상적으로 들어가지 않는 문제를 수정 ## 13.5.3 출시일: 2023/02/09 ### Improvements - Client: 덱에 채널 컬럼을 추가 ## 13.5.2 출시일: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: 로그인 토큰의 재생성이 되지 않는 문제를 수정 ## 13.5.0 출시일: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImages의 기본값을 prefers-reduced-motion로 했습니다. - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPicker여도 Chrome에서 검색 다이얼로그로에서 변환 확정을 하면 그대로 검색되는 문제를 수정 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 출시일: 2023/02/05 ### Improvements - 역할에 아이콘을 설정해 유저명의 옆에 표시할 수 있게 되었습니다. - feat: timeline page for non-login users - 도전 과제 그냥 운이 좋았어의 획득 확립을 조정 - Add Thai language support ### Bugfixes - fix(server): 자신의 노트를 즐겨찾기에 등록해도 도전 과제가 해제되는 문제를 수정 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): 인라인 코드를 반환해 표시하도록 수정 ## 13.3.3 출시일: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 출시일: 2023/02/04 ### Improvements - 외부 미디어 프록시로의 대응을 강화했습니다. 외부 미디어 프록시의 Fastify 실장을 만들었습니다. https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 출시일: 2023/02/04 ### Bugfixes - Client: 커스텀 이모티콘에 애니메이션 이미지를 재생하지 않는 설정이 적용되지 않는 문제를 수정 - Client: 자동 완성에서 Unicode 이모티콘이 커스텀 이모티콘으로 표시되는 문제를 수정 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 출시일: 2023/02/03 ### Changes - twitter/github/discord 연휴 기능이 삭제됐습니다. - 해시태그마다의 차트가 삭제됐습니다. - syslog의 지원이 삭제됐습니다. ### Improvements - 역할에서 광고의 비표시가 활성화돼있는 경우에는 처음부터 광고를 비표시하게 되었습니다. ## 13.2.6 출시일: 2023/02/01 ### Changes - docker-compose.yml을 docker-compose.yml.example로 했습니다.docker-compose.yml로 복사한 뒤 사용해주십시오. ### Improvements - 이모티콘 선택기의 성능을 개선 - AiScript를 0.12.4로 업데이트 ### Bugfixes - Server: 릴레이와 통신되지 않는 문제를 수정 - Client: classic 모드 사용 시 window 사이즈에 따라 default로 변경된 뒤 window 사이즈가 본래 사이즈로 돌아오면 classic으로 돌아오도록 수정 #9669 - Client: Chrome에서 검색 다이얼로그에서 변환 확정을 하면 그대로 검색되는 문제를 수정 ## 13.2.4 출시일: 2023/01/27 ### Improvements - 리모트 커스텀 이모티콘 표시 시 성능을 개선 - Default to `animation: false` when prefers-reduced-motion is set - 리액션 이력이 공개라면 로그인하지 않아도 표시할 수 있게 되었습니다. - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - 대시보드에서 온라인 유저 수가 표시되지 않는 문제를 수정 - 팔로우 신청, 팔로우의 버튼이 알림에서 사라지는 문제를 수정 ## 13.2.3 출시일: 2023/01/26 ### Improvements - 커스텀 이모티콘의 업데이트를 실시간으로 반영하게 되었습니다. ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 출시일: 2023/01/25 ### Improvements - 서버의 성능을 개선 ### Bugfixes - 로그인 시 잘못된 속도 제한이 걸리는 문제를 수정 - MFM의 position, rotate, scale에서 소수가 사용되지 않는 문제를 수정 ## 13.2.1 출시일: 2023/01/24 ### Improvements - 디자인 조정 - 서버의 성능을 개선 ## 13.2.0 출시일: 2023/01/23 ### Improvements - onlyServer / onlyQueue 옵션을 부활 - 다른 유저의 도전 과제 열람 시에는 획득 조건을 표시하지 않게 되었습니다. - 애니메이션 줄이기 옵션 활성화 시에는 리액션의 애니메이션을 비활성화하게 되었습니다. - 커스텀 이모티콘 목록의 성능을 개선 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 출시일: 2023/01/22 ### Improvements - 로컬 커스텀 이모티콘을 표시할 때 성능을 개선 - Client: 순간적으로 대량의 도전 과제를 해제했을 때의 작동을 개선 ### Bugfixes - Client: 업데이트 시 현지화 데이터가 업데이트되지 않은 것을 수정 ## 13.1.0 출시일: 2023/01/21 ### Improvements - 도전 과제 기능 - Play 프리셋을 추가 - Play의 script의 문자 수 제한을 완화 - AiScript GUI 강화 - 리액션 목록 상세 다이얼로그를 표시할 수 있게 되었습니다. - 존재하지 않는 커스텀 이모티콘을 텍스트로 표시하게 되었습니다. - Alt text in image viewer - 작업 대기열의 프로세스와 Web 서버의 프로세스를 분리 ### Bugfixes - play를 삭제하는 수단이 없었던 것을 수정 - The … button on notes does nothing when not logged in - twitter와 연휴할 때 autwh is not a function으로 되는 것을 수정 ## 13.0.0 출시일: 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 - 역할 기능 - 기존보다 유연하게 유저의 정책을 관리할 수 있습니다.예를 들면, '인스턴스의 패트런은 안테나를 30개까지 만들 수 있다', '기본적으로 LTL은 볼 수 없으나 허가한 사람만 볼 수 있다', '초대제 인스턴스지만 유저라면 누구나 다른 유저를 초대할 수 있다'와 같은 운용은 물론 '로컬 유저이자 계정 작성으로부터 지난 시간이 1일 미만인 유저는 공개 노트를 게시할 수 없다'와 같이 여러 조건을 조합해 자동으로 역할을 부여하는 설정도 가능합니다. - Misskey Play - 기존의 동적인 Pages를 대신하는 새로운 플랫폼입니다.동적인 콘텐츠(애플리케이션)에 특화돼, 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. - Docker 환경에서 PostgreSQL의 업데이트를 할 때의 가이드는 여기에서 확인: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearch의 지원이 삭제됐습니다. - 대신 이후 임의의 검색 공급자를 설정할 수 있는 시스템을 구상하고 있습니다. 그 시스템을 사용하면 전처럼 Elasticsearch도 이용할 수 있습니다. - Yarn에서 pnpm으로 이행됐습니다. corepack의 활성화를 권장합니다: 'sudo corepack enable' - 인스턴스 블록은 서브 도메인에도 적용되게 되었습니다. - 역할의 도입과 함께 몇 가지 기능이 역할로 통합됐습니다. - 모더레이터는 역할로 통합됐습니다.지금까지의 모더레이터 정보는 사라지기에 미리 모더레이터 목록을 기록해두고, 업데이트 후에 모더레이터 역할을 만들어 다시 할당해주십시오. - 침묵은 역할로 통합됐습니다.지금까지의 유저는 침묵이 해제되기에 미리 침묵 목록을 기룩해 두는 것을 권장합니다. - 각 유저의 드라이브 용량 설정은 역할로 통합됐습니다. - 인스턴스 기본 드라이브 용량 설정은 역할로 통합됐습니다.업데이트 후, 기본 역할 혹은 조건부 역할에서 드라이브 용량을 편집해주십시오. - LTL/GTL의 해방 상태는 역할로 통합됐습니다. - Docker의 실행을 root에서 하지 않도록 했습니다.Docker 그리고 오브젝트 스토리지를 사용하고 있지 않은 경우에는 'chown -hR 991.991./files'를 실행해주십시오. https://github.com/misskey-dev/misskey/pull/9560 #### For users - 노트의 관심 갖기 기능이 삭제되었습니다. - 설문에서 투표됐을 때 알림이 작성되지 않게 되었습니다. - 노트의 수식 임베딩이 삭제되었습니다. - 새롭게 동적인 Pages를 만들 수 없게 되었습니다. - 대신에 AiScript를 이용해 더욱 유연하게 동적인 콘텐츠를 작성할 수 있는 Misskey Play 기능이 실장되었습니다. - AiScript가 0.12.2로 업데이트됐습니다. - 0.12.x의 변경점에 대해서는 여기에서 확인 https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x 미만의 플러그인은 불러올 수 없습니다. - iOS15 이하의 장치는 지원하지 않게 되었습니다. - Firefox110 이하는 지원하지 않게 되었습니다. - 109여도 ContainerQueries 플래그를 활성화해 문제 없이 사용할 수 있습니다. #### For app developers - API: meta의 응답에 'emojis' 프로퍼티가 포함되지 않게 되었습니다. - 커스텀 이모티콘 목록 정보를 로딩하려면 'emojis' 엔드포인트에 요청합니다. - API: 커스텀 이모티콘 엔티티에 'url' 프로퍼티가 포함되지 않게 되었습니다. - 이모티콘 이미지를 표시하려면 '/emoji/.webp'로 요청하면 이미지가 반환됩니다. - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: 'user' 및 'note' 엔티티에 'emojis' 프로퍼티가 포함되지 않게 되었습니다. - API: 'user' 엔티티에 'avatarColor' 및 'bannerColor' 프로퍼티가 포함되지 않게 되었습니다. - API: 'instance' 엔티티에 'latestStatus', 'lastCommunicatedAt', 'latestRequestSentAt' 프로퍼티가 포함되지 않게 되었습니다. - API: 'instance' 엔티티의 'caughtAt'은 '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 - 속도 제한을 유저마다 조정 가능하게 되었습니다. @syuilo - 모더레이터가 아니여도 권한을 가진 역할을 할당받은 유저는 인스턴스의 초대 코드를 발행할 수 있게 되었습니다. @syuilo - 모더레이터가 아니여도 권한을 가진 역할을 할당받은 유저는 커스텀 이모티콘의 추가, 편집, 삭제를 할 수 있게 되었습니다. @syuilo - 클립 및 클립 내 노트의 작성 가능 수를 설정할 수 있게 되었습니다. @syuilo - 유저 목록 및 유저 목록 내 유저의 작성 가능 수를 설정할 수 있게 되었습니다. @syuilo - 하드 단어 뮤트의 최대 문자 수를 설정할 수 있게 되었습니다. @syuilo - Webhook의 작성 가능 수를 설정할 수 있게 되었습니다. @syuilo - 노트를 고정할 수 있는 수를 설정할 수 있게 되었습니다. @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: 설문 선택지의 문자 수 제한을 완화 @syuilo - Server: 프로필의 문자 수 제한을 완화 @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에서 커스텀 이모티콘 목록을 참조할 수 있게 되었습니다. @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: 인용 내 문장이 nyaize되는 문제를 수정 @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의 최대 페이로드 사이즈를 64kb로 제한 @syuilo - Server: 안테나의 작성 수 상한을 추가 @syuilo - Server: pages/like의 에러 ID가 중복되는 문제를 수정 @syuilo - Server: pages/update의 파라미터에 따라서는 summary의 값이 업데이트되지 않는 문제를 수정 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 특정 PNG 이미지의 업로드에 실패하는 문제를 수정 @usbharu - Server: 비공개 클립의 URL에서 OGP 렌더링되는 문제를 수정 @syuilo - Server: 안테나 타임라인(스트리밍)이 팔로우하고 있지 않은 유저의 잠금 게시물도 보이는 문제를 수정 @syuilo - Server: follow request list api pagination @sim1222 - Server: 드라이브 용량 초과 시 에러가 적절히 응답하지 않는 문제를 수정 @syuilo - Client: 비밀번호 관리자 등에서 유저명이 자동 완성되지 않는 문제를 수정 @massongit - Client: 날짜 형식의 문자열 등이 커스텀 이모티콘으로 표시되는 문제를 수정 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 화면의 폭이 좁으면 위젯 서랍을 닫을 수 없게 되는 문제를 수정 @syuilo - Client: InApp 윈도우가 조작되지 않는 문제를 수정 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhook의 편집 화면에서 내용을 보존할 수 없는 문제를 수정 @m-hayabusa - Client: Page 편집에서 블록의 이동이 되지 않는 문제를 수정 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: 차트의 툴팁이 화면에 남아있는 문제를 수정 @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 출시일: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 출시일: 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 - 마이그레이션에 실패하는 문제를 수정 - Server: 다른 유저의 알림을 읽음 처리를 할 수 있던 것을 수정 @syuilo - Client: 액세스 토큰 관리 화면, 계정 관리 화면이 표시되지 않는 문제를 수정 @futchitwo ## 12.118.0 출시일: 2022/08/07 ### Improvements - Client: 설정의 백업/리스토어 기능 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: 리모트 유저를 바르게 블록할 수 있게 수정 @xianonn - Client: 한 번 만든 Webhook의 설정 화면을 열려고 하면 페이지가 멈추는 문제를 수정 @syuilo - Client: MiAuth 인증 페이지가 기능되지 않는 문제를 수정 @syuilo - Client: 일부 애플리케이션에서 파일을 글 입력란으로 드롭되지 않는 문제를 수정 @m-hayabusa ## 12.117.1 출시일: 2022/07/19 ### Improvements - Client: UI 다듬기 @syuilo ### Bugfixes - Server: 파일의 업로드에 실패하는 문제를 수정 @acid-chicken - Client: 리액션 선택기가 애플리케이션 내 윈도우 뒤로 표시되는 문제를 수정 @syuilo - Client: 유저 정보의 로딩 재시도를 수정 @xianonn - Client: MFM 치트 시트의 작동을 수정 @syuilo - Client: '이 인스턴스의 알림을 수신할게요' 설정이 변경되지 않는 문제를 수정 @syuilo ## 12.117.0 출시일: 2022/07/18 ### Improvements - Client: 윈도우를 최대화할 수 있게 되었습니다. @syuilo - Client: Shift 키를 누른 상태에서 링크를 클릭하면 애플리케이션 내 윈도우에서 열게 되었습니다. @syuilo - Client: 덱을 사용하고 있을 때, Ctrl 키를 누른 상태에서 링크를 클릭하면 페이지 이동을 강제로 할 수 있게 되었습니다. @syuilo - Client: UI 다듬기 @syuilo ## 12.116.1 출시일: 2022/07/17 ### Bugfixes - Client: 덱 UI 시 페이지로 표시 버튼이 기능되지 않는 문제를 수정 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 출시일: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UI 다듬기 @syuilo ### Improvements - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 출시일: 2022/07/16 ### Improvements - Client: Deck의 프로필 교체를 간단하게 했습니다. @syuilo - Client: UI 다듬기 @syuilo ## 12.114.0 출시일: 2022/07/15 ### Improvements - RSS Ticker에서 표시 순서를 셔플로 할 수 있게 되었습니다. @syuilo ### Bugfixes - 클라이언트가 기동하지 않게 되는 문제를 수정 @syuilo ## 12.113.0 출시일: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URL 인코딩된 루팅을 수정 ## 12.112.3 출시일: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 출시일: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 출시일: 2022/07/07 same as 12.112.0 ## 12.112.0 출시일: 2022/07/07 ### Known issues - 현재 arm64 환경에서는 설치에 실패합니다.이는 다음 버전에서 수정될 예정입니다. ### Changes - 하이라이트가 찾기로 통합되었습니다. - 커스텀 이모티콘 페이지는 인스턴스 정보 페이지로 통합되었습니다. - 연합 페이지는 인스턴스 정보 페이지로 통합되었습니다. - 멘션 목록 페이지는 알림 목록 페이지로 통합되었습니다. - 다이렉트 게시 목록 페이지는 알림 목록 페이지로 통합되었습니다. - 메뉴에서 안테나 타임라인을 표시하는 방법은 사라졌고, 타임라인 위쪽의 아이콘으로 접근할 수 있게 되었습니다. - 메뉴에서 목록 타임라인을 표시하는 방법은 사라졌고, 타임라인 위쪽의 아이콘으로 접근할 수 있게 되었습니다. ### 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: 메뉴에서 페이지를 리로딩할 수 있게 되었습니다. @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 - 유저에 조정 메모를 남길 수 있게 되었습니다. @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 출시일: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: 덱에서 위젯의 정보가 보존되지 않는 문제를 수정 @syuilo - Client: 갤러리의 게시물을 열려고 하면 편집 화면이 표시되는 것을 수정 @futchitwo ## 12.111.0 출시일: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - 푸시 알림이 여러 계정에 대응하게 되었습니다. #7667 @tamaina - 푸시 알림에서 클릭이나 action을 설정할 수 있게 되었습니다. #7667 @tamaina - 드라이브에 이미지 파일을 업로드하면 원본 이미지를 없애고 webpublic만 유지하는 옵션을 추가 @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: 아바타 설정에서 이미지 자르기를 할 수 있게 되었습니다. @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는 배열에서도 받을 수 있게 되었습니다. @tamaina - API: 유저 검색에서 쿼리가 username 조건을 충족하는 경우 username도 LIKE 검색을 하게 되었습니다. @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: 노트 상세 페이지의 새로운 노트를 표시하는 기능이 바르게 작동하도록 수정 @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 출시일: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 출시일: 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: 리모트 인스턴스로의 다이렉트 게시가 되지 않는 문제를 수정 @syuilo ## 12.109.2 출시일: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: 테마를 교체하거나 불러오면 meta[name="theme-color"]의 content가 undefined로 되는 문제를 수정 @tamaina ## 12.109.1 출시일: 2022/04/02 ### Bugfixes - API: Renote가 되지 않는 문제를 수정 ## 12.109.0 출시일: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboard가 내장되고, 작업 대기열의 확인이나 조작을 할 수 있게 되었습니다. - Bull Dashboard를 열려면 처음에만 일단 로그아웃하고 나서 다시 관리자 권한을 가진 계정으로 로그인할 필요가 있습니다. - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: 터치 패드, 터치 스크린에서의 덱의 조작성을 향상 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URL 인코딩에 이상이 있고 decodeURlComponent가 실패하면 URL이 표시되지 않는 문제를 수정 @tamaina ## 12.108.1 출시일: 2022/03/12 ### Bugfixes - 릴레이가 작동하지 않는 문제를 수정 @xianonn - ulid를 사용하고 있으면 작동하지 않는 문제를 수정 @syuilo - 외부에서 OGP가 바르게 로딩되지 않는 문제를 수정 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 출시일: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - 노트의 최대 문자 수를 설정할 수 있는 기능이 사라지고, 기본으로 예외 없이 3000 문자로 되었습니다.@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 - 인스턴스 기본 테마를 설정할 수 있게 되었습니다. @syuilo - 뮤트에 기한을 설정할 수 있게 되었습니다. @syuilo - 설문이 종료됐을 때 알림이 작성되게 되었습니다. @syuilo - 프로필의 추가 정보를 최대 16까지 보존할 수 있게 되었습니다. @syuilo - 연합 차트에 Pub&Sub을 추가 @syuilo - 연합 차트에 Active를 추가 @syuilo - 기본으로 10초 이상 시간이 걸리는 데이터베이스로의 쿼리는 중단되게 되었습니다. @syuilo - 설정 파일의 'db.extra'에 'statement_timeout'을 설정해 타임아웃 시간을 변경할 수 있습니다 - Client: 스플래시 스크린에서 인스턴스의 아이콘을 표시할 수 있게 되었습니다. @syuilo ### Bugfixes - Client: 리액션 선택기의 높이가 낮아진 채로 돌아오지 않는 문제를 수정 @syuilo - Client: 유저명 자동 완성이 바르게 작동하지 않는 문제를 수정 @syuilo - Client: 터치 조작으로는 위젯의 편집을 하기 힘든 문제를 수정 @syuilo - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X 이후(?)에서 페이지의 내용이 전부 표시되지 않는 문제를 수정 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 출시일: 2022/02/12 ### Improvements - 클라이언트: 테마를 추가 @syuilo ### Bugfixes - API: stats API에서 내부 에러가 발생하는 문제를 수정 @syuilo - 클라이언트: 소프트 뮤트로 전부 매치되는 문제를 수정 @tamaina - 클라이언트: 장치 스크린의 안전영역을 고려하도록 수정 @syuilo - 클라이언트: 일부 환경에서 사이드 바의 게시 버튼이 표시되지 않는 문제를 수정 @syuilo ## 12.106.3 출시일: 2022/02/11 ### Improvements - 클라이언트: 스마트폰에서의 여백을 조정 @syuilo ### Bugfixes - 클라이언트: 노트의 상세가 표시되지 않는 문제를 수정 @syuilo ## 12.106.2 출시일: 2022/02/11 ### Bugfixes - 클라이언트: 삭제된 노트가 타임라인에서 자동으로 사라지지 않는 문제를 수정 @syuilo - 클라이언트: 리액션 수가 바르지 않은 문제를 수정 @syuilo - 일부 환경에서 마이그레이션이 작동하지 않는 문제를 수정 @syuilo ## 12.106.1 출시일: 2022/02/11 ### Bugfixes - 클라이언트: 단어 뮤트가 보존되지 않는 문제를 수정 @syuilo ## 12.106.0 출시일: 2022/02/11 ### Improvements - Improve federation chart @syuilo - 클라이언트: 리액션 선택기의 크기를 설정할 수 있게 되었습니다. @syuilo - 클라이언트: 리액션 선택기의 폭, 높이 제한을 완화 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 출시일: 2022/02/09 ### Improvements - 인스턴스의 테마 컬러를 설정할 수 있게 되었습니다. @syuilo ### Bugfixes - 일부 환경에서 마이그레이션이 실패하는 문제를 수정 @syuilo ## 12.104.0 출시일: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - 차트 엔진 강화 @syuilo - 테이블 사이즈 감소 - notes/instance/perUserNotes 차트에 첨부 파일이 있는 노트의 수를 추가 - activeUsers 차트에 새로운 항목을 추가 - federation 차트에 새로운 항목을 추가 - apRequest 차트를 추가 - network 차트 삭제 - 클라이언트: 자신의 인스턴스 정보 페이지에서 차트를 볼 수 있게 되었습니다. @syuilo - 클라이언트: 장치의 종류를 수동 지정할 수 있게 되었습니다. @syuilo - 클라이언트: UI 아이콘 업데이트 @syuilo - 클라이언트: UI 아이콘을 셀프 호스팅할 수 있게 되었습니다. @syuilo - NodeInfo의 유저 수와 게시물 수의 내용을 재검토 @xianonn ### Bugfixes - Client: 타임라인 유형을 교체하면 '새 노트가 있습니다' 표시가 남아있는 문제를 수정 @tamaina - Client: UI 크기가 이상하게 되는 문제를 수정 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 환경에 따라서 답글을 보낼 때 커서 위치가 바르지 않은 문제를 수정 @syuilo - Client: 제어판의 유저, 파일에서 인스턴스의 표시 범위 교체가 기능하지 않는 문제를 수정 @syuilo - Client: 업데이트 알림 다이얼로그가 나오지 않는 문제를 수정 @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 - 차트의 정기 resync가 작동하지 않는 문제를 수정 @syuilo ## 12.103.1 출시일: 2022/02/02 ### Bugfixes - 클라이언트: 툴팁의 표시 위치가 바르지 않은 문제를 수정 ## 12.103.0 출시일: 2022/02/02 ### Improvements - 클라이언트: 연합 인스턴스 페이지에서 인스턴스 정보 재로딩을 할 수 있게 되었습니다. ### Bugfixes - 클라이언트: 게시물의 NSFW 이미지를 표시한 뒤 리액션이 업데이트되면 이미지가 비표시로 되는 문제를 수정 - 클라이언트: '클립' 페이지가 열리지 않는 문제를 수정 - 클라이언트: 트렌드 위젯이 작동하지 않는 문제를 수정 - 클라이언트: 연합 위젯이 작동하지 않는 문제를 수정 - 클라이언트: 리액션 설정에서 이모티콘 선택기가 열리지 않는 문제를 수정 - 클라이언트: DM 페이지에서 멘션이 포함되는 문제를 수정 - 클라이언트: 글 입력란의 해시태그 유지 필드가 작동하지 않는 문제를 수정 - 클라이언트: 사이드 뷰가 작동하지 않는 문제를 수정 - 클라이언트: 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.0 출시일: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0 이전에 내보내기된 zip과는 호환성이 없습니다. 업데이트 후 내보내기해주십시오. ::: ### Changes - 룸 기능이 삭제됐습니다. - 이후 다른 리포지토리로 부활할 예정입니다. - 리버시 기능이 삭제됐습니다. - 이후 다른 리포지토리로 부활할 예정입니다. - Chat UI가 삭제됐습니다. - 노트에 첨부할 수 있는 파일의 수가 16으로 증가했습니다. - 커스텀 이모티콘에 SVG를 지정했을 때 PNG로 변환돼 표시되게 되었습니다. ### Improvements - 커스텀 이모티콘 일괄 편집 기능 - 커스텀 이모티콘 일괄 가져오기 - 글 입력란에서 일시적으로 게시할 계정을 교체할 수 있게 되었습니다. - Unifying Misskey-specific IRIs in JSON-LD `@context` - 클라이언트의 성능 향상 - 보안 향상 ### Bugfixes - 업로드 에러 시 처리를 수정 ## 12.101.0 출시일: 2021/12/29 ### Improvements - 클라이언트: 노트 미리보기의 정밀도를 개선 - 클라이언트: MFM sparkle 이펙트 개선 - 클라이언트: 디자인 조정 - 보안 향상 ### Bugfixes - 클라이언트: 일부 컴포넌트가 뒤로 숨겨지는 문제를 수정 - fix html blockquote conversion ## 12.100.2 출시일: 2021/12/18 ### Bugfixes - 클라이언트: Deck 컬럼의 증감이 페이지를 리로딩할 때까지 바르게 반영되지 않는 문제를 수정 - 클라이언트: 일부 컴포넌트가 뒤로 숨겨지는 문제를 수정 - 클라이언트: 커스텀 이모티콘 목록 페이지의 과부하를 수정 ## 12.100.1 출시일: 2021/12/17 ### Bugfixes - 클라이언트: 디자인 조정 ## 12.100.0 출시일: 2021/12/17 ### Improvements - 클라이언트: 모바일에서의 각종 메뉴, 리액션 선택기의 표시를 개선 ### Bugfixes - 클라이언트: 일부 컴포넌트가 뒤로 숨겨지는 문제를 수정 ## 12.99.3 출시일: 2021/12/14 ### Bugfixes - 클라이언트: 자동 완성이 다이얼로그 뒤로 숨겨지는 문제를 수정 ## 12.99.0 출시일: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - 팔로우 내보내기에서 뮤트한 유저를 포함하지 않는 옵션을 추가 - 팔로우 내보내기에서 사용되지 않는 계정을 포함하지 않는 옵션을 추가 - 커스텀 이모티콘 내보내기 기능 - 차트의 성능 개선 - 그룹에서 나갈 수 있게 되었습니다. ### Bugfixes - 클라이언트: 터치 기능이 있는 디스플레이를 사용하고 마우스 조작을 하고 있을 경우 일부 기능이 작동하지 않는 문제를 수정 - 클라이언트: 클립의 설정을 편집할 수 없는 문제를 수정 - 클라이언트: 메뉴 등이 윈도우 뒤에 숨겨지는 문제를 수정 ## 12.98.0 출시일: 2021/12/03 ### Improvements - API: /antennas/notes API에서 날짜로 고급 검색을 할 수 있게 되었습니다. - 클라이언트: 설문에 투표할 때 확인 다이얼로그가 나오게 되었습니다. - 클라이언트: Renote 노트 상세 페이지에서 본래의 노트 페이지로 이동할 수 있게 되었습니다. - 클라이언트: 이미지 팝업에서 클릭으로 닫을 수 있게 되었습니다. - 클라이언트: 디자인 조정 - 팔로워를 해제할 수 있는 기능 ### Bugfixes - 클라이언트: LTL이나 GTL이 비활성화돼있는 경우에도 UI 위로 탭이 표시되는 문제를 수정 - 클라이언트: 로그인에서 비밀번호를 틀렸을 때 에러 메시지가 바르게 표시되지 않는 문제를 수정 - 클라이언트: 리액션 툴팁, Renote 툴팁의 유저 정렬을 수정 - 클라이언트: 사운드의 마스터 볼륨이 바르게 보존되지 않는 문제를 수정 - 클라이언트: 일부 환경에서 알림이 표시되면 조작 불능으로 되는 문제를 수정 - 클라이언트: 모바일에서 탭했을 때 툴팁이 표시되는 문제를 수정 - 클라이언트: 리모트 인스턴스의 노트에 답글을 달았을 때, 대상 노트에 그 리모트 인스턴스 내의 유저로의 멘션이 포함돼있으면 답글 텍스트 내에 로컬 유저로의 멘션으로 이어지는 문제를 수정 - 클라이언트: 이미지 뷰어에서 전체 표시를 했을 때 위쪽의 일부만 표시되는 이미지가 있는 문제를 수정 - API: 유저를 로딩할 때 조건에 따라서는 내부 에러로 되는 문제를 수정 ## 12.97.0 출시일: 2021/11/19 ### Improvements - 클라이언트: 답글 위치나 Renote에 대해서도 자동으로 접을 수 있게 되었습니다. - 클라이언트: 긴 스레드의 표시를 개선 - 클라이언트: 번역에도 MFM을 적용하고 본래의 문장의 개행 등을 유지하게 되었습니다. - 클라이언트: 계정 삭제에 확인 다이얼로그가 나오게 되었습니다. ### Bugfixes - 클라이언트: 유저 검색의 '전체'가 작동하지 않는 문제를 수정 - 클라이언트: 리액션 목록, Renote 목록 툴팁의 스타일을 수정 ## 12.96.1 출시일: 2021/11/13 ### Improvements - npm script의 호환성 향상 ## 12.96.0 출시일: 2021/11/13 ### Improvements - 팔로우/팔로워를 비공개로 할 수 있게 되었습니다. - 인스턴스 프로필 렌더링 ready - 알림의 리액션 아이콘에 마우스를 올렸을 때 확대할 수 있게 되었습니다. - Renote 버튼에 마우스를 올렸을 때 Renote한 유저 목록을 표시할 수 있게 되었습니다. - 답글을 달 때 멘션을 포함할 수 있게 되었습니다. - 알림이 있었을 때 관리자에게 이메일로 알림이 오게 되었습니다. - 메일 주소의 유효성 검사를 강화 ### Bugfixes - 계정 삭제 처리가 있으면 과부하로 되는 문제를 수정 - 클라이언트: 긴 메뉴가 화면에서 빠져 나오는 문제를 수정 - 클라이언트: 제어판의 작업 대기열에서 각각의 작업이 표시되지 않는 문제를 수정 - 클라이언트: fix missing i18n string - fix html conversion issue with code blocks ### Changes - 노트에 모바일에서의 게시인지에 대한 정보를 포함하지 않게 되었습니다. ## 12.95.0 출시일: 2021/10/31 ### Improvements - 스레드 뮤트 기능 ### Bugfixes - 릴레이용 Activity가 일부 실장에서 제외된 문제를 수정 - 삭제한 노트나 유저가 리모트에서 참조되면 부활하는 문제를 수정 - 클라이언트: 페이지 편집 시 드롭 다운 메뉴 등이 작동하지 않는 문제를 수정 - 클라이언트: 제어판의 커스텀 이모티콘 탭이 교체되지 않는 것처럼 보이는 문제를 수정 - API: 유저 정보의 hasUnreadChannel이 항상 false로 되는 문제를 수정 ## 12.94.1 출시일: 2021/10/25 ### Improvements ### Bugfixes - 클라이언트: 유저 페이지의 내비게이션이 실패하는 문제를 수정 ## 12.94.0 출시일: 2021/10/25 ### Improvements - 클라이언트: 이미지 뷰어를 강화 - 클라이언트: 멘션에 유저의 아바타를 표시하게 되었습니다. - 클라이언트: 디자인 조정 - 클라이언트: twemoji를 셀프 호스팅할 수 있게 되었습니다. ### Bugfixes - 클라이언트: CW로 이미지가 숨겨졌을 때, 이미지의 높이가 이상하게 되는 문제를 수정 ### NOTE - 이 버전부터 iOS 15 미만의 지원이 되지 않게 되었습니다.대상 버전을 사용하시는 분은 iOS 버전 업을 해주십시오. ## 12.93.2 출시일: 2021/10/23 ### Bugfixes - 클라이언트: 위젯을 추가할 수 없는 문제를 수정 ## 12.93.1 출시일: 2021/10/23 ### Bugfixes - 클라이언트: 알림 상에서 로컬의 리액션이 표시되지 않는 문제를 수정 ## 12.93.0 출시일: 2021/10/23 ### Improvements - 클라이언트: 제어판의 성능을 개선 - 클라이언트: 자신의 리액션 목록을 볼 수 있게 되었습니다. - 설정에 따라 리액션 목록을 전원에게 공개할 수도 있습니다. - 클라이언트: 유저 검색의 정밀도를 강화 - 클라이언트: 새로운 라이트 테마를 추가 - 클라이언트: 새로운 다크 테마를 추가 - API: 유저의 리액션 목록을 로딩하는 users/reactions를 추가 - API: users/search 및 users/search-by-username-and-host를 강화 - 뮤트 및 블록의 가져오기를 할 수 있게 되었습니다. - 클라이언트: /share의 쿼리에서 답글이나 파일 등의 정보를 공유할 수 있게 되었습니다. - 차트의 sync를 매일 0시에 자동으로 하게 되었습니다. ### Bugfixes - 클라이언트: 테마의 관리를 할 수 없는 문제를 수정 - API: 애플리케이션 알림이 로딩되지 않는 문제를 수정 - 클라이언트: 리모트 노트에서 의도치 않게 로컬 커스텀 이모티콘이 사용되는 문제를 수정 - ActivityPub: not reacted인 Undo.Like이 inbox에 남는 문제를 수정 ### Changes - 연합의 고려에 문제가 있는 것 등이 파악됐기에 모더레이터를 블록할 수 없는 사양을 삭제했습니다. - 데이터베이스에 로그를 보존하지 않게 되었습니다. - 로그를 영속화하고 싶은 경우 syslog를 이용해주십시오. ## 12.92.0 출시일: 2021/10/16 ### Improvements - 계정 등록에서 메일 주소의 설정을 필수로 하는 옵션 - 클라이언트: 전체적인 UI 다듬기 - 클라이언트: MFM 함수 구문의 추천을 실장 - 클라이언트: 노트 본문을 글 입력란 내에서 미리보기할 수 있게 되었습니다. - 클라이언트: 읽지 않은 알림만 표시하는 기능 - 클라이언트: 알림 페이지에서 알림의 종류에 따른 필터 - 클라이언트: 애니메이션을 줄이는 설정의 적용 범위를 확충 - 클라이언트: 새로운 다크 테마를 추가 - 클라이언트: 테마 컴파일러에 hue와 saturate 함수를 추가 - ActivityPub: HTML -> MFM의 변환을 강화 - API: 그룹에서 빠지는 users/groups/leave 엔드포인트를 실장 - API: i/notifications에 unreadOnly 옵션을 추가 - API: ap계 엔드포인트를 로그인 필수화+속도 제한 추가 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - 클라이언트: 헤더의 탭이 반환되는 문제를 수정 - 클라이언트: 헤더에 탭이 표시된 상태에서 타이틀을 클릭했을 때 탭 선택이 표시되는 문제를 수정 - 클라이언트: 유저 페이지의 탭이 기능하지 않는 문제를 수정 - 클라이언트: 고정 유저의 설정 항목이 없는 문제를 수정 - 클라이언트: Deck UI에서 겹친 컬럼의 한쪽을 접은 상태에서 오른쪽으로 내밀면 표시가 깨지는 문제를 수정 - API: 관리자 및 모더레이터를 블록할 수 있는 문제를 수정 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 보수성이나 사용성의 관점에서 Misskey의 명령줄 옵션이 삭제됐습니다. - 필요한 경우 대신 환경 변수로 설정할 수 있습니다. - MFM: 성능, 보수성, 구문 오인식 억제의 관점에서 구 함수 구문의 지원이 삭제됐습니다. - 구 구문('[foo bar]')을 사용하지 말고, 현행 구문('$[foo bar]')를 사용해주십시오. ## 12.91.0 출시일: 2021/09/22 ### Improvements - ActivityPub: 리모트 유저의 Delete 액티비티에 대응 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliver 큐의 메모리 사용량을 감소 - API: 관리자용 계정 삭제 API를 실장(/admin/accounts/delete) - 리모트 유저의 삭제도 할 수 있게 되었습니다. - 계정이 정지된 경우 정지된 이유를 표시한 뒤 로그아웃하게 되었습니다. - 정지된 계정으로 로그인하려 했을 때 정지된 이유를 표시하게 되었습니다. - 목록, 안테나 타임라인을 개별 페이지로 분할 - UI 개선 - MFM에 sparkles 이펙트를 추가 - 로그인돼있지 않은 유저는 업데이트 다이얼로그가 나오지 않게 되었습니다. - 클라이언트 기동 시 업데이트가 이용 가능한 경우 에러 표시 및 다이얼로그 표시를 하지 않게 되었습니다. ### Bugfixes - 계정 데이터의 내보내기/가져오기 처리가 되지 않는 문제를 수정 - 안테나의 읽음이 붙지 않는 문제를 수정 - popup에서 설정 페이지를 표시하면 계정의 삭제 페이지로 접근할 수 없는 문제를 수정 - "오류가 발생했습니다" 윈도우를 열면 ☓ 버튼이 없어 닫히지 않는 문제를 수정 ## 12.90.1 출시일: 2021/09/05 ### Bugfixes - Dockerfile을 수정 - 노트 번역 시 공개 범위가 고려되지 않는 문제를 수정 ## 12.90.0 출시일: 2021/09/04 ### Improvements - 아이 모드 및 아이 위젯 - 클라이언트에 아이짱을 소환할 수 있게 되었습니다. - URL로의 업로드, AP의 첨부 파일, 외부 파일의 프록시 등에서는 Private 주소 등으로의 요청은 거부되게 되었습니다. - development에서 작동하고 있는 경우에는 이 제한은 적용되지 않습니다. - Proxy 사용 시에는 이 제한은 적용되지 않습니다. Proxy 사용 시에 같은 제한을 두고 싶은 경우에는 Proxy 측에서 설정할 필요가 있습니다. - 'default.yml'에서 'allowedPrivateNetworks'에 CIDR를 추가하는 것으로 수신자 네트워크를 지정해 이 제한에서 제외할 수 있습니다. - 업로드, 다운로드 가능한 파일 사이즈에 하드 제한이 적용되게 되었습니다.(약 250MB) - 'default.yml'에서 'maxFileSize'를 변경하는 것으로 제한 값을 변경할 수 있습니다. ### Bugfixes - 관리자가 처음 등록한 페이지에서 로그인되지 않는 문제를 수정 - CW를 유지하는 설정을 부활 - 클라이언트의 표시를 수정 ## 12.89.2 출시일: 2021/08/24 ### Bugfixes - 커스텀 CSS를 활성화하고 있는 경우 에러로 되는 문제를 수정 ## 12.89.1 출시일: 2021/08/24 ### Improvements - 클라이언트의 디자인 조정 ### Bugfixes - 번역에서 DeepL의 Pro 계정에 대응되지 않는 문제를 수정 - 인스턴스 설정에서 DeepL의 Auth Key가 공백으로 표시되는 문제를 수정 - 보안 향상 ## 12.89.0 출시일: 2021/08/21 ### Improvements - 계정 삭제의 안정성을 향상 - 이모티콘 자동 완성의 작동을 개선 - localStorage의 accounts는 indexedDB에서 유지되게 되었습니다. - ActivityPub: 작업 대기열의 시도 타이밍을 조정 (#7635) - API: sw/unregister를 추가 - 단어 뮤트의 문서를 추가 - 클라이언트의 디자인 조정 - 종속성 업데이트 ### Bugfixes - 채널을 작성하고 있으면 계정을 삭제할 수 없는 문제를 수정 - 노트의 '삭제 후 편집'을 하면 설문의 선택지가 [object Object]로 되는 문제를 수정 ## 12.88.0 출시일: 2021/08/17 ### Features - 노트의 번역 기능을 추가 - 활성화하려면 서버 관리자가 DeepL의 무료 계정을 등록하고, 로딩된 인증 키를 '인스턴스 설정 > 기타 > DeepL Auth Key'에 설정할 필요가 있습니다. - Misskey 업데이트 시에 다이얼로그를 표시하게 되었습니다. - 작업 대기열 위젯에 경고음을 울리는 설정을 추가 ### Improvements - 블록 작동을 개선 - 블록된 유저가 블록한 유저에 대해 액션할 수 없게 되었습니다.상세는 문서를 확인해주십시오. - UI 디자인 조정 - 데이터베이스의 인덱스를 최적화 - Proxy 사용 시 Keep-Alive를 지원 - DNS 캐시에서 네거티브 캐시를 지원 - 종속성 업데이트 ### Bugfixes - 터치 조작으로 윈도우를 닫을 수 없는 문제를 수정 - Renote된 시각이 게시된 시각으로 표시되는 문제를 수정 - 제어판에서 파일을 삭제했을 때의 표시를 수정 - ActivityPub: 긴 유저의 이름이나 자기소개의 대응 ## 12.87.0 릴리스 날짜: 2021/08/12 ### Improvements - 이모지 자동완성에서 첫 번째 문자에서는 최근 사용한 이모지를 추천하도록 - 이모지 자동완성의 성능 개선 - about-misskey페이지에 문서 링크 추가 - Docker: Node.js를 16.6.2로 - 종속성 업데이트 - 번역의 업데이트 ### Bugfixes - Misskey 업데이트시 테마 캐시 영향으로 스타일이 이상해지는 문제 수정 ## 12.86.0 릴리스 날짜: 2021/08/11 ### Improvements - 문서 업데이트 - 문서에 changelog 추가 - 흐림 효과 옵션 추가 - Vue 3.2.1로 업데이트 - UI 조정 ### Bugfixes - 해시태그 입력이 비어있을 때 #이 붙는 현상 수정 - 팔로우 요청 이메일 알림 수정 ================================================ FILE: content/ko/docs/6.donate.md ================================================ # 프로젝트 기부하기 :::tip 법인으로서 프로젝트에 대한 지원(스폰서)을 검토하고 계시다면 [여기를 참고해 주세요.](/docs/become-a-sponsor/) ::: Misskey는 사업이 아니며, 무료로 이용할 수 있기 때문에 수익은 오직 여러분의 기부금 뿐입니다.(서버에 따라서는 광고 수익을 얻는 경우도 있지만, 이는 운영자의 수익이며 개발자에게 직접적으로 돌아가는 수익은 아닙니다)\ 기부를 해주신다면, 앞으로도 계속 개발할 수 있고, 프로젝트에 기여할 수 있습니다. 기부를 해 주시면, 앞으로도 개발을 지속하는 것이 가능해져 프로젝트에 공헌이 됩니다.다음과 같은 방법으로 접수하고 있습니다.(본 페이지의 내용을 잘 읽고 기부해 주시기 바랍니다.) - 지속적인 지원 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 일회성 지원 - Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 가상화폐: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [아마존 위시리스트](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip PayPal 등에서는 수수료가 비싸기 때문에 고액 기부(예: 3만엔 이상)를 하실 경우 Kyash를 고려하시거나, 연락 주신다면 은행 계좌를 알려드리겠습니다. ::: :::tip 금액에 따라 다음과 같은 보답을 준비했습니다. - 1,000엔 이상: 사용하시는 misskey.io 계정에 mi 배지를 부여 - 3,000엔 이상: ↑ + Misskey의 크레딧에 이름 기재 - 10,000엔 이상: ↑ + Misskey의 크레딧에 이름 + 임의의 아이콘 게재 - 20,000엔 이상: ↑ + [Misskey ID 카드 제공](/docs/mi-card/) ::: :::warning 어떠한 경우(보답 품목을 받지 못한 경우도 포함)에도 환불은 불가합니다.이 점 양해해 주시기 바랍니다. ::: :::warning **배지 부여 및 크레딧에 자동으로 기재되지 않으므로, 원하시는 분은 기부 사실을 알 수 있는 정보를 첨부하여 @syuilo\@misskey.io로 보내주시기 바랍니다.**\*\* (멘션을 못 알아볼 수 있으니 답글이 없으면 여러번 멘션 부탁드립니다.또한, misskey.io 외의 서버로부터는 멘션이 도착하지 않는 경우가 있습니다.연락이 닿지 않는 경우, Misskey Project측의 문의 양식을 통해 연락 부탁드립니다.) ::: 또한 서버 운영자도 기본적으로 수익을 얻지 못하고 있습니다.서버 운영에는 비용이 상당히 들기 때문에, 운영자를 지원하는 것도 검토해 주시기 바랍니다. 개발과는 직접적인 관련이 없지만 서버가 없으면 프로젝트도 무용지물이기에, 운영이 유지되는 것은 개발 못지않게 중요한 일입니다. ================================================ FILE: content/ko/docs/7.become-a-sponsor.md ================================================ # 스폰서에 대하여 :::tip 개인으로써 프로젝트를 지원하고 싶은 경우, [여기를 확인해주세요.](/docs/donate/) ::: Misskey 프로젝트는 스폰서를 모집하고 있습니다. 스폰서가 되면 Misskey나 Misskey Hub에 회사 로고를 게재하거나 기술 지원을 받을 수 있습니다. [자세한 것은 이쪽에서 문의해주세요.](/contact/) ================================================ FILE: content/ko/docs/8.mi-card.md ================================================ # Misskey ID카드 Misskey 프로젝트에 대한 지원 특전으로, 물리적인 "Misskey ID 카드"를 교부하고 있습니다! **Misskey ID 카드는 일련번호와 소유자가 연결되어 있는 당신만의 고내구성 메탈 카드입니다.** 중후한 금속 플레이트에 정밀한 가공을 실시해, 안정성이 높은 카드로 완성했습니다. syuilo가 직접 앞, 뒷면을 정성스럽게 디자인했습니다.평생 소장해 꼭 손에 들고 즐겨주세요! 실제 동영상은 [여기](https://www.youtube.com/shorts/AdzzwxEa-WE) (조명 때문에 금색으로 보이지만 실제로는 은색입니다.) ## 카드 사양 - 규격: 54.0mm x 85.6mm - 중량: 약 34g - 소재: 1.0mm의 두꺼운 경면 마감 스테인리스강 - 가공: 경면 가공(표면), 에칭 가공(표면 기타), 실크 인쇄(로고부), 레이저 각인(넘버링부) - 디자인: syuilo 오리지널 디자인 / 시리얼 넘버, 바코드, QR 코드, 아이짱 사인 각인 포함 옵션으로 카드 뒷면에 'syuilo' 사인을 넣을 수도 있습니다.(무료) ### 3D로 보기 ::X__Docs__mi-card__InteractiveView :: ※ 뒷 면의 디자인은 생략되어져 있습니다.모델은 실물을 정확하게 재현하고 있는 것은 아닙니다. ## 교부 대상 **누계 지원 금액이 2만 엔 이상인 분에게 1매 증정합니다.** :::g-details{summary='2枚以上ご希望の場合'} 2장 이상을 원하시는 경우, 3만엔 당 1장씩 추가 증정해 드립니다. 추가 수령 가능 매수는 지원 금액에서 2만 엔을 뺀 금액을 3만 엔으로 나눈 수입니다. 예를 들어, 지원 금액 합계가 5만엔 이상이면 총 2장, 8만엔 이상이면 총 3장, 이런 식으로 계산됩니다. 총 몇 장을 받을 수 있는지 계산할 수 있습니다: ::X__Docs__mi-card__Calculator :: 재고 상황에 따라 원하는 수량만큼 준비되지 않을 수 있습니다. ※신청 양식은 한 번만 제출이 가능합니다. 2회차 이후의 신청은 번거로우시겠지만 '문의 양식'을 통해 신청 양식과 동일한 내용을 제출해 주시기 바랍니다. ::: 미국 달러로 지원하시는 경우, 언제 지원하시던 간에 1USD = 150JPY로 환산합니다.이외의 통화의 취급에 대해서는 상담 부탁드립니다. 카드 교부를 희망하시는 분은 본 페이지의 내용([주의사항](#주의사항) 포함)을 잘 읽어보신 후 신청해 주십시오. 또한, 현재 배송의 사정상 **교부는 일본 국내에 거주하시는 분만을 대상으로 하고 있습니다.** :::warning **본 카드는 'Misskey Project'(syuilo)에 후원해주신 분들께 드리는 혜택입니다.** 각 Misskey 서버에 대한 지원은 본 혜택의 대상이 아니므로 주의하시기 바랍니다. [Misskey Project에 지원하기](/docs/donate) ::: :::tip 지원의 시기는 완전 무관합니다. 예를 들어, 2023년에 PayPal로 5,000엔을, 2024년에 Fanbox로 12,000엔을, 추가로 Amazon 위시리스트를 통해 3,000엔을 지원하셨다면, 5,000 + 12,000 + 3,000 = 20,000이 되므로 교부 신청이 가능합니다. ::: ## 수령 방법 번거로우시겠지만 아래 양식을 통해 신청해 주시기 바랍니다.(Google 계정이 필요합니다.) [MisskeyID 카드 발급 신청서](https://forms.gle/3EcRw21nUcGqGVk68) ## 배송 배송은 일본 우편으로 발송됩니다.**배송비는 무료입니다.** - 배송 시 추적번호를 이메일로 보내드립니다. - 주말에도 배송이 가능합니다. - 수령 시 본인 확인이 필요할 수 있습니다. 카드 검수 후 정성스럽게 포장하여 발송해드립니다.도착 시, 혹시라도 손상 등이 있을 경우, 일본우편으로 문의해 주시기 바랍니다. :::warning 카드는 신청하신 주소로 배송됩니다. 신청자 본인 이외의 주소로는 배송이 불가하오니 주의하시기 바랍니다. 또한, 배송 방법의 지정은 불가능합니다. ::: ## 주의사항 - 사양은 예고 없이 변경될 수 있습니다. - 일련번호는 선택할 수 없습니다. - 카드에 생활 기스가 있을 수도 있으니, 양해 바랍니다. - 치수 및 가공에 약간의 개인차가 있습니다.개성으로 즐겨주십시오. - 예고 없이 배포를 일시 중단하거나 종료할 수 있습니다. - 지원 기준 금액은 예고 없이 변경될 수 있습니다. - 분실, 파손, 도난 등의 경우 재발급이 불가능하므로 소중히 보관해 주시기 바랍니다. - 재판매 및 양도는 삼가해 주시면 감사하겠습니다. ================================================ FILE: content/ko/docs/9.misskey-and-misskey-servers.md ================================================ # Misskey와 Misskey 서버 'Misskey'와 'Misskey 서버'는 다른 것을 가리킵니다. 그러나 명칭이 비슷한 것 외에도 종종 'Misskey 서버'는 생략되어 단순히 'Misskey'라고 불리는 경우가 있고, 매우 혼동이 쉬워집니다. 실제로 'Misskey 서버'를 'Misskey'라고 잘못 인식한 뒤 문의하는 경우도 많습니다. (Misskey는 Misskey 서버의 운영이 아닙니다.또, 해당 웹사이트는 'Misskey'의 공식 웹사이트이며, 'Misskey 서버'의 웹사이트가 아닙니다.) 양쪽을 혼동하고 있지 않은지, 한 번 확인해 주십시오. ## 'Misskey' Misskey는 같은 뜻을 가진 커뮤니티 'Misskey Project'가 개발하는 '소셜 네트워킹 서비스(SNS)를 구축하기 위한 무료 오픈 소스 소프트웨어'입니다. 오픈 소스란 소프트웨어의 소스 코드(설계도)가 공개돼있는 것입니다. 무료란 소스 코드의 이용에 요금이 발생하지 않고, 누구나 자유롭게 사용할 수 있는 것입니다. Misskey가 'SNS'로 소개되는 경우도 있습니다만, 이는 잘못됐습니다. 어디까지나 'Web 서비스를 만들기 위한 소프트웨어'이고, 회원 가입이나 로그인을 하는 'Web 서비스 그 자체'가 아닙니다. :::tip 그렇기에 서비스로서의 'Misskey 운영'이라는 것도 존재하지 않습니다. 회원 가입이나 로그인을 한 경험이 있다면 이는 Misskey가 아닌 Misskey 서버로 됩니다. ::: :::warning 스팸 계정이 'Misskey 운영', 'Misskey 서포트' 등을 사칭하고 있는 경우가 있습니다. 위와 같은 조직 및 창구는 애초에 존재하지 않습니다.주의해 주십시오. ::: Misskey의 소스 코드는 누구나 자유롭게 이용할 수 있기에 다양한 사람들에 의해 Misskey를 이용해 만들어진 SNS(Misskey 서버)가 인터넷 상에 공개돼있니다. 또 누구나 개발에 참가할 수 있습니다. ## 'Misskey 서버' Misskey 서버는 'Misskey를 사용해 만들어진 SNS'를 가리킵니다. 예를 들면 'misskey.io', 'misskey.design', 'nijimiss.moe'와 같은 SNS는 Misskey 서버(Misskey계 서버)입니다. 더욱이 Misskey 서버는 Misskey 뿐만 아니라 데이터 베이스 소프트웨어 'PostgreSQL'·'Redis'나 Web 서버 소프트웨어 'Nginx' 등 다양한 소프트웨어를 사용해 만들어집니다. Misskey 서버의 수는 2025년 현재, 적어도 1,000 서버 이상 확인돼있습니다. 서버는 개인으로 운용되는 경우와 법인으로 운용되는 경우도 있습니다. :::tip Misskey Project(Misskey 개발 커뮤니티)가 Misskey 서버를 운영하는 일은 하고 있지 않고, 개별 Misskey 서버를 관리·관할하거나 운영에 관여하는 일은 없습니다. Misskey Project(Misskey 개발 커뮤니티)가 Misskey 서버를 운영하는 일은 하고 있지 않고, 개별 Misskey 서버를 관리·관할하거나 운영에 관여하는 입장도 아닙니다. '커스텀 이모티콘'이나 각 '역할', 'NG 단어 목록' 등에 대해서도 Misskey에 포함되어 있지 않고, 서버마다 운영자가 설정을 하는 것입니다. ::: 상술했듯, Misskey(계) 서버는 단순히 Misskey라고 표기될 수 있기에 Misskey에 대한 언급이 실제로는 특정 Misskey(계) 서버로의 언급인 경우가 때때로 있습니다.주의 부탁드립니다. 또 'Misskey를 사용해 만들어졌다'는 의미로 Misskey 서버 상에 'Misskey' 로고가 표시돼있거나, 'Powered by Misskey'와 같은 표기가 있는 경우가 있습니다. ### 'Misskey계 서버' Misskey에서 파생된 소프트웨어를 이용해 만들어진 서버는 모아서 Misskey계 서버라고 불리는 경우가 있습니다. Misskey계 서버는 단순히 Misskey 서버라고 불리는 경우도 있습니다. 그렇기에 'Misskey 서버'로 다뤄지는 SNS가 실제로는 'Misskey계 서버', 즉 Misskey를 사용하지 않은 SNS인 경우도 있습니다. ## 'Misskey Project' 'Misskey'의 개발을 하는 같은 뜻을 가진 자들의 커뮤니티입니다. ## 그림 해설 ![그림](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 예시 ### Web 사이트 Misskey는 예를 들면 Web 사이트를 만들기 위한 소프트웨어인 'Wordpress'입니다. Misskey 서버는 'Wordpress'를 사용해 만들어진 실제 개별 Web 사이트에 해당합니다. ### 아파트 Misskey는 '아파트의 설계도'로, Misskey 서버는 '아파트의 설계도를 기반으로 세워진 각각의 아파트'입니다. Misskey Project는 건물의 설계도를 개발하는 '설계 사무소'로, Misskey 서버 이용자(유저)는 아파트의 주민에 해당합니다. 각 아파트는 집주인(관리 회사)이 각각 다른 것처럼, Misskey 서버도 관리자·운영자는 각각 다릅니다. Misskey Project는 설계도의 공개만 하고 있고, 실제로 그 설계도를 사용해 아파트를 세우거나, 아파트의 집주인·관리 회사로 되거나, 세워진 아파트의 관리에 관여하는 일은 하고 있지 않습니다. #### 업데이트 아파트의 설계도는 항상 수정·개선되고 있고, 새로운 기능(예를 들면 바깥 계단의 추가)이 추가되거나 합니다. 그저 설계도가 업데이트되었다고 해서 이미 세워진 아파트가 자동적으로 바뀌는 것은 아닙니다. 아파트를 최신 설계도 대로 하려면 집주인이 다시 설계도를 기반으로 아파트를 고칠 필요가 있습니다. 아파트를 고치는 작업을 얼마나 많이 하는가는 집주인에 따르고, 아파트에 따라 최신의 정도가 다릅니다. #### 지원 아파트 내에서 발생한 이웃 문제나 설비의 불량 등은 집주인만 대응할 수 있습니다. Misskey Project는 설계 사무소일 뿐이기에, 아파트에 대해 관여할 권한이 없습니다. ================================================ FILE: content/ns.md ================================================ # Misskey Extensions to ActivityPub This page documents the extensions to ActivityPub that Misskey uses. This page lists some context items defined in JSON-LD contexts and explains their semantics. This document uses [compact IRIs](https://www.w3.org/TR/json-ld/#dfn-compact-iri). The prefix `ap` is used to refer to `https://www.w3.org/ns/activitystreams#`. The prefix `misskey` is used to refer to `https://misskey-hub.net/ns#`. ## `_misskey_content` - compact IRI: `misskey:_misskey_content` - canonical IRI: `https://misskey-hub.net/ns#_misskey_content` :::warning This value is deprecated and might be removed in the future. See also . ::: This value is identical to having a `source` property like this: ```js source: { content: _misskey_content, mediaType: "text/x.misskeymarkdown" } ``` Where `_misskey_content` represents the value of the field described in this section. ## `_misskey_summary` - compact IRI: `misskey:_misskey_summary` - canonical IRI: `https://misskey-hub.net/ns#_misskey_summary` Used on actors to display their summary as MFM. The content is same as `summary`, but in MFM form. ## `_misskey_quote` - compact IRI: `misskey:_misskey_quote` - canonical IRI: `https://misskey-hub.net/ns#_misskey_quote` :::tip Ways to potentially provide this information using the core ActivityPub vocabulary are currently underway, see . ::: Indicates that this note is quoting another note. It contains the `id` of the note being quoted. This seems to be identical to `https://fedibird.com/ns#quoteUri`. Misskey also uses `as:quoteUrl` for this but this was not adopted to the ActivityPub specification. This is for compatibility with some other ActivityPub programs that operate using this. ## `_misskey_reaction` - compact IRI: `misskey:_misskey_reaction` - canonical IRI: `https://misskey-hub.net/ns#_misskey_reaction` Misskey federates its reactions as `Like` activities. What kind of reaction was used is conveyed using this field. Misskey also sets `ap:content` of the `Like` activity to the same value. The content will be a string that either contains a single Unicode Emoji or a string that starts and ends with a colon. In the latter case the reaction uses a custom emoji, and the `tag` property will be set to contain the data of the respective emoji. ## `_misskey_votes` - compact IRI: `misskey:_misskey_votes` - canonical IRI: `https://misskey-hub.net/ns#_misskey_votes` This value is used for `Question` activities to indicate the number of votes an option currently has. This value is identical to having a `replies` property like this: ```js replies: { type: 'Collection', totalItems: _misskey_votes } ``` Where `_misskey_votes` represents the value of the field described in this section. ## `_misskey_talk` - compact IRI: `misskey:_misskey_talk` - canonical IRI: `https://misskey-hub.net/ns#_misskey_talk` This value is used for `Note` type objects to indicate that they are a Misskey chat message. Misskey handles these kinds of messages specially, e.g. it will apply different audience scoping rules and show them via a different API than usual `Note` objects. This field can only take the value of `true` (or be absent). ## `isCat` - compact IRI: `misskey:isCat` - canonical IRI: `https://misskey-hub.net/ns#isCat` Used on actors to indicate that they in some way identify as a cat, expressed as a boolean value. If this property is set to `true`, displaying the actor or their notes will have some special effects attached in some clients. ## `_misskey_followedMessage` - compact IRI: `misskey:_misskey_followedMessage` - canonical IRI: `https://misskey-hub.net/ns#_misskey_followedMessage` This value is used for `Actor` type objects to show message on followed. This property must be either `null` or a string if existent. The value is customized message. In other word, it can be set arbitrary by an account. Misskey shows the value on notification to new followee when: - The property is set, - value is a string, - the followee's Misskey is 2024.9.0-alpha.11 or later, - and one who has set this property gets followed by the followee ## `_misskey_requireSigninToViewContents` (introduced in: https://github.com/misskey-dev/misskey/pull/14799) - compact IRI: `misskey:_misskey_requireSigninToViewContents` - canonical IRI: `https://misskey-hub.net/ns#_misskey_requireSigninToViewContents` This property is used for `Actor` type object to forbid show one's content when viewer is not signed-in. This value must be either `true` or `false` if existent. An implementation should refuse to show their content to align to Misskey's implementation if the value is `true` and the viewer is not signed-in. This property is not guaranteed to work on older Misskey or non-Misskey implementation. ## `_misskey_makeNotesFollowersOnlyBefore` (introduced in: https://github.com/misskey-dev/misskey/pull/14814) - compact IRI: `misskey:_misskey_makeNotesFollowersOnlyBefore` - canonical IRI: `https://misskey-hub.net/ns#_misskey_makeNotesFollowersOnlyBefore` This property is used for `Actor` type object to forbid show one's *past* content when viewer is not a follower of author. This value must be a integer if existent. Misskey computes that the threshold of the Unix epoch millisecond in the either way: - If the value is positive, then the value is interpreted as an absolute Unix epoch millisecond. - If the value is negative, then the value is relative millisecond compared to posted date. For example, `-86400000` implies targeting a note that has posted before yesterday because a day contains 86400 seconds. If posted date is considered as older than the threshold, then it is considered as a past content. If the viewer is not a follower of the author, then past content shall not be shown. This property is not guaranteed to work on older Misskey or non-Misskey implementation. ## `_misskey_makeNotesHiddenBefore` (introduced in: https://github.com/misskey-dev/misskey/pull/14814) - compact IRI: `misskey:_misskey_makeNotesHiddenBefore` - canonical IRI: `https://misskey-hub.net/ns#_misskey_makeNotesHiddenBefore` This property is used for `Actor` type object. This property has same semantics and value range as `_misskey_makeNotesFollowersOnlyBefore` but affected viewer: the value affects everyone but author themselves. This property is not guaranteed to work on older Misskey or non-Misskey implementation. ## `_misskey_license` - compact IRI: `misskey:_misskey_license` - canonical IRI: `https://misskey-hub.net/ns#_misskey_license` This property is used to express licenses about each `Emoji` objects. This property may not exist due to following reasons: - The source server do not follow this extension, or - The source server uses old Misskey version This property has the following known properties: - `freeText`: The value is either string or null. This field MUST present. Implies Sender did not set explicit license if the value is null. This SHOULD NOT be empty string because it is nonsense; Proper way to declare that the Emoji object has not set explicit license is setting null on this property. Describes how usage is permitted from its author in non-machine-friendly free-form text. The language, format, wording, or containing information in the value is not specified; Receivers SHOULD NOT assume it's written in some specific manner. Source servers SHOULD NOT set properties in other way that differs in above description except in the case of keeping backwards compatibility. Source servers SHOULD NOT set unknown properties except in the case of keeping backwards compatibility, because more property may be added in the future. Recipient servers SHOULD ignore unknown properties. ================================================ FILE: content/pl/.docs-legacy/admin/cdn.md ================================================ # Skonfiguruj CDN Tworząc instancję Misskey radzimy skorzystać z usługi CDN jak na przykład [Cloudflare](https://www.cloudflare.com/). Używająć CDNa pozwala - Buforować statyczne materiały co obniża wykorzystanie serwera - Adres IP twojego serwera jest mniej widoczny co może ograniczyć ataki typu DoS itp. ## Buforowanie Misskey Web jest kompletnie statycznie i nie wymaga serwera do działania. Więc cała zawartość Misskey Web może być zbuforowana na CDNie. API Misskey nie może być buforowane Musisz więc na swoim CDNie skonfigurować następujące opcje - Buforuj wszystkie żądania poza żądaniami `/api/*`. ( Cache all requests except `/api/*`.) :::tip Nie musisz czyścić pamięci podręcznej/bufora aktualizując Misskey. :::: ================================================ FILE: content/pl/.docs-legacy/admin/default-reaction.md ================================================ # Zmienianie domyślnej Reakcji Możesz zmienić domyślną reakcję kiedy "Polub to" z ActivityPub jest zdobyte z '👍' na na przykład :'⭐' zmieniając wartość `meta.useStarForReactionFallback` w bazie danych. ================================================ FILE: content/pl/.docs-legacy/admin/emoji.md ================================================ # Zarządzanie dodatkowymi emotikonami Dodatkowe emotikony są zarządzane przez administratorów lub moderatorów poprzez ustawienia instancji i menu z dodatkowymi emotkami. Domyślnie będzie widoczna lista lokalnie zainstalowanych emoji. Początek tej listy będzie pusty, ale możesz dodać dodatkowe emotki w różny sposób. ## Kopiowanie Emoji z innych instancji Emoji mogą być łatwo kopiowane z innych instancji. Aby to wykonać przejdź do zakładki "zdalne" w ustawieniach dodatkowych emoji. Możesz wyszukać emoji po nazwie i/lub serwerze z którego one są. Kiedy znajdziesz emoji które chcesz, kliknij aby otworzyć niewielkie menu, które pozwoli ci zaimportować emoji. Proszę pamiętać że Emotikony mogą być pokryte prawami autorskimi i twoją zasługą jest sprawdzenie legalności używania innej emotikony. ## Indywidualny import emoji Jeżeli masz plik z obrazkiem z którego chciałbyć zrobić dodatwkową emotikonę, możesz zaimportować obrazek jako emoji. To działa tak samo jak dodawanie pliku do posta: Możesz wybrać czy chcesz wysłać nowy plik, lub wybrać plik z Dysku Misskey albo wysłać plik z innego URL :::info Kiedy importujesz emotikony z twojego dysku, pliki zostaną na dysku. Misskey nie tworzy kopii tego pliku więc jak go usuniesz, emotikona będzie zepsuta. ::: Emoji zostanie dodane do instancji i wtedy będziesz mógł je edytować lub usunąć jak zawsze. ## Hurtowe dodawanie emoji Emotikony mogą być dodane hurtowo, jako paczka ZIP w specjalnym formacie. Ta możliwość jest dostępna w menu z 3 kropkami w prawym górnym rogu menu z emoji. :::warning Emoji dodane hurtowo mogą nadpisać istniejące emoji lub inaczej popsuć twoją instację. Bądź pewien że importujesz emoji tylko z zaufanych źródeł, najlepiej tylko te które wyexportowałeś sam. ::: ### Format paczek z emoji Na najwyższym poziomie znajduje się plik o nazwie `meta.json`, który zawiera informacje o emoji zawartych w spakowanym pliku. Definicja typu dla tego pliku wyglądałaby tak, gdzie `Meta` to struktura całego pliku. ```typescript class Meta { metaVersion: number; host: string; /** * Data i czas reprezentowane zwrócone przez 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[]; }; } ``` Pola `Meta` nie są obecnie używane ani sprawdzane podczas importu emoji, z wyjątkiem pola `emojis`. Dla każdego `Emoji`: - `downloaded`: powinno być zawsze 'True'. Jeśli brakuje tego pola lub nie jest ono prawdziwe, emoji nie zostanie zaimportowane. - `fileName`: nazwa pliku graficznego wewnątrz spakowanego pliku. - `emoji`: dane związane z emoji, tak jak było to zapisane w bazie danych. Obecnie większość z tych pól jest nie jest nawet sprawdzana pod kątem istnienia. Obecnie używane są następujące: - `name`: nazwa emoji dla użytkownika, np. `blobfox`, jeśli użytkownik powinien wpisać `:blobfox:`, aby uzyskać emoji. Jeśli istnieje poprzedni emoji o tej samej nazwie, zostanie on **nadpisany**! - `category`: kategoria emoji - `aliases`: lista ciągów znaków, które powinny być dodane jako aliasy. W admin UI nazywa się to "tagami". ## Edytowanie i usuwanie emoji Właściwości emoji mogą być edytowane klikając na nie w liście lokalnych emotek. Kiedy klikniesz na dodatkową emoji, dialog z edycją właściwości się otworzy. Ten dialog pozwoli ci również usunąć emoji. :::tip Kiedy usuniesz dodatkową emotkę, stare posty które ją zawierają nadal będą miały jej nazwe w nich. Ta emotka nie będzie się prawidłowo wyświetlać. ::: Informacja - Emoji na innych serwerach nie mogą być edytowane lub usuwane. Każda emotikona ma nazwę, kategorię i tagi. Kategoria jest używana w menu wyboru emotki. W międzyczasie tagi mogą być używane jako inne nazwy za pomocą których emoji może zostać znalezione kiedy jest wyszukiwane. When you are done editing, save your changes by clicking the check mark in the top right corner of the dialog. ### Edytowanie hurtowe Emoji mogą być edytowane hurtowo zaznaczająć opcje pod wyszukiwarką. Kiedy to jest włączone kliknięcie w emoji wybierze je, zamiast otwierać panel edycji. Opcje edycji będą wyświetlone jako przyciski pod polem wyboru. Aby wrócić do normalnego trybu wystarczy odznaczyć pole jeszcze raz. ================================================ FILE: content/pl/.docs-legacy/admin/nginx.md ================================================ # Konfiguracja ngix 1. Utwórz `/etc/nginx/conf.d/misskey.conf` lub `/etc/nginx/sites-available/misskey.conf` i skopiuj podany przykład do pliku.\ (Nazwa pliku nie musi być "misskey".) 2. Zmień go w taki sposób: 1. Zamień example.tld z domeną którą przygotowałeś.\ `ssl_certificate` i `ssl_certificate_key` powinny być lokalizacjami certyfikatu od Let's Encrypt. 2. Jeżeli używasz CDNa jak na przykład CloudFlare, usuń 4 linijki "If it's behind another reverse proxy or CDN, remove the following." 3. Jeżeli stworzysz `/etc/nginx/sites-available/misskey.conf`, stwórz symlink jako `/etc/nginx/sites-enabled/misskey.conf`.\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. Wykonaj `sudo nginx -t` aby zweryfikować działanie konfiguracji. 5. Wykonaj `sudo systemctl restart nginx` zrestartować nginx. # Przykład pliku konfiguracji 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; } } ``` ================================================ FILE: content/pl/.docs-legacy/admin/push-docker-hub.md ================================================ # Jak korzystać z GitHub Actions by wysyłać do Docker Hub :::warning Ta strona nie jest przetłumaczona, jeśli możesz to możesz edytować stronę w oparciu o stronę Japońską. :: Ten sam komunikat po angielsku 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. ::: ================================================ FILE: content/pl/.docs-legacy/admin/troubleshooting.md ================================================ # Rozwiązywanie problemów :::warning Ta strona nie jest przetłumaczona, jeśli możesz to możesz edytować stronę w oparciu o stronę Japońską. :: Ten sam komunikat po angielsku 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. ::: ================================================ FILE: content/pl/.docs-legacy/api/app.md ================================================ --- description: Opisuje, jak uzyskać token dostępu przed wprowadzeniem MiAuth. --- Uwaga - ten plik został przetłumaczony z Japońskiego tłumaczem internetowym. Może zawierać błędy. # Jak uzyskać token dostępu przy użyciu metody tworzenia aplikacji W tej sekcji opisano starą metodę uzyskiwania tokena dostępu przed wprowadzeniem MiAuth (12.27.0). Serwery z wersjami mniejszymi niż 12.27.0 muszą używać tej starej metody. ## 1. tworzenie aplikacji Wyślij informacje do punktu końcowego [`app/create`](endpoints/app/create.html), aby uzyskać `appSecret`. `json. { // App Name. "name": "test",. // App description. "description": "moja aplikacja testowa",. // Uprawnienia dla aplikacji. "permission": ["write:notes"] } ``` W tym momencie możesz zawrzeć w `callbackUrl` wybrany przez siebie adres URL, tak aby po zakończeniu kolejnej operacji związanej z uprawnieniami nastąpiło tam wywołanie zwrotne, zawierające `token` w ciągu zapytania. ## 2. Uwierzytelnienie użytkownika. POST an `appSecret` do punktu końcowego [`auth/session/generate`](endpoints/auth/session/generate). `json. { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` Zwraca on `token` (tutaj wstępnie `798b9f6e-248d-43a7-a919-fabc664027f1`) oraz `url`, więc najpierw wejdź na ten url za pomocą przeglądarki internetowej i wybierz 'allow access'. ## 3. query the accessToken Gdy już jesteś pewien, że ## 2 jest zrobiony, POSTuj `appSecret` i `token` z wcześniejszego punktu końcowego [`auth/session/userkey`](endpoints/auth/session/userkey). `json. { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf",. "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` Ciąg znaków, który można tu uzyskać nazywa się `accessToken`. `accessToken` może być pobrany tylko raz. ## 4. generowanie `i`. `i` można wygenerować w Node.js za pomocą poniższego kodu, który jest 64-cyfrową liczbą szesnastkową, w przeciwieństwie do tej, którą otrzymujemy na ekranie konfiguracyjnym. `javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i). ``` ## 5. faktycznie przetestuj to ````javascript fetch("https://misskey.io/api/notes/create", { method: 'POST', { body: JSON.stringify({ i: "/* Enter i here */",. text: "Hello Misskey API World with My Application!" }), headers: { 'Content-Type': 'application/json',. }, credentials: 'omit', } }); ``` ================================================ FILE: content/pl/.docs-legacy/api/common.json5 ================================================ { 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.', }, }, } ================================================ FILE: content/pl/.docs-legacy/api/index.md ================================================ --- description: 'Misskey udostępnia API które możesz wykorzystać do tworzenia klientów do Misskey, usług internetowych połączonych z Misskey, botów, itp. ("Aplikacje").' --- # Misskey API Misskey udostępnia API które możesz wykorzystać do tworzenia klientów do Misskey, usług internetowych połączonych z Misskey, botów, itp. ("Aplikacje").Posiadamy również API strumieniowe, dzięki czemu można tworzyć aplikacje z możliwością pracy w czasie rzeczywistym. :::tip Używając oficjalnego SDK Misskey lub bibliotek nieoficjalnych można wygodniej korzystać z API, na przykład upraszczając niektóre z kroków opisanych w tym dokumencie. Zobacz [tutaj](TODO) więcej informacji na temat bibliotek. ::: Aby zacząć korzystać z API, musisz zdobć **token dostępu** powiązany z kontem którego chcesz używać z API. Ten dokument poprowadzi Cię przez proces zdobywania tokenu dostępu i pokaże jak korzystać z API. ## Zdobywanie tokenu dostępu Zazwyczaj API wymaga Tokenu Dostępu żeby wykonać żądanie. Token dostępu jest to zestaw danych powiązanych z użytkownikem, które identyfikuje który użytkownik korzsta z API i kontroluje jakie dostęp do operacji każdego tokenu dostępu. :::tip Może być wiele relacji pomiędzy użytkownikiem a tokenem dostępu powiązanym z użytkownikiem i wiele tokenów dostępu może być wygenerowane dla danego użytkownika. ::: Możesz łatwo [zdobyć token dostępu dla siebie](#Manually-issue-an-access-token), lub możesz [zdobyć token dostępu dla użytkownika, który będzie korzystał z aplikacji](#Request-an-access-token-to-be-issued). ### Manualnie stwórz token dostępu Możesz manualnie stworzyć swój token dostępu w Przeglądarkowym Interfejsie Misskey w 'Ustawienia > API'. :::warning NIKOMU NIE UDOŚTĘPNIAJ SWOJEGO TOKENU DOSTĘPU ::: ### Zażadaj utworzenia tokenu Any uzyskać token dostępu dla użytkownika aplikacji (lub po prostu "użytkownika"), możesz zarządać by został stworzony w następujący sposób. :::tip Metoda tutaj opisana nazywa się MiAuth i ona tworzy token dostępu bez tworzenia aplikacji. Nadal możesz [stworzyć aplikację by uzyskać token dostępu](./app.md). ::: #### Krok 1 Wygeneruj UUID. Od teraz będziemy na niego mówić **ID Sesji**. :::warning ID Sesji powinien być generowany za każdym razem i nie powinien być ponownie używany. ::: #### Krok 2 Formularz uwierzytelniania aplikacji powinien zostac wyświetlony w przeglądarce użytkownika. Formularz uwierzytelniania może zostać otwarty za pomocą URL podobnego do tego: ```:no-line-numbers https://{host}/miauth/{session} ``` gdzie: - `{host}` to instancja użytkownika (zazwczaj manualnie wpisana przez niego). - `{session}` to jest ID Sesji. Jest też kilka parametrów żądań w URL: | Nazwa | Opis | | ---- | ---- | | `name` | Nazwa Aplikacji | | `icon` | Ikona Aplikacji。 | | `callback` | URL do którego użytkowink zostanie przekierowany po uwierzytelnieniu z ID Sesji dodanym by przekierować z parametrem żądania `session`. | | `permission` | Zgody których aplikacjia wymaga.
Lista zezwoleń które mogą być żądane, podzelona`,`. Lista zezwoleń jest dostępna [tutaj](TODO). | :::tip Przykład: ```: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 ``` ::: #### Krok 3 Po tym jak użytkownik odtrzymał dostęp do aplikacji, żądanie POST do URL formularza zwróci wynik w JSON zawierający token dostępowy jako odpowiedź. ```:no-line-numbers https://{host}/api/miauth/{session}/check ``` gdzie: - `{host}` to instancja użytkownika (zazwczaj manualnie wpisana przez niego). - `{session}` to jest ID Sesji.- `{session}` is the session ID. Właściwości zawarte w odpowiedzi: | Nazwa | Opis | | ---- | ---- | | `token` | teoken dostępu użytkownika | | `user` | informacje na temat użytkownika | ## Używanie API Kiedy zdobędziesz token dostępu API możesz skorzystać z API tworząc rządania do różnych miejsc. :::tip - Wszytkie API HTTP są żądaniami POST, i zarówno żądanie jak i odpowiedź są w formacie JSON (wyjątkiem stanowią dysk/pliki/utwórz (drive/files/create)). - Określ `Content-Type: application/json` w nagłówku żądania. - Token dostępu jest zawarty w JSONie żądania z parametrem `i`. ::: Przykład JSONa z tokenem dostępu: ```json { "i": "HogEFugA1341", "detail": false } ``` Token dostępu jest zawarty w JSONie żądania z parametrem `i`. Po więcej informacji na temat API zobacz [API Reference](./endpoints.html). :::info Misskey nie używa API typu REST. ::: Oprócz interfejsu API HTTP, Misskey udostępnia również interfejs API strumieniowania. Więcej informacji o API strumieniowym można znaleźć [tutaj](./streaming/). :::tip Twoja instancja Misskey również zawiera dokumentacji api w `/api-doc`. ::: ================================================ FILE: content/pl/.docs-legacy/api/streaming/channel/global-timeline.md ================================================ --- description: "Kanał gdzie strumieniowane są posty z ośi globalnej." --- # `globalTimeline` Kanał gdzie strumieniowane są posty z ośi globalnej ## Parametry brak ## Zdarzenia ### `note` Dzieje się kiedy nowy post jest dodany na globalną oś czasu. ## Operacje brak ================================================ FILE: content/pl/.docs-legacy/api/streaming/channel/home-timeline.md ================================================ --- description: "Kanał gdzie posty gdzie posty z ośi domowej są strumieniowane." --- # `homeTimeline` Kanał gdzie posty gdzie posty z ośi domowej są strumieniowane. ## Parametry brak ## Zdarzenia ### `note` Dzieje się kiedy na tablicę domową dodano nowy post. ## Operacje brak ================================================ FILE: content/pl/.docs-legacy/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "Kanał gdzie posty społecznościowe są nadawane." --- # `hybridTimeline` Kanał gdzie posty społecznościowe są nadawane. ## Parametry brak ## Zdarzenia ### `note` Nowy post na tablicy społecznościowej ## Operacje Brak ================================================ FILE: content/pl/.docs-legacy/api/streaming/channel/index.md ================================================ # Lista kanałów ================================================ FILE: content/pl/.docs-legacy/api/streaming/channel/local-timeline.md ================================================ --- description: "Kanał gdzie posty z lokalnej Ośi czasu są nadawane." --- # `localTimeline` Kanał gdzie posty z lokalnej Ośi czasu są nadawane. ## Parametery brak ## Zdarzenia ### `note` Dzieje się kiedy nowy post jest nadany na Lokalną oś czasu. ## Operacje brak ================================================ FILE: content/pl/.docs-legacy/api/streaming/channel/main.md ================================================ --- description: "Ten kanał zawiera podstawowe informacje." --- # `main` Ten kanał zawiera podstawowe informacje. ## Parametery brak ## Zdarzenia ### `notification` Kiedy odtrzymasz wiadomość ### `mention` Kiedy wiadomość jest wysłana ### `reply` Kiedy odebrana jest odpowiedź ### `renote` Kiedy post jest zrepostowany ### `follow` Kiedy zaobserwujesz użytkownika. ### `followed` Kiedy inny użytkownik ciebie zaobserwuje ### `unfollow` Kiedy przestaniesz obserwować kogoś ### `messagingMessage` Kiedy wiadomość czatu jest odebrana ### `readAllNotifications` Wszytkie powiadomienia zostały przeczytane ### `unreadNotification` Nieprzeczytane powiadomienia ### `unreadMention` Nowa wzmianka. ### `readAllUnreadMentions` Wszystkie wzmianki były widziane. ### `unreadSpecifiedNote` Nowa wiadomość bezpośrednia. ### `readAllUnreadSpecifiedNotes` Wszystkie posty bezpośrednie przeczytane. ### `unreadMessagingMessage` Nieprzeczytana wiadomość czatu. ### `readAllMessagingMessages` Wszystkie wiadomości czatu przeczytane. ## Operacje brak ================================================ FILE: content/pl/.docs-legacy/api/streaming/index.md ================================================ --- description: 'Strumieniowe API podaje informacje w czasie rzeczywistym (np: nowe posty na ośi czasu, reakcje, obserwujący itp.) i wiele innych' --- # Api strumieniowe :::tip Na początek powinieneś przeczytać [dokumentację API Misskey](../index.md). ::: Strumieniowe API podaje informacje w czasie rzeczywistym (np: nowe posty na ośi czasu, reakcje, obserwujący itp.) i wiele innych. ## Łączenie Aby używać API strumieniowego, musisz połączyć się z serwerem Misskey za pomocą **websocket**. O to przykładowy URL Websocketu: ```:no-line-numbers wss://{host}/streaming?i={token} ``` gdzie: - `{host}` instancja z którą chcesz się połączyć. - `{token}` token dostępowy użytkownika. :::tip Możesz też się połączyć bez tokenu dostępu ale nie będziesz miał dostępu do wszystkich danych. ::: Kiedy połączyłeś się, możesz subskrybować do postów opisanych poniżej, ale nadal nie możesz odtrzymywać nowych postów na ośi czasu Aby odtrzymywać takie zdarzenia musisz połączyć się z **kanałem** jak opisano poniżej. **Wszystkie dane powinny być w JSONie.** ## Kanał API Strumieniowe Miskey używa kanałów. Jest to mechanizm do oddzielania informacji do wysłania i odbioru. Dołączając na kanał na strumieniu, będziesz mógł otrzymywać różne rodzaje informacji i wysyłać informacje. :::tip Możesz dołączyć do wielu kanałów na jednym strumieniu ::: Ta sekcja opisuje jak używać kanałów. Aby sobaczyć jakie kanały są dostępne, zapoznaj się z [listą kanałów](./channel/index.md). ### Dołączanie do kanału Dołączając do kanału, wysyłasz strumieniem podane dane w JSONie: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` gdzie - `channel` to nazwa kanału z którym chcesz się połączyć. Rodzaje kanałów są opisane niżej w tym dokumencje. - `id` jest to arbitralne ID do wykonywania interakcji z kanałem. Jest ono wymagane do identyfikowania, z którego kanału jest wiadomość, ponieważ strumień zawiera wiele kanałów. To ID może być czymś w stylu UUID albo losową liczbą. - `params` to parametry wymagane kiedy dołącza się na kanał. Różne kanały wymagają innych parametrów przy połączeniu. Kiedy kanał nie wymaga parametrów, można tą wartość zignorować. :::tip ID nie jest co kanał, a co połączenie z kanałem, ponieważ kanał może być potrzebny kilka razy ale z innym parametrem. ::: ### Zdobywanie wiadomości z kanałów Na przykłąd, oś czasu kanału wyśle wiadomość kiedy jest nowy post. Zdobywając wiadomość, możesz wiedzieć w czasie rzeczywistym że nowy post został opublikowany na twojej ośi casu. Kiedy kanał wysyła wiadomość, podany JSON jest wysłany: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` gdzie - `id` to ID ustawionie kiedy łączono z kanałem jak podano wyżej. Pozwala wiedzieć z którego kanału jest wiadomość - `type` to jest rodzaj wiadomości. Rodzaje wiadomości zależą od tgo co jest wysyłane na kanał. - `body` zawiera zawartość wiadomości. Zawartość zależy od kanału. ### Wysyłanie wiadomości na kanał Na niektórych kanałach jest możliwość wysyłąnia wiadomości i wykonywania innych operacji poza zdobywaniem wiadomości. Aby wysłać wiadomość, wyślij podane dane w JSONie na strumień: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` gdzie: - `id` to ID ustawionie kiedy łączono z kanałem jak podano wyżej. Pozwala wiedzieć dla którego kanału jest to wiadomość. - `type` to jest rodzaj wiadomości. Rodzaje wiadomości zależą od kanału. - `body` zawiera zawartość wiadomości. Zawartość zależy od kanału. ### Rozłączanie się z kanału Aby się rozłączyć z kanału (instantiation), wyślij podane dane JSONem na strumień: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` where - `id` to ID kanału do którego się łączyłeś i z którego chcesz się rozłączyć. ## Wyłapywanie postów Misskey udostępnia mechanizm zwany przechwytywaniem postów. Jest to zdolność do otrzymania strumienia zdarzeń dla danego wpisu. Na przykład, powiedzmy, że chwytasz oś czasu i wyświetlasz ją swoim użytkownikom. Powiedzmy, że ktoś reaguje na jeden z postów na osi czasu. Ponieważ jednak klient nie ma sposobu, aby wiedzieć, że notka została zareagowana, nie jest możliwe odzwierciedlenie reakcji na osi czasu w czasie rzeczywistym. Aby rozwiązać ten problem, Misskey zapewnia mechanizm przechwytywania wpisów. Gdy przechwycisz notkę, otrzymasz zdarzenia związane z tą notką i możesz wyświetlić reakcje na nią w czasie rzeczywistym. W kolejnych rozdziałach opisano, jak korzystać z funkcji przechwytywania notek. Aby zobaczyć, jakie zdarzenia przechwytywania są dostępne, zobacz listę [Capture Events List](./note-capture-events.md). ### Wyłapanie posta Aby wyłapać post wyślij JSON na strumień: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` gdzie - `id` to ID posta do wyłapania. Kiedy wysyłasz wiadomość, prosisz Misskey o przechwycenie notki, a następnie zdarzenia związane z tą notką będą przesyłane do ciebie. Na przykład jak odtrzymasz reakcje to odtrzymasz taką odpowiedź JSONem ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` gdzie - `body.id` to ID posta które spowodowało zdarzenie. - `body.type` typ zdarzenia. - `body.body` informacje o zdarzeniu. ### Usuwanie przechwytywania posta Jeśli nie chcesz już otrzymywać zdarzeń związanych z postem, np. gdy nie pojawia się ona już na ekranie, możesz usunąć żądanie przechwycenia. Wyślij następujące dane JSON: ``js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxx' } } ``` gdzie - `id` to ID notatki, którą chcesz odhaczyć. Po wysłaniu tej wiadomości nie będą już wysyłane żadne zdarzenia związane z tą notką. ================================================ FILE: content/pl/.docs-legacy/api/streaming/note-capture-events.md ================================================ # Wydarzenia wyłapujące wpisy ## `reacted` Dzieje się kiedy ktoś zareaguje na wpis docelowy ## `pollVoted` Dzieje się kiedy ktoś zagłosuje na ankiecie w poście. ## `deleted` Dzieje się kiedy post jest usunięty. ================================================ FILE: content/pl/.docs-legacy/donate.md ================================================ # Dotacje do projektu Misskey nie jest firmą i zawsze będzie darmowe w użyciu by zbierać dotacje od każdego.(W zależności od instancji, niektóre zarobki mogą być zdobyte przez wyświetlanie reklam, jednak te zarobki idą wprost do administratorów instancji a nie do twórców Misskey.) Dotację umożliwiają kontynuację nad pracą nad projektem, są one jednym z sposobów na wspieranie Misskey. Dotację są przyjmowane na [Patreon](https://www.patreon.com/syuilo). Przez przekazywanie dotacji o określoej wartości możesz mieć twoją nazwę użytkownika wyświetloną na [Stronie na temat](/about-misskey) Misskey. Na dodatek administratorzy serwera nie mówią o zarabianiu. Operowanie serwera kosztuje trochę, więc proszę rozważ wspieranie administratora twojego serwera. To nie jest związane z tworzeniem Misskey, ale istnienie tych serwerów jest tym co tworzy ten projekt, oznacza to że istnienie tych serwerów jest tak samo ważne jak sam projekt. ================================================ FILE: content/pl/.docs-legacy/faq.md ================================================ # Często zadawane pytania (FAQ) Ten dokument zawiera listę często zadawanych pytań na temat używania Misskey. Często zadawane pytania na temat projektu Misskey można znaleść [tutaj](../misskey#frequently-asked-questions). ## "Czy są jakieś aplikacje na iOS/Androida?" Aktualnie nie ma oficjalnej aplikacji Misskey na urządzenia mobilne, jest kilka aplikacji nieoficjalnych. Po więcej informacji sprawdź [tutaj](./apps). Jednakże funkcjonalność nieoficjalnych aplikacji będzie w tyle za oficjalnym klientem przeglądarkowym, więc tylko pod warunkiem że chcesz używać natywnej aplikacji rekomendujemy używać oficjalnego przeglądarkowego klienta. Przeglądarkowy klient Misskey wspiera PWA więc można traktować go jako natywną aplikację. Informacje na ten temat znajdziesz [tutaj](todo). ## "Nie mogę zalogować się przez klient do Mastodona?" Ponieważ Misskey nie jest kompatybilne z API Mastodona, poza niektórymi wyjątkami, używanie klientów do Mastodona żeby zalogować się do Misskey jest niemożliwe. ## "Co muszę zrobić żeby obserwować ludzi z innych serwerów?" Użyj wyszukiwarki w menu i wpisz ich nazwę łącznie z ich serwerem np. `@syuilo@misskey.io` ## "Jak usunąć repost/renotkę itp." Kliknij w 3 kropki ("...") wyświetlone przy informacjach posta i wybierz "Odbierz renotkę". Aby dowiedzieć się więcej o Renotkach [sprawdź tutaj](../features/note#renote). ## "Nie chcę widzieć podglądu z adresu URL" Możesz zapobiec wyświetlaniu podglągu adresu URL używając MFM. Proszę sprawdź Dokumentację MFM którą możesz zobaczyć na twojej instancji wpisująć adres `https://AdresTwojejInstancji/mfm-cheat-sheet`. ## "Chcę dodać dodatkowe emotikony" Tylko administratorzy mogą dodać, edytować lub usunąć dodatkowe emotikony. Jeżeli chciałbyć zrobić którąś z tych czynności skonsultuj się z administratorem twojej instancji. ## "Chciałbym napisać BOTa" Jest możliwość napisania Bota używająć API Misskey. [Zobacz więcej](../docs/api). ## Jaki tłumacz jest używany do tłumaczenia postów? [DeepL](https://www.deepl.com/) jest do tego wykorzystywany. ================================================ FILE: content/pl/.docs-legacy/features/ads.md ================================================ # Reklamy Misskey może wyświetlać reklamy na ośi czasu instancji i w innych miejscach jeżeli administrator je włączy. Możesz ograniczyć wyświetlanie reklam klikając w jej prawy górny róg. :::tip Jeżeli liczba reklam na instacji jest mała to reklama nadal może się często wyświelać mimo prób ograniczania wyświetlania. ::: ## Konfigurowanie reklam (Administratorzy) Możesz dodać, edytować lub usunąć reklamy z panelu sterowania instancji. Możesz ustawić obraz, link, kształt i wielkość reklamy wyświetlanej. ================================================ FILE: content/pl/.docs-legacy/features/antenna.md ================================================ # Antena Antena jest to funkcja która pozwa stworzyć spersonalizowaną oś czasu. Filtry anteny mogą zawierać/ignorować określone słowa i tagi w różnych kombinacjach i innych opcjach. Kiedy post spełni wymagania anteny, on zostanie dodany tam automatycznie. Aby utworzyć antenę, kliknij "Dodaj" w zakładce z antenami i uzupełnij opcje twojej anteny. ================================================ FILE: content/pl/.docs-legacy/features/charts.md ================================================ # Wykresy Misskey może generować i wyświelać wykresy różnych źródeł. Wykresy pozwalają uzyskać wizualnie informacje na temat użycia, statusie federacji i aktywności użytkowników Wykresy instancji są widoczne z strony z *informacjami instancji* (dostępna klikając w logo instancji w menu nawigacji) Poniżej jest opis każdego wykresu i jego zawartości: ## Wykres federacji Pokazuje informacje na temat federacji instancji/ ### Pub Ilość instancji do których publikowane są materiały ### Sub Liczba instancji które odtrzymują dane od innych instancji ### Odebrane Liczba instancji które wysłały materiał do tej instancji. ### Dostarczone Liczba instancji do których dostarczone zostały posty. ### Wstrzymane Liczba instancji które napotkały błąd przy dostarczaniu postów. ## Wykres aktywnych użytkowników Wykres aktywności tej instacji ### Odczyt i zapis Liczba ludzi którzy odczytali i napisali posty. ### Odczyt Liczba użytkowników która odczytała materiały. ### Zapis Liczba użytkowników która wykonałą wpisy ### < Tydzień Liczba użytkowników z kontem młodszym niż tydzień ### < Miesiąc Liczba użytkowników z kontem młodszym niż Miesiąc ### < Rok Liczba użytkowników z kontem młodszym niż rok ### > Tydzień Liczba użytkowników z kontem starszym niż tydzień ### > Miesiąc Liczba użytkowników z kontem starszym niż tydzień ### > Rok Liczba użytkowników z kontem starszym niż rok ================================================ FILE: content/pl/.docs-legacy/features/clip.md ================================================ # Klip / Clip Klipy jest to funkcja która pozwala utworzyć kolekcje notek. Notki w kolekcji mogą być twoje, lub kogoś innego, można nadać im nazwę i opis do każdego. Możesz też wybrać czy chcesz by klipy były publiczne żeby inni użytkownicy mogli je zobaczyć. Aby dodać clip skorzystaj z menu Klipów. Aby dodać notkę do clipu wybież opcję "Klip" w menu notki i wybierz Klip do którego chcesz dodać. Tak to trochę tak jak zakładki, piny w Pintreście itp. Tak samo jak Pintrestowe tablice, klipy mogą być publiczne lub prywatne. Jeśli chcesz aby ktoś mógł zobaczyć klipy musisz nadać im status publiczny. ================================================ FILE: content/pl/.docs-legacy/features/custom-emoji.md ================================================ # Dodatkowe/personalizowane Emoji Personalizowane Emoji to funkcja która pozwala użyć jakikolwiek obraz na twojej instancji jako Emoji. Możesz ich używać w postach, reakcjach, czatach, twoim profilu i w twojej nazwie itp. Aby użyć personalizowanych emoji skorzystaj z przycisku emoji (jeśli dostępny) alno wpisz `;` żeby wyświetlić proponowanie. Jeśli wartość w postaci `:foo:` zostanie znaleziona w tekście, część `foo` będzie interpretowana jako niestandardowa nazwa emoji i zostanie zastąpiona odpowiednim niestandardowym emoji podczas wyświetlania. Aby zobaczyć personalizowane emoji można zobaczyć je w menu po kliknięciu w logo instancji. ================================================ FILE: content/pl/.docs-legacy/features/deck.md ================================================ # Układ interfejsu Układ interfejsu jest to jedna z funkcji personalizacji Misskey. Pozwala ona tworzyć niestandardowe i bardziej wypełnione informacjami interfejsy użytkownika, wyświetlając wiele widoków, zwanych "kolumnami", obok siebie. Ta opcja jest tylko dostępna na urządzeniach z ekranym odpowiednio wielkim - na przykład na komputerze lub laptopie. ## Dodawanie kolumn Możesz dodać kolimnę klikając prawym przyciskiem myszy w tło decku i wybierając "Dodaj kolumnę". Możesz również kliknąć ikonę '+' po prawej stronie ekranu. ## Przenoszenie kolumn Kolumny mogą być przenoszone poprzez przeciąganie i upuszczanie lub za pomocą opcji menu kolumny "Przenieś" (kliknij prawym przyciskiem myszy na nagłówku kolumny). ## Poziomy podział kolumn Kolumny mogą być podzielone wertykalnie jak i horyzontalnie. Otwórz menu kolumny i wybierz "Zestaw z kolumną po lewej" aby przenieść bieżącą kolumnę poniżej kolumny po lewej. Aby odstawić kolumnę wybierz "Odstaw kolumnę po prawej" z menu kolumny. ## Konfiguracja ułożenia kolumn Wybierz "ustawienia kolumn" w menu kolum aby zmienić ułożenie kolumn. Możesz tam też zmienić nazwę i szerokość kolumny. Jeżeli kolumna jest elastyczna, to zapełni całą wolną przestrzeń. Jeśli nie, to będzie miała określony rozmiar. ## Ustawienia decku Ustawienia związane z ułożeniem decku są w ustawieniach. Możesz je znaleść w menu z kołem zembatym po lewej stronie ekranu. ## Profile ustawień interfejsu Możesz tworzyć/ładować profile interfejsu klikając w menu w prawym górnym rogu ekranu. Wybierz "Nowy profil" aby stworzyć nowy pusty deck do personalizacji. Wybierz inny profil aby przełączyć się na niego. Przycisk kosza usuwa bieżący profil. ================================================ FILE: content/pl/.docs-legacy/features/drive.md ================================================ # Dysk Dysk jest to funkcja która pozwala zarządzać plikami na Misskey. :::tip Teoretycznie dysk może być widziany jako miejesce gdzie pliki są zarządzane na Misskey, które jest również dostępne dla użytkowników. ::: Możesz wrzucić jakikolwiek plik na Dysk w Przeglądarkowym Misskey, wszytkie obrazy na profilu lub w postach też będą widoczne na dysku. Pliki z dysku mogą być pobrane lub ponownie użyte poprzez dodanie pliku z dysku w czasie tworzenia posta. Pliki na dysku możesz też organizować za pomocą folderów. :::tip Kiedy usuwasz materiały z dysku Misskey, **wszystko (wpisy, strony, itp.)** załączone też zostanie usunięte. ::: ## OSTRZEŻENIE (NSFW) Ostrzeżenie lub NSFW (Not Safe for work) to flaga która może być ustawiona na pliki na twoim dysk. Pliki tak otagowane nie będą wyświetlane bez decyzji użytkownika. Ta flaga może być użyta, żeby na przykład uniemożliwić wyświetlanie materiałów które niepowinny pojawiać się przypoadkowo w miejscu publicznym. Ta flaga może być ustawiona manualnie lub z decyzją moderacji. ================================================ FILE: content/pl/.docs-legacy/features/favorite.md ================================================ # Ulubione Jest to funcja która pozwala zaznaczyć [wpis](./note) jako ulubioną. Możesz zobaczyć swoje ulubione posty w sekcji [ulubione]. Inni użytkownicy zostaną powiadomieni że dodałeś notkę do ulubionych, ale tylko ty widzisz wszytkie twoje ulubione notki. Żeby oznaczyć notkę jako ulubione, kliknij w informacje posta i w "Dodaj do Ulubionych". ================================================ FILE: content/pl/.docs-legacy/features/follow.md ================================================ # Obserwuj Kiedy zaobserwujesz użytkownika, zobaczysz ich posty na twojej ośi czasu; jednakże, ich odpowiedzi na posty innych użytkowników nie będą widoczne. Aby obserwować użytkownika, kliknij "Obserwuj" na stronie profilu użytkownika, aby przestać obserwować, kliknij jeszcze raz. ================================================ FILE: content/pl/.docs-legacy/features/index.md ================================================ # Funkcje ================================================ FILE: content/pl/.docs-legacy/features/mfm.md ================================================ --- description: 'MFM jest to dedykowany język znaczników do używania z Misskey.' --- # MFM MFM(Misskey Flavoured Markdown) jest to dedykowany język znaczników do używania z Misskey. :::tip Część składni jest kompatybilna z Markdown ::: ## Przykłady gdzie można wykorzystać MFM - treść notki - ostrzeżenia zawartości - nazwy użytkownika - profilu użytkownika ## Składnia ### Wspominanie użytkowników :::tip Po więcej informacji zobacz [tutaj](./mention.md). ::: ```:no-line-numbers @alice ``` ```:no-line-numbers @alice@example.com ``` ### Hasztagi :::tip Po więcej informacji zobacz [tutaj](./hashtag). ::: ```:no-line-numbers #misskey ``` ### Personalizowane Emoji :::tip Po więcej informacji zobacz [tutaj](./custom-emoji). ::: ```:no-line-numbers :misskey: ``` ### Linki ```:no-line-numbers [example link](https://example.com) ``` ### Pogrubienie ```:no-line-numbers **Bold** ``` --- :::tip Więcej składni można zobaczyć w ***Ściądze MFM** dostępnej w przeglądarkowym Menu Misskey pod `/mfm-cheat-sheet` twojej instancji. ::: ## Informacje dla deweloperów Implementacja parsera MFM jest dostępna jako biblioteka, dzięki czemu łatwiej jest osadzić MFM w swoich klientach. - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - implementacja parsera w JavaScript ================================================ FILE: content/pl/.docs-legacy/features/mute-and-block.md ================================================ # Wyciszanie i blokowanie Jeśli nie lubisz użytkownika, możesz go wyciszyć by zniknął z twojej ośi czasu. Poza tym, możesz też ich zablokować żeby uniemożliwić im widok na twoje materiały lub interakcję z tobą w każdy sposób. Użytkownicy nie będą wiedzieć że ich wyciszyłeś, ale będą wiedzieć że ich zablokowałeś. :::tip Wyciszanie i blokowanie może być używane jednocześnie. ::: :::warning Proszę zgłaszać ludzi łamiących zasady instancji do jej administracji. ::: W Interfejsie Przeglądarkowym Misskey możesz zobaczyć listę użytkowników których zablokowałeś lub wyciszyłeś w Ustawieniach > Wyciszenia i Blokady. ## Wyciszanie Jeżeli wyciszysz użytkownika to podanych materiałów na twojej ośi czasu nie zobaczysz: - WSZYSTKIE posty danego użytkownika - Powiadomienia od tego użytkownika - Historia wiadomości w Czasie Miskey - itp. Aby wyciszyć użytkownika poprostu kliknij Wycisz w opcjach użytkownika :::tip Osoby wyciszone nie zostaną powiadomione że zostały wyciszone. ::: ## Blokowanie Jeżeli zablokujesz użytkownika, to nie będzie mógł się z tobą komunikować, ani wykonywać jakichkolwiek akcji typu: - Obserwować ciebię - dodać ciebię do list użytkowników - Odpowiedzieć lub renotować twoje materiały - Reagować lub głosować w ankietach - Wysłać tobie wiadomość - itp. Poza tym, - jeżeli użytkownika który cię obserwował, zablokujesz to przestanie ciebię obserwować - jeżeli użytkownik ma ciebię w listach użytkowników to po zablokowaniu go, zostaniesz z nich usunięty Aby zablokowac użytkownika - skorzystaj z opcji blokady w opcjach użytkownika :::tip Jeżeli ktoś Cię zablokuje to nie zostaniesz o tym powiadomiony, jednak nie będziesz mógł dokonywać interakcji z osobą która cię zablokowała. ::: :::tip Osoba zablokowania nie będzie mogła zobaczyć twoich materiałów, ale może użyć konta alternatywnego itp. Możesz zmienić w ustawieniach konta widoczność postów, żeby utrudnić osobom zablokowanym widok na twoje posty. ::: ================================================ FILE: content/pl/.docs-legacy/features/note.md ================================================ # Wpisy/Notki Notki to główny koncept Misskey. Opiera on się na zawartości która może być tekstem, obrazem, ankietą itp. co zostało zapostowane na Misskey. Tworząc wpis, zostanie ona dodana na [oś czasu](./timeline) i wysłana do twoich obserwujących. Na Misskey można też dodawać [Reakcje](./reaction) notkom. Na dodatek możesz też komentować, udostępniać i cytować je. Możesz dodać wpis do [Ulubionych](./favorite) dzięki czemu łatwiej możesz ją znaleść. ## Tworzenie postów Aby utworzyć post kliknij ikonkę z ołówkiem aby otworzyć formularz postowania. Podaj jego treść. Wyślij post. Posty mogą zawierać tekst, pliki, [Ankiety](./poll). Na dodatek używając [MFM](./mfm) w tekście możesz korzystać z [wzmianek](./mention) i [Hasztagów](./hashtag). Poza tym są też inne tagi jak na przykład CW (Content Warning) lub widoczność posta. :::tip Materiały które skopiowałeś do schowka możesz wkleić ::: :::tip Możesz też kliknąć Control + Enter aby opublikować notkę ::: ## Udostępnianie / Renote Cytowanie lub udostępnianie treści notki :::tip Jeśli ustawiłeś widoczność posta na "tylko obserwujący" lub "bezpośrednio" to nie będzie można renotować posta ::: Aby usunąć udostępnienie posta po prostu kliknij w opcję "usuń" w opcjach posta. ## CW Jest to skrót od "Ostrzeżenie o treści". Funkcja ukrywająca zawartość posta, chyba że użytkownik wyraźnie zażąda jej pokazania. Zazwyczaj używana do ukrywania treści długich postów, spojlerów albo materiałów kontrowersyjnych. Aby oznaczyć CW w poście kliknij w ikonę z okiem przekreślonym. ## Widoczność Możesz zmienić widoczność każdej notki klikająć w ikonkę obok przycisku postowania. ### Publiczne Twój post będzie publiczny i będzie widoczny na każdej ośi czasów (Domowa, Lokalna, Społeczność, global). :::warning Ta widoczność nie jest dostępna dla użykowników wyciszonych. ::: ### Główna Twoja notka będzie widoczna dla każdego, ale nie pokaże się w lokalnej, społecznej, globalnej ośi czasów dla tych co nie obserwują. ### Obserwujący Notka tylko widoczna dla osób obserwujących ciebie. ### Post bezpośredni Post będzie widoczny tylko dla osób wspomnianych w poście. ### Opcja "Tylko lokalna instancja" Po wybraniu tej opcji, post nie będzie rozprowadzany na inne instancje ### Porównanie widoczności ośi
PubliczbaGłównaObserwowaniBezpośrednio
LTL/STL/GTL obserwowanych
LTL/STL/GTL innych
## Przypnij do profilu Przypinając notkę do profilu będzie pierwszą widoczną notką na stronie profilu :::tip Można przypiąć kilka postów ::: ## Powiadomienia Możesz odtrzymywać powiadomienia dla odpowiedzi, reakcji itp. Dla posta czyjegoś innego możesz włączyć powiadomienia korzystając z opcji "obserwuj" w menu notki. ================================================ FILE: content/pl/.docs-legacy/features/online-status.md ================================================ # Status Online (Aktywności) **Status Online** użytkownika jest to indykator użycia Misskey przez użytkownika. Status online jest wyświetlany jako indykator w rogu ikony użytkownika na jego stronie użytkownika i w innych miejscach.
Kolor Stan Opis
🟢 Zielony Online Użytkownik właśnie korzysta z Misskey.
🟡 Żółty Nieaktywny Misskey jest używane, ale użytkownik jest nieaktywny.
🔴 Czerwony Offline Użytkownik nie korzysta z Misskey.
⚫ Szary Nieznany Status jest nieznany lub niedostępny dla użykownika z innego serwera itp.
Twój status online zostanie zmieniony automatycznie i niemoże być ustawiony manualnie. Możesz natomiast ustawić swój status jako prywatny. :::warning Niektóre funkcje, jak sugestie użytkowników, mogą być oparte na twoim aktywnym statusie, więc ustawienie go jako prywatny może utrudnić innym użytkownikom znalezienie cię. ::: ================================================ FILE: content/pl/.docs-legacy/features/pages.md ================================================ # Strony Strony na Misskey pozwalają utworzyć personalizowane strony internetowe. Możesz w nich zawrzeć dowolne media i formatowanie, a nawet uruchamiać zaprogramowane skrypty. Podobnie jak z wieloma innymi funcjami Misskey, możesz formatować swoją zawartość używając [MFM](./mfm.md). Strony Misskey są składowe z różnych typów bloków, które możesz przeciągać i upuszczać. ## Bloki z zawartością Bloki z zawartością wyświetlają określoną treść użytkownikowi ### Sekcje Grupowanie bloków w sekcje. ### Tekst Wyświetla użytkownikowi tekst. Oczywiście ten tekst może też być formatowany za pomocą MFM. ### Obrazy Pokazuje obrazy wybrane z Dysku użytkownika ### Pole tekstowe Wyświela pole tekstowe. Nie obsługuje formatowania ### Dołączona notka Dołącza notkę do strony ## Bloki do uzupełnienia Bloki do uzupełnienia pozwalają tworzyć interaktywne strony. Dane z tych bloków mogą być wykorzystane w skryptach i zmiennych ## Bloki specjalne Specjalne bloki pozwalają na tworzenie bardziej zaawansowanych stron. Można za pomocą nich automatycznie tworzyć wpis lub manipulować stroną. ## Zmienne Zmienne pozwalają tworzyć dynamiczne strony. Możesz dołączać wartości pisząc { nazwa zmiennej } w tekście. Na przykład, w Witaj { rzecz } świecie!, jeśli wartość zmiennej (rzecz) to ai, to tekst zmieni się na Witaj ai świecie!. Wartości są obliczane od góry do dołu, więc nie możesz odwołać się do zmiennej zdefiniowanej poniżej w danej zmiennej. Na przykład, jeśli są trzy zmienne, A, B, C, które są zdefiniowane w tej kolejności, A i B mogą być odwoływane w definicji C; jednak B i C nie mogą być odwoływane w definicji A. Aby uzyskać wynik od użytkownika, umieść blok "Wejście" na stronie i ustaw "Nazwa zmiennej" na nazwę zmiennej, w której chcesz przechować wartość (zmienna zostanie automatycznie utworzona przez blok). Funkcje mogą być użyte w celu zgrupowania obliczeń w ponownie wykorzystywalnej formie. Aby utworzyć funkcję, utwórz zmienną typu "Funkcja". Funkcja może mieć sloty(Argumenty) i wartości w slotach są dostępne jako wartości funkcji. Poza tym są też funkcje wyższego stopnia które używają innych funkcji jako argument. Funkcje mogą być predefiniowane lub zdefiniowane z slotach wyższych funkcji. ================================================ FILE: content/pl/.docs-legacy/features/plugin.md ================================================ # Wtyczki Misskey (w Przeglądarce) posiada mechanizm wtyczek, który pozwala użytkownikom na rozszerzenie funkcjonalności Misskey (Przeglądarkowego). Dla informacji na temat tworzenia wtczek, proszę zapoznać się z [tym dokumentem](./advanced/create-plugin.md). ================================================ FILE: content/pl/.docs-legacy/features/reaction.md ================================================ # Reakcje Ta funkcja pozwala reagować na posty innych użytkowników za pomocą emotek. W Misskey(Przeglądarkowym) kliknij ikonkę z + na wpisie aby pozakazać wybierałke i wybierzesz emotkę. Możesz też reagować używając [własnych emotek](./custom-emoji.md). ## Personalizacja panelu reakcji W Misskey(przeglądarkowym) możesz wybrać emoji które powinny się pojawić w wybierałce i zmienić ich kolejność. Możesz ustawić to w sekcji "Reakcje" w ustawieniach. ## Reakcjie do innych instancji Z racji na to że reakcje to oryginalna funkcja Misskey, większość czasu aktywność zostanie wysłana do innych instancji jako "Like" chyba że zdalna instancja obsługuje je. Zazwyczaj "Like" z ActivityPub jest implementowany jako polubienie ale to już zależy od instancji.. ## Reakcje z innych instancji Z racji na to że Misskey nie posiada lajków, "Polubienie" z zdalnej instancji będzie wyświetlone jako reakcja '👍' (albo w nowszych wersjach ❤ - to już zależy od administratora instacji). :::Wskazówka Administracja instancji może zmienić domyślną reakcję na "Like" w ustawieniach. Więcej o tym [tutaj](../admin/default-reaction.md). ::: ## Zobacz listę wszytkich reakcji W Misskey(Przeglądarkowym) możesz zobaczyć listę wszystkich twoich reakcji w zakładce "Reakcje" na swojej stronie profilu. W ustawieniach możesz też ustawić czy ta lista ma być publiczna. ================================================ FILE: content/pl/.docs-legacy/features/share-form.md ================================================ # Formularz udostępniania Kiedy otworzysz `/share` w Misskey w Przeglądarce dostaniesz formularz udostepniania. Ten formularz jest przydatny jeśli chcesz aby użytkownicy udostępniali zawartość swojej strony z zewnątrz. Możesz też wyspecyfikować opcje w adresie, w tym udostępniana zawartość, jako parametry. ## Parametry :::tip Wszystkie parametry są **opcjonalne**. ::: | Parametr | Opis | | ---- | ---- | | `title` | tytuł umieszczony przed treścią materiału | | `text` | treść materiału | | `url` | Adres URL umieszczony po materiale | ### Informacje odpowiedzi Możesz utworzyć wpis który jest odpowiedzią na inny wpis przy użyciu tych parametrów. | Paramentr | Opis | | ---- | ---- | | `replyId` | ID wpisu na który odpowiadasz | | `replyUri` | URL do wpisu na który odpowiadasz (określa inny serwer) | ### Informacje o repostowaniu Możesz utworzyć wpis który jest wpisem inne osoby przy użyciu tych parametrów. | Parametr | Opis | | ---- | ---- | | `renoteId` | ID wpisu do repostowania | | `renoteUri` | URL wpisu do repostowania (określa serwer z którego jest wpis) | ### Widoczność Podane opcje pozwalają ustalić widoczność. | Parametr | Opis | | ---- | ---- | | `visibility` | widoczność albo - `public`, `home`, `followers`, `specified` | | `localOnly` | 0(nie) albo 1(tak) | | `visibleUserIds` | docelowe ID użytkowników | | `visibleAccts` | docelowy użytkownik [acct](../glossary.md#acct)s (podzielone przecinkiem) | :::uwaga jeżeli `visibility`(widoczność) jest `specified`(ustalona) to `visibleUserIds` i `visibleAccts` muszą też być ustawione. ::: ### Załączniki Możesz załączyć załączniki do swojego wpisu. | Parametr | Opis | | ---- | ---- | | `fileIds` | ID plików załączonych (podzielone przecinkami) | ================================================ FILE: content/pl/.docs-legacy/features/silence.md ================================================ # Wyciszenie Wyciszenie to jeden z stanów konta, jakie mogą być ustawione przez moderatorów instancji. Kiedy konto jest wyciszone, nie możesz tworzyć postów publicznych. Nadal jednak możesz tworzyć posty widoczne dla obserwujących i prywatne(w tym wiadomości prywatne). Po prostu nie będą mogli zobaczyć ich w Globalnej albo Lokalnej Ośi czasu Wyciszenie może być nałożone przez moderacje instancji. ================================================ FILE: content/pl/.docs-legacy/features/theme.md ================================================ # Motyw Możesz zmienić motyw kolorystyczny Misskey zgodnie z własnym gustem. ## Ustawienia motywów Ustawienia > Motywy ## Tworzenie motywów Motywy są pisane za pomocą JSON5. Motywy mają obiekty tak jak ten przykład: ``` js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` * `id` ... ID Motywu. UUID jest rekomendowane. * `name` ... Nazwa motywu * `author` ... Autor motywu * `desc` ... Opis motywu (Object) * `base` ... tryb jasny czy ciemny? * Użyj `light` dla jasnego i `dark` dla ciemnego trybu. * Motyw używa bazy wyspecyfikowanej. * `props` ... Definicje stylu motywu. Wytłumacznone w następujących punktach. ### Definicje stylów motywu Definiuj style motywów z `props`. Wartości to nazwy wartości CSS i one ustawiają materiały.The Poza tym `props` pobiera dane z bazowego motywu. Bazowy motyw to [_light.json5] jeśli `base` motywu jest `light` i [_dark.json5] jeśli `dark`. Jeśli nie ma wartości `props` nazwanej `panel` w motywie, to będzie użyta wartość `panel` z bazowego motywu. [_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 #### Składnia wartości * Kolory w formacie `#rrggbb` * Na przykład: `#00ff00` * Kolory w formacie `rgb(r, g, b)` * Na przykład: `rgb(0, 255, 0)` * kolory w wartościach alfa/przezroczystość w formacie `rgb(r, g, b, a)` * przykład: `rgba(0, 255, 0, 0.5)` * Inne wartości * `@{key name}` Nazwa wartości z innego klucza. Zamień `{key name}` z nazwą klucza do którego chcesz nawiązać. * example: `@panel` * Zmienne: * `${constant name}` nawiązuje do stałej. Zamień `{constant name}` z nawą stałej do której chcesz nawiązać. * przykład: `$main` * Funkcje: * `:{nazwa funkcji}<{argumenty}}<{kod}` #### Stałe Stałe są przydatne kiedy masz wartości których nie chcesz wyświetlać jako zmienną CSS, ale chcesz użyć ich jako wartości dla innych zmiennych CSS. #### Funkcje WIP (TODO) ================================================ FILE: content/pl/.docs-legacy/features/thread-mute.md ================================================ # Wycisz wątek :::tip Ta funkcja jest dostępna od wersji 12.95.0. ::: Wyciszenie wątku wycisza wszytko związane z wpisem, w tym powiadomienia o nowych komentarzasz, repostach i itd. Jeżeli wyciszysz wątek, nie odtrzymasz jakich kolwiek powiadomień związanych z nim. Aby wyciszyć wątek kliknij na ikonę wyciszenia w opcjach jakiegokolwiek wpisu w wątku. :::warning Cały wątek zostanie wyciszony, nieważne na jakim wpisie wybierzesz opcję wyciszenia. ::: ================================================ FILE: content/pl/.docs-legacy/features/timeline.md ================================================ # Oś czasu Oś czasu wyświetla [wpisy](.note) w kolejności chronologicznej. Jest kilka rodzajów ośi czasu, które się różnią widocznością. Niektóre typy ośi czasu mogą być wyłączone na serwerze. ## Domowa Posty osób które obserwujesz. Skrócona jako HTL. ## Lokalna Wszystkie lokalne posty które nie zaliczają się do ośi domowej będą widoczne. Inaczej LTL. ## Społecznościowa Posty zarówno osób lokalnych, jak i tych któych obserwujesz. Inaczej STL. Traktuj jak STL = HTL + LTL. ## Globalna Każdy publiczny post który sewer zauważy. Inaczej GTL. ## Personalizowane osie czasu Misskey pozwala tworzyć spesonalizowane ośi czasu zgodnie z twoimi wymaganiami. Zobacz [Listy](./list.md) i [Anteny](./antenna.md) po więcej informacji. ## Porównanie | Źródło | | | Oś czasu | | | |-----------------------|------------|--------|---------|------------|------------| | Użytkownik | Widoczność | Domowy | Lokalny | Społecznościowy | Globalny | | Lokalna (Obserwujący) | Publiczny | ✔ | ✔ | ✔ | ✔ | | | Domowy | ✔ | | ✔ | | | | Obserwujący | ✔ | | ✔ | | | Zdalny (Obserwujący) | Publiczny | ✔ | | ✔ | ✔ | | | Domowy | ✔ | | ✔ | | | | Obserwujący | ✔ | | ✔ | | | lokalny (Nie obserwujący) | Publiczni | | ✔ | ✔ | ✔ | | | Domowy | | | | | | | Obserwujący | | | | | | Zdalny (Nie obserwujący)| Publiczni | | | | ✔ | | | Domowy | | | | | | | Obserwujący | | | | | ================================================ FILE: content/pl/.docs-legacy/features/webhook.md ================================================ # Webhooki :::tip Ta funkcja jest dostępna w Misskey od wersji 12.109.0. ::: :::danger To jest funkcja eksperymentalna, nie jest ona stabilna, oraz w przyszłości może ulec zmianie. ::: Misskey dostarcza webhook który pozwala na otrzymywanie różnych zdarzeń w czasie rzeczywistym. Możesz zarządzać Webhookami w Ustawieniach > Webhooki. Kiedy webhook jes zarejestrowany, żądanie HTTP jest wysłane do określonego URL za każdym razem kiedy określone zdarzenie nastąpi. Metoda żądania będzie POST i zawierać JSON w swoim ciele. Poza tym nagłówek żądania będzie zawierać sekret ustawiony w czasie rejestracji z nazwą `X-Misskey-Hook-Secret`. Możesz użyć tego sekretu do weryfikacji, czy żądanie jest autentyczne. Dane będą zawierać następujące pola: Jeżeli serwer docelowy zwróci błąd 5XX lub nie odpowie, żądanie jest ponownie wysyłane po pewnym czasie. Webhooki mogą indywidualnie mieć ich aktywny status zmieniony z ekranu administracji, aby chwilowo zatrzymać wysyłanie żądań. ## Zdarzenia Wykonanie jego wyśle webhook. ### Obserwacja Zdarza się gdy kogoś zaobserwujesz. ### Zaobserwowany Wykona się kiedy zostaniesz zaobserwowany. ### Przestań obserwować Dzieje się kiedy przestaniesz obserwować kogoś. ### Wpis Dzieje się kiedy zapostujesz notkę. ### Odpowiedź Dzieje się kiedy ktoś odpowie na twoją notkę. ### Renote Dzieje się kiedy ktoś zrepostuje twój post. ### Wzmianka Dzieje się kiedy ktoś o tobie wspomni. ================================================ FILE: content/pl/.docs-legacy/features/widgets.md ================================================ # Widżety Widżety to niewielkie elementy, które mogą zostać dodane do interfejsu Misskey, aby wyświetlać i interagować z informacjami. Domyślnie są one wyświetlane po prawej stronie ekranu, lub dostępne z ikony stosu w menu nawigacji w wersji mobilnej. Aby edytować widżety przełącz się w tryb edycji na dole panelu widżetów. W tym trybie możesz dodać, usunąć i zmienić kolejność widżetów. Kiedy zamkniesz edytor układu widżetów, możesz również skonfigurować ustawienia dla zachowania każdego widżetu. ## Lista dostępnych widżetów ### Powiadomienia Pokazuje powiadomienia związane z Twoim kontem. ### Oś czasu Wyświetlaj oś czasu. Wybierz jedną z standardowych ośi czasu,albo dowolnej personalizowanej. ### Czytnik RSS Wyświetla oś RSS po dodaniu adresu URL. Możesz również ustawić odświeżanie i inne ustawienia. ### RSS-Ticker Podobny do czytnika RSS, ale wyświetla wiadomości w pasku przewijania. ### Trendy Wyświetla trendujące [Hashtagi](./hashtag.md) oraz statystyki, ile użytkowników użyło tego hashtagu oraz wykres aktywności tego hashtagu. ### Aktywność Wyświetla statystyki aktywności. ### Użytkownicy online Wyświetla ilość użytkowników online na serwerze. ### Zdjęcia Galeria ostatnio wrzuconych zdjęć. ### Pokaz slajdów Pokaz slajdów z określonego folderu na dysku. ### Kalendarz Wyświetla datę i progress dnia. ### Zegar Wyświetla analogowy zegar, który można personalizować. ### Zegar cyfrowy Wyświetla zegar cyfrowy ### Zegar UNIXowy Wyśietla czas od początku epoki UNIXa (1970-01-01T00:00:00Z). ### Federacja Wyświetla połączone serwery i ich aktywność. ### Grafika instancji Interaktywna grafika instancji. ### Notatki Miejsce na twoje notatki. ### Tworzenie wpisu Widżet do tworzenia [wpisu](./note.md) ### Statystyki serwera Wyświetla statystyki serwera. ### Kolejka zadań Wyświetlanie kolejki zadań. ### Konsola AiScript Widżetowa wersja panelu do testowana i uruchamiania programów napisanych w [AiScript](../advanced/aiscript.md). Ten Widżet jest podobny do brudnopisu AiScript. ### Przycisk Interaktywny przycisk co uruchamia program napisany w [AiScript](../advanced/aiscript.md). ### Ai Cyfrowa wersja maskotki Misskey - Ai, która będzie Ci towarzyszyć na stronie. ================================================ FILE: content/pl/.docs-legacy/features/word-mute.md ================================================ # Wyciszanie słowami Tworząc filtry wyciszania za pomocą słów, możesz sprawić, aby notki spełniające określone warunki nie pojawiały się na ośi czasu. Są dwa rodzaje wyciszeń słow: miękkie i twardzie. Poniżej masz wyjaśnienie procesu konfiguracji i efektów obu. ## Miękkie wyciszenie słów Z miękkimi wyciszeniami słow, słowo wyciszenia jest przetwarzane w aplikacji (kliencie), której używasz. Kiedy wpis spełni zasady spełni zasady, zostanie ukryty za tekstem "(username) coś powiedział". Możesz wyświetlić ukrytą zawartość notki, klikając na ten tekst. ## Twarde wyciszenie słów Z twardym wyciszeniem to serwer decyduje czy zawartość nowej przychodzącej notki spełnia ustawione warunki podobnie jak anteny, i w takim przypadku całkowicie ją wykluczy z twojej ośi czasu. Podsumuwując twarde wyciszenie działa następująco: - Tylko nowe notki utworzone po konfiguracji będą miały wpływ na wyciszenie. - Jeżeli warunki zostaną zmienione, wcześniej wyciszone notki nadal pozostaną wyciszone. - Osie czasu nie zostaną zapełnione tekstem "(username) coś powiedział". - Wyciszenie nie będzie działać dla aplikacji, które nie obsługują wyciszenia słow. ================================================ FILE: content/pl/.docs-legacy/getting-started.md ================================================ # Zacznij z Misskey Misskey jest programem i projektem. Serwer na którym uruchomione jest Misskey, który jest otwarty do publicznego Internetu jest nazwany **Instancją**. Aby używać Misskey musisz utworzyć konto na jednej z instancji i korzystać z tej instancji. Możesz wybrać instancję twojego wyboru z [listy instancji](../instances.md). :::tip Nie ważne jaką instancję wybierzesz, będziesz mógł komunikować się z użytkownikami z innych instancji :::info Misskey ma możliwość federowania Misskey ma wbudowane wsparcie dla federacji, co pozwala użytkownikom z innych instancji na obserwowanie, reagowanie i renotowanie w taki sam sposób jak użytkownicy z tej samej instancji. Federacja Misskey jest oparta na otwartym i znanym standardzie o nazwie ActivityPub i jest kompatybilna z innym oprogramowaniem jak Mastodon lub Plernoma. ::: ## Wybieranie instancji ### Motywy instancji Niektóre instancje mogą mieć określoną tematykę na przykład: "Lubie jakieś rzeczy i aktywności". Rekomendujemy znaleść instancje o tematycę która najlepiej do ciebie pasuje ### Społeczność instancji ================================================ FILE: content/pl/.docs-legacy/glossary.md ================================================ # Pojęcia Pojęcia związane Misskey. ## ActivityPub Protokół(metoda) używana do osiągnięcia zdecentralizowanej natury Misskey. Wykorzystanie jego pozwala instancjom na komunikacje między sobą, tworząc też rzecz nazywaną Fediwersum. ## AiScript Język programowania stworzony z myślą o Misskey. [Zobacz tutaj po więcej informacji](/src/docs/advanced/aiscript) ## API Jest to interfejs pozwalający na operowanie Misskey za pomocą programu, dostępne dla każdej instancji. [Więcej informacji](/src/pl/docs/api) ## Bot Konto kontrolowane przez program. ## CW Jest to skrót od "Ostrzeżenie o treści". Funkcja ukrywająca zawartość posta, chyba że użytkownik wyraźnie zażąda jej pokazania. Zazwyczaj używana do ukrywania treści długich postów, spojlerów albo materiałów kontrowersyjnych. [Więcej informacji](./src/pl/docs/features/note.html#cw) ## Fediwersum Sieć różnych instancji korzystających z innych platform które komunikują się z sobą, zaliczając w to Misskey. ## GTL Skrót od "Global TimeLine" - Globalna oś czasu - [więcej przeczytasz tutaj](/src/pl/docs/features/timeline). ## HTL Skrót od "Home TimeLine" - Tablica domowa/główna, [więcej przeczytasz tutaj](/src/pl/docs/features/timeline) ## LTL Skrót od "Local TimeLine" - Tablica lokalna, pokazuje wszystkie posty wysłane na instancji. [więcej przeczytasz tutaj](/src/pl/docs/features/timeline) ## MFM Skrót od "Markup language For Misskey" - język znaczników do używania z Misskey - [więcej przeczytasz tutaj.](/src/pl/docs/features/mfm) ## NSFW Skrót od "Not Safe For Work" - funkcja pozwalająca otagować zdjęcie jako "NSFW"(Nie bezpieczne w pracy) i ukryć je za życzeniem użytkownika. ## Renote Cytowanie wysłanego już posta, udostępnianie istniejącego posta, lub post stworzony poprzez którąś z tych czynności - [więcej przeczytasz tutaj.](/src/pl/docs/docs/features/note.html#renote) ## STL Skrót od "Social TimeLine" - Pokazuje posty zarówno z lokalnej instancji, jak i od osób które obserwujesz. [więcej przeczytasz tutaj.](/src/pl/docs/features/timeline) ## Ai(藍) Ai(藍) to oficjalna maskotka Misskey. ## Aktywni użytkownicy Użytkownicy wsród wszytkich, którzy używają swojego konta ## Instancja Serwer otwarty do internetu, który udostępnia usługę jak na przykład Misskey. ## Dodatkowe Emoji Emoji dostarczone przez twoją instancje. Emoji które nie są dostarczone przez instacje, ale są dostępne są nazywane "Emotikonami Unicode"[Dowiedz się więcej](/src/pl/docs/docs/features/custom-emoji) ## Panel sterowania Panel z ustawieniami instancji dostępny dla Administratorów i moderatorów ## Wyciszenie Jest to stan kiedy posty użytkownika nie mogą być ustawione na "Publiczne". Może być nadane użytkownikowi przez Moderacje.[więcej przeczytasz tutaj.](/src/pl/docs/features/silence) ## Kolejka zadań System używany do nadawania aktywności innych instancji itp. ## Zawieszenie Stan który powoduje że konto użytkownika jest niedostępne. ## Dysk Funkcja pozwalająca użytkownikowm organizować pliki jakie wrzucili do Misskey. [więcej przeczytasz tutaj.](/src/pl/docs/features/drive) ## Notki Inaczej posty, mogą zawierać tekst, obrazy, ankiety i wszystko to co zostało wrzucone na Misskey. [więcej przeczytasz tutaj.](/src/pl/docs/docs/features/note) ## Misskit Użytkownik Misskey. ## Moderator Osoba zarządzająca społecznością instancji poprzez wyłącznie kont spam, wyciszając konta, usuwając nieodpowiednie posty itp. ## License Dokument który określał legalne wykorzystanie zasobu. ## Remote/Zdalne Używane w kontekście instancji innej niż twoja. Również używane jako prefiks w terminach "zdalny użytkownik". Przeciwieństwo "Lokalne" ## Federacja Udostępnianie informacji stworzonych na jednej instancji z inną instancją. ## Lokalne Używane w kontekście twojej instancji. Używane jako prefiks w terminach jak "Lokalni użytkownicy", "Lokalna oś czasu". Przeciwieństwo "zdalnej" ================================================ FILE: content/pl/.docs-legacy/install/bash.md ================================================ # Skrypt do powłoki BASH do instalacji Misskey - wersja 3.0.0 Możesz zainstalować Misskey za pomocą pojedyńczego skryptu. Skrypt jest przystosowany pod Ubuntu i pomoże ci zainstalować Misskey zadając kilka podstawowych pytań. Poza jest też skrypt do aktualizacji Misskey. [Dla v12](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.en.md) [**Kliknij tutaj, aby zobaczyć wersję japońską. / 日本語版はこちら**](./README.md) ## Licencja [MIT License](./LICENSE) ## Składniki 1. Domena 2. Serwer (najlepiej się sprawdzi Ubuntu) 3. Konto CloudFlare (zalecane) :::danger Nigdy nie zmieniaj nazwy domeny (hostname) instancji kiedy zaczniesz z niej korzystać!! ::: ## Skonfiguruj CloudFlare Jeśli korzystasz z nginx i Cloudflare, musisz skonfigurować Cloudflare: - Ustaw DNS. - W zakładce ustawień SSL/TLS, przełącz tryb szyfrowania na"Full". ## Procedury ### 1. SSH Połącz się z serwerem za pomocą SSH (Jeśli masz fizyczny dostęp do serwera to uruchom terminal) ### 2. Przygotowanie systemu Zaktualizuj paczki systemu i go zrestartuj. ``` sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. Rozpocznij instalację Połącz się z powrotem i rozpocznij instalacje Misskey. ``` wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` ### 4. Aktualizacja Misskey Jest też skrypt do aktualizacji Misskey. Skrypt ten nie aktualizuje środowiska. Proszę odwołać się do Dziennika zmian (po japońsku (translator pomoże)) i [Listy wydań GitHub(po angielsku)]( (https://github.com/joinmisskey/bash-install/releases) i odpowienio dokonywać migracji. Najpierw pobierz skrypt aktualizacji. ``` wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` Uruchom pobrany skrypt kiedy chcesz aktualizować Misskey ``` sudo bash update.sh ``` - W środowisku używającym systemd opcją `-r` można zaktualizować i zrestartować system. - W środowisku dockerowym możesz określić repozytorium:tag jako argument ## Przetestowane środowska ### Oracle Cloud Infrastructure Ten skrypt działą dobrze na następujących środowiskach oferowanych przez Oracle Cloud Infrastructure Always Free. - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB lub więcej] Należy używać iptables. Oraz nie zapomnij o ustawieniu portów w ustawieniach sieci po stronie Oracle ## Problemy i Pull Requesty witamy Jeżeli coś nie działa w podanych wyżej środowiskach, może to być błąd. Będziemy wdzięczni, jeśli zgłosisz go jako problem, z podanymi wymaganiami, które wprowadziłeś do skryptu. Ciężko jest pomóc z środowiskami innymi niż powyżej, ale możemy rozwiązać Twój problem, jeśli podasz nam szczegóły środowiska. Suggestie równierz witamy. # UWAGA CZĘŚĆ TŁUMACZONA MASZYNOWO - może nie być 100% prawidłowa # Porady. Jak wybrać pomiędzy dwoma opcjami i specyfikacją. ## Systemd czy Docker? Od v1, możesz wybrać między systemd i Docker jako metodą instalacji. Kiedy mówimy Docker, tylko **Misskey jest uruchamiany na Dockerze**, podczas gdy Redis, Postgres itp. są uruchamiane bezpośrednio na hoście. [Aby uzyskać więcej informacji o tym, jak uruchomić wszystkie funkcje za pomocą docker-compose, polecamy ten artykuł stworzony przez mamemononga] (https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Jeśli jest skonfigurowany do korzystania z obrazów Docker Hub, jest to **najbardziej zalecane**, ponieważ eliminuje potrzebę budowania Misskey. Jednak migracja jest wymagana, więc nie będzie zerowego czasu, w którym nie można użyć Misskey podczas aktualizacji. Ponadto nie przygotowujesz środowiska budowania dla Misskey (nie ma git pull), więc staje się kłopotliwy do skonfigurowania, gdy chcesz przenieść fork. Lokalna metoda budowania Docker jest zdeprecjonowana ze względu na wydajność. Systemd jest zalecany, jeśli chcesz użyć forka, chociaż nie musisz przesyłać obrazu do Docker Hub. Zalecana kolejność jest następująca. 1. docker hub 2. systemd 3. docker build. ## Czy używać nginx Jeśli budujesz Misskey na pojedynczym serwerze, zalecamy użycie nginx. Jeśli instalujesz load balancer, nie instaluj nginx, ale [konfiguracja nginx dla Misskey](https://github.com/misskey-dev/misskey/blob/develop/docs/examples/misskey.nginx) Lepiej jest skonfigurować load balancer w odniesieniu do. ## Dodaj więcej swapów! Jeśli masz skonfigurowane swapy, skrypt nie zostanie uruchomiony, jeśli nie masz łącznie co najmniej 3 GB pamięci. ## Jeśli skrypt zawiedzie w połowie i chcesz go uruchomić ponownie W mało prawdopodobnym przypadku, gdy skrypt zawiedzie w połowie i będziesz chciał uruchomić go ponownie, zwróć uwagę na następujące kwestie: ## Dodaj więcej swapów! - Jeśli masz już zainstalowane Redis i Postgres, ustaw 'install locally' na No. Ustawienia hosta i portu należy pozostawić tak jak są i nacisnąć Enter. Wprowadź nazwę użytkownika i hasło określone w poprzednim uruchomieniu. ## O plikach .env Skrypt instalacyjny tworzy dwa pliki .env. Używane do aktualizacji. ### /root/.misskey.env Wymagane do zapamiętania użytkownika do uruchomienia misskey. ### /home/(użytkownik misskey)/.misskey.env Generowany dla systemd. Głównie używany do zapamiętania katalogów. ### /home/(misskey user)/.misskey-docker.env Wygenerowany dla Dockera. Przechowuje numer uruchomionego kontenera i obrazu. Numery kontenerów są aktualizowane podczas aktualizacji. Stare obrazy są usuwane. ## Zarządzaj sobą. Po instalacji, oto kilka uwag, które mogą być przydatne podczas zmiany konfiguracji. Zastąp "example.com" własną domeną. ### Katalog Misskey Źródło Misskey jest sklonowane jako `/home/user/directory`. (Domyślne wartości zarówno dla użytkownika jak i katalogu to misskey). Aby dostać się do katalogu misskey, możesz nawigować w następujący sposób. ``` sudo -iu user cd katalog. ``` Aby powrócić do pierwotnego użytkownika, wykonaj exit. ``` exit. ``` ### systemd Zastąp "example.com" własną domeną. Nazwa procesu systemd to example.com. Na przykład, aby go zrestartować, wykonaj następujące czynności. ``` sudo systemctl restart example.com ``` Możesz sprawdzić logi za pomocą journalctl. ``` journalctl -t example.com ``` Plik konfiguracyjny jest przechowywany jako `/etc/systemd/system/example.com.service`. ### Docker Docker jest uruchamiany bez roota jako użytkownik Misskey. Wchodząc na użytkownika Misskey za pomocą sudo, należy zmienić `XDG_RUNTIME_DIR` i `DOCKER_HOST`. ``` sudo -iu user export XDG_RUNTIME_DIR=/run/user/$UID export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock # Wyświetl listę procesów docker ps. # Zbuduj (repozytorium: 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" # Pokaż logi docker logs --tail 50 -f container-id ``` W przypadku one-linerów użyj następującego. ``` sudo -u user XDG_RUNTIME_DIR=/run/user/$(id -u user) DOCKER_HOST=unix:///run/user/$(id -u user)/docker.sock docker ps ``` ### nginx Konfiguracja nginx jest przechowywana jako `/etc/nginx/conf.d/example.com.conf`. ### Redis Requirepass i bind są ustawione w `/etc/redis/misskey.conf`. ## Q. Nie mogę uzyskać dostępu do 502 po aktualizacji. Docker wykonuje migrację po uruchomieniu, więc nie można uzyskać do niego dostępu od razu. Proszę sprawdzić, czy migracja została zakończona. W przypadku systemd, instalacja pnpm mogła się nie powieść. Spróbuj uruchomić następujące w katalogu Misskey i ponownie uruchomić aktualizację. ``` pnpm run clean-all ``` Jeśli sprawdzisz dzienniki za pomocą journalctl, zwykle znajdziesz oświadczenie mówiące, że re2. ## Q. Chcę zbudować kolejny Misskey na tym samym serwerze. Skrypt nie przewiduje instalacji dodatkowych instancji Misskey na tym samym serwerze. Niektóre ustawienia zostaną nadpisane lub otrzymasz błąd w procesie. ================================================ FILE: content/pl/.docs-legacy/install/docker.md ================================================ Skonfiguruj instancje Misskey za pomocą Docker Compose ================================================================ Ten poradnik opisze instalację i konfigurację Misskey za pomocą Docker Compose. :::danger Nigdy nie zmieniaj nazwy domeny(hostname) instancji kiedy zaczniesz z niej korzystać!! ::: :::Wymagania - docker i dockercompose zainstalowane ::: Pobierz repozytorium ---------------------------------------------------------------- ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` Skonfiguruj ---------------------------------------------------------------- Skopiuj pliki przykładowe: ```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 ``` Edytuj `default.yml` i `docker.env` do instrkcji w pliku. Edytuj `docker-compose.yml` jeśli wymagane. (kiedy na przykład: chcesz zmienić port). Zbuduj i zinicjuj ---------------------------------------------------------------- Podana komenda zbuduje Misskey i uruchomi bazę danych. Zajmie to trochę czasu. ``` shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` Uruchom Misskey ---------------------------------------------------------------- SUPER! Możesz uruchomić Misskey za pomocą poniższej komendy. ```sh sudo docker compose up -d ``` GLHF✨ Aktualizacja serwera Misskey ---------------------------------------------------------------- :::Uwaga Aktualizując proszę sprawdź [informacje o wydaniach](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) by wiedzieć wcześniej o zmianachoraz czy nie będzie trzeba wykonać jakiś dodatkowych zmian.(zazwyczaj nie trzeba). ::: ```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 ``` Może to potrwać trochę czasu w zależności od wielkości danych instancji. Wykonywanie komendy w CLI ---------------------------------------------------------------- ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/pl/.docs-legacy/install/kubernetes.md ================================================ # Stwórz instancje Misskey przy użyciu Kubernetesa/TrueNAS Scale Ten poradnik opisze instalację i konfigurację Misskey przy użyciu Kubernetesa i Helm charts. :::danger Nigdy nie zmieniaj nazwy domeny(hostname) instancji kiedy zaczniesz z niej korzystać!! ::: ## TrueCharts i TrueNAS Scale Helmy dla Misskey są hostowane na TrueCharts które jest repozytorium zaprojektowanym z myślą o TrueNAS Scale ale mogą one też być zainstalowane jako normalne Helmy. [TrueCharts](https://truecharts.org/charts/incubator/misskey/) ma listę wszystkich dostępnych Helmów oraz dokumentację na temat instalacji. [TrueCharts Discord](https://discord.gg/Ax9ZgzKx9t) jest również źródłem na którym możesz uzyskać pomoc. Misskey jest obecnie na *incubator*. :::tip Wymagania - TrueNAS Scale lub - Klaster Kubernetes i Helm ::: ## TrueNAS Scale Podążaj za instrukcjami na [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/). Dodaj *incubator* train i zainstaluj aplikację Misskey. Jedyna konfiguracja Misskey która jest wymagana to URL instancji. Aplikacja również używa reverse proxy Traefik aby udostępnić usługę na zewnątrz świata przez HTTPS. TrueCharts integruje się z Traefikiem domyślnie, ale inne opcje mogą być używane z ręczną konfiguracją. ## Manualny Helm Jeżeli nie używasz TrueNAS Scale to możesz zainstalować Misskey używając Helm bezpośrednio. Obiekt `misskey` w pliku values.yaml ma opcje które chcesz nadpisać. Właściwość `misskey.url` jest jedyną wymaganą zmianą. Zalecane jest użycie reverse proxy aby zabezpieczyć dostęp do serwera ponieważ chart nie obsługuje włączania TLS wewnątrz kontenera Misskey. ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Aktualizuj Misskey Aby zaktualizować Misskey, użyj funkcji wbudowanej do TrueNAS Scale albo jeżeli używasz kubernetesa to manualnie użyj [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) i [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/). Zalecane jest utworzenie kopii danych przed aktualizacją na wypadek gdyby coś poszło nie tak i trzeba byłob by powrócić do działającej wersji. ================================================ FILE: content/pl/.docs-legacy/install/manual.md ================================================ Poradnik instalacji i konfiguracji Misskey ================================================================ Dziękujemy za zainteresowanie stworzeniem własnej instancji Misskey! Ten poradnik opisuje jak zainstalować i skonfigurować MIsskey. ---------------------------------------------------------------- :::danger Nigdy nie zmieniaj nazwy domeny(hostname) kiedy będziesz korzystać z instacji! ::: *1.* Zainstaluj dependencje ---------------------------------------------------------------- Proszę zainstalować wymagane zależności i je skonfigurować: #### Dependencje :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/)** Jeżeli używasz Debian/Ubuntu, powinieneś zainstalować pakiet `build-essential`. corepack musi być włączony. ```sh sudo corepack enable ``` *2.* Stwórz użytkownika dla Misskey ---------------------------------------------------------------- Używanie Misskey z prawami root'a nie jest dobrym pomysłem, więc stwórz użytkownika dla tego. W debiano-podobnych systemach na przykład za pomocą tej komendy: ```sh adduser --disabled-password --disabled-login misskey ``` *3.* Zainstaluj Misskey ---------------------------------------------------------------- 1. Połącz się z użytkownikiem `misskey` `sudo -iu misskey` 2. Sklonuj repozytorium Misskey `git clone --recursive https://github.com/misskey-dev/misskey.git` 3. Przejdź do folderu z pobranym repozytorium `cd misskey` 4. Sprawdź [najnowsze wydanie](https://github.com/misskey-dev/misskey/releases/latest) `git checkout master` 5. Pobierz submoduły `git submodule update --init` 5. Zainstaluj Misskey's dependencje `pnpm install --frozen-lockfile` *4.* Skonfiguruj Misskey ---------------------------------------------------------------- 1. Skopiuj `.config/example.yml` i zmień nazwę na `default.yml`. `cp .config/example.yml .config/default.yml` 2. Edytuj `default.yml` *5.* Zbuduj Misskey ---------------------------------------------------------------- Zbuduj Misskey z podanymi parametrami: `NODE_ENV=production pnpm run build` Jeśli używasz Debiana to musisz mieć zainstalowane paczki `build-essential`, `python`. *6.* Zainicjuj bazę danych ---------------------------------------------------------------- 1. Utwórz bazę danych PostgreSQL z prawidłowymi danymi użytkownika oraz pustą bazą danych o nazwie podanej w pliku konfiguracyjnym. Upewnij się że baza danych łączy się bez problemów z użytkownikiem który będzie później uruchamiał Misskey czy nic nie powodoje problemów. Enkodowanie bazy danych powinno być ustawione na `UTF8`. ``` 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; \q ``` 2. Uruchom inicjalizacje bazy danych ``` pnpm run init ``` *7.* Koniec ---------------------------------------------------------------- Dobra robota! Teraz masz środowisko które uruchamia Misskey. ### Uruchamianie normalnie Wystarczy `NODE_ENV=production pnpm run start` i GLHF! ### Uruchom z SystemD 1. Utwórz usługę SystemD `/etc/systemd/system/misskey.service` 2. Edytuj plik i wklej następujący kod: :::g-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. Odświerz systemD i aktywuj usługę Misskey. `sudo systemctl daemon-reload; sudo systemctl enable misskey` 4. Uruchom usługę Misskey. `sudo systemctl start misskey` Możesz sprawdzić działanie usługi wpisując ``` systemctl status misskey ``` ### Uruchom z OpenRC 1. Skopiuj poniższy tekst do `/etc/init.d/misskey`: :::g-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 # alterbnatynie usuń komentaż jeżeli używasz nginx #use logger nginx } ``` ::: 2. Usutaw uruchomienie usługi przy starcie systemu `rc-update add misskey` 3. Uruchom usługę Misskey `rc-service misskey start` Możesz sprawdzić działanie usługi z komendą ``` rc-service misskey status ``` ### Aktualizowanie Misskey do najnowszej wersji 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. Zrestartuj proces Misskey 8. GLHF! Jeżeli napotkasz problemy to spróbuj: 1. `pnpm run clean` lub `pnpm run clean-all` 2. Ponów aktualizację (Nie zapomnij o `pnpm install`) ================================================ FILE: content/pl/.docs-legacy/install.md ================================================ # Stwórz własną instancję Misskey Dziękujemy za twoje zainteresowanie w stworzeniu własnej instancji Misskey 🚀 Jest kilka sposobów by stworzyć instancję, więc wybierz któryś z nich i przeczytaj poradnik. :::danger Nigdy nie zmieniaj nazwy domeny (hostname) instancji odkąd zaczniej z niej korzystać! ::: :::danger Jeśli korzystasz z Cloudflare na swoim serwerzę, nie korzystaj z ustawienia Automatycznej Minimalizacji (Auto Minify). Misskey nie będzie działać prawidłowo ponieważ Cloudflare nie zinterpretuje najnowszego kodu JavaScripta i złamie kod źródłowy wewnątrz. Zobacz również: [misskey-dev/misskey #9791](https://github.com/misskey-dev/misskey/issues/9791) ::: ## Używając Dockera [Zobacz tutaj](./install/docker.html) ## Używając skryptu BASH [Zobacz tutaj](./install/bash.html) ## Manualnie [Zobacz tutaj](./install/manual.html) ## Używając Yunohost Misskey może być zainstalowane jako Aplikacjia na YunoHost. Po więcej informacji zobacz [repozytorium paczki Misskey dla YunoHost](https://github.com/YunoHost-Apps/misskey_ynh). ## Używając Kubernetesa/TrueNAS Scale [Zobacz tutaj](./install/kubernetes.html) ================================================ FILE: content/pl/.docs-legacy/misskey-hub.md ================================================ # O Misskey Hub Misskey Hub jest oficjalną stroną Misskey, która zawiera documentację, blog dokumentacji, sklep z wtyczkami i wiele więcej. Staramy się zrobić z niego miejsce gdzie jest "wszytko do Misskey". Misskey Hub jest [open source](https://github.com/misskey-dev/misskey-hub). :::tip Misskey Hub jest stroną statyczną stworzoną za pomocą [VuePress](https://github.com/vuepress/vuepress-next). ::: - [dziennik zmian(change log)](../updates.md) ## Przyczynianie się do Misskey Hub Dodatkowa dokumentacja i tłumaczenia są mile widziane 😅. ================================================ FILE: content/pl/.docs-legacy/misskey.md ================================================ # O Misskey Misskey jest to owartoźródłowa i zdecentralizowana platforma do mikroblogowania. Praca nad nią rozpoczęła się w 2014 roku przez syuilo w Japonii. Posiada mnóstwo funkcji takich jak Dysk lub Reakcje, a także bardzo dużą możliwość dostosowywania interfejsu użytkownika. ## Historia Na początku Misskey było głównie usługą z Tablicami Bulletowymymi, jednak stawał się coraz popularniejszy po dodaniu ośi czasu pozwalającej użytkownikom postować krótkie wiadomości i odczytywać je w kolejności chronologicznej. To doprowadziło do stopniowego przesunięcia głównego nacisku na rozwój w stronę takiej funkcjonalności. Misskey nie był zawsze usługą zdecentralizowaną, ale stał się zdecentralizowany dzięki dodaniu wsparicia ActivityPub w 2018 roku. Od tego czasu stał się usługą, która jest uznawana i używana przez wielu. :::tip Nazwa "Misskey" pochodzi z piosenki "Brain Diver" zespołu May'n, którego syuilo wtedy słuchał . ::: Z każdym zainteresowanym z możliwością dołączenia do jego rozwoju, Misskey będzie ciągle rozwijany. ## Co znaczy "Dystrybułowany"? Dystrybułowana usługa, równierz nazywana zdecentralizowaną, nawiązuje do usługi która zawiera społeczność podzieloną na serwery które z sobą się komunikują (federują) udostępniając ich materiały i tworząc sieć (Fediwersum). Usługi dla których istnieje tylko jeden serwer, albo dla których istnieją niezależne serwery, są nazywane centralizowanymi. Większość usług zalicza się do kategorii centralizowanych, na przykład Twitter lub Facebook. Zaletą usług zdecentralizowanych jest możliwość wybrania administacji lub tematyki serwera która najlepiej do cienie pasuje. Jest też możliwość postawienia twojego własnego serwera. Dzięki federowanej naturze usługi, masz dostęp do tej samej społeczności, niezależnie z jakiego serwera skorzystasz. ## Zawsze Open-Source Misskey zawsze był i zawsze będzie open source. Open Source oznacza po prostu, udostępnianie publiczności kodu (programu). W to równierz włącza się możliwość dostosowania i redystrybułowania kodu źródłowego tak jak mówi tego definicja. [Cały kod Misskey](https://github.com/misskey-dev) jest na dostępny na otwartoźródłowej licencji [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE), co oznacza że każdy może sprawdzić, używać, dostosowywać lub zmieciać jak im się to podoba. Open source ma wiele zalet, między innymi pozwala każdemu na wprowadzanie zmian według własnego uznania, upewnienie się, że kod nie zawiera żadnych szkodliwych komponentów oraz możliwość łatwego uczestnictwa w jego rozwoju. Dla realizacji rozproszonej natury Misskey, ta koncepcja otwartego źródła jest niezbędna. Używając tego samego przykładu co poprzednio, większość serwisów nastawionych na zysk, takich jak Twitter, Facebook itp. nie jest (w pełni) open source. :::tip Technicznie mówiąc, kod Misskey jest zarządzany przez Git, a jego repozytorium jest przechowywane na [GitHub.](https://github.com/misskey-dev) ::: ## Dołączanie do pracy i wspieranie projektu Jeśli lubisz Misskey, prosze wesprzyj projekt. Wspieranie projektu może być wykonane w wiele sposobów, z których kilka jest przedstawionych poniżej. Niektóre z nich nie wymagają umiejętności programistycznych, więc każdy może wesprzeć Misskey swoim własnym sposobem. Zawsze czekamy na ciebie. ### Dodawanie funkcji i naprawianie błędów Jeżeli znasz się na programowaniu, możesz wesprzeć projekt poprzez edycję jego kodu źródłowego. Aby uzyskać więcej informacji na ten temat, proszę zobacz [tutaj](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). ### Branie udziału w dyskusjach Możesz wesprzeć nas poprzez udział w dyskusjach na temat nowych lub istniejących funkcji, a także poprzez zgłaszanie błędów. Takie dyskusje mogą odbywać się na [GitHub](https://github.com/misskey-dev) lub [Forum](https://forum.misskey.io/) i [Discord](https://discord.gg/Wp8gVStHW3). ### Tłumaczenie tekstu Misskey jest dostępne w wielu językach (tak zwane i18n, które jest skrótem od Internationalization). Podczas gdy oryginalny język jest ogólnie japoński, wolontariusze tłumaczą Misskey na inne języki. Pomoc w tłumaczeniu jest również formą wspierania. Misskey korzysta z usługi [Crowdin do zarządzania swoimi tłumaczeniami.](https://crowdin.com/project/misskey) ### Udostępnianie wrażeń Poza zgłaszniem błędów, proszę podziel się wrażeniami o tym co uwielbiasz w Misskey, lub co uważasz za zabawne. Takie rzeczy są motywacją dla deweloperów, a także są bezpośrednim wsparciem dla projektu. ### Zwiększanie liczby Misskistów "Misskistsy" to użytkownicy Misskey. Mówiąc światu o Misskey poprzez pokazywanie go innym może zwiększyć liczbę Misskistów co motywuje deweloperów. ### Dotacje? [O tym dowiesz się tutaj](./donate.md) ## Często zadawane pytania ### Co ten projekt chce osiągnąć? W skrócie, Misskey jest platformą, która ma być używana przez wielu użytkowników. W przeciwieństwie do innych platform, Misskey nie jest związany z konkretną ideą (na przykład anty-centralizacją) lub wizją, dlatego jest trochę "bezcelowy". Z drugiej strony, to daje pewną elastyczność, ponieważ nie jest związany z konkretnym kierunkiem rozwoju. ### Czy nad Misskey pracuje jakaś firma? Nie. Misskey jest tworzone przez jedną osobę i nie jest komercjalizowane przez połączenia z jakąkolwiek firmą. Członkowie zespołu deweloperskiego są zwykle wolontariuszami. Ponadto, mimo że istnieją pewne sponsory korporacyjne, rozwój nadal jest skupiony wokół społeczności. ### Kto zarządza Misskey? Z racji na dystrybułowaną naturę Misskey, każdy serwer ma swoją własną administrację. Dlatego też nie wszystko w Misskey jest zarządzane przez jedną osobę lub firmę. Oznacza to, że ponieważ zespół deweloperski nie kontroluje poszczególnych serwerów, dla pytań związanych z zarządzaniem należy skontaktować się z administracją swojego serwera. Możesz zweryfikować, kto zarządza twoim indywidualnym serwerem na [tej stronie](/about). Jeśli utworzysz serwer, stajesz się jego administratorem. ### Jaki serwer powinienem wybrać? [(Niepełną) Listę serwerów możesz znaleść tutaj.](../instances.md) W zależności od serwera, jego społeczności lub jego tematyki (np. ulubionego show) serwery mogą się różnić, więc jeśli jest taki co do ciebie pasuje, to dołączanie do niego będzie dobrym wyborem. Poza tym rozmiar serwera, baza użytkowników, kraj lub język używany, zawodność oraz zaufanie administracji to wiele z rzeczy, które mogą być brane pod uwagę jako kryterium. Nie ma natomiast jednego serwera który jest oficjalnym serwerem Misskey. Masz też wybór stworzenia własnego serwera. Teoretycznie istnieje [misskey.io](Misskey.io) czyli serwer publiczny stworzony przez twórcę Misskey, jednak niczym szczególnym się on nie wyróżnia. BTW - nie ważne z jakiego serwera dołączysz, nadal będziesz mógł się połączyć z użytkownikami z innych serwerów. ### Jak mogę postawić swój własny serwer Missskey? Dziękujemy za zaintereswanie w tworzeniu serwera Misskey. Aktualnie nie ma dostępnego serwu hostingowego dla Misskey, więc tworzenie nowego serwera wymaga pewnej wiedzy. Więcej informacji na ten temat znajdziesz [tutaj](./install.md). ### Z jakich technologii Misskey korzysta? Kiedy trwała praca nad Misskey, technologia używana często się zmieniała. Na początku używano kombinacji MySQL + PHP + jQuery, jednak teraz używa : - Strona serwerowa: Node.js - Baza danych: PostgreSQL, Redis - Biblioteka UI: Vue.js - Język programowania: TypeScript Poza tym, z Misskey pochodzą technologie takie jak MFM lub AiScript, które równierz są używane. ### Czy to jest fork Mastodona? Nie. Misskey jest kompletnie innym projektem od Mastodona lub innych podobnych projektów. Jest w rozwoju od dłuższego czasu. Jednak, stał się siecią rozproszoną dopiero po pojawieniu się Mastodona. Oprócz tego, że oba projekty implementują protokół ActivityPub, nie ma żadnego związku między nimi. ### Czy są jakieś aplikacje na Androida / iOS? Nie ma oficjalnej aplikacji Misskey dla Androida lub iOS. Istnieją jednak aplikacje stworzone przez społeczność. Więcej informacji na ten temat znajdziesz [tutaj](./apps.md). Jednakże, funkcjonalność aplikacji trzech będzie w tyle za oficjalnym klientem przeglądarkowym, więc jeżeli chcesz używać natywnej aplikacji, radzimy używać oficjalnego przeglądarkowego klienta. Ponieważ klient przeglądarkowy Misskey obsługuje PWA, jest również możliwe, aby działał jak natywna aplikacja. Więcej informacji na ten temat znajdziesz [tutaj](todo). ### Gdzie mogę pobrać logo i ikony Misskey? [tutaj - w kolekcji materiałów :-)](../appendix/assets.html). ### Kim jest ta słodka dziewczyna z kocimi uszamy którą czasem widzisz? To jest bogini "broniąca" Misskey, Ai(Oni ją nazywali słodką, yay!)
ℹ️ Aby dowiedzieć się więcej o Ai zajrzyj na stronę o niej tutaj (Po japońsku).
================================================ FILE: content/pl/.docs-legacy/releases.md ================================================ # Informacje o wydaniach Z racji na to że strona bardzo szybko staje się przestażała - radzę skorzystać z translatora i strony Japońskiej/Angielskiel albo z informacji o wydaniu z GitHuba. 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`. #### 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: - 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 `/emoji/.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 `` 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.1(2022/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). ::: ================================================ FILE: content/pl/.docs-legacy/tips/disable-timelines.md ================================================ # Wyłączanie LTL/STL/GTL W Misskey, jest możliwość wyłączenia LTL/STL/GTL. Możesz też włączyć te ośi czasu poprzez panel sterowania instancji. Wszytkie posty z twojej instancji mogą być widoczne w LTL i STL co daje możliwość łatwiejszego znalezienia nowych użytkowników bez użycia wyszukiwania użytkowników. Jednakże, to oznacza że śledzenie innych użytkowników aby zobaczyć ich posty jest mniej ważne i nieodpowiednie posty mogą być pokazane użytkownikom częściej. Dodatkowo, ta opcja może utrudnić nowym użytkownikom dołączenie do rozmowy z użytkownikami którzy są na instancji od dłuższego czasu. Waga tych zalet i wad może się różnić od serwera do serwera, więc wybór użycia lub nie użycia tych ośi czasu został pozostawiony do każdej indywidualnej instancji. Jeśli uważasz, że wady przeważają nad zaletami, rozważ wyłączenie tych ośi czasu. :::warning Wyłączanie ośi czasu może spowodować zamieszanie i może prowadzić do krótkotrwałego spadku liczby użytkowników. Dlatego, rozważ uważnie efekty wyłączenia oś czasu i wyjaśnij przyczynę wyłączenia w przyszłości, aby twoi użytkownicy mogli się przygotować, np. śledząc użytkowników z którymi często rozmawiają na LTL/STL. ::: Na dodatek Administratorzy / Moderatorzy będą mogli nadal oglądać te ośie czasu nawet po ich wyłączeniu. ================================================ FILE: content/pl/.docs-legacy/troubleshooting.md ================================================ --- description: 'Jeśli naportkasz na problem, proszę najpierw sprawdź tą stronę' --- # Rozwiązywanie problemów :::tip Proszę równierz korzystać z strony z [często zadawanymi pytaniami(FAQ)](./faq.md) ::: Jeżeli napotkasz problem, proszę najpierw sprwadź tą stronę. W przypadku kiedy nie możesz znaleść twojego problemu tutaj, albo kroki podane tutaj nie rozwiązują problemu, proszę skontakuj się z administratorem twojego serwera lub [Zgłoś błąd](./report-issue). ## Klient się nie uruchamia W większości przypadków jest to spowodowane przez przestarzałą przeglądarkę lub system operacyjny. Proszę spróbuj zaktualizować twój system lub przeglądarkę do najnowszej wersji i wtedy spróbuj ponownie. Mimo iż to nie dzieje się zbyt często, jeżeli twój klient nadal się nie uruchamia, jest możliwe że cache/bufor może być problemem. W tym przypadku proszę wyczyść pamięć cache i spróbuj ponownie. ## Strony nie mogą się załadować Jeżeli twój klient się uruchamia, ale widzisz błąd przy załadowaniu strony, proszę sprawdź twoje połączenie sieciowe w poszukiwaniu błędów. Na dodatek sprawdź czy serwer z którym chcesz się połączyć nie jest wyłączony. Mimo iż to nie dzieje się zbyt często, przypadki gdzie pamięć podręczna/cache/bufor mogą być problemem. W tym przypadku wyczyść ją i spróbuj ponownie. Wszystkie inne problemy najpewniej są związane z serwerem z którego chcesz skorzystać więc skontaktuj się z jego administratorem. ## Klient jest wolny Proszę wypróbuj którąś z opcji: - Aktywuj "Redukuj animacje interfejsu" w ustawieniach klienta - Wyłącz "Użyj efektu rozmycja dla modułów" w ustawieniach klienta - Włącz akcelerację sprzętową w ustawieniach przeglądarki - Ulepsz specyfikację twojego urządzenia (heh) ## Części interfejsu działają dziwnie (Na przykład: tło jest przezroczyste) Zepsuty interfejs może być spowodowany przez system buforów motywów kiedy interfejs jest zmieniony jako część aktualizacji. Korzystajnie z opcji "Wyczyść bufor" w ustawieniach powinno rozwiązać problem. :::warning Wyczyść bufor/cache "Klienta". Nie czyść buforu/cache "Przeglądarki". ::: ## Migające światło powiadomień lub antena nie znika Migające światło pokazuje nieprzeczytane materiały. W przypadkach, gdy ta lampka nie znika, zazwyczaj jest to nieprzeczytana zawartość, która została wyparta przez nową, przychodzącą zawartość. Jeśli uważasz, że przeczytałeś całą zawartość, ale kontrolka nadal nie znika (prawdopodobnie jest to błąd), możesz siłą zaznaczyć całą zawartość jako przeczytaną w ustawieniach użytkownika. ## Przycisk do renotowania jest zablokowany Postów udostępnionych tylko "dla obserwujących" nie można renotować ## Określone części Przeglądarkowego Interfejsu Misskey are nie są wyświetlane Problemy tego typu mogą się pojawić jeżeli korzystasz z narzędzi do blokowania reklam(np. Adblock). Dla poprawnego działania Misskey spróbuj je wyłączyć. ## Niektóre części Interfejsu Przeglądarkowego Misskey nie są przetłumaczone W większości przypadków jest to powód tego że tłumaczenie nie jest jeszcze wykonane zamiast bycia błędem. Proszę poczekać dopóki tłumaczenie danej częsci zostanie ukończone. Możesz równierz samemu [przyłączyć się do tłumaczenia Interfejsu Misskey](./misskey). ================================================ FILE: content/pl/contact-faq/0.cannot-create-account.md ================================================ --- question: アカウントが作成できません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/pl/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: アカウントにログインできません --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/pl/contact-faq/2.delete-account.md ================================================ --- question: アカウントを削除したい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/pl/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 〇〇のサーバー上にあるコンテンツを削除してほしい --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** 自サーバー・他サーバーのコンテンツのモデレーションについては、各サーバーのルールに則って行われますので、当該コンテンツの送信元サーバーの管理者に連絡するか、当該ユーザーやサーバーをブロックして自己防衛するなどして対応してください。 ================================================ FILE: content/pl/contact-faq/4.copyright-infringement.md ================================================ --- question: 著作権侵害を見つけた --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/pl/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/pl/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/pl/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'Misskeyについてのドキュメントです。' --- # Misskeyについて Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 ![Misskeyのスクリーンショット](/img/hero/misskey-light.png) ## 歴史 開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にActivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 :::tip Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 ::: 誰でも開発に参加することができ、現在でも活発に開発が続いています。 [Misskey歴史資料館](/about-us/history/) ## 分散型とは何か? 分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 :::tip 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) ::: ## 開発に参加する、プロジェクトを支援する Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 ### 議論に参加する 新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上で行われます。 ### テキストを翻訳する Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) ### 感想を投稿する 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 ### ミスキストを増やす ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 ### 寄付をする [こちらをご覧ください](/docs/donate/) ## よくある質問 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 ### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 ### 誰が運営していますか? Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、サーバーの情報ページで確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 ### どのサーバーを選べばいいですか? [サーバー一覧が公開されています。](/servers/) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 Misskeyサーバーの作成には、専用のサービスを使う方法や、半自動で環境を構築する方法などがあります(もちろん手動でサーバーを構築することも可能です)。詳細については[こちら](/docs/for-admin/install/guides/)をご覧ください。 ### どのような技術を使用していますか? Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 - サーバーサイド: Node.js - データベース: PostgreSQL、Redis - UIフレームワーク: Vue.js - プログラミング言語: TypeScript また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 ### Mastodonのフォークですか? いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](/docs/for-users/resources/apps/)をご覧ください。 ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 :::tip PWAの設定方法については[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ::: ### Misskeyのロゴ、アイコンはどこで入手できますか? [こちら](/brand-assets/) ### 時折目にする猫耳の可愛い女の子は? :::fukidashi{chara="doya_ai" charaName="藍"} わたしについては[このホームページ](https://xn--931a.moe/)をご覧ください! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! ::: ================================================ FILE: content/pl/docs/2.for-users/1.index.md ================================================ # ユーザー向けガイド このセクションでは、Misskeyを初めて利用する方はもちろん、すでに利用されている方にも役立つ一般的な機能についてご紹介しています。 ================================================ FILE: content/pl/docs/2.for-users/2.onboarding/0.index.md ================================================ # Misskeyをはじめよう ここでは、Misskeyでの活動を始めるチュートリアルを掲載しています。 おもに、 - 分散型プラットフォームの注意点 - サーバーとは?サーバーの選び方は? - 登録の手順 - 最低限の基礎知識 などについて解説していますので、この通りに進めることで、とりあえずMisskeyを使い始めることができると思います。 それでは、早速始めましょう!(「次へ」を押して進んでください。) ================================================ FILE: content/pl/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'Misskeyサーバーにアカウントを作成する前の基本的な注意事項です。' --- # 基本的な注意事項 Misskeyを使ったサービスを利用するにあたり、いくつか注意が必要な点があります。 - 分散型のため、一度アップロードしたデータは削除したとしても他の全てのサーバーから削除されることは保証されません。(ただし、これはインターネット全般に言えることでもあります。) - 非公開で行った投稿でも、相手のサーバーがそれを同じように非公開として扱うかは保証されません。個人情報、機密情報を投稿する際は十分注意してください。(ただし、これはインターネット全般に言えることでもあります。) - Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ノートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。 - アカウントの削除は負荷の高い処理であるため、長い時間がかかることがあります。アップロードしたデータが多いケースではアカウントの削除が不可能なこともあります。 - サーバーによっては、広告収入により運営費を賄っていることがあります。また、アドブロッカーは広告とは全く関係のないコンテンツや機能を誤ってブロックすることがよくあり、クライアントの動作に支障をきたし、正常にMisskeyを使用できなくなるおそれがあります。そのため、Misskeyではアドブロッカーやそれに類する機能はオフにしてご利用ください。 これらをご理解いただいたうえで、楽しくサービスをご利用ください。 ================================================ FILE: content/pl/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "Misskeyサーバーへのユーザー登録や、基本的な操作について解説しています。" --- # Misskeyサーバーをさがす Misskeyはソフトウェアおよびそのプロジェクトです。 インターネットに公開されている、Misskeyを動かしているサーバーのことを**サーバー**と呼びます。 Misskeyを利用するには、どこかのサーバーにアカウントを作成し、そのサーバーを利用します。 [サーバー一覧](/servers/)から、好きなサーバーを選ぶことができます。 :::tip どのサーバーを選んでも、他のサーバーのユーザーとやり取りすることができます。 :::g-details{summary='詳細'} Misskeyには連合機能が備わっています。 連合機能によって、別のサーバーのユーザーであっても、同じサーバーのユーザーと同じようにフォローやリアクション、Renoteなどができるようになっています。 Misskeyが搭載している連合機能はActivityPubというオープンな共通規格に基づいていて、MastodonやPleromaといったほかのソフトウェアとも互換性があります。 ::: ::: ## サーバーの選び方 ### サーバーのテーマ サーバーによっては、例えば「特定のこと、ものが好き」といったテーマが決まっている場合があります。 自分にあったテーマのサーバーを探すのもおすすめです。 :::tip サーバーの一覧は[こちら](/servers/)からご覧いただけます。 ::: ================================================ FILE: content/pl/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # サーバーに登録する 登録するサーバーが決まったら、さっそくアカウントを作成しましょう。 :::tip ここでは、Misskey.ioを例にとって紹介していますが、他のサーバーでも登録方法はおおむね同じです。 ただし、入力事項はサーバーによって異なることがあります。詳しくは、サーバー管理者にお問い合わせください。 ::: ## 登録する まずは、トップページから「**このサーバーに登録する**」ボタンを探し、クリックします。 ![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png) 次に、画面の指示に従い、規約の確認や必要事項の記入を進めてください。 主に記入すべき事項は、以下の通りです。 - 招待コード(登録が招待制の場合のみ。お持ちでない場合は登録できません。) - ユーザー名(**後から変更はできません。一度退会すると同じユーザー名を取得することはできません。**) - メールアドレス(必要ないサーバーもあります) - パスワード ![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png) 必要事項の記入が終わると、メールアドレスを登録するサーバーの場合、確認メールが届きますので、速やかにメール内のリンクをクリックしてください。 ![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png) 以上で、Misskey サーバーへの登録が完了しました! これであなたも[ミスキスト](../resources/glossary/#ミスキスト)!楽しいコミュニケーションをお楽しみください。 ================================================ FILE: content/pl/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskeyの基礎知識 アカウントを作成したあなたにとりあえず知っておいてほしいことをまとめました! ## ノート Misskeyへの投稿は、「ノート」と呼ばれます。Twitterなどの一般的なSNSに比べたくさんの機能がありますので、初めての投稿を行う前に必ず確認して、上手に投稿しましょう! :::tip 詳細は、「[ノート](/docs/for-users/features/note/)」をご覧ください。 ::: ## タイムライン Misskeyは、複数のタイムラインを持っています。名前だけでは少々わかりにくいかと思いますので、それぞれがどのような働きをするのかを知っておきましょう。 :::tip 詳細は、「[タイムライン](/docs/for-users/features/timeline/)」をご覧ください。 ::: ## その他 その他にも、Misskeyには、使って楽しい機能が盛りだくさん!すべての機能に関する説明は[こちら](/docs/for-users/features/)に記載されていますので、ぜひご覧ください! ================================================ FILE: content/pl/docs/2.for-users/3.features/1.index.md ================================================ --- description: "Misskeyの大きな特徴である、多彩な機能について解説しています。" --- # さまざまな機能 Misskeyの大きな特徴は、ほかのマイクロブログシステムには見られない多彩な機能にあります。ここでは、それらについて解説していきます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/ads.md ================================================ # 広告 Misskeyではサーバーによる広告をタイムラインなどに表示できる機能があります。 広告の右上に表示されるアイコンをクリックすることで、当該の広告の表示頻度を下げることができます。 :::tip 広告の総数が少ない場合は、表示頻度を下げた後も連続で表示される可能性があります。 ::: ## 広告の設定(管理者) サーバーのコントロールパネルから広告の追加、編集、削除を行えます。 広告には任意の画像、遷移先URL、形状、表示割合を設定できます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/antenna.md ================================================ # アンテナ アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/charts.md ================================================ # チャート Misskeyはサーバーの様々なデータソースに対するチャートを生成し表示する機能を備えています。 チャートを利用することで、サーバーの利用状況や連合の状況、各ユーザーのアクティビティなどを視覚的に把握することができます。 サーバーのチャートはサーバー情報ページから表示することができます。 以下は各チャートとその各項目の説明です。 ## 連合チャート 連合しているサーバーについてのチャートです。 ### Pub アクティビティを配送しているサーバーの数。 言い換えると、自サーバーのユーザーをフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Sub アクティビティを受信しているサーバーの数。 言い換えると、自サーバーのユーザーがフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。 ### Received アクティビティを送ってきたサーバーの数。 ### Delivered アクティビティを配送したサーバーの数。 ### Stalled アクティビティを配送する際、エラーになったサーバーの数。 ## アクティブユーザー数チャート 自サーバーのユーザーの利用状況についてのチャートです。 ### Read & Write 閲覧と書き込みを行ったユーザーの数。 ### Read 閲覧を行ったユーザーの数。 ### Write 書き込みを行ったユーザーの数。 ### < Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間未満であるユーザーの数。 ### < Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月未満であるユーザーの数。 ### < Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年未満であるユーザーの数。 ### > Week 閲覧を行ったユーザーのうち、アカウント作成日時が1週間以上前であるユーザーの数。 ### > Month 閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月以上前であるユーザーの数。 ### > Year 閲覧を行ったユーザーのうち、アカウント作成日時が1年以上前であるユーザーの数。 ================================================ FILE: content/pl/docs/2.for-users/3.features/clip.md ================================================ # クリップ クリップは、複数のノートをまとめることができる機能です。自分のノート・他者のノートは問いません。 クリップは複数作ることができ、それぞれに名前や説明を設定して管理することが可能です。また、クリップを他のユーザーに公開するかどうかも選択することができます。 クリップを作るには、[クリップ管理ページ](x-mi-web://my/clips)から「追加」をクリックします。 クリップにノートを追加するには、対象のノートのメニューから「クリップ」をクリックし、追加先のクリップを選択します。 ================================================ FILE: content/pl/docs/2.for-users/3.features/custom-emoji.md ================================================ # カスタム絵文字 カスタム絵文字は、サーバーで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 サーバーにどのようなカスタム絵文字が用意されているかは、Misskey Webの **サーバー情報** にある [**カスタム絵文字**](x-mi-web://about#emojis) にアクセスすると見ることができます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/deck.md ================================================ # デッキ デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 \ \ なお、メインカラムを追加しておくと、ノートやプロフィールをページで表示した際、メインカラムに内容が表示されます。 ## カラムの追加 デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 ## カラムの移動 カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 ## カラムの水平分割 カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 ## カラムの設定 カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 ## デッキの設定 デッキに関する設定は、[settings/deck](x-mi-web://settings/deck)で行えます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/pl/docs/2.for-users/3.features/drive.md ================================================ # ドライブ ドライブは、Misskey上でファイルを管理できる機能です。 :::tip 技術的に言うと、Misskeyのシステム上、すべてのファイルが一元管理されており、それをユーザーにも公開したインターフェイスがドライブと捉えることができます。 ::: Misskey Webの[ドライブページ](x-mi-web://my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 :::warning 現時点で、ドライブからファイルを削除すると、そのファイルが添付された **すべてのコンテンツ(ノート、ページなど)** も同時に消えます。 ::: ## センシティブ (NSFW) センシティブまたはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 センシティブフラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 ================================================ FILE: content/pl/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/favorite.md ================================================ # お気に入り [ノート](./note)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](x-mi-web://my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 ================================================ FILE: content/pl/docs/2.for-users/3.features/follow.md ================================================ # フォロー ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/hashtag.md ================================================ # ハッシュタグ ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。 世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、当時のTwitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。 ![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png) FediverseでのハッシュタグはXやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。 ================================================ FILE: content/pl/docs/2.for-users/3.features/mention.md ================================================ # メンション アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFMは、Misskeyの様々な場所で使用できる専用のマークアップ言語です。' --- # MFM MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。 :::tip 実際にMFMをお試しいただける[MFMお試しコーナー](/tools/mfm-playground/)ができました! ::: ## MFMが使用可能な場所の例 - ノート本文 - CW注釈 - ユーザーの名前 - ユーザーの自己紹介 ## 構文 ### メンション アットマーク + ユーザー名で、特定のユーザーを示すことができます。 :::tip メンションについての詳細は[こちら](./mention.md)を参照してください。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### ハッシュタグ ナンバーサイン + タグで、ハッシュタグを示すことができます。 :::tip ハッシュタグについての詳細は[こちら](./hashtag.md)を参照してください。 ::: ``` #misskey ``` ### URL URLを示すことができます。 ``` https://example.com ``` ### リンク 文章の特定の範囲を、URLに紐づけることができます。 ``` [example link](https://example.com) ``` :::tip リンクテキストの前に`?`をつけると、リンクプレビューを非表示にすることができます。 ``` ?[example link](https://example.com) ``` ::: ### カスタム絵文字 コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。 :::tip カスタム絵文字についての詳細は[こちら](./custom-emoji.md)を参照してください。 ::: ``` :misskey: ``` ### 太字 文字を太く表示して強調することができます。 ``` **太字** ``` ### 目立たなくする 内容を小さく・薄く表示させることができます。 ``` MisskeyでFediverseの世界が広がります ``` ### 引用 内容が引用であることを示すことができます。 ``` > MisskeyでFediverseの世界が広がります ``` ### 中央寄せ 内容を中央寄せで表示させることができます。 ```
MisskeyでFediverseの世界が広がります
``` ### よみがな(ルビ) 内容によみがなを付けることができます。 ``` $[ruby Misskey ミスキー] ``` ### コード(インライン) プログラムなどのコードをインラインでシンタックスハイライトします。 ``` `<: "Hello, world!"` ``` ### コード(ブロック) 複数行のプログラムなどのコードをブロックでシンタックスハイライトします。 プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### 反転 内容を上下または左右に反転させます。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### フォント 内容のフォントを指定することができます。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### ぼかし 内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 検索 検索ボックスを表示できます。 ``` misskey 検索 ``` ### 文字色・背景色 文字色と背景色を変更することができます。 3,4,6桁のカラーコードで色を表現します。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 枠線 内容を枠線で囲むことができます。様々なスタイルを指定することができます。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度変更 指定した角度で回転させます。 ``` $[rotate.deg=30 misskey] ``` ### 位置変更 位置をずらすことができます。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 拡大 文字を引き延ばして表示します。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### アニメーション(びよんびよん) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### アニメーション(じゃーん) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### アニメーション(ジャンプ) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### アニメーション(バウンド) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### アニメーション(回転) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### アニメーション(ぶるぶる) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### アニメーション(ブレ) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### レインボー ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### キラキラ ``` $[sparkle 🍮] ``` ### プレーン 内側の構文を全て無効にします。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 開発者向け情報 MFMのパーサーや描画の実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js用コンポーネント - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlinパーサー実装 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dartパーサー実装 - [mfm](https://pub.dev/packages/mfm) - Flutter用描画ウィジェット ================================================ FILE: content/pl/docs/2.for-users/3.features/mute-and-block.md ================================================ # ミュートとブロック 好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 :::tip ミュートとブロックは併用できます。 ::: :::warning 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。 ::: Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 ## ミュート ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) - そのユーザーからの通知 - メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - など Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 :::tip ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 ::: ## リノートをミュート ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## ブロック ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - フォローする - ユーザーリストに追加する - 返信する、Renoteする - リアクションする、アンケートに投票する - メッセージを送信する - など また、 - ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 - ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 :::warning ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。 ::: :::warning 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。 ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/note.md ================================================ # ノート ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## ノートを作成する Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## リノート 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## 公開範囲 ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### フォロワー 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### 指名 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 ### 公開範囲の比較
パブリックホームフォロワー指名
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## 新規投稿の通知 ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/pl/docs/2.for-users/3.features/online-status.md ================================================ # オンラインステータス ユーザーの**オンラインステータス**は、そのユーザーのMisskey利用の状態を表すものです。 オンラインステータスは、ユーザーページなどでユーザーアイコンの隅にインジケーターとして表示されます。
状態 説明
🟢緑 オンライン 今まさにMisskeyを使用していると考えられる状態
🟡黄 アクティブ 今は退席しているものの、Misskeyの利用自体は行われている状態
🔴赤 オフライン Misskeyを利用していないと考えられる状態
⚫灰 不明 ステータスを非公開にしている、もしくはリモートユーザー等でステータスが不明の状態
オンラインステータスは自動的に変わり、手動で設定することは出来ません。 設定により、オンラインステータスを非公開にすることができます。 :::warning ユーザーのサジェストなど、一部の機能においてはオンラインステータスを元に処理される場合があるため、ステータスを非公開にすると他のユーザーから見つけにくくなることがあります。 ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/pages.md ================================================ # ページ Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## ページ設定 ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### タイトル このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### ページURL `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### フォント **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### アイキャッチ画像 **アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。 ## コンテンツ ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。 - セクション - テキスト - 画像 - ノート埋め込み ### セクション タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。 ### テキスト テキスト本文を入力します。MFMやカスタム絵文字を使用できます。 ### 画像 画像を表示します。ドライブより画像を設定します。 ### ノート埋め込み ノート ID を入れる事で、そのノートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。 ================================================ FILE: content/pl/docs/2.for-users/3.features/plugin.md ================================================ # プラグイン Misskey Webにはプラグイン機能があり、ユーザーがMisskey Webの機能を拡張することができます。 プラグインの作成方法については[こちらのドキュメント](../../for-developers/plugin/create-plugin)を参照してください。 ================================================ FILE: content/pl/docs/2.for-users/3.features/poll.md ================================================ # アンケート アンケートは、他の人からの意見を簡単に聞くことができる機能です。 ## アンケートをノートに添付する アンケートは、[ノート](/docs/for-users/features/note)に添付する形で投稿することができます。ノートにアンケートを添付するには、投稿フォームの下部にある「アンケート」ボタンを選択します。 ## 選択肢を増やす アンケートには、選択肢を10個まで作ることができます。選択肢の入力欄は、「追加」ボタンを押すことで追加することができます。 追加しすぎてしまった入力欄は、入力欄の横の☓ボタンを押すことで削除することができます。 :::warning いずれかの入力欄が空白だった場合、そのアンケートが添付されたノートは投稿できません。 ::: ## 複数回答を可能にする 「複数回答可」スイッチをオンにすると、アンケートに回答する人が複数の選択肢に投票できるようになります。 ## アンケートの期限を設定する アンケートには、終了する期限を、日時指定か経過指定のいずれかで設定することができます。 設定するには、「期限」の欄から「日時指定」もしくは「経過指定」をクリックします。 一度設定した期限を取り消す場合には、「期限」の欄から「無期限」を選択します。 ## アンケートに投票する アンケートが添付されたノートがタイムラインに流れてきたときは、アンケートに投票してみましょう。 アンケートに投票するには、各選択肢をクリックします。アンケートを投稿したユーザーが複数回答可に設定していない場合は、その時点でのアンケートの結果が表示されます。 アンケートを投稿したユーザーが複数回答可に設定していた場合、他の選択肢にも投票することができます。この場合、結果は自動では表示されません。 複数回答の設定に関わらず、自動でアンケートの結果が表示されなかったり、投票前に結果を見たい時は、選択肢の下にある「結果を見る」をクリックしてアンケートの結果を表示することができます。 未投票のアンケートの結果を見たあと、もう一度隠すときは「投票する」をクリックします。 :::tip 未投票アンケートには、結果を表示した状態でも投票できます。 ::: 投票をすると、自分の投票した選択肢に✔がつきます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/reaction.md ================================================ # リアクション 他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 Misskey Webでリアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji.md)も使用できます。 ## リアクションピッカーのカスタマイズ Misskey Webでは、ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 ## リモート投稿へのリアクションについて リアクションはMisskeyオリジナルの機能であるため、リモートサーバーがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 ## リモートからのリアクションについて リモートから「Like」アクティビティを受信したとき、Misskeyでは「❤」のリアクションとして解釈されます。 ## 自分のリアクション一覧を見る Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。 設定から、このリアクション一覧を公開するようにすることもできます。 ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/pl/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/share-form.md ================================================ # 共有フォーム Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## クエリパラメータ :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ------- | ---------------------------------------------------------------------------- | | `title` | タイトル。本文の先頭に[ … ]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。 | 名前 | 説明 | | ---------- | ----------------------------- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ----------- | ------------------------------- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | --------- | -------------------------------------- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 \ こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。 ::: ### 基本のパラメータ 基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。 ### 独自機能 #### おすすめサーバー機能 URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。 :::warning 「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。 「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。 ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/silence.md ================================================ # サイレンス サイレンスは、アカウントに設定される状態のひとつです。 アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、指名のノートは引き続き投稿可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 ================================================ FILE: content/pl/docs/2.for-users/3.features/theme.md ================================================ # テーマ テーマを設定して、Misskeyクライアントの見た目を変更できます。 ## テーマの設定 [設定 > テーマ](x-mi-web://settings/theme) ## テーマを作成する テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... テーマの一意なID。UUIDをおすすめします。 - `name` ... テーマ名 - `author` ... テーマの作者 - `desc` ... テーマの説明(オプション) - `base` ... 明るいテーマか、暗いテーマか - `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - テーマはここで設定されたベーステーマを継承します。 - `props` ... テーマのスタイル定義。これから説明します。 ### テーマのスタイル定義 `props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[\\_light.json5][_light.json5]で、`dark`なら[\\_dark.json5][_dark.json5]です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### バリューで使える構文 - 16進数で表された色 - 例: `#00ff00` - `rgb(r, g, b)`形式で表された色 - 例: `rgb(0, 255, 0)` - `rgba(r, g, b, a)`形式で表された透明度を含む色 - 例: `rgba(0, 255, 0, 0.5)` - 他のキーの値の参照 - `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - 例: `@panel` - 定数(後述)の参照 - `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - 例: `$main` - 関数(後述) - `:{関数名}<{引数}<{色}` #### 定数 「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/pl/docs/2.for-users/3.features/thread-mute.md ================================================ # スレッドミュート :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/pl/docs/2.for-users/3.features/timeline.md ================================================ # タイムライン タイムラインは、[ノート](/docs/for-users/features/note/)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム 自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル 全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 ## 比較
ソース 公開範囲 タイムライン
ホーム ローカル ソーシャル グローバル
ローカル(フォロー) 公開
ホーム
フォロワー
リモート(フォロー) 公開
ホーム
フォロワー
ローカル(未フォロー) 公開
ホーム
フォロワー
リモート(未フォロー) 公開
================================================ FILE: content/pl/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## イベント イベントごとに説明とペイロードを示します。 ### follow ### followed ### unfollow ### note ### reply ### renote ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/pl/docs/2.for-users/3.features/widgets.md ================================================ # ウィジェット ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 ## 利用可能なウィジェット一覧 - プロフィール - サーバー情報 - 付箋 - タイムライン - カレンダー - RSSリーダー - RSSティッカー - トレンド - 時計 - アクティビティ - フォト - デジタル時計 - UNIX時計 - 連合 - サーバークラウド - 投稿フォーム - スライドショー - サーバーメトリクス - オンラインユーザー - ジョブキュー - ボタン - AiScriptコンソール - AiScript App - 藍 - ユーザーリスト - クリッカー ### プロフィール 名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。 ### サーバー情報 サーバー名・ドメイン・アイコン画像・バナー画像を表示します。 ### 付箋 テキストを保存しておけます。 ### タイムライン ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### カレンダー 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### RSSリーダー RSS フィードタイトルを一覧表示します。 ### RSSティッカー RSS フィードを順次スクロール表示します。 ### トレンド 最近よく使用されているハッシュタグを表示します。 ### 時計 アナログ時計で現在時間を表示します。 ### アクティビティ 稼働状況をドット表示します。 ### フォト 最近のドライブ中身を表示します。 ### デジタル時計 デジタル時計で現在時刻を表示します。 ### UNIX時計 UNIX時間で現在時刻を表示します。 ### 連合 主に通信している他のサーバーを表示します。 ### サーバークラウド 他のサーバーを球状に表示します。 ### 投稿フォーム ノートを投稿するッフォーム を固定表示します。 ### スライドショー ドライブ内の特定フォルダ内を順次表示します。 ### サーバーメトリクス サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### オンラインユーザー 現在オンタイン状態になっているユーザー数表示します。 ### ジョブキュー 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ボタン ボタンを表示します。動作は AIScript で記載していきます。 ### AiScriptコンソール AiScript を実行できるコンソールを表示します。 ### AiScript App AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 藍を表示します。カーソルに合わせて視線を変えたりします。 ### ユーザーリスト リストを表示します。もっと! - リスト で設定できます。 ### クリッカー クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/pl/docs/2.for-users/3.features/word-mute.md ================================================ # ワードミュート ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ワードミュートは、[設定 > ミュートとブロック](x-mi-web://settings/mute-block)から設定できます。 ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/pl/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/pl/docs/2.for-users/4.resources/_dir.yml ================================================ title: "その他のリソース" description: "機能面以外の知識や、困ったときの対処法を紹介しています。" ================================================ FILE: content/pl/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/pl/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/pl/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'Misskeyに関する用語集です。' --- # 用語集 Misskeyに関する用語集です。 ## Acct 特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。 ## ActivityPub (読み: あくてぃびてぃぱぶ)
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。 ## AiScript (読み: あいすくりぷと)
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://aiscript-dev.github.io/) ## API (読み: えーぴーあい)
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api) ## Bot (読み: ぼっと)
プログラムによって動作しているアカウントです。 ## CW (読み: こんてんつわーにんぐ)
Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw) ## Fediverse (読み: ふぇでぃばーす)
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。 ## GTL グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## HTL ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## LTL ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## MFM (読み: えむえふえむ)
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm) ## Misskey Web (読み: みすきーうぇぶ)
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。 ## NSFW (読み: のっとせーふふぉーわーく)
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。 ## Renote (読み: りのーと)
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote) ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline) ## 藍 (読み: あい)
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/) ## サーバー todo ## カスタム絵文字 各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji) ## コントロールパネル Misskeyサーバーの設定画面のことを指します。 ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## 凍結 (読み: とうけつ)
アカウントが使用不可に設定されている状態を指します。 ## ドライブ Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive) ## ノート Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## ミスキスト Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。 ## リモート 他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## 連合 (読み: れんごう)
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。 ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 ================================================ FILE: content/pl/docs/2.for-users/4.resources/misskey-hub.md ================================================ # Misskey Hubについて Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。 「Misskeyの全てがここにある」を目指しています。 Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub) :::tip Misskey HubはNuxtを使ってビルドされた静的サイトです。 ::: ## Misskey Hubに貢献する ドキュメントの追加や、翻訳など歓迎です。 ================================================ FILE: content/pl/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/pl/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # ステップバイステップガイド このセクションでは、Misskeyを利用する中で見られる複雑な操作を、一歩ずつ丁寧に解説しています。 :::warning このセクションはベータ版です。内容が不完全である可能性があります。 ::: ================================================ FILE: content/pl/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "ステップバイステップガイド" description: "Misskeyの操作を一歩ずつ丁寧に解説しています。操作方法がわからなくなったらここをチェック!" ================================================ FILE: content/pl/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "アカウントを削除する方法" description: "Misskeyのアカウントを削除する方法をご紹介します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/pl/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/pl/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/pl/docs/2.for-users/_dir.yml ================================================ title: "Misskeyユーザー向け" ================================================ FILE: content/pl/docs/3.for-admin/_dir.yml ================================================ title: "サーバー運営者向け" description: "サーバーの作成方法や、運営に際してのお役立ち情報を公開中。" ================================================ FILE: content/pl/docs/3.for-admin/features/1.index.md ================================================ --- description: "サーバー管理者向けの機能の説明です。" --- # サーバーの機能 Misskeyではサーバー運営に役立つ様々な機能が提供されています。 ================================================ FILE: content/pl/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/pl/docs/3.for-admin/features/announcement.md ================================================ # お知らせ お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。 お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。 :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/pl/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/pl/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/pl/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/pl/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/pl/docs/3.for-admin/features/role.md ================================================ # ロール ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## ベースロール 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ::: ## 権限 ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/pl/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/pl/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskeyのインストールと保守" description: "Misskeyのインストール方法や、その後の保守作業に役立つ情報を掲載しています。" ================================================ FILE: content/pl/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'Misskeyサーバーの作成方法についての案内です。' --- # Misskeyサーバーの作成 Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## XServer SNSでインストール XServer SNSでは、サービスを申し込むだけでMisskeyのサーバーが自動で作成されます。 サーバーの管理やメンテナンスも運営元が対応してくれるので、難しい知識不要でサーバー運用が可能です。 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## インストール方法一覧 ================================================ FILE: content/pl/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/pl/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskeyを簡単にインストールするためのシェルスクリプトができました! いくつかの質問に答えるだけで、UbuntuサーバーへMisskeyを簡単にインストールできます! また、アップデートスクリプトもあります。 [v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\ [**English version**](./README.en.md) ## 準備するもの 1. ドメイン 2. Ubuntuがインストールされたサーバー 3. Cloudflareアカウント(推奨) :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。 ## Cloudflareの設定 Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 \ ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 \ (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. インストールをはじめる SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. アップデートする アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 \ [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 \ ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 \ また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 \ host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 \ アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 \ コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 \ (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 \ たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 \ 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/pl/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'このガイドはDockerを使ったMisskeyセットアップ方法を説明します。' --- # Docker Composeを使ったMisskey構築 このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::tip{label='前提条件'} - DockerおよびDocker Composeがインストールされていること。 ::: ## リポジトリの取得 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 設定 下記コマンドで、各種設定ファイルのサンプルをコピーします。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` `default.yml`と`docker.env`をファイル内の説明に従って編集してください。 \ また、必要に応じて、`docker-compose.yml`を編集します。(ポートを変更したい場合など) ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh sudo docker compose up -d ``` GLHF✨ ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 ## cliコマンドを実行する方法 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/pl/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/pl/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'このガイドではMisskeyのインストール・セットアップ方法について解説します。' --- # Misskeyを手動で構築する このガイドではMisskeyのインストール・セットアップ方法について解説します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: :::tip{label='前提条件'} #### 以下のソフトウェアがインストール・設定されていること - **[Node.js](https://nodejs.org/en/)** (v22.15.0 以降の v22 系 または v24.10.0 以降の v24 系) - **[pnpm](https://pnpm.io/)** (v10.16.0以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 ::: ## ユーザーの作成 Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskeyのインストール ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 設定 設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。 ```sh cp .config/example.yml .config/default.yml ``` `default.yml` をファイル内の指示に従って編集します。 ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` エディタで開き、以下のコードを貼り付けて保存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskeyサービスの起動 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 アップデートが終わり次第、Misskeyプロセスを再起動してください。 ```sh sudo systemctl restart misskey ``` :::tip ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ::: ================================================ FILE: content/pl/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https\://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. https\://dash.cloudflare.com/profile/api-tokens にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar\@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/pl/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskeyの保守・トラブルシューティング" description: "Misskeyサーバーの運営には定期的なメンテナンスが不可欠。役立つ情報や困ったときの対処法をご紹介します。" ================================================ FILE: content/pl/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/pl/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/pl/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/pl/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に\ GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 \ \ ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 \ \ 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 \ \ 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 \ \ それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 \ \ ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/pl/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/pl/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/pl/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "モデレーション上のお役立ち情報" description: "実際にサーバーを運営するにあたり役立つ情報についてまとめています。" ================================================ FILE: content/pl/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/pl/docs/4.for-developers/_dir.yml ================================================ title: "開発者向け" description: "プラグイン・Play開発者や、APIを利用した外部アプリケーションの開発者向けリソース。" ================================================ FILE: content/pl/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/)\ Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:`\ Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:`\ [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、Misskey Play、Scratchpadで使用できます。 ドキュメントは未整備(TODO)ですが、インターネット上に有志の方が執筆された解説記事があります。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str`\ 返り値: `str`\ Misskey内の全てのAiScript環境で使用できます。 \ 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any`\ 返り値: `null`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 \ コンソールに文字列を出力します。 \ `<:`構文も同様の働きをします。 ================================================ FILE: content/pl/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\\ ::: ================================================ FILE: content/pl/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/pl/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/pl/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # チャンネル一覧 ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/pl/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/pl/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/pl/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/pl/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/pl/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/pl/docs/4.for-developers/bot/1.index.md ================================================ # Botの作成 [Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 ## 関連リソース - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/pl/docs/4.for-developers/plugin/_dir.yml ================================================ title: "プラグイン・Playの作成" description: "プラグインやPlayを作成する方法・各種リファレンスを公開中。" ================================================ FILE: content/pl/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/pl/docs/4.for-developers/plugin/create-plugin.md ================================================ # プラグインの作成 Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/pl/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/pl/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/pl/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # リリースノート Misskeyのリリースノートを掲載しています。 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 リリース日: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/pl/docs/6.donate.md ================================================ # プロジェクトへの寄付 :::tip 法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/) ::: Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(サーバーによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。以下の方法で受け付けています。(本ページの内容をよくお読みになったうえでご寄付をお願いします) - 継続支援 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 単発支援 - (おすすめ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 仮想通貨: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazonの欲しいものリスト](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 高額の寄付(例えば3万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。 ::: :::tip 額に応じて以下の返礼を用意しています。 - 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与 - 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載 - 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載 ::: - 20,000円以上: ↑ + [MisskeyIDプレートの交付](/docs/mi-card/) ::: :::warning いかなる場合(何らかの理由で返礼を受け取れなかった等も含む)も、返金を行うことはできません。ご了承の上、ご寄付をお願いいたします。 ::: :::warning \*\*バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて@syuilo\@misskey.ioまでお申し付けください。また、misskey.io以外のサーバーからはメンション届かない場合があります) ::: (メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります。どうしても連絡がつかない場合はMisskey Projectお問い合わせフォームよりご連絡ください) ::: また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 ================================================ FILE: content/pl/docs/7.become-a-sponsor.md ================================================ # スポンサーについて :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: Misskey Projectはスポンサーを募集しています。 スポンサーになると、MisskeyやMisskey Hubへの会社ロゴ掲載や、技術サポートを受けることができます。 [詳細はこちらからお問い合わせください。](/contact/) ================================================ FILE: content/pl/docs/8.mi-card.md ================================================ # MisskeyIDプレート Misskey Projectへのご支援特典として、物理的な「MisskeyIDプレート」をご用意しています! **MisskeyIDプレートは、シリアルナンバーが刻印されたあなただけの金属製IDプレートです。** ずっしりと重厚な金属製プレートに精密な加工を施し、ステータス性の高いメタルプレートに仕上げました。 しゅいろによって表面、裏面ともに丁寧にデザインされています。一生モノとしてぜひお手元でお楽しみください! 実物の動画は[こちら](https://www.youtube.com/shorts/AdzzwxEa-WE) (照明の関係で金色にも見えますが実際は銀色です) ## プレート仕様 - 寸法: 54.0mm x 85.6mm - 質量: 約34g - 素材: 1.0mm厚鏡面仕上げステンレス鋼 - 加工: 鏡面加工(表面部)、エッチング加工(表面その他)、シルク印刷(ロゴ部)、レーザー刻印(ナンバリング部) - 意匠: しゅいろによるデザイン / シリアルナンバー、バーコード、二次元コード、藍ちゃんサイン刻印付き オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(無料) ### 3Dで見る ::X__Docs__mi-card__InteractiveView :: ※裏面のデザインは省略されています。モデルは実物を正確に再現するものではありません。 ## 交付対象 **累計の支援金額が2万円以上の方に1枚進呈させていただきます。** :::g-details{summary='2枚以上ご希望の場合'} 2枚以上ご希望の場合は、3万円ごとに1枚追加で進呈いたします。 追加で受け取り可能な枚数は、支援額から2万円を引いた額を3万円で割った数になります。 例えば、支援額の合計が5万円以上で合計2枚、8万円以上で合計3枚、というような計算になります。 合計で何枚受け取り可能かを計算できます: ::X__Docs__mi-card__Calculator :: なお、在庫状況によっては、ご希望の枚数をご用意することが叶わない場合があります。 ※申請フォームは一回のみ送信可能となっていますので、2回目以降のご申請はお手数ですが「お問い合わせフォーム」から、申請フォームと同等の内容をご送信ください。 ::: USドルでの支援は、いつ支援かにかかわらず 1USD = 150JPY 換算といたします。その他の通貨の場合の扱いについてはご相談ください。 プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 なお現在、大変申し訳ございませんが配送の都合上、**交付は日本国内に居住されている方のみ対象とさせていただいています。** :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** 各Misskeyサーバーへの支援はこちらの特典の対象となりませんのでご注意ください。 [Misskey Projectへの支援はこちらから](/docs/donate/) ::: :::tip 累計支援額の計算には支援方法、期間は問いません。 例えば、2023年にPayPalで5000円の支援をいただき、2024年にFanboxで12000円、Amazonの欲しいものリストで3000円分のギフトを頂いたようなケースでも、5000 + 12000 + 3000 = 20000 となり受け取りの権利があります。 ::: ## 申請方法 お手数ですが以下のフォームから申請を行ってください。(Googleアカウントが必要です) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## 配送 配送は日本郵便にて行います。**送料は無料です。** - 発送時は追跡番号をメールにてご連絡いたします。 - 土日も配達されます。 - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。お手元に到着時、万が一損傷などありましたら日本郵便へお問い合わせお願いします。 :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 また、配送方法のご指定は承れません。 ::: ## 注意事項 - 仕様は予告なく変更することがあります。 - シリアルナンバーは選択いただけません。 - 細かなキズが製造上少なからず発生しますがご容赦ください。 - 寸法や加工には僅かな個体差があります。個性としてお楽しみください。 - 予告なく配布を一時停止または終了することがあります。 - 予告なく交付基準額を変更することがあります。 - 紛失・破損・盗難等された場合に再発行はできませんので大切に保管してください。 - 転売・譲渡はご遠慮いただけますと幸いです。 ================================================ FILE: content/pl/docs/9.misskey-and-misskey-servers.md ================================================ # MisskeyとMisskeyサーバー 「Misskey」と「Misskeyサーバー」は異なるものを指しています。 しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/th/contact-faq/0.cannot-create-account.md ================================================ --- question: ไม่สามารถสร้างบัญชีได้ --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 หากทำตามขั้นตอนข้างต้นแล้วยังไม่สามารถลงทะเบียนได้ หรือมีข้อสงสัยเกี่ยวกับบางรายการ (เช่น เซิร์ฟเวอร์มีการปรับแต่งเฉพาะตัว) ที่ไม่มีในขั้นตอนข้างต้น กรุณาติดต่อผู้ดูแลเซิร์ฟเวอร์ที่คุณใช้งาน (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/th/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: ไม่สามารถเข้าสู่ระบบได้ --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 การที่คุณไม่สามารถเข้าสู่ระบบบัญชีได้ อาจเกิดปัญหาที่เซิร์ฟเวอร์หรือบัญชีของคุณเอง โปรดติดต่อผู้ดูแลเซิร์ฟเวอร์ที่คุณใช้งานอยู่ そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/th/contact-faq/2.delete-account.md ================================================ --- question: ต้องการลบบัญชี --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 หากยังไม่สามารถลบบัญชีตามคำแนะนำข้างต้นหรือยังคงมีปัญหาในการลบบัญชีหลังจากทำตามขั้นตอนแล้ว โปรดติดต่อผู้ดูแลเซิร์ฟเวอร์ที่คุณใช้งานอยู่ (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/th/contact-faq/3.server-wide-content-mod.md ================================================ --- question: ขอลบเนื้อหาบนเซิร์ฟเวอร์〇〇 --- Misskey Project เป็นองค์กรที่พัฒนาโปรแกรมซอฟต์แวร์ Misskey และไม่ได้ให้บริการเซิร์ฟเวอร์หรือบริการอื่นใดอีก ดังนั้น **การติดต่อผ่านแบบฟอร์มด้านล่างจะไม่ได้รับการตอบกลับ** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 「Misskey」はSNS作成のためのフリーソフトであり、Webサービスではありません。 (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** การควบคุมดูแลเนื้อหาบนเซิร์ฟเวอร์ต่างๆ จะเป็นไปตามกฎของแต่ละเซิร์ฟเวอร์ โปรดติดต่อผู้ดูแลเซิร์ฟเวอร์ต้นทางของเนื้อหานั้น หรือบล็อกผู้ใช้หรือเซิร์ฟเวอร์ดังกล่าวเพื่อเป็นการป้องกันตัวเอง ================================================ FILE: content/th/contact-faq/4.copyright-infringement.md ================================================ --- question: พบการละเมิดลิขสิทธิ์ --- **お問い合わせ先をお間違えになられていますので、正しいお問い合わせ先をご確認ください。** 当サイトは、当団体「Misskey Project」が開発を行うオープンソースソフトウェア「Misskey」の公式サイトです。 ดังนั้น หากพบการละเมิดลิขสิทธิ์ในเซิร์ฟเวอร์ Misskey ใด โปรดติดต่อผู้ดูแลเซิร์ฟเวอร์นั้นโดยตรง (人によっては、Misskeyを使用したWebサービス(Misskeyサーバー)のことを指して単に「Misskey」と呼称していることがあるため、注意が必要です。) Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。 また、それらのサービスを管轄したり、関与したりする立場でもありません。 そのため、特定のサービスに関してのお問い合わせは、**当サイトのフォームにお問い合わせいただいても対応することができません。** ================================================ FILE: content/th/contact-faq/5.client-not-working.md ================================================ --- question: Misskeyが正常に動作しません --- まずは、ブラウザの一般的な問題の解決方法について、「[トラブルシューティング](/docs/for-users/resources/troubleshooting/)」をご確認ください。 チェックすべき項目には以下のようなものがあります: - **カスタムCSSやプラグインを削除**して試してみましたか? - **ログインし直して**確かめてみましたか? - **古いバージョンのOS・ブラウザ**を使用していませんか? - **時間を開けて再度アクセス**してみましたか? - **URLが正しいか**お確かめになりましたか? - **ブラウザのキャッシュ・Cookie**を削除してみましたか? それでも解決しない場合は、 **まずサーバー管理者** にお問い合わせください。 Misskey Projectに不具合報告するように指示を受けた場合は、 **以下のフォームではなく** 開発プラットフォームである[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)にバグ報告をお寄せください。 以下のお問い合わせフォームに不具合報告を行ってもすぐ対応することができません。必ず[GitHub](https://github.com/misskey-dev/misskey/issues/new/choose)に投稿してください。 ================================================ FILE: content/th/contact-faq/6.mention-spam.md ================================================ --- question: Misskeyやサーバーサポートを騙るアカウントからメッセージを受け取った --- **Misskey Projectがそのようなメッセージを送信することはありません。スパムメッセージの可能性が疑われますので、まずはお使いのサーバーの管理者にお問い合わせください。** Misskey や Misskey Project、あるいは特定のサーバーのサポート窓口を騙るアカウントから突然「アカウントが停止されたので対応が必要」などのメッセージと共に見知らぬサイトへのリンクが記載されている場合や、当該メンションに対して応答するように促すなどの何らかの行動を促す指示がある場合は、**スパムメッセージである可能性が高いです。** このようなメッセージに遭遇した場合は、まずお使いのサーバーの管理者にお問い合わせください。**ノート内のリンクをクリックしたり、そのノートに返信したりすると、思わぬトラブルに巻き込まれることがあるので注意してください。** (Misskey Projectはソフトウェアの基本的なソースコードの無償提供のみ行なっており、MisskeyやMisskey派生ソフトウェアを使用したサーバーやサービスの提供、運営などは一切行っていません。また、それらのサービスを管轄したり、関与したりする立場でもありませんから、お問い合わせは**お使いのサーバーの管理者**にお願いします。Misskey Projectでは対応いたしかねます。) ================================================ FILE: content/th/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: 'เอกสารเกี่ยวกับ Misskey' --- # เกี่ยวกับ Misskey Misskey เป็นโครงการแพลตฟอร์มไมโครบล็อกแบบกระจายศูนย์ที่เป็นโอเพนซอร์ส การพัฒนาเริ่มต้นในญี่ปุ่นโดย syuilo ตั้งแต่ปี 2014 มีลักษณะเด่นที่ฟีเจอร์อันหลากหลาย เช่น ไดรฟ์ รีแอคชั่น รวมถึง UI ที่มีความสามารถในการปรับแต่งสูง ![ภาพจับหน้าจอของ Misskey](/img/hero/misskey-light.png) ## ประวัติ ในช่วงเริ่มต้นการพัฒนา เน้นไปที่การให้บริการกระดานสนทนาเป็นหลัก แต่เมื่อผู้ใช้เริ่มโพสต์ข้อความสั้นและการเพิ่มฟีเจอร์ไทม์ไลน์ที่เรียงตามลำดับเวลา ความนิยมก็เพิ่มสูงขึ้น จนทำให้ฟีเจอร์นี้กลายเป็นส่วนหลักในการพัฒนา ตอนแรกเองก็ไม่ได้เป็นระบบกระจายศูนย์ แต่ในปี 2018 ได้มีการนำ ActivityPub มาใช้ ทำให้กลายเป็นระบบกระจายศูนย์ ผลคือ บริการเป็นที่รู้จักมากขึ้นและถูกใช้อย่างกว้างขวางจนถึงปัจจุบัน :::tip ชื่อ Misskey มาจากเนื้อเพลง Brain Diver โดยศิลปิน May’n ซึ่ง syuilo ฟังอยู่ในขณะนั้น ::: ใครๆ ก็เข้าร่วมการพัฒนาได้ และการพัฒนายังคงดำเนินต่อไปอย่างมีชีวิตชีวาถึงปัจจุบัน [พิพิธภัณฑ์ประวัติศาสตร์ Misskey](/about-us/history/) ## กระจายศูนย์คืออะไร? บริการแบบกระจาย(distributed) หรือที่เรียกว่า ไม่เป็นศูนย์กลาง(decentralized) คือบริการที่แบ่งชุมชนออกเป็นหลายเซิร์ฟเวอร์แต่สื่อสารรวมกัน (สหพันธ์, federation) เพื่อแบ่งปันเนื้อหา สร้างเป็นเครือข่าย(Fediverse)ขึ้นมา อันเป็นลักษณะเฉพาะของบริการนี้ บริการที่มีเพียงหนึ่งเซิร์ฟเวอร์ หรือหลายเซิร์ฟเวอร์แต่ทำงานแยกจากกันไม่เกี่ยวข้องกัน จะเรียกว่าเป็นบริการแบบศูนย์กลาง ซึ่งบริการส่วนใหญ่เช่น Twitter และ Facebook นับรวมอยู่ในประเภทนี้ ข้อดีของบริการแบบกระจายศูนย์ คือสามารถเลือกเซิร์ฟเวอร์ที่การบริหารและธีมเหมาะกับตัวคุณเองได้อย่างอิสระคุณสามารถสร้างเซิร์ฟเวอร์ของตัวเองได้ด้วยและธรรมชาติของสหพันธ์ทำให้สามารถเข้าถึงชุมชนเดียวกันได้ไม่ว่าจะเลือกเซิร์ฟเวอร์ไหนก็ตาม ## โอเพนซอร์สตลอดกาลตลอดไป Misskey จะเป็นซอฟต์แวร์โอเพนซอร์สเสมอทั้งในอดีตและอนาคตโอเพนซอร์ส หมายถึง การที่โค้ดต้นฉบับ(source code)ของซอฟต์แวร์(โปรแกรม)ถูกเผยแพร่สู่สาธารณะอย่างง่าย ๆการแก้ไขโค้ดต้นฉบับและการแจกจ่ายใหม่อาจเป็นส่วนหนึ่งของนิยามของโอเพนซอร์ส ซอร์สโค้ดทั้งหมดของ Misskey อยู่ภายใต้ [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE) ซึ่งเป็นสัญญาอนุญาตโอเพนซอร์ส และ[เปิดเผย](https://github.com/misskey-dev)ให้ทุกคนสามารถเข้าชม ใช้งาน แก้ไข ปรับเปลี่ยน และแจกจ่ายใหม่ได้อย่างอิสระ โอเพนซอร์สมีข้อดีหลายประการ เช่น สามารถดัดแปลงมันได้ตามที่ต้องการ ตรวจสอบว่ามีการประมวลผลที่ไม่ก่ออันตรายหรือไม่ และการเปิดโอกาสให้ทุกคนเข้ามามีส่วนร่วมในการพัฒนาได้ การเป็นโอเพนซอร์สจึงเป็นสิ่งจำเป็นสำหรับการทำให้ระบบกระจายศูนย์ที่กล่าวถึงข้างต้นเป็นจริง ยกตัวอย่างอีกครั้งว่า Twitter หรือ Facebook ซึ่งเป็นบริการเน้นกำไรเป็นหลักไม่ได้เป็นโอเพนซอร์ส :::tip ในเชิงเทคนิค โค้ดต้นฉบับของ Misskey ถูกจัดการด้วย Git และเรปอสิทอรี่ถูก[โฮสต์อยู่บน GitHub](https://github.com/misskey-dev) ::: ## เข้าร่วมการพัฒนา หรือสนับสนุนโครงการ หากชื่นชอบ Misskey โปรดพิจารณาให้การสนับสนุนโครงการนี้การมีส่วนร่วมในโครงการสามารถทำได้หลายวิธีตามที่แนะนำด้านล่างนี้บางวิธีไม่ต้องใช้ทักษะการพัฒนาระบบ ทำให้ใครก็สามารถเข้าร่วมได้อย่างง่ายดายเรายินดีต้อนรับเสมอ ### เพิ่มฟีเจอร์ หรือแก้ไขบั๊ก หากมีทักษะด้านวิศวกรรมซอฟต์แวร์ สามารถมีส่วนร่วมในโครงการได้โดยการแก้ไขโค้ดต้นฉบับ ดูคู่มือการมีส่วนร่วมได้[ที่นี่](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md) ### เข้าร่วมการอภิปราย มีส่วนร่วมด้วยการแสดงความคิดเห็นเกี่ยวกับฟีเจอร์ใหม่หรือฟีเจอร์ที่มีอยู่แล้ว หรือรายงานข้อบกพร่อง การอภิปรายในเรื่องเหล่านี้สามารถทำได้ที่ [GitHub](https://github.com/misskey-dev) หรือที่ [ฟอรัม](https://forum.misskey.io/) เป็นต้น ### แปลข้อความ Misskey รองรับหลายภาษา (เรียกว่า i18n ย่อมาจาก internationalization)ภาษาต้นฉบับหลักคือภาษาญี่ปุ่น มีการแปลเป็นภาษาอื่นๆ โดยผู้ที่มีจิตอาสา สามารถมีส่วนร่วมในงานแปลเพื่อช่วยเหลือ Misskey ได้ ซึ่ง Misskey ใช้บริการ Crowdin ในการจัดการการแปล ### โพสต์ความประทับใจ นอกจากการรายงานข้อบกพร่องแล้ว อย่าลืมที่จะแบ่งปันความคิดเห็นเชิงบวกเกี่ยวกับจุดเด่นและความสนุกสนานของ Misskey ด้วยสิ่งเหล่านี้จะช่วยเป็นกำลังใจในการพัฒนา แม้ว่าจะเป็นทางอ้อม แต่มันก็ยังถือว่าเป็นการมีส่วนร่วมในโครงการนี้ ### เพิ่มจำนวนมิสคิสต์ มิสคิสต์ (Misskist) หมายถึง ผู้ที่ใช้ Misskey หากคุณแนะนำหรือเผยแพร่ Misskey ให้กับคนรู้จัก จำนวนมิสคิสต์ก็เพิ่มมากขึ้น จะช่วยเพิ่มแรงจูงใจในการพัฒนาได้มากขึ้น ### บริจาค [โปรดดูเพิ่มเติมตรงนี้](/docs/donate/) ## คำถามที่พบบ่อย ### โครงการมีจุดมุ่งหมายเพื่ออะไร? ถ้าจะพูดให้ชัดเจนก็คือ Misskey ตั้งเป้าที่จะเป็นแพลตฟอร์มทั่วไปที่ใช้งานได้อย่างกว้างขวาง แม้จะดูเป็นแนวทางที่คลุมเครือ แต่ไม่มีการพัฒนาโดยอิงตามความคิดหรือวิสัยทัศน์ใด ๆ (เช่น การต่อต้านการรวมศูนย์) ซึ่งทำให้ Misskey เป็นแพลตฟอร์มที่มีความยืดหยุ่นและไม่ถูกจำกัดในทิศทางเฉพาะ ### พัฒนาโดยบริษัทไหม? ไม่การพัฒนา Misskey ดำเนินการโดยบุคคลทั่วไป และไม่ใช่เชิงพาณิชย์ ดังนั้นจึงไม่มีการเกี่ยวข้องกับบริษัทใดๆ สมาชิกทีมพัฒนาโดยพื้นฐานก็คืออาสาสมัคร แม้ว่าจะมีการสนับสนุนจากบริษัทในบางครั้ง แต่การพัฒนาก็ยังคงเป็นชุมชนบุคคลทั่วไปเป็นหลัก ### ใครเป็นคนบริหารจัดการ? Misskey เป็นระบบแบบกระจายศูนย์ ดังนั้นแต่ละเซิร์ฟเวอร์จะมีผู้ดูแลที่แตกต่างกันไปดังนั้น Misskey ไม่ได้ถูกควบคุมโดยบุคคลหรือบริษัทเฉพาะเจาะจงทั้งหมด นอกจากนี้ ทีมพัฒนาไม่ได้รับผิดชอบการดำเนินการเซิร์ฟเวอร์ ดังนั้นหากมีข้อสงสัยเกี่ยวกับการดำเนินการ ให้ติดต่อกับผู้ดูแลเซิร์ฟเวอร์ที่คุณใช้ สามารถตรวจสอบข้อมูลของเซิร์ฟเวอร์ได้จากหน้าแสดงข้อมูลเกี่ยวกับเซิร์ฟเวอร์ หากคุณสร้างเซิร์ฟเวอร์ของเอง คุณก็จะเป็นผู้ดูแลเซิร์ฟเวอร์นั้นเอง ### เลือกเซิร์ฟเวอร์ใดดี? [รายการเซิร์ฟเวอร์อยู่นี่](/servers/) บางเซิร์ฟเวอร์อาจกำหนดธีมของชุมชน (เช่น เน้นของชอบประเภทนี้โดยเฉพาะ) ดังนั้นถ้าพบเซิร์ฟเวอร์ใดที่มีธีมที่ตรงกับความสนใจการเลือกเซิร์ฟเวอร์นั้นอาจเป็นตัวเลือกที่ดี นอกจากนี้ ยังมีมุมมองอื่นๆ ให้พิจารณา เช่น ขนาดของเซิร์ฟเวอร์ กลุ่มผู้ใช้ ประเทศ ภาษา และความเชื่อถือได้ของผู้ดูแลเซิร์ฟเวอร์ อย่างไรก็ตาม ไม่มีเซิร์ฟเวอร์ Misskey อย่างเป็นทางการคุณยังสามารถเลือกสร้างเซิร์ฟเวอร์ใหม่ของคุณเองได้ พื้นฐานแล้วไม่ว่าจะเลือกเซิร์ฟเวอร์ไหน ก็สามารถเชื่อมต่อกับผู้ใช้จากเซิร์ฟเวอร์ทั้งหมดได้ ### จะตั้งเซิร์ฟเวอร์ได้อย่างไร? ขอบพระคุณที่สนใจในการสร้างเซิร์ฟเวอร์ Misskey การสร้างเซิร์ฟเวอร์ Misskey มีหลายวิธี เช่น การใช้บริการเซิร์ฟเวอร์ให้เช่า หรือการสร้างสภาพแวดล้อมแบบกึ่งอัตโนมัติ (แน่นอนว่าสามารถสร้างเซิร์ฟเวอร์ด้วยอัตโนมือได้ด้วยเช่นกัน)รายละเอียดเพิ่มเติมสามารถดูได้[ที่นี่](/docs/for-admin/install/guides/) ### ใช้เทคโนโลยีอะไรบ้าง? Misskey ได้เปลี่ยนแปลงเทคโนโลยีที่ใช้ไปอย่างมากตลอดระยะเวลาที่พัฒนาสำหรับช่วงเริ่มต้นนั้นใช้ MySQL + PHP + jQuery แต่ปัจจุบันได้เปลี่ยนไปใช้ดังนี้ - ฝั่งเซิร์ฟเวอร์: Node.js - ฐานข้อมูล: PostgreSQL、Redis - UI Framework: Vue.js - ภาษาโปรแกรม: TypeScript นอกจากนี้ยังมีการพัฒนาเทคโนโลยีเฉพาะที่เกิดจาก Misskey เอง เช่น MFM และ AiScript ### เป็นฟอร์กของ Mastodon ไหม? ไม่ได้เป็นฟอร์กแต่อย่างใดMisskey เป็นโครงการที่แตกต่างจาก Mastodon และโครงการอื่นๆ อย่างสิ้นเชิง ในด้านการพัฒนา Misskey ก็เริ่มพัฒนามาก่อนหน้านั้นนานแล้วอย่างไรก็ดี เพิ่งมาเป็นระบบกระจายศูนย์หลังจากการเปิดตัวของ Mastodon นอกเหนือจากที่ทั้งสองใช้โปรโตคอล ActivityPub สำหรับระบบฯแล้ว ทั้งสองโครงการไม่มีความเกี่ยวข้องกันเป็นพิเศษ ### มีแอปบน iOS/Android ไหม? ไม่มีการพัฒนาแอปเนทีฟสำหรับระบบปฏิบัติการดังกล่าวอย่างเป็นทางการ แต่มีแอปจากบุคคลที่สามหลายตัว ดูรายละเอียดเพิ่มเติมได้[ที่นี่](/docs/for-users/resources/apps/) อย่างไรก็ตาม แอปจากบุคคลที่สามมักจะมีความล่าช้าในการรองรับฟังก์ชันต่างๆ ดังนั้น หากไม่มีความต้องการพิเศษใดๆ ขอแนะนำให้ใช้เว็บไคลเอนต์ของ Misskey เป็นหลัก นอกจากนี้ เว็บไคลเอนต์ของ Misskey ยังรองรับ PWA (Progressive Web App) ซึ่งทำให้สามารถทำงานเหมือนแอปเนทีฟได้อีกด้วย :::tip ดูคู่มือวิธีตั้งค่าจัดเตรียม PWA อย่างละเอียดได้ที่[ตรงนี้](/docs/for-users/stepped-guides/how-to-use-pwa/) ::: ### รับโลโก้และไอคอนของ Misskey ได้ที่ไหน? [อยู่ตรงนี้](/brand-assets/) ### สาวน่ารักหูแมวที่พบได้ในบางครั้งคือใคร? :::fukidashi{chara="doya_ai" charaName="藍(ไอ)"} สำหรับข้อมูลเพิ่มเติม ดูที่[โฮมเพจ](https://xn--931a.moe/)นี้ได้เลยค่ะ! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ(ชุอิโละ)" direction="right"} เทพผู้คุ้มครอง Misskey, ไอจังครับ(ไอจังหน้าฮักขนาดอิ) ::: ================================================ FILE: content/th/docs/2.for-users/1.index.md ================================================ # คู่มือสำหรับผู้ใช้ ในส่วนนี้จะกล่าวถึงฟีเจอร์ทั่วไปที่มีประโยชน์สำหรับทั้งผู้เริ่มต้นใช้งานและผู้ที่ใช้ได้อย่างชำนาญแล้ว ================================================ FILE: content/th/docs/2.for-users/2.onboarding/0.index.md ================================================ # เริ่มต้นใช้งาน Misskey กันเต๊อะ ส่วนนี้จะมีบทช่วยสอนเกี่ยวกับการเริ่มต้นใช้งาน Misskey บทความหลัก - ข้อควรระวังสำหรับแพลตฟอร์มแบบกระจายศูนย์ - เซิร์ฟเวอร์คืออะไร?วิธีเลือกเซิร์ฟเวอร์? - ขั้นตอนการลงทะเบียน - ความรู้พื้นฐานขั้นต่ำ หากทำตามคำแนะนำเหล่านี้ คุณจะสามารถเริ่มใช้ Misskey ได้ทันที ถ้าพร้อมแล้ว มาเริ่มกันเลย!(กด “ถัดไป” เพื่อดำเนินการต่อ) ================================================ FILE: content/th/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: 'นี่เป็นข้อควรระวังเบื้องต้นก่อนสร้างบัญชีบนเซิร์ฟเวอร์ Misskey' --- # ข้อควรระวังเบื้องต้น มีบางจุดที่ต้องระวังเมื่อใช้บริการ Misskey - เนื่องจากธรรมชาติของระบบการกระจายศูนย์ แม้ว่าจะลบข้อมูลที่อัปโหลดไปแล้ว ก็ไม่รับประกันว่าจะถูกลบออกจากเซิร์ฟเวอร์อื่นๆ ทั้งหมด(เป็นเรื่องจริงปกติของอินเทอร์เน็ตด้วยเช่นกัน) - แม้ว่าจะสร้างโพสต์แบบส่วนตัว แต่ก็ไม่รับประกันว่าเซิร์ฟเวอร์อื่นจะถือว่าโพสต์เป็นแบบส่วนตัวในลักษณะเดียวกันโปรดใช้ความระมัดระวังอย่างสูงในการโพสต์ข้อมูลส่วนบุคคลหรือข้อมูลที่เป็นความลับ(เป็นเรื่องจริงปกติของอินเทอร์เน็ตด้วยเช่นกัน) - ฟีเจอร์ “ไดรฟ์” ใน Misskey ไม่ใช่บริการคลาวด์สโตเรจฟีเจอร์นี้ออกแบบมาเพื่อจัดการและใช้งานไฟล์ที่ถูกอัปโหลด **ใครๆ ก็สามารถเข้าถึงข้อมูลที่อัปโหลดได้หากทราบ URL ของมัน ไม่ว่ามันจะเคยแนบไว้ในโน้ตหรือไม่ก็ตาม**สำหรับการแลกเปลี่ยนข้อมูลอันเป็นความลับ ควรใช้บริการอื่นที่ออกแบบเพื่อเรื่องนี้โดยเฉพาะ - การลบบัญชีเป็นกระบวนการที่มีภาระสูงและใช้เวลานานในกรณีที่มีข้อมูลอัปโหลดจำนวนมาก อาจทำให้ไม่สามารถลบบัญชีได้ - บางเซิร์ฟเวอร์อาจใช้รายได้จากโฆษณาเพื่อครอบคลุมค่าใช้จ่ายในการดำเนินงานนอกจากนี้ โปรแกรมบล็อกโฆษณามักจะบล็อกเนื้อหาหรือฟีเจอร์ที่ไม่เกี่ยวข้องกับโฆษณา ทำให้การทำงานของไคลเอนต์มีปัญหา และอาจทำให้ไม่สามารถใช้งาน Misskey ได้ตามปกติด้วยเหตุผลนี้ ควรใช้ Misskey โดยปิดตัวบล็อกโฆษณาหรือฟังก์ชันที่คล้ายคลึงกัน โปรดทำความเข้าใจสิ่งเหล่านี้และขอให้สนุกกับการใช้บริการ ================================================ FILE: content/th/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "การลงทะเบียนผู้ใช้และการดำเนินการพื้นฐานในเซิร์ฟเวอร์ Misskey" --- # ค้นหาเซิร์ฟเวอร์ Misskey Misskey เป็นทั้งซอฟต์แวร์และโครงการ เซิร์ฟเวอร์ที่ใช้งาน Misskey ที่เผยแพร่ทางอินเทอร์เน็ตก็เรียกว่า**เซิร์ฟเวอร์** การใช้ Misskey คุณต้องสร้างบัญชีในเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งและใช้งานในเซิร์ฟเวอร์นั้น สามารถเลือกเซิร์ฟเวอร์ที่ชอบจาก[รายการเซิร์ฟเวอร์](/servers/)ได้ :::tip ไม่ว่าจะเลือกเซิร์ฟเวอร์ใด ก็สามารถโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นได้ :::g-details{summary='รายละเอียด'} Misskey มีฟังก์ชันเกี่ยวข้องกับสหพันธ์ ฟังก์ชันสหพันธ์ช่วยให้ผู้ใช้จากเซิร์ฟเวอร์อื่นสามารถติดตาม รีแอคชั่น รีโน้ต และอื่นๆ ได้เหมือนกับผู้ใช้ในเซิร์ฟเวอร์เดียวกัน ฟังก์ชันสหพันธ์ของ Misskey ใช้พื้นฐานจากมาตรฐานเปิดที่เรียกว่า ActivityPub ซึ่งทำให้สามารถทำงานร่วมกับซอฟต์แวร์อื่นๆ เช่น Mastodon และ Pleroma ได้ ::: ::: ## วิธีเลือกเซิร์ฟเวอร์ ### ธีมของเซิร์ฟเวอร์ เซิร์ฟเวอร์บางแห่งอาจมีธีมที่กำหนดไว้ เช่น “เน้นของชอบประเภทนี้โดยเฉพาะ” เป็นต้น จึงแนะนำให้ค้นหาเซิร์ฟเวอร์ที่มีธีมที่ตรงกับความสนใจ :::tip ดูรายการเซิร์ฟเวอร์ได้[ที่นี่](/servers/) ::: ================================================ FILE: content/th/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # ลงทะเบียนในเซิร์ฟเวอร์ เมื่อตัดสินใจเรื่องเซิร์ฟเวอร์ที่จะลงทะเบียนได้แล้ว ถึงเวลามาสร้างบัญชีกัน :::tip ที่นี่จะใช้ Misskey.io เป็นตัวอย่าง แต่สำหรับเซิร์ฟเวอร์อื่นๆ โดยทั่วไปแล้ววิธีการจะคล้ายๆ กัน อย่างไรก็ดี ข้อมูลที่ต้องกรอกอาจแตกต่างกันไปตามเซิร์ฟเวอร์โปรดติดต่อผู้ดูแลเซิร์ฟเวอร์สำหรับรายละเอียดเพิ่มเติม ::: ## ลงทะเบียน ก่อนอื่น ให้มองหาปุ่ม “ลงทะเบียนในเซิร์ฟเวอร์นี้” จากหน้าแรกแล้วคลิก ![ปุ่มลงทะเบียนในเซิร์ฟเวอร์นี้](/img/docs/for-users/onboarding/join-server/1.ja.png) ถัดไป ให้ปฏิบัติตามคำแนะนำบนหน้าจอเพื่อตรวจสอบข้อกำหนดและกรอกข้อมูลที่จำเป็น ข้อมูลหลักที่ควรกรอกมีดังนี้ - รหัสเชิญ (เฉพาะกรณีที่การลงทะเบียนเป็นแบบรับเชิญหากไม่มีมันก็จะไม่สามารถลงทะเบียนได้) - ชื่อผู้ใช้ (**ไม่สามารถเปลี่ยนแปลงได้ในภายหลังต่อให้ลบบัญชีนั้นทิ้ง ก็ไม่สามารถใช้ชื่อผู้ใช้เดิมได้**) - ที่อยู่อีเมล (บางเซิร์ฟเวอร์อาจไม่จำเป็น) - รหัสผ่าน ![กรอกข้อมูลที่จำเป็น](/img/docs/for-users/onboarding/join-server/2.ja.png) เมื่อกรอกข้อมูลที่จำเป็นเสร็จสิ้นแล้ว หากเซิร์ฟเวอร์ต้องการที่อยู่อีเมล คุณจะได้รับอีเมลยืนยัน ดังนั้นให้คลิกลิงก์ในอีเมลโดยเร็ว ![อีเมลยืนยัน](/img/docs/for-users/onboarding/join-server/3.ja.png) จบแล้วจ้า คุณได้ลงทะเบียนในเซิร์ฟเวอร์ Misskey เป็นที่เรียบร้อยแล้ว! ตอนนี้คุณก็เป็น[มิสคิสต์](../resources/glossary/#มิสคิสต์)แล้ว!ขอให้สนุกกับประสบการณ์การสื่อสารแบบใหม่และน่าตื่นเต้นนะ ================================================ FILE: content/th/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # ความรู้พื้นฐานเกี่ยวกับ Misskey หลังจากสร้างบัญชีเสร็จเรียบร้อยแล้ว สิ่งต่อไปนี้คือสิ่งที่ควรรู้เบื้องต้น ## โน้ต การโพสต์ใน Misskey จะถูกเรียกว่า “โน้ต”มันมีฟีเจอร์มากมายกว่า SNS ทั่วไป (เช่น Twitter) ดังนั้นก่อนที่จะโพสต์เป็นครั้งแรก โปรดตรวจสอบฟีเจอร์ต่างๆ ให้มั่นใจก่อน แล้วโพสต์อย่างมืออาชีพกัน! :::tip สำหรับข้อมูลเพิ่มเติมดูที่ “[โน้ต](/docs/for-users/features/note/)” ::: ## ไทม์ไลน์ Misskey มีไทม์ไลน์หลายรายการหลายแบบชื่อมันเพียงอย่างเดียวอาจจะฟังดูไม่ชัดเจนมากนัก ดังนั้นเรามาทำความรู้จักกับการทำงานของแต่ละไทม์ไลน์กันเถอะ :::tip สำหรับข้อมูลเพิ่มเติมดูที่ “[ไทม์ไลน์](/docs/for-users/features/timeline/)” ::: ## อื่นๆ นอกจากนี้ Misskey ยังมีฟีเจอร์สนุกๆ ให้ใช้มากมาย!คำอธิบายเกี่ยวกับฟีเจอร์ทั้งหมดได้ถูกบันทึกไว้[ที่นี่](/docs/for-users/features/)แล้ว อย่าลืมตรวจสอบดูนะ! ================================================ FILE: content/th/docs/2.for-users/3.features/1.index.md ================================================ --- description: "บทนี้อธิบายเกี่ยวกับฟังก์ชันที่หลายหลากซึ่งเป็นลักษณะเด่นของ Misskey" --- # ฟังก์ชันหลายหลาก ลักษณะเด่นของ Misskey อยู่ที่ฟังก์ชันสุดหลายหลากซึ่งไม่พบในระบบไมโครบล็อกอื่นๆด้านล่างต่อไปนี้จะเป็นการอธิบายฟังก์ชันต่างๆ เหล่านั้น ================================================ FILE: content/th/docs/2.for-users/3.features/ads.md ================================================ # โฆษณา Misskey มีฟังก์ชันที่ให้คุณแสดงโฆษณาจากเซิร์ฟเวอร์บนไทม์ไลน์ของคุณ ฯลฯ คุณสามารถลดความถี่ในการแสดงโฆษณาได้โดยการคลิกไอคอนที่แสดงที่มุมขวาบนของโฆษณา :::tip หากจำนวนโฆษณาทั้งหมดมีน้อย โฆษณาเหล่านั้นอาจยังคงแสดงต่อไปแม้ว่าจะลดความถี่ในการแสดงผลแล้วก็ตาม ::: ## การตั้งค่าการโฆษณา (สำหรับผู้ดูแลระบบ) คุณสามารถเพิ่ม แก้ไข และลบโฆษณาจากแผงควบคุมของเซิร์ฟเวอร์ของคุณได้ คุณสามารถตั้งค่ารูปภาพ, URL ปลายทาง, รูปร่าง และอัตราส่วนการแสดงผลสำหรับโฆษณาได้ ================================================ FILE: content/th/docs/2.for-users/3.features/antenna.md ================================================ # เสาอากาศ เสาอากาศเป็นฟังก์ชันรวบรวมโน้ตที่ตรงตามเงื่อนไขโดยอัตโนมัติ เมื่อเสาอากาศที่ตั้งเงื่อนไขไว้แล้วถูกสร้างขึ้น และมีการโพสต์โน้ตที่ตรงตามเงื่อนไข โน้ตจะถูกเพิ่มลงในไทม์ไลน์ของเสาอากาศนั้น ณ เวลานั้นทันที ================================================ FILE: content/th/docs/2.for-users/3.features/charts.md ================================================ # แผนภูมิ Misskey มีความสามารถในการสร้างและแสดงแผนภูมิสำหรับแหล่งข้อมูลต่างๆ บนเซิร์ฟเวอร์ ด้วยการใช้แผนภูมิ คุณสามารถเข้าใจสถานะการใช้งานเซิร์ฟเวอร์ กิจกรรมของผู้ใช้แต่ละคน ฯลฯ ได้อย่างชัดเจน สามารถดูแผนภูมิเซิร์ฟเวอร์ได้จากหน้าข้อมูลเซิร์ฟเวอร์ ด้านล่างนี้เป็นคำอธิบายของแต่ละแผนภูมิและรายการต่างๆ ## แผนภูมิสหพันธ์ นี่คือแผนภูมิเกี่ยวกับเซิร์ฟเวอร์รวม ### Pub จำนวนเซิร์ฟเวอร์ที่กระจายกิจกรรม กล่าวอีกนัยหนึ่ง มันแสดงถึงจำนวนผู้ใช้ระยะไกลบนเซิร์ฟเวอร์ของคุณที่ติดตามผู้ใช้บนเซิร์ฟเวอร์ของคุณ ### Sub จำนวนเซิร์ฟเวอร์ที่ได้รับกิจกรรม กล่าวอีกนัยหนึ่ง มันแสดงถึงจำนวนผู้ใช้ระยะไกลบนเซิร์ฟเวอร์ของคุณที่ไม่ซ้ำกันซึ่งตามมาโดยผู้ใช้บนเซิร์ฟเวอร์ของคุณ ### Received จำนวนเซิร์ฟเวอร์ที่ส่งกิจกรรม ### Delivered จำนวนเซิร์ฟเวอร์ที่ส่งมอบกิจกรรม ### Stalled จำนวนเซิร์ฟเวอร์ที่พบข้อผิดพลาดเมื่อส่งมอบกิจกรรม ## แผนภูมิผู้ใช้ที่ยังคงการเคลื่อนไหวอยู่ แผนภูมิการใช้งานผู้ใช้เซิร์ฟเวอร์ตนเอง ### Read & Write จำนวนผู้ใช้ที่ดูและเขียน ### Read จำนวนผู้ใช้ที่ดูมัน ### Write จำนวนผู้ใช้ที่โพสต์ ### < Week จำนวนผู้ใช้ที่ดูบัญชีที่สร้างขึ้นไม่ถึงหนึ่งสัปดาห์ที่ผ่านมา ### < Month จำนวนผู้ใช้ที่ดูบัญชีและบัญชีที่สร้างขึ้นไม่ถึงหนึ่งเดือนที่ผ่านมา ### < Year จำนวนผู้ใช้ที่ดูบัญชีที่สร้างขึ้นไม่ถึงหนึ่งปีที่ผ่านมา ### > Week จำนวนผู้ใช้ที่ดูบัญชีและบัญชีที่ถูกสร้างขึ้นนานกว่าหนึ่งสัปดาห์ที่ผ่านมา ### > Month จำนวนผู้ใช้ที่ดูบัญชีและบัญชีที่ถูกสร้างขึ้นมากกว่าหนึ่งเดือนที่ผ่านมา ### > Year จำนวนผู้ใช้ที่ดูบัญชีและบัญชีที่ถูกสร้างขึ้นมากกว่าหนึ่งปีที่ผ่านมา ================================================ FILE: content/th/docs/2.for-users/3.features/clip.md ================================================ # คลิป คลิปเป็นฟังก์ชันที่สามารถรวมโน้ตหลาย ๆ อันเข้าด้วยกันไม่ว่าจะเป็นโน้ตของตัวเองหรือของผู้อื่นก็ได้ เราสามารถสร้างคลิปได้หลายอันและตั้งชื่อหรือคำอธิบายเพื่อจัดการมันได้นอกจากนี้ยังสามารถเลือกได้ว่าจะเผยแพร่คลิปให้ผู้ใช้อื่นเห็นหรือไม่ การสร้างคลิป ให้คลิก “เพิ่ม” ใน[หน้าจัดการคลิป](x-mi-web://my/clips) การเพิ่มโน้ตลงในคลิป ให้คลิก “คลิป” จากเมนูของโน้ตนั้นๆ และเลือกคลิปที่ต้องการเพิ่มใส่ ================================================ FILE: content/th/docs/2.for-users/3.features/custom-emoji.md ================================================ # เอโมจิที่กำหนดเอง เอโมจิที่กำหนดเองเป็นฟังก์ชันที่สามารถใช้ภาพที่เตรียมไว้ในเซิร์ฟเวอร์เป็นเอโมจิได้ สามารถใช้ได้ในสถานที่ต่าง ๆ เช่น โน้ต รีแอคชั่น แชท แนะนำตัว ชื่อ ฯลฯ ในการใช้เอโมจิที่กำหนดเองในสถานที่เหล่านั้น ให้กดปุ่มตัวจิ้มเอโมจิ (ถ้ามี) หรือพิมพ์ `:` เพื่อขึ้นคำเดาเอโมจิ และเมื่อพบสตริงในรูปแบบ `:foo:` โดย `foo` จะถูกตีความว่าเป็นชื่อเอโมจิฯ และสตริงนั้นจะถูกแทนที่ด้วยภาพเอโมจิฯที่เกี่ยวข้อง วิธีดูว่าในเซิร์ฟเวอร์นั้นมีเอโมจิที่กำหนดเองใดบ้าง ได้ที่ [**เอโมจิที่กำหนดเอง**](x-mi-web://about#emojis) มันจะอยู่ในส่วน **ข้อมูลเซิร์ฟเวอร์** ของ Misskey Web ================================================ FILE: content/th/docs/2.for-users/3.features/deck.md ================================================ # เด็ค เด็คเป็นหนึ่งใน Ui ที่มีอยู่ด้วยการแสดงหลายมุมมองที่เรียกว่า "คอลัมน์" เคียงข้างกัน ทำให้สามารถปรับแต่งได้สูงและช่วยให้คุณสร้าง UI ที่มีข้อมูลจำนวนมากได้ หากคุณเพิ่มคอลัมน์หลัก เนื้อหาจะแสดงในคอลัมน์หลักเมื่อคุณแสดงบันทึกหรือโปรไฟล์บนเพจ ## เพิ่มคอลัมน์ คุณสามารถเพิ่มคอลัมน์ใดก็ได้โดยคลิกขวาบนพื้นหลังของเด็ค และเลือก "เพิ่มคอลัมน์" ## ย้ายคอลัมน์ คอลัมน์สามารถสลับกับคอลัมน์อื่นได้โดยการลากและวาง หรือย้ายจากเมนูคอลัมน์ได้ (คลิกขวาที่ส่วนหัวของคอลัมน์) ## การแบ่งคอลัมน์ตามแนวนอน คอลัมน์สามารถจัดเรียงได้ไม่เพียงแต่ในแนวนอนเท่านั้น แต่ยังรวมถึงแนวตั้งด้วย เปิดเมนูคอลัมน์และเลือกกองไปทางซ้ายเพื่อย้ายคอลัมน์ปัจจุบันไปด้านล่างคอลัมน์ด้านซ้าย หากต้องการยกเลิกการแบ่งตามแนวตั้ง ให้เลือก "ขยายไปทางขวา" จากเมนูคอลัมน์ ## ตั้งค่าคอลัมน์ คุณสามารถแก้ไขการตั้งค่าคอลัมน์ได้โดยเลือก "แก้ไข" จากเมนูคอลัมน์คุณสามารถเปลี่ยนชื่อคอลัมน์และเปลี่ยนความกว้างได้ ## ตั้งค่าเด็ค ตั้งค่าเกี่ยวกับเด็ค สามารถตั้งได้ที่ [ตั้งค่า/เด็ค](x-mi-web://settings/deck) ================================================ FILE: content/th/docs/2.for-users/3.features/dev-mode.md ================================================ # 開発者モード [設定 > その他 > 開発者](x-mi-web://settings/other)から設定できる開発者モードを有効にすると、ノートやメディアのIDをメニューから直接コピーできるようになるなどの開発者にとって便利な機能を利用できるようになります。 ================================================ FILE: content/th/docs/2.for-users/3.features/drive.md ================================================ # Drive ไดรฟ์เป็นคุณสมบัติที่ช่วยให้คุณจัดการไฟล์บน Misskey :::tip ในทางเทคนิคแล้ว ไฟล์ทั้งหมดได้รับการจัดการจากส่วนกลางบนระบบ Misskey และอินเทอร์เฟซที่เปิดเผยต่อผู้ใช้อาจถือเป็นไดรฟ์ ::: นอกจากความสามารถในการอัปโหลดไฟล์ใดๆ จาก [หน้าไดรฟ์](x-mi-web://my/drive) ของ Misskey Web แล้ว รูปภาพที่ตั้งเป็นรูปประจำตัวและไฟล์ที่แนบมากับบันทึกจะถูกอัปโหลดไปยังไดรฟ์ทั้งหมด :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: ไฟล์ที่อัปโหลดไปยังไดรฟ์สามารถดาวน์โหลดไฟล์ได้ตลอดเวลา และคุณยังสามารถใช้ไฟล์ซ้ำได้โดยการ "แนบไฟล์จากไดรฟ์" เมื่อสร้างบันทึก คุณยังสามารถสร้างโฟลเดอร์ภายในไดรฟ์เพื่อจัดระเบียบไฟล์หลายไฟล์พร้อมกันได้ :::warning ในปัจจุบัน เมื่อคุณลบไฟล์ออกจากไดรฟ์ เนื้อหาทั้งหมด (บันทึก หน้า ฯลฯ) ที่แนบไฟล์นั้นก็จะหายไปเช่นกัน ::: ## มีเนื้อหาละเอียดอ่อน (NSFW) มีความละเอียดอ่อนหรือ NSFW (Not safe for work) คือค่าสถานะที่สามารถตั้งค่าให้กับไฟล์ในไดรฟ์ได้ ไฟล์ที่ถูกทำเครื่องหมายว่าละเอียดอ่อนจะไม่แสดงขึ้นหากไม่มีการโต้ตอบจากผู้ดู ธงนี้ใช้เพื่อกำหนดภาพที่ถือว่าไม่เหมาะสมสำหรับการดูในที่ทำงานหรือในที่สาธารณะ และเพื่อป้องกันไม่ให้ภาพดังกล่าวแสดงโดยกะทันหัน การตั้งค่าสถานะนี้สามารถเปิดหรือปิดได้ด้วยตนเอง หรืออาจตั้งค่าได้ตามการตัดสินใจ ของผู้ดูแล ================================================ FILE: content/th/docs/2.for-users/3.features/embed.md ================================================ # ウェブサイトへの埋め込み Misskeyサーバー上のノートやタイムラインをお持ちのウェブサイトに埋め込むことができます。 また、埋め込み先のウェブサイトの見た目に合わせて柔軟にカスタマイズすることもできます。 ここでは、埋め込めるコンテンツと埋め込み方法について説明します。 :::warning この機能は、Misskey v2024.9.0以降で利用可能になる機能です。 ::: :::tip MFMやカスタム絵文字などにも対応していますが、埋め込み先ページでの表示方法によってはレイアウトが崩れる可能性があります。 ::: ## ジェネレーターを使用して埋め込みコードを生成する 以下で紹介する埋め込みコードおよびそのカスタマイズは、すべてMisskey Webに内蔵されている埋め込みコードジェネレーターを使用して簡単に行うことができます。 基本的にはそちらを利用することをおすすめします。 ![埋め込みコードジェネレーター](/img/docs/for-users/features/embed/generator.png) ## 単一のノートの埋め込み ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 埋め込み元サーバー上の、単一のノートを埋め込むことができます(リモートサーバーのノートを他のサーバーを利用して埋め込むことはできません)。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むノートのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ユーザーのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: ユーザーの公開ノート(パブリック・ホーム)の一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むユーザーのID(`@`から始まるユーザー名ではありません) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## クリップのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 公開範囲がパブリックなクリップのノート一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: 埋め込むクリップのID - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## ハッシュタグのノート一覧の埋め込み ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 特定のハッシュタグが付いたノートの一覧を埋め込むことができます。コードは以下のようになります: ```html ``` それぞれ、以下のように置き換えられます: - ``: Misskeyサーバーのホスト名 - ``: ハッシュタグ名(`#`を含まない) - ``: ランダムな文字列(embed.jsを使用する場合は必須。埋め込みコードが同じページに複数ある場合は被らないようにしてください) ## カスタマイズ用のパラメータ URLパラメータに特定の値を指定することで、埋め込みの見た目をカスタマイズすることができます。
パラメータ名 指定できる値 説明
maxHeight 0以上の数値 埋め込みの最大高さ(px)を指定します。それ以上縦に伸びる場合は内部でスクロールできるようになります。
0 を指定すると、埋め込み要素の高さは内部の高さに合わせて自動で伸びていきます(非推奨)
未指定の場合は 700 です。
単一のノートの埋め込みでは機能しません。
colorMode
  • light
  • dark
カラーモードをライトまたはダークに強制。
無指定でデバイスのダークモードと同期します。
border
  • true
  • false
外枠に枠線をつけるかどうか。無指定で true
rounded
  • true
  • false
角丸にするかどうか。無指定で true
showHeader
  • true
  • false
上部のヘッダーを表示するかどうか。無指定で true
単一のノートの埋め込みでは機能しません。
:::g-details{summary="maxHeight=0 の使い道"} `maxHeight` を `0` にするのは基本的におすすめしていませんが、スクロールコンテナをiframe内部ではなく埋め込むサイト側で用意しておきたい場合など、特殊な用途では有用です。以下に例を示します: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/th/docs/2.for-users/3.features/favorite.md ================================================ # รายการโปรด ฟังก์ชันนี้ทำให้คุณสามารถบันทึก [note](./note) เป็นรายการโปรดได้ หมายเหตุที่ลงทะเบียนเป็นรายการโปรดสามารถแสดงอยู่ใน [หน้ารายการโปรด](x-mi-web://my/favorites) บุคคลอื่นจะไม่ได้รับแจ้งว่าคุณได้เพิ่มลงในรายการโปรดของคุณ และมีเพียงคุณเท่านั้นที่สามารถเห็นรายการโปรดของคุณได้ หากต้องการเพิ่มบันทึกลงในรายการโปรดของคุณ ให้กด "รายการโปรด" ในเมนูบันทึกหากต้องการลบออกจากรายการโปรด ให้กด "ลบออกจากรายการโปรด" ในเมนูบันทึก ================================================ FILE: content/th/docs/2.for-users/3.features/follow.md ================================================ # ติดตาม เมื่อคุณติดตามผู้ใช้ โพสต์ของพวกเขาจะปรากฏบนไทม์ไลน์ของคุณอย่างไรก็ตาม จะไม่รวมการตอบกลับผู้ใช้รายอื่น ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。หากต้องการติดตามผู้ใช้ ให้คลิกปุ่ม "ติดตาม" บนหน้าผู้ใช้ คลิกอีกครั้งเพื่อเลิกติดตาม フォローが承認制になっている場合や、外部サーバーのユーザーをフォローする場合は、フォローボタンをクリックした後に「処理中」となります。フォローが承認されると、クライアントに通知が届きます。 ## フォローされた時のメッセージ :::tip この機能は、Misskey v2024.9.0以降を搭載したサーバー(リモートのユーザーの場合は双方のサーバーがv2024.9.0以降になっている必要があります)で使用できる機能です。 この機能はベータ版です。 ::: フォローされた時に相手に表示する短いメッセージを設定できます。フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。 また、フォローされている間は、あなたのプロフィールにフォローされた時のメッセージが表示されます。 :::warning フォローされた時のメッセージは機密情報をやり取りするためのものではありません。一般に公開したくない情報は含めないようにしてください。 ::: ================================================ FILE: content/th/docs/2.for-users/3.features/hashtag.md ================================================ # แฮชแท็ก แฮชแท็กเป็นคุณสมบัติที่ช่วยให้คุณสามารถเพิ่มแท็กที่ค้นหาได้ในโพสต์ของคุณ แฮชแท็กเป็นคุณสมบัติที่ช่วยให้คุณสามารถเพิ่มแท็กที่ค้นหาได้ในโพสต์ของคุณ แฮชแท็กแรกของโลก - #barcamp สร้างโดย Chris Messina เมื่อ [24 สิงหาคม 2550, 04:25 น.](https://twitter.com/chrismessina/status/223115412?lang=en) คิดค้นโดย [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)ต่อมาแนวคิดในการ "ใช้เครื่องหมายปอนด์ # เพื่อให้ง่ายต่อการค้นหา" ได้ถูกพัฒนาขึ้นใหม่เป็นคำที่เกิดจากการผสมคำภาษาอังกฤษ "hash" ซึ่งหมายถึง "หั่นหรือแยก" และ "tag" ซึ่งหมายถึง "ป้ายหรือแท็ก" กลายเป็นคำว่า "แฮชแท็ก" และได้รับการนำไปใช้อย่างเป็นทางการโดย Twitter ในเวลานั้นโดยวิธีนี้ คุณคริส เมสซินาเลือกใช้ # เนื่องจากได้รับแรงบันดาลใจจากการที่ชื่อช่องใน IRC (Internet Relay Chat) เริ่มต้นด้วยเครื่องหมาย # นั่นเอง ![ภาพหน้าจอทวีตแฮชแท็กแรกของ Chris Messina ที่ระบุว่า "คุณรู้สึกอย่างไรกับการใช้ # (ปอนด์) สำหรับกลุ่ม" เช่นเดียวกับใน #barcamp [ข้อความ]?"](/img/docs/for-users/features/hashtag/1.ja.png) ข้อกำหนดของแฮชแท็กบน Fediverse แตกต่างเล็กน้อยจากข้อกำหนดในบริการแบบรวมศูนย์ เช่น X และ Instagramใน Fediverse บางครั้งการค้นหาข้อความแบบเต็มอาจทำได้ยาก ทำให้ยากต่อการค้นหาโพสต์ที่เฉพาะเจาะจง แต่หากโพสต์มีแฮชแท็ก คุณสามารถค้นหาโพสต์ได้อย่างง่ายดายโดยติดตามแฮชแท็กนอกจากนี้ยังมีบริการใน United Universe ที่เรียกว่าแฮชแท็กรีเลย์ที่จะส่งโพสต์ไปยังไซต์ต่างๆ โดยอัตโนมัติเพียงแค่เพิ่มแฮชแท็กให้กับพวกเขา และแฮชแท็กมีน้ำหนักจำนวนหนึ่งที่นี่ ================================================ FILE: content/th/docs/2.for-users/3.features/mention.md ================================================ # กล่าวถึง アットマーク + ユーザー名をノートに含めることで、そのユーザーをメンションしたノートを作成することができます。メンションされたユーザーには、メンションしたノートの通知が届きます。 ================================================ FILE: content/th/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM เป็นภาษามาร์กอัปที่เป็นกรรมสิทธิ์ซึ่งสามารถใช้ได้ในหลายที่ใน Misskey' --- # MFM MFM ย่อมาจากภาษามาร์กอัปสำหรับ Misskey และเป็นภาษามาร์กอัปที่เป็นกรรมสิทธิ์ซึ่งสามารถนำไปใช้ในที่ต่างๆ ใน ​​Misskeyบางอย่างเข้ากันได้กับ Markdown และ HTML :::tip [มุมทดลอง MFM] (/tools/mfm-playground/) ที่คุณสามารถลองใช้ MFM ได้จริง พร้อมให้บริการแล้ว! ::: ## ตัวอย่างการใช้งาน MFM - โน้ตข้อความ - หมายเหตุ CW - ชื่อผู้ใช้ - ข้อความแนะนำตัวของผู้ใช้ ## ไวยากรณ์ ### กล่าวถึง คุณสามารถระบุผู้ใช้โดยใช้ At-Symbol และชื่อผู้ใช้ได้นะ :::tip หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการกล่าวถึง โปรดดู [ที่นี่](./mention.md) ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### แฮชแท็ก คุณสามารถระบุแฮชแท็กด้วยเครื่องหมายตัวเลข + แท็ก :::tip สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแฮชแท็ก โปรดดู[ที่นี่](./hashtag.md) ::: ``` #misskey ``` ### URL สามารถแสดง URL ได้นะ ``` https://example.com ``` ### ลิงก์ คุณสามารถเชื่อมโยงช่วงข้อความที่ต้องการกับ URL ได้ ``` [example link](https://example.com) ``` :::tip คุณสามารถซ่อนตัวอย่างลิงก์ได้โดยใส่ `?` ไว้หน้าข้อความลิงก์ ``` ?[example link](https://example.com) ``` ::: ### อีโมจิที่กำหนดเอง คุณสามารถแสดงอิโมจิแบบกำหนดเองได้โดยใส่เครื่องหมายโคลอนล้อมรอบชื่ออิโมจิแบบกำหนดเอง :::tip สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอีโมจิที่กำหนดเอง โปรดดู[ที่นี่](./custom-emoji.md) ::: ``` :misskey: ``` ### ตัวหนา คุณสามารถแสดงข้อความตัวหนาเพื่อเน้นได้ ``` **ตัวหนา** ``` ### ขนาดเล็ก คุณสามารถทำให้เนื้อหาถูกแสดงให้เล็กลงและบางลงได้ ``` โลกของ Fediverse กำลังขยายออกไปด้วย Misskey ``` ### อ้างอิง 内容が引用であることを示すことができます。 ``` > MisskeyでFediverseの世界が広がります ``` ### 中央寄せ 内容を中央寄せで表示させることができます。 ```
MisskeyでFediverseの世界が広がります
``` ### よみがな(ルビ) 内容によみがなを付けることができます。 ``` $[ruby Misskey ミスキー] ``` ### コード(インライン) プログラムなどのコードをインラインでシンタックスハイライトします。 ``` `<: "Hello, world!"` ``` ### コード(ブロック) 複数行のプログラムなどのコードをブロックでシンタックスハイライトします。 プログラミング言語をIDで指定すると、その言語でシンタックスハイライトが適用されます。指定できる言語は次のとおりです: - [Shikiが対応している言語(200以上)](https://shiki.style/languages) - AiScript: `aiscript`, `ais`, `is` のいずれかを指定すると使用できます。 ```` ```ais for (let i, 100) { <: if ((i % 15) == 0) "FizzBuzz" elif ((i % 3) == 0) "Fizz" elif ((i % 5) == 0) "Buzz" else i } ``` ```` ### 反転 内容を上下または左右に反転させます。 ``` $[flip MisskeyでFediverseの世界が広がります] $[flip.v MisskeyでFediverseの世界が広がります] $[flip.h,v MisskeyでFediverseの世界が広がります] ``` ### フォント 内容のフォントを指定することができます。 ``` $[font.serif MisskeyでFediverseの世界が広がります] $[font.monospace MisskeyでFediverseの世界が広がります] $[font.cursive MisskeyでFediverseの世界が広がります] $[font.fantasy MisskeyでFediverseの世界が広がります] ``` ### ぼかし 内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。 ``` $[blur MisskeyでFediverseの世界が広がります] ``` ### 検索 検索ボックスを表示できます。 ``` misskey 検索 ``` ### 文字色・背景色 文字色と背景色を変更することができます。 3,4,6桁のカラーコードで色を表現します。 ``` $[fg.color=f00 赤字] $[bg.color=ff0 黄背景] ``` ### 枠線 内容を枠線で囲むことができます。様々なスタイルを指定することができます。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度変更 指定した角度で回転させます。 ``` $[rotate.deg=30 misskey] ``` ### การเปลี่ยนตำแหน่ง คุณสามารถย้ายตำแหน่งได้ ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### การขยาย แสดงข้อความโดยการขยายขนาดออก ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### แอนิเมชั่น (เยลลี่) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### แอนิเมชั่น (ธาดา) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### อนิเมชั่น (กระโดด) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### อนิเมชั่น (เด้ง) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### แอนิเมชั่น (สปิน) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### อนิเมชั่น (เขย่า) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### แอนิเมชั่น (หยิก) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### รุ้ง ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### แวววาว ``` $[sparkle 🍮] ``` ### ข้อความธรรมดา ปิดการใช้งานการจัดรูปแบบเนื้อหา ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## ข้อมูลสำหรับนักพัฒนาข้อมูลสำหรับนักพัฒนา การวิเคราะห์และการเรนเดอร์ MFM ได้รับการเผยแพร่เป็นไลบรารี ทำให้สามารถรวม MFM เข้ากับไคลเอนต์ได้ง่าย - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - การนำตัววิเคราะห์ JavaScript ไปใช้งาน - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js component - [mfm.kt](https://github.com/samunohito/mfm.kt) - การนำตัววิเคราะห์ Kotlin ไปใช้ - [mfm_parser](https://pub.dev/packages/mfm_parser) - การใช้งาน Dart parser - [mfm](https://pub.dev/packages/mfm) - วิดเจ็ตการเรนเดอร์ Flutter ================================================ FILE: content/th/docs/2.for-users/3.features/mute-and-block.md ================================================ # ปิดเสียงและบล็อก หากคุณไม่ชอบใครคนใดคนหนึ่ง คุณสามารถปิดเสียงคนๆ นั้นเพื่อไม่ให้คุณมองเห็นพวกเขาได้อีกต่อไป หรืออีกวิธีหนึ่งคือ คุณสามารถบล็อกคนๆ หนึ่งเพื่อไม่ให้พวกเขาเห็นเนื้อหาของคุณหรือโต้ตอบกับคุณได้ บุคคลอื่นจะไม่รู้ว่าพวกเขาถูกปิดเสียง แต่พวกเขาจะรู้ว่าพวกเขาถูกบล็อกどちらを選ぶかはご自身の判断で行ってください。 :::tip ミュートとブロックは併用できます。 ::: :::warning 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。 ::: Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 ## ปิดเสียง ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) - そのユーザーからの通知 - メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - など Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 :::tip ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 ::: ## ปิดเสียงรีโน้ต ユーザーがノートのリノートを大量に行う場合などに、そのユーザーのリノートのみをタイムラインから除くことができます。ユーザーの通常のノートには影響はありません。 ## บล็อก ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 - フォローする - ユーザーリストに追加する - 返信する、Renoteする - リアクションする、アンケートに投票する - メッセージを送信する - など また、 - ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 - ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 :::warning ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。 ::: :::warning อีกฝ่ายจะไม่สามารถมองเห็นเนื้อหาของคุณ แต่คุณจะสามารถดูได้หากอีกฝ่ายเปลี่ยนบัญชีหรือออกจากระบบあくまで簡易的、補助的なものとしてお考えください。 ::: ================================================ FILE: content/th/docs/2.for-users/3.features/note.md ================================================ # โน้ต ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 :::tip ノートという名称は、英語で「短い記録」を意味する Note が由来になっています。 ::: ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 ## เขียนโน้ต Misskey Webでノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 :::tip Misskey Webでは、コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 ::: :::tip Misskey Webでは、テキストボックス内でCtrl + Enterを押すことでも投稿できます。 ::: ## รีโน้ต 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートを「リノート」と呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にリノートを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 :::warning 公開範囲がフォロワーや指名のノートはリノートできません。 ::: Misskey Webでリノートを削除するには、リノートの時刻表示の隣にある「...」を押し、「リノート解除」を選択します。 ## การเตือนเนื้อหา (CW) Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 Misskey WebでCWを設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 ## ค่าการมองเห็น ノートごとに、そのノートが公開される範囲を設定することができます。 Misskey Webで公開範囲を設定するには、フォームの「ノート」ボタンの左にあるアイコンを押します。 公開範囲には、以下の種類があります。 ### สาธารณะ 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 :::warning アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 ::: ### หน้าหลัก 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 ### ผู้ติดตาม 自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 ### ไดเร็กต์ 指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 :::tip v2025.7.0までは「ダイレクト」と呼ばれていました。 ::: ### ท้องถิ่นเท่านั้น このオプションを有効にすると、リモートにノートを連合しなくなります。 ### เปรียบเทียบค่าการมองเห็น
สาธารณะหน้าหลักผู้ติดตาม指名
LTL/STL/GTL ของผู้ติดตาม
LTL/STL/GTL ของไม่ใช่ผู้ติดตาม
## ปักหมุด ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 Misskey Webでピン留めを行うには、ノートのメニューを開き、「ピン留め」を選択します。 :::tip 複数のノートを同時にピン留めすることも可能です。 ::: ## แจ้งเตือนเมื่อมีโน้ตใหม่ ユーザーが新しいノートを投稿した際に通知を出すことができます。ユーザーページを開き、フォローボタン横の詳細ボタンを選択した後、「投稿を通知」をクリックして有効化してください。 ================================================ FILE: content/th/docs/2.for-users/3.features/online-status.md ================================================ # สถานะออนไลน์ **สถานะออนไลน์**ของผู้ใช้จะแสดงถึงสถานะการใช้ Misskey ของผู้ใช้รายนั้น สถานะออนไลน์จะแสดงเป็นตัวบ่งชี้เล็กๆ ที่มุมไอคอนผู้ใช้ในหน้าผู้ใช้
สี สถานะ คำอธิบาย
🟢เขียว ออนไลน์ อาจจะกำลังใช้ Misskey อยู่ตอนนี้
🟡เหลือง เพิ่งใช้งาน อาจจะไม่ได้ใช้แล้ว แต่ตะกี้นี้เพิ่งกำลังใช้ Misskey
🔴แดง ออฟไลน์ อาจจะไม่ได้ใช้ Misskey เมื่อเร็วๆ นี้
⚫เทา ไม่ทราบ สถานะถูกตั้งเป็นส่วนตัว หรือสถานะไม่ชัดเจน เช่น เป็นผู้ใช้ระยะไกล
สถานะออนไลน์จะเปลี่ยนแปลงโดยอัตโนมัติและไม่สามารถตั้งค่าได้ด้วยตนเอง แต่สามารถตั้งค่าสถานะออนไลน์ให้เป็นส่วนตัวได้ :::warning ในบางฟังก์ชัน เช่น ผู้ใช้ที่แนะนำ อาจมีการประมวลผลตามสถานะออนไลน์ ดังนั้นหากตั้งค่าสถานะเป็นส่วนตัว อาจทำให้ผู้ใช้อื่นค้นหาคุณได้ยากขึ้น ::: ================================================ FILE: content/th/docs/2.for-users/3.features/pages.md ================================================ # หน้าเพจ Misskey上でノートとは別にページを作成できます。v13では静的ページに特化しています。 :::warning v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。 ::: ## ตั้งค่าหน้าเพจ ページに関する項目を設定します。次の項目を入力できます。 - タイトル - ページの要約 - ページURL - 中央寄せ - フォント - ピン留めされているときにタイトルを非表示 - アイキャッチ画像 ### หัวข้อ このページのタイトルを入力します。一覧に表示されます。 ### ページの要約 簡単な説明を入力します。一覧に表示されます。 ### URL ของหน้าเพจ `https://サーバー名/@ユーザー/pages/●●●` の `●●●` を任意に設定できます。 ### 中央寄せ 有効にすると、中央に寄せて表示します。 ### แบบอักษร **セリフ** と **サンセリフ** を選択します。 ### ピン留めされているときにタイトルを非表示 ピン留めされているときにタイトルを非表示にします。 ### ภาพเด่น คุณสามารถตั้งค่ารูปภาพจาก **การตั้งค่ารูปภาพเด่น**สามารถแสดงในรูปแบบรายการ ฯลฯ ได้ ## เนื้อหา แก้ไขเนื้อหาของหน้าสามารถสร้างหน้าได้โดยการรวมบล็อกหนึ่งบล็อกหรือมากกว่าต่อไปนี้ - ส่วน - ข้อความ - รูปภาพ - โน้ตที่ฝังตัว ### ส่วนตอน เมื่อตั้งค่าชื่อเรื่องจะแสดงเป็นหัวเรื่องนอกจากนี้สามารถตั้งบล็อคไว้ข้างในได้ ### ข้อความ กรอกเนื้อหาข้อความสามารถใช้ MFM และอีโมจิแบบกำหนดเองได้ ### รูปภาพ แสดงรูปภาพตั้งรูปภาพจากไดรฟ์ ### โน้ตที่ฝังตัว โดยการป้อน ID หมายเหตุ บันทึกจะปรากฏขึ้นหากคุณต้องการฝังเซิร์ฟเวอร์อื่น ให้ใส่ URL ลงในการค้นหา และวาง ID ที่แสดง ================================================ FILE: content/th/docs/2.for-users/3.features/plugin.md ================================================ # ปลั๊กอิน Misskey Web รองรับปลั๊กอินที่ช่วยให้ผู้ใช้สามารถขยายฟังก์ชันการทำงานของ Misskey Web ได้ สำหรับคำแนะนำเกี่ยวกับวิธีการสร้างปลั๊กอิน โปรด[ดูเอกสารนี้](../../for-developers/plugin/create-plugin) ================================================ FILE: content/th/docs/2.for-users/3.features/poll.md ================================================ # โพล การสำรวจความคิดเห็นคือคุณลักษณะที่ช่วยให้คุณสามารถขอความเห็นจากผู้อื่นได้ ## การแนบแบบสำรวจไปกับบันทึกย่อ สามารถโพสต์แบบสำรวจเป็นไฟล์แนบใน [หมายเหตุ](/docs/for-users/features/note)หากต้องการแนบแบบสำรวจในบันทึกของคุณ ให้เลือกปุ่ม "แบบสำรวจ" ที่ด้านล่างของแบบฟอร์มโพสต์ ## การเพิ่มตัวเลือก การสำรวจความคิดเห็นสามารถมีได้สูงสุด 10 ตัวเลือกหากต้องการเพิ่มตัวเลือก ให้คลิกปุ่ม "เพิ่ม" หากคุณเพิ่มช่องป้อนข้อมูลมากเกินไป คุณสามารถลบได้โดยกดปุ่ม ☓ ถัดจากช่องป้อนข้อมูล :::warning หากตัวเลือกว่างเปล่า คุณจะไม่สามารถส่งบันทึกได้ ::: ## การอนุญาตหลายคำตอบ หากเลือก "อนุญาตให้เลือกหลายตัวเลือก" ผู้ลงคะแนนจะสามารถลงคะแนนได้มากกว่าหนึ่งตัวเลือก ## กำหนดขีดจำกัดเวลาสำหรับการตอบกลับ คุณสามารถกำหนดวันที่สิ้นสุดสำหรับแบบสำรวจได้โดยการระบุวันที่และเวลาหรือโดยการระบุเวลาที่ผ่านไป หากต้องการตั้งกำหนดเวลา ให้เลือก "สิ้นสุดที่..." หรือ "สิ้นสุดหลังจาก..." ในเมนูแบบเลื่อนลง "สิ้นสุดการสำรวจความคิดเห็น" หากคุณต้องการยกเลิกกำหนดเวลาที่กำหนดไว้ ให้เลือก "ไม่จำกัด" จากช่อง "ระยะเวลา" ## ลงคะแนนในแบบสำรวจความคิดเห็น เมื่อคุณเห็นบันทึกที่มีแบบสำรวจแนบมากับไทม์ไลน์ของคุณ ให้ลงคะแนนให้ คลิกที่แต่ละตัวเลือกเพื่อลงคะแนนในแบบสำรวจหากผู้ใช้ที่สร้างการสำรวจไม่อนุญาตให้มีตัวเลือกหลายตัวเลือก ผลลัพธ์การสำรวจปัจจุบันจะปรากฏขึ้นทันที หากผู้ใช้ที่สร้างการสำรวจอนุญาตให้มีตัวเลือกหลายรายการ คุณจะได้รับอนุญาตให้โหวตให้กับตัวเลือกอื่นในกรณีนี้ ผลลัพธ์จะไม่แสดงโดยอัตโนมัติ ไม่ว่าการตั้งค่าหลายคำตอบจะเป็นอย่างไร หากผลการสำรวจไม่แสดงผลโดยอัตโนมัติ หรือหากคุณต้องการดูผลลัพธ์ก่อนลงคะแนน ให้คลิก "ดูผลลัพธ์" ด้านล่างตัวเลือกเพื่อแสดงผลการสำรวจ คุณสามารถทำได้ หากคุณดูผลลัพธ์โดยไม่ได้โหวต คุณสามารถกลับไปโหวตได้โดยคลิกปุ่ม "โหวต" :::tip คุณสามารถลงคะแนนในแบบสำรวจที่ยังไม่ได้ลงคะแนนได้แม้ว่าจะมีการแสดงผลลัพธ์ก็ตาม ::: เมื่อคุณโหวต จะมีเครื่องหมาย ✔ อยู่ข้างๆ ตัวเลือกที่คุณโหวต ================================================ FILE: content/th/docs/2.for-users/3.features/reaction.md ================================================ # รีแอคชั่น คุณสมบัตินี้ช่วยให้คุณถ่ายทอดปฏิกิริยาของคุณต่อบันทึกของผู้อื่นได้อย่างง่ายดายโดยการเพิ่มอิโมติคอน หากต้องการโต้ตอบกับ Misskey Web ให้คลิกไอคอน + บนบันทึกย่อเพื่อแสดงตัวเลือกและเลือกอิโมจิ [อีโมจิที่กำหนดเอง](./custom-emoji.md) สามารถใช้แสดงความรู้สึกได้เช่นกัน ## การปรับแต่งตัวเลือกอีโมจิ คุณสามารถเลือกอีโมจิที่จะแสดงในตัวเลือกอีโมจิได้ ตัวเลือกเหล่านี้อยู่ในส่วน การตั้งค่า > ตัวเลือกอีโมจิ ## เกี่ยวกับการตอบสนองต่อโพสต์ระยะไกล ปฏิกิริยาเป็นคุณลักษณะเฉพาะของ Misskey แพลตฟอร์มที่ไม่รองรับปฏิกิริยาของ Misskey จะได้รับปฏิกิริยาเป็นกิจกรรม "ถูกใจ"นี่อาจเรียกได้ว่าเป็น "รายการโปรด" บนบางแพลตฟอร์มอื่นๆ ## ปฏิกิริยาจากอินสแตนซ์ระยะไกล リモートから「Like」アクティビティを受信したとき、Misskeyでは「❤」のリアクションとして解釈されます。 ## 自分のリアクション一覧を見る Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。 設定から、このリアクション一覧を公開するようにすることもできます。 ## リアクションの受け入れ ノートの投稿時に、そのノートにおいて受け入れるリアクションの種類を制限することができます。 - 全て: 全てのリアクションを許可します - 全て(リモートはいいねのみ): 自分のサーバーからのリアクションは全て許可しますが、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - 非センシティブのみ: 全てのリアクションを許可しますが、自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなります - 非センシティブのみ(リモートはいいねのみ): 自分のサーバーからのリアクションでは「センシティブ」としてフラグ付けされたカスタム絵文字を使ってリアクションできなくなり、他のサーバーからのリアクションはすべていいね(❤)として受け入れます - いいねのみ: いいね(❤)以外でリアクションできません なお、この際指定したリアクションの受け入れは自分のサーバーにおいて有効になります。例えば、リアクションの受け入れを「いいねのみ」にしたノートを他のサーバーで閲覧すると、そのサーバー上では絵文字リアクションが付与されているかもしれません。 ================================================ FILE: content/th/docs/2.for-users/3.features/safemode.md ================================================ # セーフモード v2025.8.0 以降の Misskey Webでは、プラグイン・カスタムCSS・テーマによってクライアントの動作に支障をきたした場合に、これらを無効にした状態で起動する「セーフモード」が備わっています。 以下の方法で、セーフモードに入ることができます。 - (起動時にエラー画面が表示された場合)エラー画面上の「Misskeyをセーフモードで起動」ボタンをクリック - (キーボードが接続されている場合)`g` キーを連打 - URLに`?safemode=true`を付ける - (PWAを利用している場合)ショートカットで Safemode を選択して起動する セーフモード実行中は、以下の機能が制限されます。 - 有効・無効の設定にかかわらずプラグインがすべて無効化され、新規インストールはできません。 - カスタムCSSは適用されません。 - 設定にかかわらずデフォルトテーマで起動し、テーマの変更ができなくなります(テーマの管理ページから削除することは可能)。 - 画面上に常に「セーフモード」の表示が出る セーフモードを活用し、問題の原因となった部分を特定・対処してください。対応が完了したら、セーフモード実行中常に表示されるメニューから「オフにする」をクリックしてセーフモードを無効化してください。 :::tip セーフモードで常用することは想定されていません。対処が完了したらオフにして通常モードで起動してください。 ::: ================================================ FILE: content/th/docs/2.for-users/3.features/share-form.md ================================================ # แบบฟอร์มการแบ่งปัน Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。 URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。 ## พารามิเตอร์สำหรับคิวรี :::tip すべてのパラメータは**オプション**であり、必須ではありません。 ::: | 名前 | 説明 | | ------- | ---------------------------------------------------------------------------- | | `title` | タイトル。本文の先頭に[ … ]と挿入されます。 | | `text` | 本文。 | | `url` | URL。本文の末尾に挿入されます。 | ### リプライ情報 以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。 | 名前 | 説明 | | ---------- | ----------------------------- | | `replyId` | リプライ先のノートID。 | | `replyUri` | リプライ先のURL。(リモートのノートオブジェクトを指定) | ### Renote情報 以下のいずれかを指定すると、指定のノートに対するRenote(引用)にすることができます。 | 名前 | 説明 | | ----------- | ------------------------------- | | `renoteId` | Renote先のノートID。 | | `renoteUri` | Renote先のURL。(リモートのノートオブジェクトを指定) | ### 公開範囲 以下のオプションで公開範囲の指定を行えます。 | 名前 | 説明 | | ---------------- | -------------------------------------------------------------------- | | `visibility` | `public`, `home`, `followers`, `specified` のいずれか | | `localOnly` | 0(false) or 1(true) | | `visibleUserIds` | 対象ユーザーID(カンマ区切り) | | `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) | :::warning `visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。 ::: ### 添付ファイル 以下のオプションで添付ファイルの指定を行えます。 | 名前 | 説明 | | --------- | -------------------------------------- | | `fileIds` | 添付するファイルのID(カンマ区切り) | ## Misskey Hubの共有フォーム中継サービスについて 新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。 こちらのサービスは、無料でどなたでもお使いいただけます。 今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます! :::tip [共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。 ::: :::warning 共有フォーム中継サービス(以下、「本サービス」という)はWebサイト管理者の便宜のためにMisskey Project(以下、「当方」という)が無償・無保証で提供する機能です。เราจะไม่รับผิดชอบต่อความเสียหายใดๆ ที่เกิดขึ้นอันเป็นผลจากการใช้หรือไม่สามารถใช้บริการนี้ได้ไม่ว่าด้วยเหตุผลใดๆ ก็ตาม ::: ### พารามิเตอร์พื้นฐาน โดยทั่วไปคุณสามารถใช้พารามิเตอร์ที่แนะนำไว้ข้างต้นได้ แต่ไม่สามารถใช้พารามิเตอร์ที่ขึ้นอยู่กับแต่ละเซิร์ฟเวอร์ เช่น ID ผู้ใช้และ ID ไฟล์ได้\*\*\*\* หากระบุไว้จะถูกลบออกจาก Misskey Hub ### วายฟาย PureVPN คุณสมบัติพิเศษเฉพาะ #### ฟังก์ชั่นเซิร์ฟเวอร์ที่แนะนำ โดยการป้อนโดเมนของเซิร์ฟเวอร์ Misskey ในพารามิเตอร์ URL `manualInstance` คุณสามารถเพิ่มลิงก์แยกต่างหากไปยังเซิร์ฟเวอร์นั้นโดยเป็น "ที่แนะนำโดยเว็บไซต์ Share Source"ใช้สิ่งนี้เมื่อคุณต้องการแนะนำผู้ใช้ไปยังเซิร์ฟเวอร์ของคุณ :::warning “ฟีเจอร์เซิร์ฟเวอร์ที่แนะนำ” เป็นฟีเจอร์ที่จัดทำขึ้นเพื่อความสะดวกของเว็บมาสเตอร์ ดังนั้น ไม่ได้หมายความว่าเราขอแนะนำเซิร์ฟเวอร์ที่อยู่ในส่วน “แนะนำโดยเว็บไซต์ Share Source” เราจะไม่รับผิดชอบต่อความเสียหายหรือข้อเสียใดๆ ที่เกิดขึ้นจากการใช้งานหรือการลงทะเบียนบนเซิร์ฟเวอร์ที่เปลี่ยนจาก "แนะนำโดยเว็บไซต์ Share Source" ::: ================================================ FILE: content/th/docs/2.for-users/3.features/silence.md ================================================ # ปิดปาก ถูกปิดปากเป็นหนึ่งในสถานะบัญชี เมื่อบัญชีอยู่ในสถานะถูกปิดปาก จะไม่สามารถตั้งค่าการเผยแพร่โน้ตให้เป็นสาธารณะได้ โดยสามารถเลือกได้ระหว่างหน้าหลัก ผู้ติดตาม และการส่งข้อความแบบไดเร็กต์เท่านั้น ดังนั้นแม้ว่าจะอยู่ในสถานะถูกปิดปาก ผู้ติดตามคุณหรือผู้ที่เข้าชมหน้าผู้ใช้ของคุณโดยตรง ยังสามารถดูโพสต์ได้ แต่แค่โพสต์จะไม่ปรากฏในไทม์ไลน์ทั่วโลก(ไทม์ไลน์สหพันธ์)หรือไทม์ไลน์ท้องถิ่น เฉพาะผู้ควบคุมหรือผู้ดูแลระบบเซิร์ฟเวอร์นั่นๆ เท่านั้นที่สามารถแก้ไขสถานะถูกปิดปากของบัญชีได้ ================================================ FILE: content/th/docs/2.for-users/3.features/theme.md ================================================ # ธีม สามารถใช้ธีมเพื่อเปลี่ยนรูปลักษณ์และความรู้สึกของไคลเอนต์ Misskey ได้ ## ตั้งค่าธีม [ตั้งค่า > ธีม](x-mi-web://settings/theme) ## สร้างธีม ธีมต่างๆ จะถูกอธิบายเป็นวัตถุ JSON5 เขียนตามรูปแบบที่แสดงด้านล่างนี้: ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... ID ธีมที่ไม่ซ้ำใครเราขอแนะนำ UUID - `name` ... ชื่อธีม - `author` ... ผู้สร้างธีม - `desc` ... คำอธิบายธีม (ไม่บังคับ) - `base` ... ธีมสีสว่างหรือธีมสีมืด - `สว่าง` ให้ธีมสว่าง `มืด` ให้ธีมมืด - ธีมจะสืบทอดธีมพื้นฐานที่ตั้งไว้ที่นี่ - `props` ... คำจำกัดความสไตล์ธีมสิ่งเหล่านี้จะได้รับการอธิบายไว้ด้านล่าง ### คำจำกัดความสไตล์ธีม สไตล์ที่ใช้ในธีมจะถูกกำหนดไว้ในคุณสมบัติ `props` - [_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 #### ไวยากรณ์ที่สามารถใช้กับค่าได้ - สีเลขฐานสิบหก - ตัวอย่าง: `#00ff00` - สีที่แสดงในรูปแบบ `rgb(r, g, b)` - ตัวอย่าง: `rgb(0, 255, 0)` - สีที่มีความโปร่งใสแสดงในรูปแบบ `rgba(r, g, b, a)` - ตัวอย่าง: `rgba(0, 255, 0, 0.5)` - การอ้างอิงถึงค่าของคีย์อื่น ๆ - การเขียน `@{key name}` หมายถึงค่าของคีย์อื่นแทนที่ `{key name}` ด้วยชื่อของคีย์ที่คุณต้องการอ้างอิง - ตัวอย่าง: `@แผง` - ค่าคงที่ (ดูด้านล่าง) - หากคุณเขียน `${constant-name}` ค่าของค่าคงที่ที่กำหนดไว้จะถูกนำมาใช้แทนที่ `{constant-name}` ด้วยชื่อของค่าคงที่ที่ต้องการอ้างอิง - ตัวอย่าง: `$main` - ฟังก์ชั่น (ดูด้านล่าง) - `:{ชื่อฟังก์ชัน}<{อาร์กิวเมนต์}<{สี}` #### ตัวแปร ในกรณีที่คุณมีค่าที่ไม่ต้องการให้แสดงเป็นตัวแปร CSS แต่ต้องการใช้เป็นค่าของตัวแปร CSS อื่น คุณสามารถใช้ค่าคงที่ได้ หากคุณใส่ `$` ไว้หน้าชื่อคีย์ คีย์นั้นจะไม่ถูกใช้เป็นตัวแปร CSS แต่จะเป็นค่าอ้างอิง #### 関数 「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。 `:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 使用できる関数 - `lighten` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 - `darken` ... 渡された色の輝度(0 ~ 100)に対して引数(0 ~ 100)を減算した色を返します。 - `alpha` ... 渡された色の透明度を引数(0.0 ~ 1.0)に設定した色を返します。 - 0.0のとき完全に透明、1.0で完全に不透明になります。 - `hue` ... 渡された色の色相(-360 ~ 360)に対して引数(-360 ~ 360)の値だけ回転させた色を返します。 - `saturate` ... 渡された色の彩度(0 ~ 100)に対して引数(0 ~ 100)を加算した色を返します。 ## テーマを配布する v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。 テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。 ================================================ FILE: content/th/docs/2.for-users/3.features/thread-mute.md ================================================ # ปิดเสียงเธรด :::tip バージョン 12.95.0 以降の機能です。 ::: スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。 スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。 Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のノートもしくは起点のノートのメニューを開き、「スレッドをミュート」を選択します。 :::warning スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。 ::: ================================================ FILE: content/th/docs/2.for-users/3.features/timeline.md ================================================ # ไทม์ไลน์ ไทม์ไลน์คือฟังก์ชันที่แสดง[โน้ต](/docs/for-users/features/note/)ตามลำดับเวลา ไทม์ไลน์มีหลายประเภทตตามที่แสดงด้านล่างนี้ และการมองเห็นของโน้ตจะแตกต่างกันไปตามประเภทไทม์ไลน์ นอกจากนี้ บางเซิร์ฟเวอร์อาจปิดไทม์ไลน์บางประเภทด้วย ## หน้าหลัก แสดงโพสต์จากผู้ใช้ที่เราติดตามเรียกอีกอย่างว่า Home Timeline ย่อว่า HTL ## ท้องถิ่น แสดงโพสต์จากผู้ใช้ทั้งหมดในเซิร์ฟเวอร์นั้นๆ หากโพสต์นั้นไม่ได้ระบุค่าการมองเห็นเป็นเฉพาะ “หน้าหลัก”เรียกอีกอย่างว่า Local Timeline ย่อว่า LTL ## โซเชียล แสดงโพสต์จากผู้ใช้ที่เราติดตามทั้งในท้องถิ่นและระยะไกล ร่วมถึงโพสต์จากผู้ใช้ทั้งหมดในเซิร์ฟเวอร์นั้นๆ หากโพสต์นั้นไม่ได้ระบุค่าการมองเห็นเป็นเฉพาะ “หน้าหลัก”เรียกอีกอย่างว่า Social Timeline ย่อว่า STL ## ทั่วโลก แสดงโพสต์จากผู้ใช้ทั้งหมดในเซิร์ฟเวอร์นั้นๆ และโพสต์จากผู้ใช้ระยะไกลบางกลุ่มที่ส่งมาถึงเซิร์ฟเวอร์ หากโพสต์เหล่านั้นไม่ได้ระบุค่าการมองเห็นเป็นเฉพาะ “หน้าหลัก”เรียกอีกอย่างว่า Global Timeline ย่อว่า GTL ## เปรียบเทียบ
แหล่งที่มา การมองเห็น ไทม์ไลน์
หน้าหลัก ท้องถิ่น โซเชียล ทั่วโลก
ผู้ใช้ท้องถิ่นที่คุณติดตาม สาธารณะ
หน้าหลัก
ผู้ติดตาม
ผู้ใช้ระยะไกลที่คุณติดตาม สาธารณะ
หน้าหลัก
ผู้ติดตาม
ผู้ใช้ท้องถิ่นที่คุณไม่ได้ติดตาม สาธารณะ
หน้าหลัก
ผู้ติดตาม
ผู้ใช้ระยะไกลที่คุณไม่ได้ติดตาม สาธารณะ
================================================ FILE: content/th/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip バージョン 12.109.0 以降の機能です。 ::: :::warning 実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。 ::: MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。 [設定 > Webhook](x-mi-web://settings/webhook)でWebhookの管理を行えます。 Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。 さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。 リクエストペイロードは以下のプロパティが入ります。 送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。 Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。 ## เหตุการณ์ イベントごとに説明とペイロードを示します。 ### follow 自分が誰かをフォローした際に発生します。 ### followed 自分が誰かからフォローされた際に発生します。 ### unfollow 自分が誰かをフォロー解除した際に発生します。 ### note 自分がノートを投稿した際に発生します。 ### reply 自分のノートに返信された際に発生します。 ### renote 自分のノートがRenoteされた際に発生します。 ### mention 自分にメンションされた際に発生します。 ================================================ FILE: content/th/docs/2.for-users/3.features/widgets.md ================================================ # วิดเจ็ต วิดเจ็ต คือ ส่วนเล็กๆ ที่เราสามารถเพิ่มเข้าไปใน Misskey Ui เพื่อแสดงข้อมูลต่างๆ และยังมีปฏิสัมพันธ์กับมันได้ด้วย ถ้าอยากจะเปลี่ยนวิดเจ็ต ก็ให้เข้าไปที่โหมดแก้ไขวิดเจ็ตแต่การแก้ไขวิดเจ็ตนั้นจะต่างกันออกไป ขึ้นอยู่กับว่าเราใช้หน้าตาโปรแกรม Ui แบบไหนในตอนที่เข้าไปแก้ไขวิดเจ็ต คุณจะสามารถเพิ่ม ลบ ย้าย หรือปรับแต่งวิดเจ็ตได้ตามใจชอบได้เลย ## รายการวิดเจ็ต - โปรไฟล์ - ข้อมูลเซิร์ฟเวอร์ - โน้ตแปะ - ไทม์ไลน์ - ปฏิทิน - โปรแกรมอ่าน RSS - RSS-ทิกเกอร์ - กำลังมาแรง - นาฬิกา - กิจกรรม - รูปภาพ - นาฬิกาดิจิตอล - นาฬิกา UNIX - สหพันธ์ - กลุ่มเมฆเซิร์ฟเวอร์ - แบบฟอร์มการโพสต์ - แสดงภาพนิ่ง - ตัวชี้วัดเซิร์ฟเวอร์ - ผู้ใช้ที่ออนไลน์ - คิวงาน - ปุ่ม - คอนโซล AiScript - แอป AiScript - 藍 (ไอ) - รายชื่อผู้ใช้ - คลิกเกอร์ ### โปรไฟล์ คือ แสดงชื่อผู้ใช้งาน อวาตาร์ และภาพแบนเนอร์ของคุณและวิดเจ็ตนี้จะช่วยให้จำได้ว่าคุณนั้นกำลังใช้บัญชีอะไรอยู่ ถ้าหากคุณมีหลายบัญชีให้เลือกใช้ ### ข้อมูลเซิร์ฟเวอร์ คือ แสดงข้อมูลเกี่ยวกับอินสแตนซ์ เช่น ชื่อ, โดเมน, ไอคอน และแบนเนอร์ เป็นต้น ### โน้ตแปะ โน้ตแพดสำหรับบันทึกข้อความ ### ไทม์ไลน์ ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。 ### ปฏิทิน 今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。 ### โปรแกรมอ่าน RSS RSS フィードタイトルを一覧表示します。 ### RSS-ทิกเกอร์ RSS フィードを順次スクロール表示します。 ### กำลังมาแรง 最近よく使用されているハッシュタグを表示します。 ### นาฬิกา アナログ時計で現在時間を表示します。 ### กิจกรรม 稼働状況をドット表示します。 ### รูปภาพ 最近のドライブ中身を表示します。 ### นาฬิกาดิจิตอล デジタル時計で現在時刻を表示します。 ### นาฬิกา UNIX UNIX時間で現在時刻を表示します。 ### สหพันธ์ 主に通信している他のサーバーを表示します。 ### กลุ่มเมฆเซิร์ฟเวอร์ 他のサーバーを球状に表示します。 ### แบบฟอร์มการโพสต์ ノートを投稿するッフォーム を固定表示します。 ### แสดงภาพนิ่ง ドライブ内の特定フォルダ内を順次表示します。 ### ตัวชี้วัดเซิร์ฟเวอร์ サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。 ### ผู้ใช้ที่ออนไลน์ 現在オンタイン状態になっているユーザー数表示します。 ### คิวงาน 他サーバーとの送受しているノートなどのキュー状態を表示します。 ### ปุ่ม ボタンを表示します。動作は AIScript で記載していきます。 ### คอนโซล AiScript AiScript を実行できるコンソールを表示します。 ### แอป AiScript AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。 ### 藍 (ไอ) 藍を表示します。カーソルに合わせて視線を変えたりします。 ### รายชื่อผู้ใช้ リストを表示します。もっと! - リスト で設定できます。 ### คลิกเกอร์ クッキーを表示します。表示されたクッキーをクリック・タップして下さい。 ================================================ FILE: content/th/docs/2.for-users/3.features/word-mute.md ================================================ # ปิดเสียงคำ ワードミュートの設定をすると、条件に合致したノートが最小化され、ノートの代わりに「○○(ユーザー名)が何か言いました」という文言が表示されるようになります。最小化されたノートはクリックすることで表示することができます。 ตั้งค่าได้ที่ [ตั้งค่า > ปิดเสียงและบล็อก](x-mi-web://settings/mute-block) ## ハードワードミュート ハードワードミュートを使用すると、条件に合致したノートは完全に見えなくなります。ワードミュートとは異なり、ノートは完全に表示されなくなります。 ================================================ FILE: content/th/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '問題が発生したときは、まずこちらをご確認ください。' --- # トラブルシューティング :::tip [よくある質問](./faq.md)も合わせてお役立てください。 ::: 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 ## ページが読み込めない クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 ## クライアントの動作が遅い インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください: 1.Misskey Webの設定 メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。 - アピアランスの「UIのアニメーションを減らす」を有効にする - アピアランスの「モーダルにぼかし効果を使用」を無効にする - アピアランスの「システムデフォルトのフォントを使う」を有効にする - アピアランスの「OSネイティブの絵文字を使用」を有効にする 以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。 - 動作の「Pagesのスクリプトを無効にする」を無効にする - アピアランスの「動きのあるMFMを無効にする」を有効にする 2.Webブラウザの設定 - お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする - お使いのWebブラウザのその他の設定を確認する 3.その他 - お使いのPCやスマートフォンのシステム設定を確認する ## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等) アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 :::warning 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。 ::: ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## Renoteができない 公開範囲がフォロワー限定のノートおよびDMはRenoteすることはできません。 ## Misskey WebのUI上で特定の要素が表示されない Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。 ## Misskey WebのUI上で未翻訳の部分がある ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。 もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。 ================================================ FILE: content/th/docs/2.for-users/4.resources/_dir.yml ================================================ title: "ทรัพยากรเพิ่มเติม" description: "แนะนำวิธีการจัดการเมื่อพบปัญหาและความรู้ที่ไม่เกี่ยวกับฟังก์ชัน" ================================================ FILE: content/th/docs/2.for-users/4.resources/apps.md ================================================ --- description: 'Misskeyを使うためのアプリを紹介します。' --- # アプリ Misskeyを使うためのアプリ(クライアント)を紹介します。 ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。 Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介します(アルファベット順)。 - **Aria** (iOS, Mac, Android, Windows, Linux): Misskeyのほとんどの機能を利用可能。公式のMisskey Webクライアントに近いUI。[公式サイト](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[ソースコード](https://github.com/poppingmoon/aria)。 - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。 - **Miria** (iOS, Mac, Android, Windows, Linux): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[ソースコード](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): Misskey, Mastodon, Bluesky, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonやBlueskyにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリ。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。 とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。 ================================================ FILE: content/th/docs/2.for-users/4.resources/faq.md ================================================ --- description: 'Misskeyを利用する際のよくある質問について掲載しています。' --- # よくある質問 ここではMisskeyを利用する際のよくある質問について掲載しています。
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。 ## Android/iOSのアプリはありますか? MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](/docs/for-users/stepped-guides/how-to-use-pwa/)をご覧ください。 ## Mastodon向けのアプリでログインできますか? MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。
Misskey公式のWebクライアント、Misskey Webをご利用ください。 ## misskey.ioはMisskeyプロジェクトの公式サーバーですか? misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。 ## 株式会社MisskeyHQとの関係は? 株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。 ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。 ## 「Misskey」の名前の由来は何ですか? メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。 ## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには? メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`
ユーザーアカウントの例: `@syuilo@misskey.io`
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。 ## Renoteを削除するには? Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。 ## ノート内のURLのプレビューを表示させたくない MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet` ## カスタム絵文字を追加、編集、削除したい あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。 ## Botを開発したい Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。 ## ノートの翻訳機能はどのサービスを使用していますか? 機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。 ## サービスについての問い合わせがしたい 「Misskey」はWebサービスを作成するためのソフトウェア、またそのプロジェクトの名称です。したがって、「Misskey」自体はWebサービスではありません。
また、当Misskey ProjectはいかなるWebサービスも運営・管轄していませんので、Misskeyを使ったWebサービスについてのお問い合わせは当該Webサービスのお問い合わせ窓口にお願いします。
人によっては、「Misskeyを使って作られたWebサービス」のことを指して「Misskey」と表記している場合がありますので注意が必要です。 ## 支援金はどのように活用されますか? 継続的なMisskey開発のために活用されます。 具体的な主な使途はフルタイム開発者(=現在@syuilo)への給与(報酬)です。 フルタイムの開発者がいることによりMisskey Projectは成り立っています。 また、フルタイムではない開発者に対して、業務委託した際の報酬の支払いや、不定期的な給付金の支払いにも充てられます。 他には、割合としては低いですが、関係者の接待交際費用、他OSSへの支援費用、ドメイン維持費用、開発に供する各種ソフトウェア・サービスの利用料金、資料(書籍等)購入費用、備品(動作検証用デバイス等)費用、商標など権利の維持費用、税理士報酬、グッズ(Misskeyカード等)に係る費用(製作費、発送費用等)、アセット(ロゴ、アイコン、イラスト、サウンド等)発注費用、バーチャルオフィス利用料等に充てられることもあります。 広告に関しては現在実施していませんので宣伝広告費用は発生していません。 なお、基本的にいただいたご支援金は税制上「売上」扱いになり、受け取り側で課税対象になるほか、受け取り側で送金に使用されたサービスに対する手数料を支払いますので、いただいたご支援金の全額を活用できるわけではない点にご留意ください。 ## サーバーを作成しましたが、電気通信事業の届出は必要ですか? ### 短い答え **営利目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。 ### 長い答え 届出が必要になる「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)で「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして利益を得る目的でサーバーを運営しない限り届出は必要ありません。また、寄付や広告などで収入があったとしても、サーバーの維持費の範囲であれば届出が必要な事業者には該当しません。(総務省に確認済み)
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。 なお、届出が不要な場合でも、任意で届出を行うこと自体は可能です。 ## DM機能があるため、電気通信事業の届出が必要になるのではありませんか? [「サーバーを作成しましたが、電気通信事業の届出は必要ですか?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)で説明している通りです。 運営するサービスがどのような機能を持っていようと、「料⾦を徴収することにより収益を得ようとする」ことに該当しなければ、届出が必要な事業者とはみなされません。 ## 名称に「Misskey」を含むサービスを公開しても良いですか? 「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。 また、その場合でも使用料の徴収などを行う予定もありません。 ================================================ FILE: content/th/docs/2.for-users/4.resources/glossary.md ================================================ --- description: 'อภิธานศัพท์ที่เกี่ยวข้องกับ Misskey' --- # อภิธานศัพท์ อภิธานศัพท์ที่เกี่ยวข้องกับ Misskey ## Acct สตริงในรูปแบบ `@username@host` ซึ่งเป็น fully-qualified username ของผู้ใช้นั้นๆ (สตริงที่ระบุครบถ้วนทั้งชื่อผู้ใช้และโฮสต์ที่ผู้ใช้อยู่)ใช้ในกรณีที่ต้องการกล่าวถึงผู้ใช้ ## ActivityPub (แอ็กทิฟวิตีพับ) โปรโตคอลมาตรฐานเปิดที่ใช้ในการสร้าง ‘เครือข่ายสังคมแบบกระจายศูนย์และเป็นสหพันธ์ต่อกัน’ หรือที่เรียกกันว่า ‘Fediverse’โปรโตคอลนี้ช่วยให้เซิร์ฟเวอร์เชื่อมต่อกันและแลกเปลี่ยนข้อมูล เช่น เนื้อหาและการแจ้งเตือนระหว่างเซิร์ฟเวอร์ได้เป็นสิ่งที่ขาดไม่ได้ในการสร้างเครือข่าย Fediverse ## AiScript (ไอสคริปต์) ภาษาโปรแกรมที่ทำงานบน JavaScript ซึ่งสามารถใช้บน Misskey ได้รายละเอียดเพิ่มเติม[ที่นี่](https://aiscript-dev.github.io/) ## API (เอพีไอ) ส่วนต่อประสานโปรแกรมประยุกต์สำหรับการมีปฏิสัมพันธ์กับเซิร์ฟเวอร์ Misskeyรายละเอียดเพิ่มเติม[ที่นี่](../../for-developers/api) ## Bot (บอต) บัญชีที่ถูกควบคุมโดยโปรแกรมอัตโนมัติ ## CW (การเตือนเนื้อหา) CW คือตัวย่อของ Contents Warning (การเตือนเนื้อหา)
(ในไคลเอ็นต์ Misskey ต้นฉบับภาษาญี่ปุ่นจะใช้คำว่า CW แต่ในฉบับแปลไทยจะใช้คำว่าเตือนเนื้อหา/ซ่อนเนื้อหา แล้วแต่กรณี)ฟังก์ชันที่สามารถทำให้เนื้อหาของโน้ตไม่แสดงจนกว่าจะกดดูเพิ่มเติมเองใช้เพื่อซ่อนเนื้อหาที่ยาวหรือป้องกันการสปอยล์รายละเอียดเพิ่มเติม[ที่นี่](../features/note/#cw) ## Fediverse (สหพันธ์) (ทับศัพท์: เฟดิเวิร์ส)
เป็นคำผสมระหว่าง “Federated(Federation/การเป็นสหพันธ์)” กับ “Universe(จักรวาล)”เครือข่ายสังคมแบบกระจายศูนย์และเป็นสหพันธ์ต่อกัน ซึ่งประกอบด้วยเซิร์ฟเวอร์ที่ใช้ซอฟต์แวร์แบบกระจายศูนย์หลายตัวหลายประเภท เช่นMastodon Pleroma Pixelfed ฯลฯ รวมถึง Misskey ด้วยเช่นกัน ## GTL (ไทม์ไลน์ทั่วโลก) GTL คือ ตัวย่อของ Global Timelineดูรายละเอียดเพิ่มเติมเกี่ยวกับไทม์ไลน์[ที่นี่](../features/timeline) ## HTL (ไทม์ไลน์หลัก) HTL คือ ตัวย่อของ Home Timelineดูรายละเอียดเพิ่มเติมเกี่ยวกับไทม์ไลน์[ที่นี่](../features/timeline) ## LTL (ไทม์ไลน์ท้องถิ่น) LTL คือ ตัวย่อของ Local Timelineดูรายละเอียดเพิ่มเติมเกี่ยวกับไทม์ไลน์[ที่นี่](../features/timeline) ## MFM (เอ็มเอฟเอ็ม) ตัวย่อของ Markup language For Misskey เป็นภาษามาร์กอัปที่สามารถใช้ได้ใน Misskeyรายละเอียดเพิ่มเติม[ที่นี่](../features/mfm) ## Misskey Web (ทับศัพท์: เว็บมิสคีย์)
เว็บไคลเอนต์ (อินเตอร์เฟซ) อย่างเป็นทางการของ Misskeyจะแสดงให้เห็นโดยอัตโนมัติเมื่อเข้าถึงเซิร์ฟเวอร์ Misskey จากเว็บเบราว์เซอร์บน PC หรือสมาร์ทโฟน ## NSFW (ทับศัพท์: น็อตเซฟฟอร์เวิร์ก, คำแปล: ไม่ปลอดภัยสำหรับที่ทำงาน)
ตัวย่อของ Not Safe For Workฟังก์ชันที่ทำให้ภาพถูกติดเครื่องหมายว่ามี “เนื้อหาละเอียดอ่อน” และไม่แสดงจนกว่าจะกดดูเอง ## Renote (รีโน้ต) การอ้างอิงโน้ตที่มีอยู่แล้ว หรือการแบ่งปันโน้ตนั้นเป็นโน้ตใหม่ รวมถึงโน้ตที่สร้างขึ้นจากการกระทำดังกล่าวรายละเอียดเพิ่มเติม[ที่นี่](../features/note/#renote) ## STL (ไทม์ไลน์โซเชียล) STL คือ ตัวย่อของ Social Timelineดูรายละเอียดเพิ่มเติมเกี่ยวกับไทม์ไลน์[ที่นี่](../features/timeline) ## 藍 (ไอ) สาวเรียกแขกหน้าตาสะสวยน่ารัก(ตัวละครทางการ)ประจำ Misskeyรายละเอียดเพิ่มเติม[ที่นี่](https://xn--931a.moe/) ## เซิร์ฟเวอร์ เดี๋ยวมาเขียน (ต้นฉบับญี่ปุ่นมันว่างี้จริงๆ นะ) ## เอโมจิที่กำหนดเอง เอโมจิที่สร้างขึ้นโดยผู้ดูแลหรือผู้ใช้ของเซิร์ฟเวอร์ Misskey ตามแต่ละแห่งเอโมจิทั่วไปที่ไม่ใช่เอโมจิที่กำหนดเองจะถูกเรียกว่า “เอโมจิ Unicode”รายละเอียดเพิ่มเติม[ที่นี่](../features/custom-emoji) ## แผงควบคุม หน้าจอการตั้งค่าเซิร์ฟเวอร์ Misskey ## システムアカウント Misskeyサーバーが、外部のサーバーとやり取りする際などに使用する特別なアカウント。Misskeyサーバーに組み込まれており、必要に応じてサーバーが自動で操作する。 ## ระงับ สถานะที่บัญชีถูกตั้งค่าให้ไม่สามารถใช้งานได้ ## ไดรฟ์ ฟังก์ชันในการจัดการไฟล์ เช่น รูปภาพหรือเพลงที่ผู้ใช้อัปโหลดบนเซิร์ฟเวอร์ Misskeyรายละเอียดเพิ่มเติม[ที่นี่](../features/drive) ## โน้ต ข้อความที่ผู้ใช้โพสต์บนเซิร์ฟเวอร์ Misskeyสามารถแนบเนื้อหาต่างๆ ที่เป็นเอกลักษณ์ของ Misskey ได้ เช่น ไฟล์ รูปภาพ เพลง โพล ฯลฯรายละเอียดเพิ่มเติม[ที่นี่](../features/note) ## プロキシアカウント 外部のサーバーに所属するユーザーの投稿を取得するために、Misskeyサーバーが自動で作成・操作するシステムアカウント。自サーバーのユーザーが、他サーバーのユーザーのコンテンツを、そのユーザーをフォローしていない状態で取得しようとした際などに、そのユーザーを代理でフォローすることがある。 ## มิสคิสต์ คำเรียกผู้ใช้ที่มีบัญชีบนเซิร์ฟเวอร์ Misskeyหรือคำเรียกผู้ใช้ที่เฮฟวี่ย์ที่สุดในบรรดาผู้ใช้ทั้งปวง ## ผู้ควบคุม ผู้ใช้ที่มีสิทธิ์ในการจัดการเซิร์ฟเวอร์ เช่น การระงับสแปม การสั่งปิดปาก หรือการลบโพสต์ที่ไม่เหมาะสมซึ่งส่วนใหญ่จะถูกสรรหาและแต่งตั้งเป็นผู้ควบคุมภายในเซิร์ฟเวอร์โดยผู้ดูแลเซิร์ฟเวอร์นั้นๆ ## ระยะไกล (คำอังกฤษ: remote)
หมายถึงเซิร์ฟเวอร์อื่นโดยสามารถใช้เป็นคำต่อท้าย/คําวิเศษณ์ เช่น ผู้ใช้ระยะไกล (ผู้ใช้จากเซิร์ฟเวอร์อื่น)ตรงข้ามกับคำว่าท้องถิ่น ## สหพันธ์ กลุ่มของเซิร์ฟเวอร์หลายแห่งที่เชื่อมต่อกันและแลกเปลี่ยนข้อมูล เช่น เนื้อหาและการแจ้งเตือน ระหว่างเซิร์ฟเวอร์ซึ่งกันและกัน ## ท้องถิ่น เซิร์ฟเวอร์ที่ตนเองอยู่โดยสามารถใช้เป็นคำต่อท้าย/คําวิเศษณ์ เช่น ผู้ใช้ท้องถิ่น (ผู้ใช้จากเซิร์ฟเวอร์นี้) ไทม์ไลน์ท้องถิ่น (ไทม์ไลน์เฉพาะเซิร์ฟเวอร์นี้)ตรงข้ามกับคำว่าระยะไกล ================================================ FILE: content/th/docs/2.for-users/4.resources/misskey-hub.md ================================================ # เกี่ยวกับ Misskey Hub Misskey Hub เป็นเว็บไซต์ทางการของ Misskey ที่ให้บริการเอกสารความรู้เกี่ยวกับ Misskey บล็อกการพัฒนา ร้านค้าปลั๊กอิน และอื่นๆ โดยมีเป้าหมายที่จะเป็น “ที่นี่มีของทุกอย่างเกี่ยวกับ Misskey” Misskey Hub ก็[เผยแพร่เป็นโอเพนซอร์ส](https://github.com/misskey-dev/misskey-hub) :::tip Misskey Hub เป็น static site สร้างด้วย Nuxt ::: ## มามีส่วนร่วมกับ Misskey Hub ยินดีรับเอกสารและคำแปลเพิ่มเติม ================================================ FILE: content/th/docs/2.for-users/4.resources/self-xss.md ================================================ # Self-XSS攻撃について ![](/img/docs/for-users/resources/self-xss/console_warn.png) 誰かに指示されてMisskeyを操作していたら、上図のような画面に遭遇してこのページに辿り着きましたか? **おそらくあなたは悪意ある攻撃者に騙されています。** 入力しろと指示された内容(おそらくプログラムです)を入力しない限り、指示していた攻撃者に情報が送信されることはありません。**すぐに作業を中止してください。** この画面は開発者がコードの確認やバグ修正に使うための「コンソール」と呼ばれるツールで、**通常の利用でこの画面を必要とすることはありません。** ## もう少し詳しく Self-XSS攻撃では、攻撃者がユーザーをだまして、ブラウザの開発者ツールに悪意のあるプログラムコードを貼り付けさせます。この際、ユーザーには以下のような文句で誘導させます: - 隠し機能や特典を開放できる - セキュリティテストのためにこのコードを実行してみてほしい - ウェブサイトをハッキングして不正にポイントを入手できる このような文句に騙されてコードを実行してしまうと、攻撃者が意図した通りの操作を行うことになります。 一般的にイメージされる「サイバー攻撃」とは違い、Self-XSS攻撃はユーザーが使用する正規のアプリを通して機密データを取得するため、システム側での対策だけでなく、ユーザーが普段から注意することが重要です。 ================================================ FILE: content/th/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # คู่มือแบบทีละขั้นตอน ส่วนนี้จะให้คำแนะนำทีละขั้นตอนเกี่ยวกับการดำเนินการที่ซับซ้อนที่พบในการใช้ Misskey :::warning ส่วนนี้ยังอยู่ในช่วงการทดลองเนื้อหาอาจไม่สมบูรณ์ ::: ================================================ FILE: content/th/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "คู่มือแบบทีละขั้นตอน" description: "จะอธิบายการใช้งาน Misskey ทีละขั้นตอนอย่างละเอียด ให้ตรวจสอบที่นี่! เมื่อไม่แน่ใจวิธีการใช้งาน" ================================================ FILE: content/th/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "วิธีลบบัญชี" description: "ต่อไปนี้จะเป็นการอธิบายวิธีการลบบัญชี Misskey" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "สมาร์ทโฟน" steps: - title: "เปิดตั้งค่า" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "กรอกรหัสผ่าน" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "เปิดตั้งค่า" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "กรอกรหัสผ่าน" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/th/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "2段階認証を設定する方法(ワンタイムパスワード)" description: "Misskeyのアカウントにワンタイムパスワードを設定してセキュリティを強化する方法を説明します。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 2段階認証を設定すると、アカウントへの侵入リスクを軽減し、セキュリティを強化できます。ここでは、ワンタイムパスワードの設定方法をご紹介します。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「セキュリティ」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「セキュリティ」を見つけてタップします。 - title: "「認証アプリの設定を開始」をタップ" image: "sp/3.png" description: | 「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/th/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/th/docs/2.for-users/_dir.yml ================================================ title: "สำหรับผู้ใช้ Misskey" ================================================ FILE: content/th/docs/3.for-admin/_dir.yml ================================================ title: "สำหรับผู้ดูแลระบบเซิร์ฟเวอร์" description: "เผยแพร่ข้อมูลเกี่ยวกับวิธีการสร้างเซิร์ฟเวอร์และข้อมูลที่เป็นประโยชน์สำหรับการดำเนินการ" ================================================ FILE: content/th/docs/3.for-admin/features/1.index.md ================================================ --- description: "ฟังก์ชันสำหรับผู้ดูแลเซิร์ฟเวอร์" --- # ฟังก์ชันของเซิร์ฟเวอร์ Misskey มีฟังก์ชันต่างๆ ที่เป็นประโยชน์สำหรับการจัดการเซิร์ฟเวอร์ ================================================ FILE: content/th/docs/3.for-admin/features/abuse-report.md ================================================ # 通報 Misskeyでは、サーバー内外のユーザーからサーバー内のコンテンツに関する通報を受け取ることができます。 通報は[コントロールパネル > 通報](x-mi-web://admin/abuses)に届きます。**こまめに確認するようにしましょう。** ## 通報への対処 通報には、 - 通報対象のユーザー - 通報内容 - 通報者 の情報が含まれています。 :::tip リモートのサーバーから通報が転送されてくる場合があります。この場合、通報者はそのサーバーのシステムアカウント(`@instance.actor`)となっている可能性があります。 ::: 必要に応じて、通報に関する状況をメモするために、管理者およびモデレーター権限を持つアカウントしか確認できないモデレーションノートを残すことができます。 通報への対処が完了したら、完了としてマークしましょう。 - 内容が正当であり、何かしらのアクションを行った場合などには「解決(是認)」 - 内容が不正で、特に対処を行わなかった場合などには「解決(否認)」 という具合に、対処の結果に応じて解決のステータスを区別して対応を終了させることができます。 ## リモートへ転送 リモートのユーザーに関する通報の場合は、その通報を当該サーバーに転送することができます。通報を転送する際は、通報者が匿名のシステムアカウント(`@instance.actor`)という形で転送されます。 ## 通報の通知 通報があったことは、Webhookまたはメール通知にて受け取ることができます。[コントロールパネル > 通報](x-mi-web://admin/abuses)を開き、「通知設定」から設定してください。 ================================================ FILE: content/th/docs/3.for-admin/features/announcement.md ================================================ # สังเกต お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。 お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。 :::warning アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。 - 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する - 「非通知」オプションを有効にしてお知らせを作成する - 終了したお知らせはアーカイブする ::: ## 表示形式 お知らせの表示形式を以下の種類から選択することができます。 - **通常** ... お知らせ一覧ページにお知らせが掲載されます。 - **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。 - **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。 - ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。 ## お知らせの作成 ### 全体お知らせ 1. 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > お知らせ](x-mi-web://admin/announcements)にアクセスします。 2. 「追加」ボタンをクリックすると、新しいお知らせの項目が追加されます。 3. 内容を編集して「保存」をクリックすると、お知らせが公開されます。 ### ユーザーへの個別お知らせ 1. お知らせを配信したいユーザーのモデレーションページを開きます。 - 管理者もしくはモデレーター権限を持つアカウントでユーザーのプロフィールページを開き、「フォロー」ボタン横の「…」をクリックし、「モデレーション」をクリック - 管理者もしくはモデレーター権限を持つアカウントで[コントロールパネル > ユーザー](x-mi-web://admin/users)にアクセスし、アカウントを検索してクリック 2. 上部タブの「お知らせ」をクリックします。 3. 「+」ボタンをクリックすると、お知らせの新規追加ダイアログが表示されます。 4. 内容を編集して「保存」をクリックすると、ユーザーにお知らせが配信されます。 ================================================ FILE: content/th/docs/3.for-admin/features/cli.md ================================================ # 管理コマンド 2025.8.0以降のMisskeyでは、サーバー管理コマンドを利用できます。 `pnpm cli <コマンド>` の形式で使用可能です。 - `reset-captcha` - CAPTCHA設定をリセットします ================================================ FILE: content/th/docs/3.for-admin/features/federation.md ================================================ # 連合モード Misskeyは分散型プラットフォームとしてデフォルトでActivityPubによる連合をサポートしていますが、サーバーの運営方針などに応じて連合を限定的にしたり、無効化したりすることも可能です。 :::tip 連合はデフォルトで有効化されていますので、通常(連合する状態で使用する場合)は特に設定を行う必要はありません。 ::: ## 設定方法 [コントロールパネル > 全般](x-mi-web://admin/settings) の「連合」から設定可能です。 ### 全て 全てのサーバー(ブロックしているサーバーなどを除く)と連合します。デフォルトの設定です。 ### ホスト指定 特定のサーバーとのみ連合します(ホワイトリスト)。「連合を許可するサーバー」に、連合を許可するサーバーのホスト名を改行区切りで入力します。 ### なし 他のサーバーとの連合を行いません。一部の連合関連の設定画面や項目が省略されます。 ================================================ FILE: content/th/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTTはMisskeyで利用可能なサーバー機能のひとつです。 有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。 [コントロールパネル > パフォーマンス](x-mi-web://admin/performance) から設定を行えます。 ## データベースへのフォールバック - 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。 - 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。 ## FTTが適用可能なタイムライン - ホームライムライン - ローカルタイムライン - ソーシャルタイムライン - ユーザーリストタイムライン ================================================ FILE: content/th/docs/3.for-admin/features/managing-emojis.md ================================================ # カスタム絵文字の管理 :::warning 現在、このドキュメントは更新作業中です。過去の情報が含まれていることがありますのでご注意ください。 ::: カスタム絵文字は、管理者・モデレーターと、カスタム絵文字の管理のロールポリシーを持つユーザーが設定からカスタム絵文字ページにあるサブメニューにアクセスして管理できます。 デフォルトでは、現在ローカルにインストールされている絵文字の一覧が表示されます。 最初はこのリストは空ですが、さまざまな方法でカスタム絵文字を追加できます。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 各絵文字には名前とカテゴリ、いくつかのタグを設定できます。 カテゴリは絵文字ピッカーの構造化に使用されます。 タグは絵文字ピッカーで検索する際に絵文字を見つけるための別名として使用されます。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/th/docs/3.for-admin/features/role.md ================================================ # ロール ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。 ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。 ロールは一人のユーザーに対して複数アサインすることができます。 ## ベースロール 全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。 ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。 ## アサインの種類 アサイン方法はマニュアルまたはコンディショナルから選択できます。 - **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール) - アサインする期間を設定することも可能です。 - **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール) :::warning コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。 - 手動でのアサイン/アサイン解除は行えません。 - 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。 ::: ## 権限 ロールの基本的な権限は以下から選択できます。 - **一般ユーザー** ... 特別な権限はありません。 - **モデレーター** ... 基本的なモデレーションに関する操作を行えます。 - **管理者** ... サーバーの全ての設定を変更できます。 より詳細な権限はポリシーの設定で行います。 ## ポリシー ロールのポリシーを調整して、権限や機能の制限を変更できます。 ポリシーはベースロールに設定された値を継承するように設定することもできます。 ### 優先度 複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。 優先度を高く設定するほど他の定義より優先されます。 優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。 **優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。** :::tip 例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、 - 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。 - ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。 また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、 - 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。 - ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。 ::: ### ベースロールの値を使用 この設定をオンにすると、ポリシーの値をベースロールから継承します。 ## ロールの作成 コントロールパネルの「ロール」から新しいロールを作成することができます。 ## ロール情報の確認、編集、および削除 コントロールパネルの「ロール」で行うことができます。 ## ユーザーへのロールのアサイン、アサイン解除 ユーザーの「モデレーション→ロール」で行うことができます。 また、ユーザーのメニューから直接アサインすることもできます。 アサインする際にアサインされる期間を設定することが可能です。 :::tip ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。 ::: :::warning コンディショナル ロールには手動でのアサインはできません。 ::: ## ユーザーのポリシーの確認 ユーザーの「モデレーション→概要→ポリシー」で行うことができます。 ================================================ FILE: content/th/docs/3.for-admin/features/search.md ================================================ # ノート検索 Misskeyにはノートの検索機能があります。有効化することで、ノートの検索ができるようになります。 :::tip 検索機能はデフォルトで無効となっています。 利用する場合は、ロールの「ノート検索の利用」を有効にしてください。 ::: ## サポートしている検索エンジン Misskeyはノート検索に使用するアルゴリズムを複数ご用意しています。サーバーの規模やニーズに応じて切り替えることができます。 - sqlLike ... PostgreSQLの標準機能を用いて検索を行います。(デフォルト) - データベース組み込みの機能を使用するためお手軽です。 - データの量が増えてくると検索に時間がかかりやすくなります。 - sqlPgroonga ... 全文検索エンジンの[Pgroonga](https://pgroonga.github.io)を用いて検索を行います。 - Pgroongaのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - meilisearch ... 全文検索エンジンの[Meilisearch](https://www.meilisearch.com)を用いて検索を行います。 - Meilisearchのインストールが必要です。 - sqlLikeより高速な検索が可能です。 - 検索対象のノートは、公開範囲が「パブリック」または「ホーム」です。フォロワー限定投稿も含めたい場合は`sqlLike`または`sqlPgroonga`を使用する必要があります。 検索エンジンを変更する場合は、設定ファイルの `fulltextSearch` の `provider` を書き換えて、Misskeyのプロセスを再起動してください。 ## Pgroongaを使う ### Pgroongaのインストール :::warning 作業前にデータベースのバックアップをおすすめします。 また、Misskeyを停止してから作業を開始してください。 ::: Ubuntu 22.04、PostgreSQL 15の環境にPgroongaをインストールする例です。 詳細は[公式PostgreSQL用のインストール方法](https://pgroonga.github.io/ja/install/ubuntu.html)をご確認ください。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` MeCabベースのトークナイザーを使いたい場合は、以下も実行します。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### Pgroongaの有効化 次にPostgreSQLにログインします。 ```sh sudo -u postgres psql ``` ログインをしたら、Misskeyのデータベースを選択します。 ```sh \c "mk1" ``` PGroongaを有効化します。 ```sh CREATE EXTENSION pgroonga; ``` PGroonga用のインデックスを作成します。 :::warning インデックス作成には時間がかかります。十分な作業時間を確保してください。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完了したら、`exit` と入力し、Postgresqlからログアウトします。 ### 検索エンジンの変更 Misskeyの設定ファイルを編集します。 `fulltextSearch` を `sqlPgroonga` に変更してください。 ```sh fulltextSearch: provider: sqlPgroonga ``` Misskeyのプロセスを起動し、ノートの検索ができれば完了です。 ================================================ FILE: content/th/docs/3.for-admin/install/_dir.yml ================================================ title: "การติดตั้งและการบำรุงรักษา Misskey" description: "ข้อมูลที่เป็นประโยชน์เกี่ยวกับวิธีการติดตั้ง Misskey และการบำรุงรักษาหลังจากติดตั้งแล้ว" ================================================ FILE: content/th/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: 'วิธีสร้าง/ตั้งเซิร์ฟเวอร์ Misskey' --- # ตั้งเซิร์ฟเวอร์ Misskey Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::warning Misskeyのソースコードを変更した場合(フォークも含む)、その変更点を公開することがライセンスにより義務付けられています。詳細は[こちら](/docs/for-admin/install/resources/forking/)をご覧ください。 ::: ## XServer SNSでインストール XServer SNSでは、サービスを申し込むだけでMisskeyのサーバーが自動で作成されます。 サーバーの管理やメンテナンスも運営元が対応してくれるので、難しい知識不要でサーバー運用が可能です。 詳細は[こちら](https://sns.xserver.ne.jp/misskey.php)をご覧ください。 ## インストール方法一覧 ================================================ FILE: content/th/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/th/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 Misskeyを簡単にインストールするためのシェルスクリプトができました! いくつかの質問に答えるだけで、UbuntuサーバーへMisskeyを簡単にインストールできます! また、アップデートスクリプトもあります。 [v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md) ## 準備するもの 1. ドメイン 2. Ubuntuがインストールされたサーバー 3. Cloudflareアカウント(推奨) :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。 ## Cloudflareの設定 Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする すべてのパッケージを最新にし、再起動します。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. インストールをはじめる SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` example.comは自分のドメインに置き換えてください。 ### 4. アップデートする アップデートのためのスクリプトもあります。 アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 動作を確認した環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] iptablesを使うようにしてください。 ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 お勧めする順番は次の通りです。 1. Docker Hub 2. systemd 3. Dockerビルド ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 アップデートの際に使用します。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskeyユーザー)/.misskey.env systemdの場合に生成されます。 主にディレクトリを覚えておくのに使用します。 ### /home/(misskeyユーザー)/.misskey-docker.env Dockerの場合に生成されます。 実行されているコンテナとイメージの番号を保存しています。 コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskeyディレクトリ Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。 (ユーザー、ディレクトリの初期値はともにmisskeyです。) Misskeyディレクトリへは、以下のように移動するとよいでしょう。 ```sh sudo -iu ユーザー cd ディレクトリ ``` もとのユーザーに戻るにはexitを実行します。 ```sh exit ``` ### systemd systemdのプロセス名はexample.comです。 たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` journalctlでログを確認できます。 ```sh journalctl -t example.com ``` 設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。 ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 同じサーバーにもう1つMisskeyを建てたい スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/th/docs/3.for-admin/install/guides/docker.md ================================================ --- description: 'このガイドはDockerを使ったMisskeyセットアップ方法を説明します。' --- # Docker Composeを使ったMisskey構築 このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: :::tip{label='前提条件'} - DockerおよびDocker Composeがインストールされていること。 ::: ## リポジトリの取得 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 設定 下記コマンドで、各種設定ファイルのサンプルをコピーします。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` `default.yml`と`docker.env`をファイル内の説明に従って編集してください。 また、必要に応じて、`compose.yml`を編集します。(ポートを変更したい場合など) ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh sudo docker compose up -d ``` GLHF✨ ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 ## cliコマンドを実行する方法 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/th/docs/3.for-admin/install/guides/kubernetes.md ================================================ # Kubernetes/TrueNASを使ったMisskey構築 このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts と TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 [TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale または - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## Misskey のアップグレード Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/th/docs/3.for-admin/install/guides/manual.md ================================================ --- description: 'このガイドではMisskeyのインストール・セットアップ方法について解説します。' --- # Misskeyを手動で構築する このガイドではMisskeyのインストール・セットアップ方法について解説します。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: :::tip{label='前提条件'} #### 以下のソフトウェアがインストール・設定されていること - **[Node.js](https://nodejs.org/en/)** (v22.15.0 以降の v22 系 または v24.10.0 以降の v24 系) - **[pnpm](https://pnpm.io/)** (v10.16.0以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。 ::: ## ユーザーの作成 Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ```sh adduser --disabled-password --disabled-login misskey ``` ## Misskeyのインストール ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 設定 設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。 ```sh cp .config/example.yml .config/default.yml ``` `default.yml` をファイル内の指示に従って編集します。 ## ビルドと初期化 次のコマンドでMisskeyのビルドとデータベースの初期化を行います。 これにはしばらく時間がかかります。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 起動 お疲れ様でした。以下のコマンドでMisskeyを起動できます。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="systemdを用いた管理"} systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` エディタで開き、以下のコードを貼り付けて保存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 ::: systemdを再読み込みしmisskeyサービスを有効化 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` misskeyサービスの起動 ```sh sudo systemctl start misskey ``` :::tip `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ::: :::: ## Misskeyのアップデート方法 :::warning アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。 ::: masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` アップデート内容、およびデータベースの規模によっては時間がかかることがあります。 アップデートが終わり次第、Misskeyプロセスを再起動してください。 ```sh sudo systemctl restart misskey ``` :::tip ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください: - `pnpm run clean`または`pnpm run clean-all` - `pnpm rebuild` ::: ================================================ FILE: content/th/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # Ubuntu版Misskeyインストール方法詳説 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar@fuga.foo)にはCloudflareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/th/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "การบำรุงรักษาและการแก้ปัญหาของ Misskey" description: "เซิร์ฟเวอร์ Misskey จำเป็นต้องมีการบำรุงรักษาเป็นประจำ ขอแนะนำข้อมูลที่เป็นประโยชน์และวิธีการแก้ปัญหาเมื่อต้องเผชิญกับปัญหา" ================================================ FILE: content/th/docs/3.for-admin/install/resources/cdn.md ================================================ # CDNの設定 Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。 CDNを使用することで、以下のようなメリットがあります。 - 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する - サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる ## キャッシュ Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。 Misskey APIはキャッシュすることはできません。 CDNで以下の設定を行なってください。 - `/api/*`以外のリクエストをすべてキャッシュする :::tip Misskeyをアップデートした際にキャッシュのクリアは不要です。 ::: ================================================ FILE: content/th/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/th/docs/3.for-admin/install/resources/nginx.md ================================================ # Nginxの設定 [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\ (ファイル名はmisskeyでなくても構いません。) 2. 次のように編集します。 1. example.tldを自分が用意したドメインに置き換えます。\ `ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。 2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。 3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。 5. `sudo systemctl restart nginx` でnginxを再起動します。 ## 設定例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; http2 on; 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; } } ``` ================================================ FILE: content/th/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # GitHub Actionsを使用してDocker Hubへpushする方法 [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に GitHub ActionによりDocker Hubへpushするワークフローが記述されています。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/th/docs/3.for-admin/install/resources/scale-out.md ================================================ # Misskeyサーバーのスケールアウト サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。 ## PostgreSQLのレプリケーション PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。 MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋) ```yml # レプリケーションを使用する場合は true にします dbReplications: true # リードレプリカのリストをここで設定します(いくつでも設定可能) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。 ## 役割に応じたRedisの分割 Misskeyは以下のように様々な用途でRedisを使用します。 - ジョブキューの管理 - レートリミットの管理 - キャッシュ - 通知などの情報の保存 - グローバルなイベントのPub/Sub Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。 configファイルで以下のように設定します。(一部抜粋) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。 ## リモートのチャートの無効化 個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。 コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。 ================================================ FILE: content/th/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # マニュアルインストール時のトラブルシューティング 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!** [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/th/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "ข้อมูลที่เป็นประโยชน์ในการควบคุมและดูแล" description: "รวบรวมข้อมูลที่เป็นประโยชน์ในรันเซิร์ฟเวอร์จริงๆ" ================================================ FILE: content/th/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # LTL/STL/GTLの無効化 Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。 LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 :::warning 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。 ::: なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 ================================================ FILE: content/th/docs/4.for-developers/_dir.yml ================================================ title: "สำหรับนักพัฒนา" description: "แหล่งข้อมูลสำหรับผู้พัฒนาปลั๊กอิน/Play รวมถึงนักพัฒนาที่ใช้ API ในการพัฒนาแอปพลิเคชันภายนอก" ================================================ FILE: content/th/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。 - [プラグイン](./plugin/create-plugin/) - [ウィジェット](/docs/for-users/features/widgets/) - ボタン - AiScriptコンソール - AiScript App - [Misskey Play](./plugin/create-play/) - スクラッチパッド :::tip AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。 ::: ## 使い方 AiScript標準の構文や組み込み関数などが使用できます。 :::tip ドキュメントは[こちら](https://aiscript-dev.github.io/) Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください。 ::: これらに加え、Misskey専用の組み込み定数・関数が3グループに分けて提供されています。 ### Misskey AiScript API 接頭辞: `Mk:` Misskey内の全てのAiScript環境で使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。 ### プラグインAPI 接頭辞: `Plugin:` [プラグイン](./plugin/)でのみ使用できる定関数群です。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。 ### UI API 接頭辞: `Ui:` [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、[Misskey Play](./plugin/create-play/)、Scratchpadで使用できます。 詳しくは[AiScript Misskey拡張API リファレンス](./plugin/plugin-api-reference/)の`Ui:`とついた部分を参照して下さい。 ### 標準入出力 AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文)の内部実装は、Misskey側で独自に提供されています。 #### readline(message) `message`: `str` 返り値: `str` Misskey内の全てのAiScript環境で使用できます。 文字列の入力を求めるポップアップを表示します。 #### print(message) `message`: `any` 返り値: `null` [ウィジェット](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpadで使用できます。 コンソールに文字列を出力します。 `<:`構文も同様の働きをします。 ================================================ FILE: content/th/docs/4.for-developers/api/1.index.md ================================================ --- description: 'MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。' --- # Misskey API MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 :::tip Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\ ::: ================================================ FILE: content/th/docs/4.for-developers/api/endpoints.md ================================================ # エンドポイント一覧 :::tip 現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。 また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。 ::: ================================================ FILE: content/th/docs/4.for-developers/api/libraries.md ================================================ --- description: 'Misskey APIに関連するライブラリの一覧' --- # ライブラリの一覧 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/th/docs/4.for-developers/api/permission.md ================================================ --- description: 'アプリケーションが要求する権限の一覧' --- # 権限の一覧 :::tip このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。 ::: ================================================ FILE: content/th/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/th/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # チャンネル一覧 ================================================ FILE: content/th/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` グローバルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/th/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/th/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/th/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/th/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/th/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/th/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/th/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/th/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/th/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/th/docs/4.for-developers/bot/1.index.md ================================================ # สร้างบอต สามารถพัฒนาบอตโดยใช้ [Misskey API](/docs/for-developers/api/) นอกจากนี้ยังมีการเผยแพร่บอตบางตัวให้ศึกษาเป็นแนวทางด้วย - [syuilo/ai](https://github.com/syuilo/ai) ... บอตเขียนด้วย TypeScript ทำงานบน Node.js เมื่อสร้างบอตแล้ว ควรอย่างยิ่งให้ติดแฟล็กว่าเป็นบอตในหน้าตั้งค่าโปรไฟล์ ## แหล่งข้อมูลที่เกี่ยวข้อง - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/th/docs/4.for-developers/plugin/_dir.yml ================================================ title: "สร้างปลั๊กอิน/Play" description: "เผยแพร่ข้อมูลเกี่ยวกับวิธีการสร้างปลั๊กอิน/Play รวมถึงเอกสารอ้างอิงต่างๆ" ================================================ FILE: content/th/docs/4.for-developers/plugin/create-play.md ================================================ # Playの作成 Playは、AiScriptで独自のUIを組み立て、ユーザー側でミニアプリやゲームを作成できる機能です。 作ったPlayはMisskeyサーバー上で公開することができ、誰でもあなたが作ったPlayで遊ぶことができます。 ## AiScript PlayはAiScriptを用いて作成できます。 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ================================================ FILE: content/th/docs/4.for-developers/plugin/create-plugin.md ================================================ # สร้างปลั๊กอิน Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/th/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/th/docs/4.for-developers/publish-on-your-website.md ================================================ # プラグイン・テーマを配布する Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/th/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # รายงานการแก้ไขปรับปรุง รายงานการแก้ไขปรับปรุง Misskey ## 2025.11.1 リリース日: 2025/11/28 ### ไคลเอนต์ - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### เซิร์ฟเวอร์ - Enhance: メモリ使用量を削減しました - Enhance: 依存関係の更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### ทั่วไป - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### ไคลเอนต์ - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### เซิร์ฟเวอร์ - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### ไคลเอนต์ - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### ทั่วไป - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### โน้ต - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 ปล่อยวันที่: 10/15/2024 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 ปล่อยวันที่: 05/31/2024 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 リリース日: 2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 リリース日: 2023/11/17 ### Note - 悪意のある第三者がリモートユーザーになりすました任意のアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)をご覧ください。 ### General - Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: MFMでルビを振れるように - 例: `$[ruby 三須木 みすき]` - Enhance: MFMでUNIX時間を指定して日時を表示できるように - 例: `$[unixtime 1701356400]` - Enhance: プラグインでエラーが発生した場合のハンドリングを強化 - Enhance: 細かなUIのブラッシュアップ - Fix: 効果音が再生されるとデバイスで再生している動画や音声が停止する問題を修正 #12339 - Fix: デッキに表示されたチャンネルの表示先チャンネルを切り替えた際、即座に反映されない問題を修正 #12236 - Fix: プラグインでノートの表示を書き換えられない問題を修正 - Fix: アイコンデコレーションが見切れる場合がある問題を修正 - Fix: 「フォロー中の人全員の返信を含める/含めないようにする」のボタンを押下した際の確認が機能していない問題を修正 - Fix: 非ログイン時に「メモを追加」を表示しないように変更 #12309 - Fix: 絵文字ピッカーでの検索が更新されない問題を修正 - Fix: 特定の条件下でノートがnyaizeされない問題を修正 ### Server - Enhance: FTTのデータベースへのフォールバック処理を行うかどうかを設定可能に - Fix: トークンのないプラグインをアンインストールするときにエラーが出ないように - Fix: 投稿通知がオンでもダイレクト投稿はユーザーに通知されないようにされました - Fix: ユーザタイムラインの「ノート」選択時にリノートが混ざり込んでしまうことがある問題の修正 #12306 - Fix: LTLに特定条件下にてチャンネルへの投稿が混ざり込む現象を修正 - Fix: ActivityPub: 追加情報のカスタム絵文字がユーザー情報のtagに含まれない問題を修正 - Fix: ActivityPubに関するセキュリティの向上 - Fix: 非公開の投稿に対して返信できないように ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/th/docs/6.donate.md ================================================ # บริจาคให้กับโครงการ :::tip หากท่านพิจารณาการสนับสนุนโครงการในฐานะองค์กร โปรด[ดูที่นี่แทน](/docs/become-a-sponsor/) ::: Misskey มิใช่ธุรกิจ สามารถใช้งานได้ฟรี และมีรายได้มาจากการบริจาคของทุกท่านเท่านั้น(ในกรณีที่บางเซิร์ฟเวอร์มีรายได้จากโฆษณา รายได้เหล่านั้นเป็นของผู้ดูแลเซิร์ฟเวอร์และไม่ได้ถูกส่งตรงไปยังผู้พัฒนา) การสนับสนุนของท่านจะช่วยให้เราสามารถพัฒนาต่อไปได้และเป็นการสนับสนุนโครงการเรายอมรับการบริจาคผ่านวิธีการดังต่อไปนี้(กรุณาอ่านเนื้อหาของหน้านี้ให้ดีถี่ถ้วนก่อนทำการบริจาค) - สนับสนุนแบบต่อเนื่อง(อาทิ รายเดือน) - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - สนับสนุนแบบครั้งเดียว - (แนะนำ) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - บิตคอยน์: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [Amazon.co.jp Wishlist](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip หากท่านต้องการบริจาคเงินจำนวนมาก (เช่น มากกว่าสามหมื่นเยน) ขอแนะนำพิจารณาให้ใช้ Kyash เนื่องจากการใช้ PayPal อาจมีค่าธรรมเนียมสูง หรือติดต่อเราเพื่อขอข้อมูลบัญชีธนาคารได้ ::: :::tip เราได้เตรียมของตอบแทนตามจำนวนเงินบริจาคดังต่อไปนี้ - 1,000 เยนขึ้นไป: มอบตรา mi ให้กับบัญชี misskey.io ที่ท่านใช้ - 3,000 เยนขึ้นไป: ↑ + ชื่อของท่านจะถูกบันทึกในเครดิตของ Misskey - 10,000 เยนขึ้นไป: ↑ + ชื่อและไอคอนที่ท่านเลือกจะถูกบันทึกในเครดิตของ Misskey - 20,000 เยนขึ้นไป: ↑ + [ออกบัตร MisskeyID](/docs/mi-card/) ::: :::warning ในกรณีใด ๆ (รวมถึงกรณีที่ไม่สามารถรับของตอบแทนได้ด้วยเหตุผลใด ๆ) จะไม่สามารถดำเนินการขอคืนเงินได้โปรดทราบและเข้าใจข้อกำหนดดังกล่าวก่อนทำการบริจาค ::: :::warning **การมอบตราหรือการระบุชื่อในเครดิตจะไม่ได้รับการดำเนินการโดยอัตโนมัติ ดังนั้น หากต้องการให้ดำเนินการ กรุณาส่งข้อมูลหลักฐานการบริจาคไปยัง `@syuilo@misskey.io`** (หากเราไม่ตอบกลับ ควรกล่าวถึง/mentionเราอีกครั้งเนื่องจากอาจสังเกตพลาดนอกจากนี้ การกล่าวถึงเราจากเซิร์ฟเวอร์อื่นที่ไม่ใช่ misskey.io อาจไม่ส่งถึงเราหากท่านไม่สามารถติดต่อได้จริงๆ กรุณาติดต่อเราผ่านแบบฟอร์มติดต่อของ Misskey Project แทน) ::: นอกจากนี้ โดยทั่วไปผู้ดูแลเซิร์ฟเวอร์ก็ไม่ได้มีรายได้จากการดำเนินงานเหล่านี้การดำเนินงานของเซิร์ฟเวอร์มีค่าใช้จ่ายเช่นกัน ดังนั้นโปรดพิจารณาการสนับสนุนผู้ดูแลเซิร์ฟเวอร์ด้วย แม้จะไม่เกี่ยวข้องโดยตรงกับการพัฒนา แต่การที่เซิร์ฟเวอร์ยังคงอยู่ก็สำคัญต่อโครงการไม่น้อยไปกว่าการพัฒนา ================================================ FILE: content/th/docs/7.become-a-sponsor.md ================================================ # เกี่ยวกับผู้อุปถัมภ์ :::tip 個人でプロジェクトへの支援をご検討の方は[こちらをご覧ください。](/docs/donate/) ::: โครงการ Misskey กำลังมองหาผู้อุปถัมภ์อยู่ การเป็นผู้อุปถัมภ์หมายถึงคุณจะได้รับการเผยแพร่โลโก้บริษัทของคุณบน Misskey และ Misskey Hub รวมถึงการสนับสนุนทางเทคนิคด้วย [รายละเอียดเพิ่มเติมโปรดติดต่อที่นี่](/contact/) ================================================ FILE: content/th/docs/8.mi-card.md ================================================ # บัตร MisskeyID Misskey Project มีของตอบแทนพิเศษสำหรับผู้สนับสนุน โดยมอบ “บัตร MisskeyID” แบบกายภาพจริงๆ ให้! **บัตร MisskeyID เป็นบัตรโลหะความทนทานสูง มีหมายเลขซีเรียลกับชื่อเจ้าของบัตรติดด้วย** การกลึงโลหะหนักที่มีความแม่นยำถูกนำมาใช้เพื่อสร้างบัตรที่มีสถานะสูง ออกแบบทั้งด้านหน้าด้านหลังอย่างประณีตโดยชุอิโละโปรดเก็บไว้เป็นของที่ระลึกตลอดชีพ! ดูวิดีโอนำเสนอบัตรที่ผลิตจริงได้[ที่นี่](https://www.youtube.com/shorts/AdzzwxEa-WE) (เนื่องจากการตั้งค่าแสงอาจทำให้ดูเหมือนสีทอง แต่จริงๆ แล้วเป็นสีเงิน) ## プレート仕様 - ขนาด: 54.0mm x 85.6mm - น้ำหนัก: ประมาณ 34g - วัสดุ: สแตนเลสสตีลเคลือบเงาหนา 1.0mm - การกลึง: ขัดเงา (ด้านหน้า), การกัดกรด (ส่วนอื่นๆ ของด้านหน้า), งานพิมพ์ซิลค์สกรีน (โลโก้), การแกะสลักด้วยเลเซอร์ (หมายเลข) - การออกแบบ: ออกแบบโดยชุอิโละ / รวมถึงหมายเลขซีเรียล บาร์โค้ด รหัส QR และลายเซ็นของไอจัง オプションとして、プレート裏面への「syuilo」サイン記入も可能です。(ไม่มีค่าใช้จ่ายเพิ่มเติม) ### ดูแบบสามมิติ ::X__Docs__mi-card__InteractiveView :: ※หมายเหตุ: ได้มีการตัดส่วนของการออกแบบด้านหลังออกแต่โมเดลสามมิติชิ้นนี้ไม่ได้เป็นการจำลองที่สมบูรณ์แบบของผลิตภัณฑ์จริงนะ ## สิทธิ์ได้รับ **จะได้รับบัตร 1 ใบเมื่อมีการสนับสนุนรวมเป็นจำนวน 20,000 เยนขึ้นไป** :::g-details{summary='2枚以上ご希望の場合'} หากต้องการบัตรใบที่ 2 ขึ้นไป จะได้รับบัตรเพิ่มเติม 1 ใบ สำหรับทุกๆ 30,000 เยน จำนวนบัตรที่สามารถรับเพิ่มเติมได้จะคำนวณจากยอดสนับสนุนทั้งหมดหัก 20,000 เยน แล้วหารด้วย 30,000 เยน ตัวอย่างเช่น หากยอดสนับสนุนทั้งหมดรวมเป็น 50,000 เยน จะได้รับบัตรทั้งหมด 2 ใบ หากยอดสนับสนุนรวมเป็น 80,000 เยน จะได้รับบัตรทั้งหมด 3 ใบ สามารถคำนวณจำนวนบัตรที่สามารถรับได้ทั้งหมด: ::X__Docs__mi-card__Calculator :: โปรดทราบว่าเราอาจไม่สามารถจัดหาบัตรตามจำนวนที่ร้องขอได้ ทั้งนี้ขึ้นอยู่กับสถานะสต็อก ※แบบฟอร์มการสมัครสามารถส่งได้เพียงครั้งเดียวเท่านั้น สำหรับการสมัครครั้งที่สองขึ้นไป ขอความกรุณาส่งเนื้อหาเดียวกันกับแบบฟอร์มการสมัครผ่าน “แบบฟอร์มติดต่อสอบถาม” แทน ::: การสนับสนุนที่เป็นสกุลเงินดอลลาร์สหรัฐจะถูกแปลงเป็นเยนญี่ปุ่นตามอัตรา 1 USD = 150 JPY ไม่ว่าจะเป็นการสนับสนุนในช่วงเวลาใดก็ตามสำหรับสกุลเงินอื่น ๆ กรุณาติดต่อเพื่อขอข้อมูลเพิ่มเติม プレートの交付を希望される方は、本ページの内容([注意事項](#注意事項)含む)をよくお読みいただいた上で、申請が必要です。 เนื่องจากปัญหาเกี่ยวกับการจัดส่ง **ทำให้การจัดส่งบัตรจะจำกัดเฉพาะผู้ที่อาศัยอยู่ในญี่ปุ่นเท่านั้น** ขออภัยเป็นอย่างยิ่งในขณะนี้ :::warning **当プレートは、「Misskey Project」(syuilo)へ支援していただいた場合の特典です。** โปรดทราบว่าการสนับสนุนเซิร์ฟเวอร์ Misskey จะไม่ได้รับสิทธิพิเศษนี้ [คลิกตรงนี้เพื่อสนับสนุน Misskey Project](/docs/donate/) ::: :::tip การคำนวณยอดสนับสนุนรวมจะไม่คำนึงถึงวิธีการสนับสนุนหรือระยะเวลา ตัวอย่างเช่น หากในปี 2023 ได้สนับสนุนผ่าน PayPal จำนวน 5,000 เยน และในปี 2024 ได้สนับสนุนอีก 12,000 เยนผ่าน Fanbox แล้วให้กิฟต์อีก 3,000 เยนจาก Wishlist ใน Amazon ยอดรวมจะเป็น 5,000 + 12,000 + 3,000 = 20,000 เยน ท่านก็จะมีสิทธิ์ได้รับบัตร ::: ## วิธีขอรับ กรุณาส่งคำขอผ่านฟอร์มด้านล่างนี้(ต้องใช้บัญชี Google) [MisskeyIDプレート交付申請フォーム](https://forms.gle/3EcRw21nUcGqGVk68) ## การจัดส่ง การจัดส่งจะดำเนินการโดยไปรษณีย์ญี่ปุ่น**ไม่มีค่าใช้จ่ายในการจัดส่ง** - เมื่อจัดส่งแล้ว จะมีการแจ้งหมายเลขติดตามทางอีเมล - อาจจัดส่งในวันเสาร์และอาทิตย์ด้วยก็มี - 受け取り時、ご本人確認が必要になる場合があります。 プレートは検品後、丁寧に梱包し発送いたします。หากบัตรเสียหายเมื่อถึงมือคุณ กรุณาติดต่อไปรษณีย์ญี่ปุ่นเพื่อขอความช่วยเหลือ :::warning プレートはご申告いただいた住所宛てに配送いたします。 申請者ご本人様以外の住所には配送できませんのでご注意ください。 นอกจากนี้ ไม่คุณสามารถเปลี่ยนวิธีการจัดส่งได้ ::: ## ข้อควรระวัง - คุณลักษณะเฉพาะของบัตรอาจมีการเปลี่ยนแปลงโดยไม่แจ้งให้ทราบล่วงหน้า. - ไม่สามารถเลือกหมายเลขซีเรียลได้ - ขอเรียนให้ทราบว่าบัตรอาจมีรอยขูดข่วนขนาดเล็กจากกระบวนการผลิตและการขนส่งได้ - ขนาดและการกลึงอาจมีความแตกต่างเล็กน้อยในแต่ละชิ้นกรุณาเพลิดเพลินกับสิ่งเหล่านี้ในฐานะความเป็นเอกลักษณ์เฉพาะตัว - การแจกจ่ายอาจระงับชั่วคราวหรือยุติลงโดยไม่แจ้งให้ทราบล่วงหน้า - เกณฑ์การขอรับอาจมีการเปลี่ยนแปลงโดยไม่แจ้งให้ทราบล่วงหน้า - หากสูญหาย เสียหาย หรือถูกขโมย จะไม่สามารถออกใหม่ได้ ดังนั้นควรเก็บรักษาใว้ในที่ปลอดภัย - งดขายต่อหรือโอนให้ผู้อื่น ================================================ FILE: content/th/docs/9.misskey-and-misskey-servers.md ================================================ # Misskey กับเซิร์ฟเวอร์ Misskey ‘Misskey’ กับ ‘เซิร์ฟเวอร์ Misskey’ เป็นคนละสิ่งกัน しかし、名称が似ているほか、しばしば「Misskeyサーバー」は省略して単に「Misskey」と呼称されることがあり、非常に混同が生まれやすくなっています。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 両者を混同されていないか、今一度ご確認ください。 ## 「Misskey」 Misskeyは、有志によるコミュニティ「Misskey Project」が開発する「ソーシャルネットワーキングサービス(SNS)を構築するためのフリーでオープンソースのソフトウェア」です。 オープンソースとは、ソフトウェアのソースコード(設計図)が公開されていることです。 フリーとは、ソースコードの利用に料金が発生せず(無料)、誰でも自由に使えることです。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。ご注意ください。 ::: Misskeyのソースコードは誰でも自由に利用できるため、様々な人によって、Misskeyを利用して作られたSNS(Misskeyサーバー)がインターネット上に公開されています。 また、誰でも開発に参加することができます。 ## 「Misskeyサーバー」 Misskeyサーバーは、「Misskeyを使って作られたSNS」のことを指します。 例えば、「misskey.io」、「misskey.design」、「nijimiss.moe」といったSNSはMisskeyサーバー(Misskey系サーバー)です。 なお、MisskeyサーバーはMisskeyだけではなく、データベースソフトウェア「PostgreSQL」・「Redis」や、Webサーバソフトウェア「Nginx」など、様々なソフトウェアを組み合わせて作られます。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 サーバーは個人で運用されている場合も、法人で運用されている場合もあります。 :::tip Misskeyサーバーによって運営者や運営方針、利用規約は異なります。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 先述のように、Misskey(系)サーバーは単にMisskeyと表記されやすいため、Misskeyについての言及が実際には特定のMisskey(系)サーバーへの言及であることが往々にしてあります。ご注意ください。 また、「Misskeyを使用して作られた」という意味で、Misskeyサーバー上に「Misskey」のロゴやアイコンが表示されていたり、「Powered by Misskey」といった表記があることがあります。 ### 「Misskey系サーバー」 Misskeyから派生したソフトウェアを利用して作られたサーバーは、まとめてMisskey系サーバーと呼称されることがあります。 Misskey系サーバーのことは単にMisskeyサーバーと呼称されることもあります。 そのため、「Misskeyサーバー」として扱われているSNSが、実際には「Misskey系サーバー」、つまりMisskeyを使用していないSNSであるケースもあります。 ## 「Misskey Project」 「Misskey」の開発を行う有志によるコミュニティです。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例 ### Webサイト Misskeyは例えるならWebサイトを作るためのソフトウェアである「Wordpress」です。 Misskeyサーバーは「Wordpress」を使って作られた実際の個々のWebサイトに相当します。 ### アパート Misskeyは「アパートの設計図」で、Misskeyサーバーは「アパートの設計図をもとに建てられた個々のアパート」です。 Misskey Projectは建物の設計図を開発する「設計事務所」で、Misskeyサーバー利用者(ユーザー)はアパートの住人に相当します。 個々のアパートは、大家(管理会社)がそれぞれ違うのと同様に、Misskeyサーバーも管理者・運営者は個々に異なります。 Misskey Projectは設計図の公開だけを行なっており、実際にその設計図を用いてアパートを建てたり、アパートの大家・管理会社になったり、建てられたアパートの管理に関与したりすることはしていません。 #### 更新 アパートの設計図は常に修正・改善されていて、新しい機能(例えば外階段の追加)が追加されたりもします。 ただ設計図が更新されたからといって、すでに建てられたアパートが自動的に変わるわけではありません。 アパートを最新の設計図通りにするには、大家が改めて設計図をもとにアパートを改修する必要があります(アップデート)。 アパートの改修作業をどれくらいの頻度で行うかは大家次第なので、アパートによって最新度合いが異なります。 #### サポート アパート内で発生した隣人トラブルや設備の不具合などは、大家しか対応できません。 Misskey Projectは設計事務所でしかないため、アパートに対して関与する権限がありません。 ================================================ FILE: content/tw/contact-faq/0.cannot-create-account.md ================================================ --- question: 無法建立帳戶 --- **您聯絡的窗口有誤,請確認正確的聯絡方式。** 本網站是由本團體『Misskey Project』所開發的開放原始碼軟體『Misskey』的官方網站。 「Misskey」是一套用來建立社群平台的自由軟體,本身並不是一個提供註冊使用的網路服務。 (需要注意的是,有些人會將基於 Misskey 架設的社群服務(Misskey 伺服器)直接稱作『Misskey』,因此在溝通時請留意語境上的差異。) Misskey Project 僅提供 Misskey 軟體的基本原始碼作為自由軟體發布,不負責提供、營運或維護任何使用 Misskey 或其衍生版本所建立的伺服器或網路服務。 此外,我們也不負責管轄或參與這些服務的運作。 因此,即使透過本網站的聯絡表單詢問特定服務的相關事項,我們也無法受理。\*\* ================================================ FILE: content/tw/contact-faq/1.cannot-login-to-the-account.md ================================================ --- question: 無法登入帳戶 --- **您聯絡的窗口有誤,請確認正確的聯絡方式。** 本網站是由本團體『Misskey Project』所開發的開放原始碼軟體『Misskey』的官方網站。 「Misskey」是一套用來建立社群平台的自由軟體,本身並不是一個提供註冊使用的網路服務。 (需要注意的是,有些人會將基於 Misskey 架設的社群服務(Misskey 伺服器)直接稱作『Misskey』,因此在溝通時請留意語境上的差異。) Misskey Project 僅提供 Misskey 軟體的基本原始碼作為自由軟體發布,不負責提供、營運或維護任何使用 Misskey 或其衍生版本所建立的伺服器或網路服務。 此外,我們也不負責管轄或參與這些服務的運作。 因此,即使透過本網站的聯絡表單詢問特定服務的相關事項,我們也無法受理。\*\* ================================================ FILE: content/tw/contact-faq/2.delete-account.md ================================================ --- question: 我想刪除我的帳戶 --- **您聯絡的窗口有誤,請確認正確的聯絡方式。** 本網站是由本團體『Misskey Project』所開發的開放原始碼軟體『Misskey』的官方網站。 「Misskey」是一套用來建立社群平台的自由軟體,本身並不是一個提供註冊使用的網路服務。 (需要注意的是,有些人會將基於 Misskey 架設的社群服務(Misskey 伺服器)直接稱作『Misskey』,因此在溝通時請留意語境上的差異。) Misskey Project 僅提供 Misskey 軟體的基本原始碼作為自由軟體發布,不負責提供、營運或維護任何使用 Misskey 或其衍生版本所建立的伺服器或網路服務。 此外,我們也不負責管轄或參與這些服務的運作。 因此,即使透過本網站的聯絡表單詢問特定服務的相關事項,我們也無法受理。\*\* ================================================ FILE: content/tw/contact-faq/3.server-wide-content-mod.md ================================================ --- question: 我希望刪除○○伺服器上的內容 --- **您聯絡的窗口有誤,請確認正確的聯絡方式。** 本網站是由本團體『Misskey Project』所開發的開放原始碼軟體『Misskey』的官方網站。 「Misskey」是一套用來建立社群平台的自由軟體,本身並不是一個提供註冊使用的網路服務。 (需要注意的是,有些人會將基於 Misskey 架設的社群服務(Misskey 伺服器)直接稱作『Misskey』,因此在溝通時請留意語境上的差異。) Misskey Project 僅提供 Misskey 軟體的基本原始碼作為自由軟體發布,不負責提供、營運或維護任何使用 Misskey 或其衍生版本所建立的伺服器或網路服務。 此外,我們也不負責管轄或參與這些服務的運作。 因此,即使透過本網站的聯絡表單詢問特定服務的相關事項,我們也無法受理。\*\* 您所在的伺服器和其他伺服器上的內容審核是根據每個伺服器的規則進行的,因此請透過聯絡發送內容的伺服器的管理員或封鎖有問題的使用者或伺服器來保護自己。 ================================================ FILE: content/tw/contact-faq/4.copyright-infringement.md ================================================ --- question: 關於違反著作權 --- **您聯絡的窗口有誤,請確認正確的聯絡方式。** 此外,我們也無法對 Misskey 伺服器服務行使管轄權。 「Misskey」是一套用來建立社群平台的自由軟體,本身並不是一個提供註冊使用的網路服務。 (需要注意的是,有些人會將基於 Misskey 架設的社群服務(Misskey 伺服器)直接稱作『Misskey』,因此在溝通時請留意語境上的差異。) Misskey Project 僅提供 Misskey 軟體的基本原始碼作為自由軟體發布,不負責提供、營運或維護任何使用 Misskey 或其衍生版本所建立的伺服器或網路服務。 此外,我們也不負責管轄或參與這些服務的運作。 因此,即使透過本網站的聯絡表單詢問特定服務的相關事項,我們也無法受理。\*\* ================================================ FILE: content/tw/contact-faq/5.client-not-working.md ================================================ --- question: Misskey 無法正常運作 --- 首先,查看「[疑難排解](/docs/for-users/resources/troubleshooting/)」,瞭解如何解決常見瀏覽器問題。需要檢查的項目包括: - 您試過_**移除自訂 CSS 和外掛程式**_嗎? - 您有嘗試**重新登入**嗎? - 您是否使用**舊版作業系統或瀏覽器**? - 您有**稍後再嘗試瀏覽**嗎? - 您有確認過**URL是否正確**嗎? - 您試過清除**瀏覽器的快取和Cookie**嗎? 如果問題仍未解決,請**先聯繫伺服器管理員**。 如果被指示向 Misskey Project 回報問題,請不要使用以下的表單,而是前往開發平台 [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose) 提交錯誤報告。 透過以下的聯絡表單提交問題報告可能無法立即得到回應。請務必在 [GitHub](https://github.com/misskey-dev/misskey/issues/new/choose) 上提交問題報告。 ================================================ FILE: content/tw/contact-faq/6.mention-spam.md ================================================ --- question: 收到自稱是 Misskey 或伺服器支援的帳號所發送的訊息 --- **Misskey 專案不會發送那種訊息。疑似垃圾訊息,請先聯絡您所使用的伺服器管理員確認。** 如果有帳號冒充 Misskey、Misskey 專案,或特定伺服器的支援窗口,突然發送「您的帳號已被停用,需要處理」等訊息,並附上不明網站連結,或是要求您對該提及訊息做出回應、或進行任何其他行動,這種情況很可能是**垃圾訊息(詐騙訊息)。** 若遇到此類訊息,請先聯絡您所使用的伺服器管理員。**請注意,點擊貼文中的連結或回覆該貼文,可能會捲入意想不到的麻煩。** (Misskey Project 僅提供 Misskey 軟體的基本原始碼作為自由軟體發布,不負責提供、營運或維護任何使用 Misskey 或其衍生版本所建立的伺服器或網路服務。此外,Misskey 專案並不管轄或參與這些服務的管理,請將相關詢問交由**您所使用的伺服器管理員**處理。Misskey 專案無法提供相關支援。) ================================================ FILE: content/tw/docs/1.about-misskey.md ================================================ --- ignoreDirBasedNav: true description: '關於 Misskey 的文件。' --- # 關於 Misskey Misskey 是一個開源分散式微網誌平台專案。 由 syuilo 於 2014 年在日本發起開發。 其特點是功能豐富,包括雲端硬碟和反應,以及高度可自訂的使用者介面。 ![Misskey的畫面截圖](/img/hero/misskey-light.png) ## 歷史 開發初期討論區是主要的服務,但當用戶開始發表簡短的貼文並添加了按時間順序排列的時間軸功能後人氣急升,逐漸成為主要開發方向。 最初不是分散式的,但在2018年實施了ActivityPub並轉為分散式,使服務更廣泛被認知和使用,一直持續至今。 :::tip Misskey 這個名字來自歌手 May'n 的歌曲 Brain Diver 的歌詞,syuilo 當時正在聽這首歌。 ::: 任何人都可以參與開發,目前開發工作仍在積極進行中。 [Misskey歷史資料館](/about-us/history/) ## 什麼是分散式? 分散(distributed)式,也稱去中心化(decentralized),其特點是社群分佈在許多伺服器上,這些伺服器相互通信(聯邦、federation),形成內容共享網路(聯邦宇宙、Fediverse)的服務。 如果只有一個伺服器,或者有多個伺服器但彼此獨立,則稱為集中式服務,例如 Twitter 和 Facebook 等大多數服務就是這種情況。 分散式系統的優點在於,您可以選擇最適合您的伺服器營運者和主題。您也可以建立自己的伺服器。透過聯邦,無論您選擇哪個伺服器,都可以存取同一個社群。 ## 始終開放原始碼 Misskey 一直並將繼續是開源的。簡單來說,開源就是軟體的原始碼(程式)是公開的。該定義還可以包括可以修改和重新分發原始程式碼。 Misskey 的所有原始碼均在開放原始碼許可證[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)下[發布](https://github.com/misskey-dev) ,任何人都可以自由查看、使用、修改和重新發布。 開放原始碼有很多優點,例如可以隨意更改,檢查是否包含有害程序,以及任何人都可以參與開發。 開源對於上述分散式方法也至關重要。 再舉一個例子,Twitter 和 Facebook 等大多數獲利服務都不是開源的。 :::tip 從技術上來說,Misskey 的原始碼用 Git 管理,[託管在 GitHub。](https://github.com/misskey-dev) ::: ## 參與開發和支援專案 如果您喜歡 Misskey,請支持此專案。如下所述,有多種方式可以為專案做出貢獻。有些方法不需要任何開發技能,因此任何人都可以輕鬆加入並做出貢獻。我們期待您的參與。 ### 新增功能或修復錯誤 如果您具有軟體工程技能,您可以透過編輯原始碼為專案做出貢獻。 可以在[此處](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)找到貢獻指南。 ### 加入討論 您也可以透過評論新功能或現有功能或報告錯誤來做出貢獻。 此類討論可能會在 [GitHub](https://github.com/misskey-dev) 或 [論壇](https://forum.misskey.io/) 上進行。 ### 翻譯文字 Misskey 支援多種語言(稱為 i18n - internationalization 的縮寫)。原始語言基本上是日語,但已被志願者翻譯成其他語言。 您也可以透過參與翻譯工作為 Misskey 做出貢獻。 Misskey 使用名為 [Crowdin 的服務來管理其翻譯。](https://crowdin.com/project/misskey) ### 發表您的想法 除了報告錯誤之外,也請分享您對 Misskey 的優點和樂趣的正面看法。它將鼓勵發展並間接為專案做出貢獻。 ### 增加 Miskist Miskist 是指使用Misskey的人。 如果您透過向朋友和熟人介紹來宣傳 Misskey,就會增加 Miskist 的數量,並激勵開發的動力。 ### 捐款 [請查看這裡](/docs/donate/) ## 常見問題 ### 專案的目標是什麼? 如果一定要說的話,雖然有些籠統,我們的目標是成為一個被廣泛使用的通用平台。 與其他項目不同,Misskey的開發不基於任何意識形態(例如反對集中化)或願景,這一點上我們是比較開明的。 反過來說,這創造了一種不受特定方向約束的靈活性。 ### 是公司開發的嗎? 不是。Misskey的開發是由個人進行的,並且不涉及商業活動,因此沒有與特定企業的聯繫。 開發成員基本上都是志願者。 此外,雖然有可能有企業贊助開發,但在這種情況下,開發仍然主要由個人社群主導。 ### 誰在運行它? 由於 Misskey 是分散式的,因此每個伺服器都有不同的營運者。因此,Misskey並非全部由特定個人或公司經營。 此外,由於開發團隊不運營伺服器,因此有關操作的任何疑問,請聯絡您所使用的伺服器的運營者。 您可以在伺服器資訊頁面查看伺服器運營者。 如果您建立了伺服器,您就成為營運者了。 ### 應該選擇哪個伺服器? [請參考伺服器清單。](/servers/) 有些伺服器可能有特定的社群主題(如喜歡某些事物),因此如果有適合您的主題的伺服器,您不妨選擇該伺服器。 其他考慮因素包括伺服器的規模、用戶群、國家和語言,以及營運商是否值得信賴。 需要注意的是,Misskey沒有官方的伺服器。您也可以選擇自己建立新伺服器。 基本上,無論您選擇哪個伺服器,您都可以與所有其他伺服器的使用者聯繫。 ### 如何建立伺服器? 感謝您有興趣建立 Misskey 伺服器。 建立 Misskey 伺服器可以使用專屬服務或半自動建立環境(當然,也可以手動建立伺服器)。如需詳細資訊,請參閱[這裡](/docs/for-admin/install/guides/)。 ### 使用了哪些技術? 隨著開發的進展,Misskey 使用的技術發生了顯著變化。開發之初的配置是MySQL + PHP + jQuery,但現在是這樣的。 - 伺服器端:Node.js - 資料庫:PostgreSQL、Redis - 使用者介面框架:Vue.js - 程式語言: TypeScript 我們也正在開發源自 Misskey 的專有技術,例如 MFM 和 AiScript。 ### 是 Mastodon 的分支嗎? 不是。Misskey是一個完全獨立於Mastodon和其他軟體平台的專案。 就開發而言,Misskey的開發歷史比較長。然而,Misskey實做分散式協議的時間是在Mastodon之後。 除了實現了相同的ActivityPub協議這一點之外,兩者並沒有特別的關聯。 ### 有 iOS/Android 應用程式嗎? 官方沒有為此類作業系統開發原生應用程序,但有一些第三方應用程式可供使用。 詳情請參閱 [此處](/docs/for-users/resources/apps/)。 不過,由於第三方應用程式不可避免地會在功能支援方面落後,如果你不是特別挑剔,我們建議你使用官方網頁用戶端。 此外,Misskey 網頁用戶端支援 PWA,因此可以像原生應用程式一樣運作。 :::tip 有關如何配置 PWA 的資訊,請參閱[此處](/docs/for-users/stepped-guides/how-to-use-pwa/)。 ::: ### 在哪裡可以獲得 Misskey 標誌和圖示? [在這裡](/brand-assets/) ### 那偶爾出現的可愛貓耳女孩是誰? :::fukidashi{chara="doya_ai" charaName="藍"} 想了解更多關於我的訊息,請訪問 [這個網站](https://xn--931a.moe/)! ::: :::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"} Misskey 的守護神小藍。小藍超級可愛! ::: ================================================ FILE: content/tw/docs/2.for-users/1.index.md ================================================ # 使用者指南 本節介紹的一般功能不僅對第一次使用 Misskey 的人有用,而且對已經使用過的人也有用。 ================================================ FILE: content/tw/docs/2.for-users/2.onboarding/0.index.md ================================================ # 開始使用 Misskey 您可以在這裡找到開始使用 Misskey 的教學。 重點 - 分散式平台的注意事項 - 什麼是伺服器?如何選擇伺服器? - 註冊程序 - 最低限度的基礎知識 按照以下說明,您就可以開始使用 Misskey 了。 那麼就讓我們開始吧!(按「下一頁」繼續。) ================================================ FILE: content/tw/docs/2.for-users/2.onboarding/1.warning.md ================================================ --- description: '這些是在 Misskey 伺服器上建立帳戶之前的一些基本注意事項。' --- # 基本注意事項 使用 Misskey 的服務時需要注意一些事項。 - 由於它是分散式的,即使您上傳資料後將其刪除,也不能保證它會從所有其他伺服器上刪除。(不過一般來說網際網路也是如此。) - 即使您以不公開設置發布貼文,也不能保證其他伺服器會以同樣的方式將其視為不公開貼文。發布個人資訊和機密資訊時要小心謹慎。(不過一般來說網際網路也是如此。) - Misskey 所包含的「雲端硬碟」功能並不是典型的雲端儲存。此功能用於管理和重複使用上傳的檔案。 **知道 URL 的任何人都可以存取上傳的資料,無論這些檔案是否曾經附加到貼文中。** 請使用專用服務交換包含敏感資訊的資料。 - 帳戶刪除是一個負擔重的處理,可能需要很長時間。如果上傳了大量數據,則可能無法刪除該帳戶。 - 有些伺服器可能透過廣告收入來支付營運成本。此外,廣告攔截器經常會無意中攔截與廣告無關的內容和功能,這可能會干擾客戶端的操作,使他們無法正常使用 Misskey。因此,在使用Misskey時,請關閉廣告攔截器和類似功能。 請確保您了解這些內容並享受服務。 ================================================ FILE: content/tw/docs/2.for-users/2.onboarding/2.get-started.md ================================================ --- description: "解釋 Misskey 伺服器的使用者註冊和基本操作。" --- # 尋找 Misskey 伺服器 Misskey 是一款軟體及其專案。 在網路上公開執行 Misskey 的伺服器稱為**伺服器**。 要使用 Misskey,您需要在其中一台伺服器上建立帳戶,並使用該伺服器。 您可以從[伺服器清單](/servers/)中選擇您喜歡的伺服器。 :::tip 無論您選擇哪個伺服器,您都可以與其他伺服器的使用者互動。 :::g-details{summary='詳情'} Misskey 具有聯邦功能。 聯邦功能允許不同伺服器上的使用者以與同一伺服器上的使用者相同的方式關注、反應、轉發等。 Misskey 中包含的聯邦功能基於稱為 ActivityPub 的開放通用標準,並且與 Mastodon 和 Pleroma 等其他軟體相容。 ::: ::: ## 如何選擇伺服器 ### 伺服器的主題 有些伺服器可能有特定的主題,例如「喜歡某些東西和事物」。 建議尋找一個主題適合您的伺服器。 :::tip 您可以在[此處](/servers/)查看伺服器清單。 ::: ================================================ FILE: content/tw/docs/2.for-users/2.onboarding/3.join-server.md ================================================ # 在伺服器上註冊 一旦您決定了要註冊的伺服器,就可以建立帳戶了。 :::tip 這裡以Misskey.io為例,但其他伺服器的註冊方法大致相同。 但是,您需要輸入的資訊可能會因伺服器而異。請聯絡您的伺服器管理員以取得更多資訊。 ::: ## 開始註冊 首先,在首頁找到「**在此伺服器上註冊**」按鈕並點擊。 ![在伺服器註冊按鈕](/img/docs/for-users/onboarding/join-server/1.ja.png) 接下來,請按照螢幕上的指示確認服務條款並填寫必要的資訊。 主要填寫項目如下。 - 邀請碼(僅適用於註冊是邀請制的情況。如果沒有則無法註冊。) - 使用者名稱(**以後無法更改。一旦您取消會員資格,您將無法再次取得相同的使用者名稱。**) - 電子郵件地址(有些伺服器不需要) - 密碼 ![填寫必要資訊](/img/docs/for-users/onboarding/join-server/2.ja.png) 填寫完必要資訊後,如果您在伺服器上輸入了電子郵件地址,您將收到一封確認電子郵件,因此請盡快點擊電子郵件中的連結。 ![確認電子郵件](/img/docs/for-users/onboarding/join-server/3.ja.png) 至此,在 Misskey 伺服器的註冊程序就完成了! 現在你也也是一個[miskist](../resources/glossary/#miskist)!享受愉快的交流吧。 ================================================ FILE: content/tw/docs/2.for-users/2.onboarding/4.things-to-know.md ================================================ # Misskey基礎知識 我們總結了建立帳戶後您應該了解的事項! ## 貼文 在 Misskey 上發布訊息被稱為「貼文」。與 Twitter 等一般的 SNS 相比它的功能更多,所以第一次發文前請務必確認並好好發文! :::tip 詳情請參閱 [貼文](/docs/for-users/features/note/)。 ::: ## 時間軸 Misskey 有多個時間軸。光是名稱可能就有點令人困惑,因此了解每個時間軸的作用非常重要。 :::tip 詳情請參閱"[時間軸](/docs/for-users/features/timeline/)"。 ::: ## 其他 Misskey 還有許多有趣的功能!所有功能說明均可在[這裡](/docs/for-users/features/)找到,請務必查看! ================================================ FILE: content/tw/docs/2.for-users/3.features/1.index.md ================================================ --- description: "介紹 Misskey 的主要特點及其提供的各種功能。" --- # 各種功能 Misskey 的一大特色是具有其他微網誌系統所沒有的各種功能。下面將會進行說明。 ================================================ FILE: content/tw/docs/2.for-users/3.features/ads.md ================================================ # 廣告 Misskey有一個功能,可以讓您在時間軸上顯示來自伺服器的廣告等。 您可以點擊廣告右上角顯示的圖示來減少廣告的顯示頻率。 :::tip 如果廣告總數較少,即使降低展示頻率,也可能會繼續展示。 ::: ## 設定廣告(管理員) 可以從伺服器的控制台新增、編輯和刪除廣告。 廣告可配置任何圖片、目標 URL、形狀和顯示比例 ================================================ FILE: content/tw/docs/2.for-users/3.features/antenna.md ================================================ # 天線 天線是一個允許您自由設定條件並自動收集匹配貼文的功能。 當創建了設定了條件的天線並發布了符合條件的貼文時,該貼文將即時添加到天線的時間軸中。 ================================================ FILE: content/tw/docs/2.for-users/3.features/charts.md ================================================ # 圖表 Misskey 能夠為伺服器上的各種資料來源產生並顯示圖表。 透過使用圖表,您可以直觀地了解伺服器使用狀態、聯邦狀態、每個使用者的活動等。 可以從伺服器資訊頁面查看伺服器圖表。 以下是每個圖表及其項目的說明。 ## 聯邦圖表 這是關於聯邦伺服器的圖表。 ### Pub 發送 Activity 的伺服器數量。 換句話說,它表示遠端使用者在自己的伺服器上追蹤使用者時所屬伺服器的唯一計數。 ### Sub 接收 Activity 的伺服器數量。 換句話說,它表示您伺服器上的使用者所關注的遠端使用者數所屬伺服器的唯一計數。 ### Received 已接收 Activity 的伺服器數量。 ### Delivered 已遞送 Activity 的伺服器數量。 ### Stalled 遞送 Activity 時遇到錯誤的伺服器數量。 ## Active users 伺服器使用者使用狀況的圖表。 ### Read & Write 查看和發文的使用者數量。 ### Read 查看過的使用者數量。 ### Write 發文的使用者數量。 ### < Week 帳戶建立日期和時間不足一週的瀏覽用戶數量。 ### < Month 帳戶建立日期和時間不到一個月的瀏覽用戶數量。 ### < Year 帳戶建立日期和時間不到一年的瀏覽用戶數量。 ### > Week 帳戶建立日期和時間超過一週的瀏覽用戶數量。 ### > Month 帳戶建立日期和時間超過一個月的瀏覽用戶數量。 ### > Year 帳戶建立日期和時間超過一年的瀏覽用戶數量。 ================================================ FILE: content/tw/docs/2.for-users/3.features/clip.md ================================================ # 摘錄 摘錄是一項允許您將多個貼文進行分類的功能。無論這些貼文是您自己的還是別人的都沒關係。 您可以建立多個摘錄,並透過為每個摘錄設定名稱和描述來管理它們。您也可以選擇是否向其他使用者公開該摘錄。 若要建立摘錄,請在[摘錄管理頁面](x-mi-web://my/clips)點選「新增」。 若要為摘錄新增貼文,請按一下目標貼文選單中的「摘錄」,然後選擇要新增貼文的摘錄。 ================================================ FILE: content/tw/docs/2.for-users/3.features/custom-emoji.md ================================================ # 自訂表情符號 自訂表情符號是一種允許將伺服器提供的圖像用作表情符號的功能。 可用於貼文、反應、聊天、自我介紹、名稱等。 若要在這些地方使用自訂表情符號,請按表情符號選擇器按鈕(如果可用),或鍵入 `:` 以顯示表情符號建議。 如果在文字中發現形式為 `:foo:` 的字串,`foo` 部分會被解釋為自訂表情符號名稱,並在顯示時被對應的自訂表情符號取代。 您可以存取 Misskey Web 上**伺服器資訊**中的[**自訂表情符號**](x-mi-web://about#emojis),查看伺服器上有哪些自訂表情符號。 ================================================ FILE: content/tw/docs/2.for-users/3.features/deck.md ================================================ # 多欄模式 多欄模式是可用的使用者介面之一。它的特點是可以透過並排顯示多個視圖(稱為「欄」)來建立高度可自訂且資訊豐富的使用者介面。 請注意,如果新增了主欄,在頁面上查看貼文和個人檔案時,內容將顯示在主欄中。 ## 新增欄位 右鍵點選欄位背景並「新增欄位」,即可新增任何欄位。 ## 移動欄位 透過拖曳或使用欄位選單(右鍵單擊欄位標題),可將欄位與其他欄位重新定位。 ## 水平分割欄位 欄位不僅可以左右堆疊,還可以上下堆疊。 開啟「欄位」選單,選擇「向左堆疊」,即可將目前欄位移到左側欄位的下方。 若要取消垂直分割,請在欄位選單中選擇「放至右側」。 ## 設定欄位 選擇欄位選單中的「編輯」可編輯欄位設定。您可以重新命名欄位並變更其寬度。 ## 多欄模式的設定 與多欄模式相關的設置可在 [settings/deck](x-mi-web://settings/deck) 中進行。 ================================================ FILE: content/tw/docs/2.for-users/3.features/dev-mode.md ================================================ # 開發者模式 啟動開發者模式 (可透過 [設定 > 其他 > 開發者] (x-mi-web://settings/other) 設定),可讓您存取對開發者有用的功能,例如直接從功能表複製貼文和媒體 ID。 ================================================ FILE: content/tw/docs/2.for-users/3.features/drive.md ================================================ # 雲端硬碟 雲端硬碟是一項允許您在 Misskey 管理上傳檔案的功能。 :::tip 從技術上來說,所有上傳檔案都由 Misskey 系統集中管理,向使用者提供這些資訊的介面可以視作一個雲端硬碟。 ::: 您可以從 Misskey Web 上的[雲端硬碟頁面](x-mi-web://my/drive)上傳任何檔案,也可以將您設定為頭像的任何圖片和您貼文中附加的任何檔案上傳到雲端硬碟。 :::tip ロールでアップロード可能なファイル種別を設定可能で、デフォルトではテキスト、JSON、画像、動画、音声ファイルがアップロード可能です。 ::: 上傳到雲端硬碟的檔案可以隨時下載,或在建立貼文時透過「從雲端空間」重複使用檔案。 您也可以在硬碟中建立資料夾,將多個檔案組織在一起。 :::warning 目前,如果從雲端硬碟中刪除檔案, **該檔案所依附的所有內容(貼文、頁面等)** 都會同時消失。 ::: ## 敏感內容 (NSFW) 敏感或NSFW(Not safe for work,工作場所不宜)是可以在雲端硬碟中的檔案上設定的標記。 設定了敏感標記的檔案在查看時,如果沒有查看者的主動操作則不可見。 例如,在工作場所或公共場所不適合觀看的圖像上設定此標記,目的是防止突然顯示此類圖像。 此標記可以手動開啟或關閉,也可以由審查員自行設定。 ================================================ FILE: content/tw/docs/2.for-users/3.features/embed.md ================================================ # 在網站上嵌入 您可以將 Misskey 伺服器上的貼文或時間軸嵌入到您的網站中。 此外,還可以根據嵌入網站的外觀進行靈活的自定義。 這裡將說明可以嵌入的內容以及嵌入的方法。 :::warning 此功能在 Misskey v2024.9.0 及更高版本中可用。 ::: :::tip 雖然此功能支持 MFM 和自定義表情符號,但根據嵌入頁面的顯示方式,可能會導致佈局崩潰。 ::: ## 使用生成器來產生嵌入代碼。 以下介紹的嵌入代碼及客製化,可以通過 Misskey Web 內建的嵌入代碼生成器輕鬆完成。基本上,建議使用該生成器來操作。 ![嵌入代碼生成器](/img/docs/for-users/features/embed/generator.png) ## 嵌入單一貼文 ::MiWebEmbed{src="https://0key.dev/embed/notes/9tht7ungi81f0005"} :: 您可以將來自嵌入來源伺服器的單一貼文(無法使用其他伺服器來嵌入遠端伺服器的貼文)。代碼如下所示: ```html ``` 需要更換以下列出的關鍵字: - ``: Misskey 伺服器的主機名稱 - ``: 要嵌入的貼文的 ID - ``: 隨機字串(若使用 embed.js,則必須填入。如果同一頁面上有多個嵌入代碼,請確保它們不會重複。) ## 嵌入使用者貼文清單 ::MiWebEmbed{src="https://0key.dev/embed/user-timeline/9tht7g9ki81f0002?maxHeight=500"} :: 可嵌入使用者的公開貼文(公開、首頁) 清單。代碼應如下所示: ```html ``` 需要更換以下列出的關鍵字: - ``: Misskey 伺服器的主機名稱 - ``: 要嵌入的使用者 ID (不是以 `@` 開頭的使用者名稱) - ``: 隨機字串(若使用 embed.js,則必須填入。如果同一頁面上有多個嵌入代碼,請確保它們不會重複。) ## 嵌入摘錄的貼文清單 ::MiWebEmbed{src="https://0key.dev/embed/clips/9y5mpno6871g00gv?maxHeight=500"} :: 可嵌入設置為公開的摘錄貼文清單。代碼應如下所示: ```html ``` 需要更換以下列出的關鍵字: - ``: Misskey 伺服器的主機名稱 - ``: 要嵌入的摘錄 ID - ``: 隨機字串(若使用 embed.js,則必須填入。如果同一頁面上有多個嵌入代碼,請確保它們不會重複。) ## 嵌入含有指定主題標籤的貼文清單 ::MiWebEmbed{src="https://0key.dev/embed/tags/misskey?maxHeight=500"} :: 可以嵌入具有特定主題標籤的貼文清單。代碼應如下所示: ```html ``` 需要更換以下列出的關鍵字: - ``: Misskey 伺服器的主機名稱 - ``: 主題標籤名稱(不要包含`#`符號) - ``: 隨機字串(若使用 embed.js,則必須填入。如果同一頁面上有多個嵌入代碼,請確保它們不會重複。) ## 客製化用參數 嵌入的外觀可透過指定 URL 參數的特定值來自訂。
參數名稱 可指定的值 說明
maxHeight 大於或等於 0 的數值 指定嵌入的最大高度 (px)。如果嵌入內容超過指定高度,則在內部顯示捲軸。
如果指定為 0,內嵌元素的高度會自動延伸,以符合內部高度(不建議使用)
若未設定則使用預設值 700
在嵌入單一貼文的情況無作用。
colorMode
  • light
  • dark
強制色彩模式為淺色或深色。
未設定則與裝置的黑暗模式同步。
border
  • true
  • false
外框是否應該鑲框。未設定則為 true
rounded
  • true
  • false
是否要設定圓角。未設定則為 true
showHeader
  • true
  • false
是否顯示頂部標題。未設定則為 true
在嵌入單一貼文的情況無作用。
:::g-details{summary="maxHeight=0 的使用方式 基本上不建議將 `maxHeight` 設為 `0`,但在某些特殊情況下,例如希望滾動容器由嵌入網站而非 iframe 內提供,這可能會有所幫助。範例如下: ```html
Misskeyやってます!
``` ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/favorite.md ================================================ # 我的最愛 將[貼文](./note)加入到最愛的收藏功能。 您可以在[我的最愛](x-mi-web://my/favorites)頁面檢視您的最愛貼文。 對方不會收到您已新增貼文到最愛的通知,只有您自己可以看到您的最愛。 若要將貼文新增到我的最愛,請按貼文選單中的「我的最愛」。若要取消收藏某一貼文,請按貼文選單中的「從我的最愛移除」。 ================================================ FILE: content/tw/docs/2.for-users/3.features/follow.md ================================================ # 追隨 當你追隨一個使用者時,你會在自己的時間軸上看到他的貼文。但是,對其他用戶的回覆將不包括在內。 若要追隨某個用戶,請點選其使用者頁面上的「追隨」按鈕。若要取消追隨用戶,請再次點擊。 如果追隨需要批准,或者你追隨的是外部伺服器上的使用者,按一下追隨按鈕後,該按鈕會處於 「處理中」狀態。當追隨獲得批准時,客戶端會收到通知。 ## 被追隨時的訊息 :::tip 此功能適用於 Misskey v2024.9.0 或更新版本的伺服器 (對於遠端使用者,雙方的伺服器都必須是 v2024.9.0 或更新版本)。 此功能處於測試階段。 ::: 可以設定被追隨時顯示給對方的簡短訊息。如果追隨需要核准的話,將在通過追隨請求之後顯示。 此外,在被追隨期間,你的個人檔案上會顯示被追隨時的訊息。 :::warning 你被追隨時的訊息並非用來交換機密資訊。請勿包含你不想公開的資訊。 ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/hashtag.md ================================================ # 主題標籤 主題標籤是一項可讓您為貼文新增可搜尋標籤的功能。 世界上第一個主題標籤 #barcamp 是在[2007年8月24日上午4:25](https://twitter.com/chrismessina/status/223115412?lang=en)由 Chris Messina [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)發明的。後來,這個「使用井號 `#` 使搜尋更容易」的提案,演變成了一個新詞──將英文中表示「刻、駭」的「hash」和表示「標籤」的「tag」結合而成,誕生了「hashtag」,並被當時的Twitter公司正式採用。順便提一下, Chris Messina 之所以選擇 `#`,是因為他聯想到名稱以 `#` 開頭的 IRC 頻道。 ![Chris Messina 的第一條主題標籤推文的屏幕截圖:「您對使用 #(磅)表示群組有何看法。 」](/img/docs/for-users/features/hashtag/1.ja.png) 聯邦宇宙上的標籤與推特和 Instagram 等集中式服務上的標籤略有不同。在聯邦宇宙中,全文搜尋有時很困難,導致很難找到特定的貼文,但如果貼文有主題標籤,您可以透過主題標籤輕鬆找到該貼文。聯邦宇宙中也有一些服務,例如一種名為 Hashtag Relay 的服務,只需在貼文上添加一個標籤,該標籤就會自動將你的貼文發送到各個網站,而標籤在這些網站中具有一定的權重。 ================================================ FILE: content/tw/docs/2.for-users/3.features/mention.md ================================================ # 提及 只要在貼文中包含 @ + 使用者名稱,就可以建立提及該使用者的貼文。被提及的使用者會收到提及他們貼文的通知。 ================================================ FILE: content/tw/docs/2.for-users/3.features/mfm.md ================================================ --- description: 'MFM 是一種專有的標記語言,可以在 Misskey 的各個地方使用。' --- # MFM MFM 代表 Markup language For Misskey,是一種專有的標記語言,可以在 Misskey 的各個地方使用。某些語法與 Markdown 和 HTML 相容。 :::tip 某些語法與 Markdown 和 HTML 相容。 ::: ## 可使用 MFM 的地方 - 貼文的正文 - CW註釋 - 使用者名稱 - 使用者的自我介紹 ## 語法 ### 提及 「@ + 使用者名稱」可用來表示特定使用者。 :::tip 有關提及的更多資訊,請參閱[此處](./mention.md)。 ::: ``` @ai ``` ``` @repo@p1.a9z.dev ``` ### 主題標籤 可以使用"#"符號後加文字表示主題標籤。 :::tip 有關主題標籤的更多資訊,請參閱[此處](./hashtag.md)。 ::: ``` #misskey ``` ### 網址 可以標出網址。 ``` https://example.com ``` ### 連結 可將特定範圍的文字與網址綁定。 ``` [example link](https://example.com) ``` :::tip 您可以透過在連結文字前面加上 `?` 來隱藏連結預覽。 ``` ?[example link](https://example.com) ``` ::: ### 自訂表情符號 您可以透過用冒號包圍自訂表情符號名稱來顯示自訂表情符號。 :::tip 有關自訂表情符號的更多資訊,請參閱[此處](./custom-emoji.md)。 ::: ``` :misskey: ``` ### 粗體 您可以將文字加粗以強調它。 ``` **粗體** ``` ### 縮小 可以使內容文字變小、變淡。 ``` Misskey 擴展了聯邦宇宙的世界 ``` ### 引用 可以用來表示引用的内容。 ``` > Misskey 擴展了聯邦宇宙的世界 ``` ### 置中 可以將內容置中顯示。 ```
Misskey 擴展了聯邦宇宙的世界
``` ### 旁註標記 (ruby) 旁註標記用於標示東亞文字的發音。 ``` $[ruby Misskey ミスキー] ``` ### 程式碼(内嵌) 程式碼的行內語法突出顯示。 ``` `<: "Hello, world!"` ``` ### 程式碼(區塊) 在區塊中用突出顯示,例如複數行的程式碼語法。 通過使用 ID 指定程式語言,可以對應的語言套用語法突顯功能。可指定的語言如下: - [Shiki 支援的語言(超過 200 種)](https://shiki.style/languages) - AiScript: 只需指定 `aiscript`、`ais` 或 `is` 其中之一即可使用。 ``` ~ (#i, 100) { <: ? ((i % 15) = 0) "FizzBuzz" .? ((i % 3) = 0) "Fizz" .? ((i % 5) = 0) "Buzz" . i } ``` ### 翻轉 將內容上下或左右翻轉。 ``` $[flip Misskey擴展了聯邦宇宙的世界] $[flip.v Misskey擴展了聯邦宇宙的世界] $[flip.h,v Misskey擴展了聯邦宇宙的世界] ``` ### 字型 您可以設定顯示內容的字型 ``` $[font.serif Misskey擴展了聯邦宇宙的世界] $[font.monospace Misskey擴展了聯邦宇宙的世界] $[font.cursive Misskey擴展了聯邦宇宙的世界] $[font.fantasy Misskey擴展了聯邦宇宙的世界] ``` ### 模糊化 可以模糊內容。將滑鼠懸停在其上時可以清楚地看到它。 ``` $[blur Misskey擴展了聯邦宇宙的世界] ``` ### 搜尋 可以顯示搜尋框。 ``` misskey search ``` ### 文字和背景顏色 可以變更文字顏色和背景顏色。 顏色使用 3、4 或 6 位顏色代碼表示。 ``` $[fg.color=f00 紅色字] $[bg.color=ff0 黃色背景] ``` ### 邊框 您可以用邊框包圍內容。可以指定各種樣式。 ``` $[border.style=solid,width=4 Default] $[border.style=hidden No border] $[border.style=dotted,width=2 Dotted] $[border.style=dashed,width=2 Dashed] $[border.style=double,width=4 Double] $[border.style=groove,width=4 Embossed A] $[border.style=ridge,width=4 Embossed B] $[border.style=inset,width=4 Inset A] $[border.style=outset,width=4 Inset B] $[border.color=d00 Border color] $[border.width=5 Border width] $[border.radius=6,width=2 Border radius] $[border.radius=5,width=2,color=888 $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] $[border.radius=5,width=2,color=888,noclip $[position.x=1.5 CSS] $[position.x=1.5 完全に理解した]] ``` ### 角度變化 以指定的角度旋轉。 ``` $[rotate.deg=30 misskey] ``` ### 變更位置 可以移動位置。 ``` 😏$[position.x=0.8,y=0.5 🍮]😀 ``` ### 擴展 透過拉伸顯示文字。 ``` $[scale.x=4,y=2 🍮] ``` ``` $[x2 x2] $[x3 x3] $[x4 x4] ``` ### 動畫(搖晃) ``` $[jelly 🍮] $[jelly.speed=5s 🍮] ``` ### 動畫(鏘~) ``` $[tada 🍮] $[tada.speed=5s 🍮] ``` ### 動畫(跳動) ``` $[jump 🍮] $[jump.speed=5s 🍮] ``` ### 動畫(反彈) ``` $[bounce 🍮] $[bounce.speed=5s 🍮] ``` ### 動畫(旋轉) ``` $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮] $[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮] $[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮] $[spin.speed=5s 🍮] ``` ### 動畫(果凍) ``` $[shake 🍮] $[shake.speed=5s 🍮] ``` ### 動畫(顫抖) ``` $[twitch 🍮] $[twitch.speed=5s 🍮] ``` ### 彩虹 ``` $[rainbow 🍮] $[rainbow.speed=5s 🍮] $[rainbow 色なし文字] $[rainbow $[fg.color=f0f 色付き文字]] ``` ### 閃閃發光 ``` $[sparkle 🍮] ``` ### 簡化 將內部語法全部禁用。 ``` **bold** @mention #hashtag `code` $[x2 🍮] ``` ## 為開發人員提供的資訊 MFM 的解析器實作會作為函式庫發布,可以輕鬆地將 MFM 合併到客戶端。 - [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScript 解析器實作 - [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js 的元件 - [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlin 解析器實作 - [mfm_parser](https://pub.dev/packages/mfm_parser) - Dart 解析器實作 - [mfm](https://pub.dev/packages/mfm) - Flutter 的繪圖小工具 ================================================ FILE: content/tw/docs/2.for-users/3.features/mute-and-block.md ================================================ # 靜音與封鎖 如果有你不喜歡的用戶,你可以透過靜音你看不到他們的貼文。 作為更有力的措施,你還可以封鎖一個用戶,讓他無法看到你的內容或與你互動。 對方不會知道你被靜音了,但會知道你被封鎖了。您可以自行決定選擇其中一種方式。 :::tip 靜音和封鎖可以一起使用。 ::: :::warning 如果有任何違反服務條款的惱人用戶,請考慮向管理者檢舉。 ::: 在 Misskey Web 上,您可以透過前往「設定」>「靜音和封鎖」來查看已靜音或封鎖的使用者清單。 ## 靜音 將使用者靜音後,Misskey 中將不會顯示該使用者的以下內容: - 時間軸和貼文搜尋結果中的使用者貼文(以及對這些貼文的回覆和轉發) - 來自該使用者的通知 - 通知訊息歷史清單中該使用者的通知訊息歷史記錄 - 追隨 若要在 Misskey Web 上將使用者靜音,請開啟該使用者個人檔案頁面上的選單,然後按下「靜音」按鈕。 :::tip 對方不會收到您將其靜音的通知,他們也不會知道已被您靜音。 ::: ## 將轉發貼文靜音 如果使用者轉發大量貼文,您可以僅從時間軸中排除該使用者的轉發。使用者的正常貼文不會受到影響。 ## 封鎖 封鎖用戶會使該用戶無法看到您的內容,並阻止他們對您採取以下行動。 - 追隨 - 新增使用者到清單 - 回覆或轉發貼文 - 對您的貼文做出反應或參與投票活動 - 發送提及給您 - 等等 並且 - 如果您封鎖用戶時該用戶已經追隨您,將被取消追隨 - 如果您封鎖該使用者時,該使用者的清單中已包含您,您將從該清單中刪除。 若要在 Misskey Web 上封鎖用戶,請開啟該使用者個人檔案頁面的選單,然後按下「封鎖」按鈕 :::warning 對方不會收到您已封鎖他們的通知,但他們會間接知道自己被封鎖,因為他們將無法執行上述操作(例如追隨您)。 ::: :::warning 對方將無法看到您的內容,但如果他們切換帳戶或登出則可以看到您的內容。請將此作為一項簡單的輔助措施。 ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/note.md ================================================ # 貼文 貼文是Miskey上發布的內容,包括文字、文件、票選活動等,是 Misskey 的核心概念。創建貼文本身的行為也稱為貼文。 :::tip 貼文這個名字來自英文單字 note,意思是「簡短的記錄」。 ::: 建立貼文之後,貼文將被加入[時間軸](./timeline),自己的[追隨者](./follow)與伺服器的使用者可以看到。 您可以對貼文做出[反應](./reaction)。您也可以回覆和引用。 將貼文加到[我的最愛](./favorite),您可以輕鬆地在以後查閱它們。 ## 新增貼文 若要在 Misskey Web 上新增貼文,請按下螢幕上的鉛筆按鈕以開啟新增表單。透過在新增表單中輸入內容並按下「貼文」按鈕來建立貼文。 您可以將圖像或影片等任何文件或[票選活動](./poll) 附加到貼文中。另外,文本中可以使用[MFM](./mfm),還可以包含[提及](./mention)和[主題標籤](./hashtag)。 此外,您還可以配置內容警告和公開範圍等設定(詳細資訊將在後面解釋)。 :::tip 使用 Misskey Web,如果您的電腦剪貼簿上有圖像數據,您可以透過將圖像貼到表單的文字方塊中來附加圖像。 ::: :::tip 在 Misskey Web 上,您也可以在文字方塊中按Ctrl + Enter來發佈。 ::: ## 轉發 引用現有貼文或將該貼文作為新貼文共享以及由此創建的貼文的行為稱為轉發。 當您想與您的追隨者分享你最喜歡的某個使用者的貼文時,或者當您想要重新分享自己過去的貼文時,請使用此功能。 您可以無限次地重複相同的貼文,但請注意不要連續使用太多次,因為這可能會造成他人的困擾。 :::warning 可見性為 「追隨者 」或 「指定使用者 」的貼文無法被轉發。 ::: 若要在 Misskey Web 上刪除轉發,請按轉發時間顯示旁邊的「...」,然後選擇「取消轉發」。 ## 內容警告(CW) Contents Warning 的縮寫,它允許您防止在沒有查看者互動的情況下顯示貼文的內容。它主要用於隱藏冗長的內容或防止劇透。 若要在 Misskey Web 上設定內容警告,請按下表單上的「隱藏內容」按鈕(眼睛圖示)。然後將出現一個新的輸入區域,您可以在其中編寫內容摘要。 ## 可見性 對於每個貼文,您可以設定可見性。 若要在 Misskey Web 中設定可見性,請按下表單上 「貼文 」按鈕左側的地球圖示。 可以使用以下幾種可見性: ### 公開 除了向所有人公開貼文外,貼文還會顯示在伺服器上的所有時間軸(首頁時間軸、本地時間軸、社交時間軸和公開時間軸)。 :::warning 當帳戶處於[禁言](./silence)狀態時,無法使用此可見性。 ::: ### 首頁 貼文會對所有人公開,但除了追隨者之外,貼文不會顯示在本地、社交或公開時間軸。 ### 追隨者 僅向您的追蹤者公開您的貼文。顯示在所有追隨者的時間軸。 ### 指定使用者 貼文只提供給指定的使用者。顯示在指定使用者的所有時間軸。 :::tip 在 v2025.7.0 之前,稱作「私訊」。 ::: ### 「停用聯邦」(僅限本地)選項 如果啟用此選項,則不會將貼文發布到聯邦宇宙(遠端)。 ### 可見性的比較
公開首頁追隨者指定使用者
追隨者的 LTL/STL/GTL
非追隨者的 LTL/STL/GTL
## 置頂 透過置頂貼文,在使用者頁面就會將此貼文顯示在頂端。 要在 Misskey Web 中置頂貼文,請打開貼文選項並選擇「置頂」。 :::tip 可以同時置頂多個貼文。 ::: ## 關注 當使用者發布新貼文時,您會收到通知。開啟使用者頁面,選擇追隨按鈕旁邊的詳細資料按鈕,然後按一下「開啟貼文通知」以啟用。 ================================================ FILE: content/tw/docs/2.for-users/3.features/online-status.md ================================================ # 上線狀態 使用者的**上線狀態**代表使用者對 Misskey 的使用狀態。 上線狀態以指示器的形式顯示在使用者圖示的角落,例如在使用者頁面上。
顏色 狀態 説明
🟢綠 線上 可以被認定是正在使用 Misskey 的狀態。
🟡黃 最近活躍 最近使用過 Misskey ,但目前不在線上的狀態。
🔴紅 離線 超過一段時間沒有使用 Misskey 的狀態。
⚫灰 未知 使用者來自遠端,狀態被隱藏或狀態未知。
上線狀態會自動變化,無法手動設定。 您可以透過設定將您的上線狀態設為隱藏。 :::warning 某些功能(例如推薦使用者)可能會根據您的上線狀態進行處理,因此將您的狀態設為隱藏可能會使其他使用者更難找到您。 ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/pages.md ================================================ # 頁面 您可以在 Misskey 上建立獨立於筆記的頁面。v13 以後專門用於靜態頁面。 :::warning 從 v13 開始,需使用 Misskey Play 來建立動態頁面。 ::: ## 頁面設定 設定與頁面相關的項目。您可以輸入: - 標題 - 頁面摘要 - 頁面網址 - 置中 - 字型 - 置頂時隱藏頁面標題 - 封面影像 ### 頁面摘要 輸入該頁面的標題。它將顯示在列表中。 ### 頁面摘要 輸入簡短說明。它將顯示在列表中。 ### 頁面網址 `https://伺服器名/@使用者/pages/●●●` 的 `●●●` 可以任意設置。 ### 置中 如果啟用,內容將置中顯示。 ### 字型 可選擇 **襯線體** 與 **無襯線體** 。 ### 置頂時隱藏頁面標題 置頂時隱藏頁面標題 ### 封面影像 設定 **封面影像** 。它將顯示在列表中。 ## 內容 編輯頁面正文。您可以透過組合以下一個或多個區塊來產生頁面。 - 區段 - 文字 - 圖片 - 嵌入貼文 ### 區段 可以設置專屬的標題。並且可在其中增加額外的區塊。 ### 文字 輸入文字正文。您可以使用 MFM 和自訂表情符號。 ### 圖片 顯示圖像。可使用雲端硬碟中的影像。 ### 嵌入貼文 輸入貼文 ID 後,貼文就會顯示出來。如果要嵌入其他伺服器,請在搜尋中輸入其 URL,然後在顯示時貼上 ID。 ================================================ FILE: content/tw/docs/2.for-users/3.features/plugin.md ================================================ # 外掛 Misskey Web 有一個外掛程式功能,讓使用者可以擴充 Misskey Web 的功能。 關於建立外掛程式的方法,請參考[這裡](../../for-developers/plugin/create-plugin)。 ================================================ FILE: content/tw/docs/2.for-users/3.features/poll.md ================================================ # 票選活動 票選活動是獲得他人意見的簡單方法。 ## 在貼文中加入票選活動 票選活動可以附加在[貼文](/docs/for-users/features/note)中。要在貼文中附加票選活動,請點擊發布貼文對話框下方的「票選活動」按鈕。 ## 增加選項 您最多可以在票選活動中建立 10 個選項。您可以按下「新增」按鈕來新增選項的輸入欄位。 如果您新增了太多選項,可以透過按下選項旁邊的 ☓ 按鈕將其刪除。 :::warning 如果任何選項欄位為空值,您將無法發布附有該投票的貼文。 ::: ## 允許複選 打開「允許複選」開關,允許參與您票選活動的人對多個選項進行投票。 ## 設定票選活動截止日期 可以透過指定日期和時間或指定時效來設定票選活動的結束期限。 若要進行設置,請按一下「期限」欄位中的「結束時間」或「指定時效」。 如果要取消已設定的截止期限,請從「期限」欄位中選擇「無期限」。 ## 對票選活動進行投票 當您看到時間軸上附有票選活動的貼文時,可進行投票。 點擊各個選項即可對票選活動進行投票。如果發布票選活動的使用者不允許多個答案,則會顯示當下的投票結果。 如果發布票選活動的用戶已將其設定為允許複選,也可以對其他選項進行投票。在這種情況下,結果不會自動顯示。 無論允許複選的設定為何,如果您沒有自動看到投票結果,或者您想在投票前看到結果,都可以點擊選項下方的「顯示結果」來查看調查結果。 如果您想在查看未投票的調查結果後再次隱藏這些結果,請按一下「投票」。 :::tip 未投票的票選活動仍可進行投票,並顯示結果。 ::: 當您投票後,您投票的選項旁邊會出現 ✔。 ================================================ FILE: content/tw/docs/2.for-users/3.features/reaction.md ================================================ # 反應 此功能可讓您透過添加表情符號,輕鬆傳達您對他人貼文的反應。 若要在 Misskey Web 中做出反應,請點擊貼文中的 + 圖示以顯示選擇器,然後選擇表情符號。 也可使用[自訂表情符號](./custom-emoji.md)作為反應。 ## 自訂反應選擇器 在 Misskey Web 上,您可以根據自己的喜好自訂選擇器中顯示的表情符號。 在設定的「反應」進行設定。 ## 對於遠端貼文的反應 反應是 Misskey 的獨創功能,因此 Activity 幾乎總是以「Like」的形式發送,除非遠端伺服器是 Misskey。一般來說,「Like」就相當於「最愛/打星」。 ## 從遠端來的反應 當從遠端收到「Like」的 Activity 時,Miskey 會將其解釋為「❤」反應。 ## 查看自己的反應清單 在 Misskey Web 上,您可以透過開啟自己的個人資料頁面上的「反應」標籤來查看反應清單。 您也可以從隱私設定中公開反應清單。 ## 接受表情反應 發布貼文時,你可以限制該貼文中可接受的反應類型。 - 全部:允許所有反應 - 全部(遠端僅限讚):允許來自自己伺服器的所有反應,但來自其他伺服器的反應則會統一顯示為讚 (❤) - 僅限非敏感:允許所有反應,但來自自己伺服器的表情回應中,標記為「敏感」的自訂表情符號將無法使用 - 僅限非敏感 (遠端僅限讚):來自自己伺服器的反應中,標記為「敏感」的自訂表情符號將無法使用,而來自其他伺服器的反應則會統一顯示為讚 (❤) - 僅限讚:只能用讚 (❤) 來做出反應 此外,此時指定的表情回應接受設定僅適用於自己的伺服器。例如,若將反應的接受範圍設為「僅限讚」的貼文記在其他伺服器上查看,該伺服器可能仍會顯示已附加的表情符號反應。 ================================================ FILE: content/tw/docs/2.for-users/3.features/safemode.md ================================================ # 安全模式 在 v2025.8.0 之後的 Misskey Web,如果因為外掛、客製化 CSS 或主題導致用戶端運作異常,系統提供了「安全模式」,可在停用這些功能的狀態下啟動。 可以透過以下方法進入安全模式。 - (啟動時出現錯誤畫面時)點擊錯誤畫面上的「以安全模式啟動 Misskey」按鈕 - (若鍵盤已連接)連續按下 `g` 鍵 - 在 URL 後面加上 `?safemode=true` - (若使用 PWA)透過捷徑選擇 Safemode 來啟動 在安全模式下,以下功能將受到限制。 - 無論設定為啟用或停用,所有外掛都會被禁用,且無法進行新安裝。 - 自訂 CSS 將不會生效。 - 無論設定如何,都會以預設主題啟動,且無法更換主題(仍可從主題管理頁面刪除主題)。 - 畫面上會一直顯示「安全模式」 請善用安全模式,以找出並處理造成問題的部分。處理完成後,請從安全模式執行時畫面上一直顯示的選單中點擊「關閉」,以停用安全模式。 :::tip 安全模式並非設計用於日常使用。處理完成後,請關閉安全模式,並以一般模式啟動。 ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/share-form.md ================================================ # 分享表單 在 Misskey Web 的網址加上 `/share`,可打開分享表單。如果希望使用者從外部網頁與 Misskey 分享頁面內容,這個分享表單就非常有用。 您可以將共享的內容等多個選項作為URL的查詢參數指定。 ## 查詢參數 :::tip 所有參數均為**可選**參數,非必要參數。 ::: | 名稱 | 說明 | | ------- | ---------------------------------------------------------------------- | | `title` | 名稱名稱在本文的開頭[ … ]插入。 | | `text` | 本文 | | `url` | 網址。將被插入在本文的末尾。 | ### 回覆訊息 您可以指定以下其中一項以使其成為對指定貼文的回應。 | 名稱 | 說明 | | ---------- | ------------------- | | `replyId` | 要回覆的貼文 ID。 | | `replyUri` | 回覆的目標網址。(指定遠端貼文物件)。 | ### 轉發訊息 指定以下其中一項,可以將它設為指定貼文的轉發(引用)。 | 名稱 | 說明 | | ----------- | ------------------- | | `renoteId` | 要轉發的貼文 ID。 | | `renoteUri` | 轉發的目標網址。(指定遠端貼文物件)。 | ### 公開範圍 您可以使用下列選項指定公開範圍。 | 名稱 | 說明 | | ---------------- | ----------------------------------------------------------------------- | | `visibility` | `public` (公開), `home` (首頁), `followers` (追隨者), `specified` (指定使用者)中選擇其一 | | `localOnly` | 停用聯邦(僅限本地),可使用 0(false) 或 1(true) | | `visibleUserIds` | 目標使用者 ID(以逗號分隔) | | `visibleAccts` | 目標使用者 [acct](../resources/glossary/#acct)(逗號分隔) | :::warning 如果為 `visibility` 指定了 `specified`,則也必須指定 `visibleUserIds` 或 `visibleAccts`。 ::: ### 附加檔案 您可以使用下列選項指定附加檔案。 | 名稱 | 說明 | | --------- | -------------- | | `fileIds` | 附加檔案 ID(以逗號分隔) | ## 關於 Misskey Hub 的共享表單中繼服務 新的Misskey Hub為共享表單提供中繼服務,降低了設定Misskey共享按鈕的複雜度。 這項服務是免費的,任何人都可以使用。 只需將現有共享表單連結中每個伺服器的網域部分更改為`misskey-hub.net`,它就會發展成為指向各個 Misskey 伺服器的共享連結! :::tip 也可使用 [分享按鈕產生器](/tools/share-link-generator/)。 ::: :::warning 共享表單中繼服務(以下簡稱「本服務」)是Misskey開發部門(以下簡稱「我們」)為方便網站管理員而免費提供且不提供保證的功能。對於因使用本服務或因任何原因無法使用本服務而造成的任何損害,我們不承擔任何責任。 ::: ### 基本參數 基本上,你可以使用上面介紹的參數,但不能使用**依賴每個伺服器的參數**,例如使用者 ID 和檔案 ID。如果指定了,則會在 Misskey Hub 上刪除。 ### 客製化功能 #### 推薦的伺服器功能 透過在 URL 參數 `manualInstance` 中輸入 Misskey 伺服器網域,您可以在單獨的框架中設定指向該伺服器的鏈接,作為「共享網站推薦」。您可以使用它來引導人們訪問您自己的伺服器。 :::warning 「推薦伺服器功能」是為方便網站管理員而設定的功能,並不表示我們推薦「共享來源網站推薦」欄位中的伺服器。 對於因使用或註冊從「共享來源網站推薦」轉移過來的伺服器而造成的任何損害或損失,我們概不負責。 ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/silence.md ================================================ # 禁言 禁言是可以對帳號設定的一種狀態。 一旦帳戶被禁言,就無法將貼文的公開範圍設為公開,可選擇的是首頁、追隨者和指定使用者。 因此即使您被禁言,追隨者和您使用者頁面的直接訪客仍能查看您的貼文,但這些貼文不會在GTL(公開時間軸)或LTL(本地時間軸)顯示。 帳戶的禁言狀態可由伺服器的審查員啟用和停用。 ================================================ FILE: content/tw/docs/2.for-users/3.features/theme.md ================================================ # 佈景主題 藉由設定佈景主題,可以更改 Misskey 客戶端的外觀。 ## 佈景主題設定 [設定 > 佈景主題](x-mi-web://settings/theme) ## 建立佈景主題 佈景主題程式碼是用 JSON5 寫的物件。 以下是範例。 ```js { id: '17587283-dd92-4a2c-a22c-be0637c9e22a', name: 'Danboard', author: 'syuilo', base: 'light', props: { accent: 'rgb(218, 141, 49)', bg: 'rgb(218, 212, 190)', fg: 'rgb(115, 108, 92)', panel: 'rgb(236, 232, 220)', renote: 'rgb(100, 152, 106)', link: 'rgb(100, 152, 106)', mention: '@accent', hashtag: 'rgb(100, 152, 106)', header: 'rgba(239, 227, 213, 0.75)', navBg: 'rgb(216, 206, 182)', inputBorder: 'rgba(0, 0, 0, 0.1)', }, } ``` - `id` ... 佈景主題的唯一識別碼。建議使用 UUID。 - `name` ... 佈景主題名稱 - `author` ... 佈景主題作者 - `desc` ... 佈景主題説明(可選) - `base` ... 採用淺色或深色的佈景主題 - `light` 設定為淺色佈景主題,`dark` 設定為深色佈景主題。 - 該佈景主題將繼承此處設定的基本佈景主題。 - `props` ... 定義佈景主題的風格。這裡開始說明。 ### 定義佈景主題的風格 在 `props` 下定義佈景主題的風格。 鍵為 CSS 的變數名稱,值指定內容。 請注意,這個 `props` 物件是由基本佈景主題繼承而來的。 如果佈景主題的 `base` 為 `light`,則基本佈景主題為 [\\_light.json5][_light.json5],若為 `dark` 則為 [\\_dark.json5][_dark.json5]。 換句話說,即使該主題中的 `props` 中沒有名為 `panel` 的鍵,也假定基本佈景主題中存在 `panel`。 - [_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5 - [_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5 #### Value 的格式 - 用十六進位表示的顏色 - 例: `#00ff00` - 用 `rgb(r, g, b)` 形式表示的顏色 - 例: `rgb(0, 255, 0)` - 用 `rgba(r, g, b, a)` 形式表示的包含透明度的顏色 - 例: `rgba(0, 255, 0, 0.5)` - 參照其他的鍵值 - 如果寫上 `@{keyname}` 的話,會參照其他的鍵值。`{keyname}` 請換成想要參照的鍵的名字。 - 例: `@panel` - 參照引述(後述) - 如果寫上 `${const}` 的話,會參照其他常數值。`{const}` 請換成想要參照的函數的名字。 - 例: `$main` - 函數(後述) - `{函數} < {參數} < {顏色}` #### 常數 當您有「不想作為 CSS 變數輸出,但希望作為其他 CSS 變數值重複使用」的值時,使用常數會很方便。 如果鍵名以 `$` 開頭,該鍵將不會作為 CSS 變數輸出。 #### 函數 想要使用與現有顏色略有不同的顏色的時候,例如「想要只有游標在按鈕上時會讓顏色變亮」時,使用函數非常有用。 以 `:{函數名}<{參數}<{顏色和其他引用的鍵}` 的形式使用。 ```js props: { accent: '#86b300', accentDarken: ':darken<10<#86b300', accentLighten: ':lighten<10<@accent' } ``` ##### 可以使用的函數 - `lighten` ... 回傳傳入的亮度 (0 ~ 100) 加上參數 (0 ~ 100) 的顏色。 - `darken` ... 回傳傳入的亮度 (0 ~ 100) 減去參數 (0 ~ 100) 的顏色。 - `alpha` ... 回傳傳入的顏色並依照參數 (0.0 ~ 1.0) 設定的顏色。 - 0.0 代表完全透明,1.0 代表完全不透明。 - `hue` ... 回傳傳入的顏色的色相 (-360 ~ 360) 再依照參數 (-360 ~ 360) 進行旋轉的顏色。 - `saturate` ... 回傳傳入的顏色的彩度 (0 ~ 100) 加上參數 (0 ~ 100) 的顏色。 ## 轉散發佈景主題 從 v2023.11.0 開始,您可以從您的網站,直接一鍵安裝佈景主題。 如果想提供安裝佈景主題的功能的話,則需要在您的網站上實作 API 。詳情請參考[此處](../../for-developers/publish-on-your-website/)。 ================================================ FILE: content/tw/docs/2.for-users/3.features/thread-mute.md ================================================ # 將貼文串設為靜音 :::tip 從 v12.95.0 新增的功能。 ::: 貼文串靜音將指定貼文整串靜音。貼文串是指從起始貼文開始連接的所有回覆。 當您將某個貼文串設定為靜音後,您將不再收到貼文串的新回覆和回覆中對您的任何提及,也不會出現通知功能的「提及」部分。 若要將 Misskey Web 上的貼文串靜音,請開啟屬於貼文串該的任何貼文或起始貼文的選單,然後選擇「將貼文串設為靜音」。 :::warning 無論您將貼文串的哪個貼文靜音,整個貼文串都會靜音。 ::: ================================================ FILE: content/tw/docs/2.for-users/3.features/timeline.md ================================================ # 時間軸 時間軸是按時間順序顯示[貼文](/docs/for-users/features/note/)的功能。 時間軸有如下所示的多種類型,不同類型顯示的貼文也不同。 請注意,伺服器可能會停用某些時間軸類型。 ## 首頁 您可以查看您追隨的使用者的貼文。縮寫為 HTL。 ## 本地 所有公開範圍未指定為「首頁」的本地使用者的貼文都會顯示在這。縮寫為 LTL。 ## 社交 您追隨的使用者發布的貼文以及所有公開範圍未指定為「首頁」的本地使用者發布的貼文都會顯示在這。縮寫為 STL。 ## 公開 所有公開範圍未指定為「首頁」本地與遠端使用者發布的貼文都會顯示在這。縮寫為 GTL。 ## 比較
來源 公開範圍 時間軸
首頁 本地 社交 公開
本地(已追隨) 公開
首頁
追隨者
遠端(已追隨) 公開
首頁
追隨者
本地(未追隨) 公開
首頁
追隨者
遠端(未追隨) 公開
================================================ FILE: content/tw/docs/2.for-users/3.features/webhook.md ================================================ # Webhook :::tip 從 v12.109.0 新增的功能。 ::: :::warning 由於這是一項試驗性功能,因此可能不穩定,或者將來規格可能會發生變化。 ::: Misskey 提供了 Webhook。使用 Webhook,您可以即時接收 Misskey 上的各種事件。 您可以在「設定」>「Webhook」中管理您的 Webhook。 Webhook 註冊後,當指定事件發生時,將向指定 URL 傳送 HTTP 請求。請求方法為 POST,內文為 JSON。 此外,請求標頭將包含您在註冊期間設定的金鑰,名為「X-Misskey-Hook-Secret」。透過驗證此金鑰,可以確定請求是否合法。 請求負載包含以下屬性。 如果目標伺服器傳回 5xx 錯誤或無回應,則請求將在一段時間後重新傳輸。 您可以從管理畫面單獨設定 Webhook 的活動狀態,並且可以暫時停止傳送請求。 ## 事件 提供每個事件的描述和負載。 ### 追隨 ### 已追隨 ### 解除追隨 當您取消追隨某人時會發生。 當您發布貼文時發生。 ### 貼文 ### 回覆 ### 轉發 ### 提及 當有人提到你時發生。 ================================================ FILE: content/tw/docs/2.for-users/3.features/widgets.md ================================================ # 小工具 小工具是可以放置在 Misskey UI 上用於顯示資訊和執行操作的工具。 若要編輯小工具,請切換到小工具編輯模式。切換方法因 UI 而異。 在小工具編輯模式下,您可以新增、刪除和重新排列小工具,以及配置每個小工具的設定。 ## 可用小工具列表 - 個人檔案 - 伺服器資訊 - 便利貼 - 時間軸 - 日曆 - RSS 閱讀器 - RSS 跑馬燈 - 趨勢 - 時鐘 - 動態 - 照片 - 電子時鐘 - Unix 時鐘 - 聯邦宇宙 - 實例雲 - 發文視窗 - 幻燈片 - 伺服器指標 - 上線使用者 - 佇列 - 按鈕 - AiScript 控制臺 - AiScript App - 小藍 - 使用者列表 - 點擊器 ### 個人檔案 顯示名稱、使用者名稱、頭像和橫幅圖片。在使用多個帳戶時,可以更輕鬆地查看您使用的使用者名稱。 ### 伺服器資訊 顯示伺服器名稱、網域、圖示圖像和橫幅圖像。 ### 便利貼 可以儲存文字。 ### 時間軸 顯示時間軸。您可以在首頁、本地、社交和公開之間切換。 ### 日曆 顯示今天的日期,以及以百分比形式顯示今天的年、月、日已經過得比例。包含在預設 UI 中。 ### RSS 閱讀器 以跑馬燈形式顯示 RSS 訂閱來源的標題。 ### RSS 跑馬燈 顯示 RSS 訂閱來源的標題。 ### 趨勢 顯示最近頻繁被使用的主題標籤。 ### 時鐘 在類比時鐘上顯示目前時間。 ### 動態 以點的形式顯示活動狀態。 ### 照片 顯示最近的雲端硬碟內容。 ### 電子時鐘 在電子時鐘上顯示目前時間。 ### UNIX 時間 以 UNIX 時間顯示目前時間。 ### 聯邦宇宙 顯示主要與之通訊的其他伺服器。 ### 實例雲 以球形方式顯示其他伺服器。 ### 發文視窗 固定顯示發文視窗。 ### 幻燈片 依序顯示雲端硬碟中的特定資料夾 ### 伺服器指標 顯示伺服器的CPU、記憶體、網路收發、儲存容量等。根據伺服器環境,可能無法顯示。 ### 上線使用者 顯示目前上線的使用者數。 ### 佇列 顯示從其他伺服器傳送和接收的貼文的佇列狀態。 ### 按鈕 顯示按鈕。將使用 AIScript 來描述該操作。 ### AiScript 控制台 顯示可以執行 AiScript 的控制台。 ### AiScript App 使用 AIScript 原始碼顯示應用程式。使用者介面與 Misskey Play 相同。從 v13 版開始新增。 ### 小藍 顯示小藍。視線會追隨滑鼠指標。 ### 使用者列表 列出特定「清單」所包含的使用者。もっと! - リスト で設定できます。 ### 點擊器 顯示餅乾。點擊/輕敲顯示的餅乾。 ================================================ FILE: content/tw/docs/2.for-users/3.features/word-mute.md ================================================ # 文字靜音 設定關鍵字靜音後,符合條件的貼文將被最小化,並顯示「○○(使用者名稱)發表了某些內容」的文字取代原本的貼文內容。按一下最小化的貼文即可顯示內容。 可以透過[設定 > 靜音和封鎖](x-mi-web://settings/mute-block)設定文字靜音。 ## 硬文字靜音 硬文字靜音可讓符合條件的貼文完全隱藏。與文字靜音不同,貼文會完全隱藏。 ================================================ FILE: content/tw/docs/2.for-users/4.resources/1.troubleshooting.md ================================================ --- description: '如果您遇到問題,請先檢查此處。' --- # 故障排除 :::tip 也請參考[常見問題](./faq.md)。 ::: 如果您遇到問題,請先檢查此處。 如果沒有適用的項目,或嘗試這些步驟後問題仍未解決,請聯絡伺服器管理員或[報告錯誤](../../about-misskey/#加入討論)。 ## 客戶端無法啟動 大多數情況下,這是由於瀏覽器或作業系統版本過時造成的。 請將瀏覽器和作業系統更新到最新版本,然後再試一次。 如果出現用戶端啟動但無法載入頁面的錯誤,請檢查網路是否有問題。請清除瀏覽器快取並重試。 ## 頁面無法載入 如果出現用戶端啟動但無法載入頁面的錯誤,請檢查網路是否有問題。也要檢查伺服器是否當機。 儘管這種情況很少見,但這可能是由快取引起的。請清除瀏覽器快取並重試。 如果您仍然遇到問題,請聯絡您的伺服器管理員,因為這可能是伺服器問題。 ## 客戶端運作緩慢 檢查網路服務供應商的故障或維護計劃,檢查網路通訊速度狀態和網路設置,並檢查伺服器端是否有任何問題或維護,然後嘗試或確認以下設定: 1.Misskey Web的設定 從選單中開啟設定,開啟客戶端設定的「一般」,然後嘗試以下設定: - 在外觀啟用「減少界面的動態視覺」 - 在外觀停用「在 UI 上使用模糊效果」 - 在外觀啟用「使用系統預設的字型」 - 在外觀的「表情符號的風格」選擇「原生」(預設是Twemoji) 請嘗試以下設置,但請注意某些 Misskey 功能可能無法運作。 - 在行為中停用「停用頁面腳本」 - 在外觀中停用「啟用 MFM 動畫」 2.網頁瀏覽器設定 - 在網頁瀏覽器設定中啟用硬體加速 - 檢查您的網頁瀏覽器外掛程式和擴充功能設定或將其關閉 - 檢查網頁瀏覽器的其他設定 3.其他 - 檢查您的電腦或智慧型手機的系統設置 ## Misskey Web UI 的一部分顯示很奇怪(背景是透明的等) 當UI因更新而修改時,由於主題的快取系統,可能會出現這樣的顯示。 可以透過客戶端設定中的「清除快取資料」來修復此問題。 :::warning 是清除「客戶端」的快取。請不要清除「瀏覽器」的快取。 ::: ## 閃爍的通知、天線等不會消失 如果您在網路瀏覽器上使用廣告攔截器等附加元件或擴充程序,則可能會出現此類問題。通常情況下,如果閃爍沒有消失,代表較早的時間仍有未讀內容。 如果您認為已經閱讀了所有內容,但閃爍仍在繼續(可能是故障),您可以透過設定強制將所有內容標記為已讀。 ## 無法轉發貼文 僅限追隨者可見的貼文和私訊無法轉發。 ## 某些元素在 Misskey Web UI 上不可見 如果您在網路瀏覽器上使用廣告攔截器等附加元件或擴充程序,則可能會出現此類問題。請檢查這些設定或將其關閉。 ## Misskey Web UI 上有未翻譯的部分 大多數情況下,這是由於 Misskey Web UI 沒有及時翻譯所致,因此不是故障。對不起,請稍等片刻,等待翻譯完成。 如果您有興趣進一步了解 Misskey 的翻譯工作,當然也可以[參與翻譯](../../about-misskey/#翻譯文字)。 ================================================ FILE: content/tw/docs/2.for-users/4.resources/_dir.yml ================================================ title: "其他資源" description: "介紹非功能性知識以及如何處理問題。" ================================================ FILE: content/tw/docs/2.for-users/4.resources/apps.md ================================================ --- description: '介紹使用 Misskey 所需的應用程式。' --- # 應用程式 介紹使用 Misskey 的應用程式(客戶端)。 當您從瀏覽器登入 Misskey 伺服器時,將顯示時間軸。此時出現的 Misskey 唯一的官方客戶端 **Misskey Web**。雖然它是一個在瀏覽器中運行的應用程序,但它也支援 PWA,因此您可以像行動作業系統上的原生應用程式一樣運行它。欲了解更多資訊,請參閱[這裡](/docs/for-users/stepped-guides/how-to-use-pwa/)。請注意,Misskey 專案未開發原生應用程式。 熟悉 Misskey Web 後,您可以試用志願者開發的非官方應用程式。以下是使用最廣泛的應用程式(按字母順序排列)。 - **Aria**(iOS、Mac、Android、Windows、Linux):幾乎可以使用 Misskey 的所有功能。接近官方 Misskey Web 客戶端的使用者介面(UI)。[官方網站](https://misskey.io/@aria_app)。[App Store](https://apps.apple.com/jp/app/aria-for-misskey/id6499410880)。[Google Play](https://play.google.com/store/apps/details?id=com.poppingmoon.aria)。[原始碼](https://github.com/poppingmoon/aria) - **Flare** (iOS, Mac, Android, Windows): 閲覧履歴の保存やRSSリーダーが利用可能。Mastodon, Bluesky, Xに対応し、それらのタイムラインをひとつに統合可能。[公式サイト](https://flareapp.moe)。[TestFlight](https://testflight.apple.com/join/iYP7QZME)。[Google Play](https://play.google.com/store/apps/details?id=dev.dimension.flare)。[Microsoft Store](https://apps.microsoft.com/detail/9NLRN0BKZ357)。[ソースコード](https://github.com/DimensionDev/Flare)。 - **Milktea** (Android): 可以透過分頁快速存取時間軸或特定的搜尋結果。以及為其他使用者設定暱稱。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[原始碼](https://github.com/pantasystem/Milktea)。 - **Miria**(iOS、Mac、Android、Windows、Linux):擁有可在分頁設定自訂表情符號、以及 MFM 輸入補全等專為 Misskey 設計的獨特功能。[官方網站](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)。 - **MissRirica** (iOS, Android): Misskey 用 iOS/Android 客戶端。幾乎是 Misskey Web (v13) 的 UI,能收到推送通知。[ソースコード](https://github.com/fruitriin/missRirica-client)。 - **Misscat** (iOS): 以提供適合智慧型手機的直觀操作型為開發目標。[官方網站](https://yuiga.dev/misscat/)。[原始碼](https://github.com/YuigaWada/MissCat)。 - **SocialHub** (iOS): 支援 Misskey, Mastodon, Twitter, Slack, Tumblr 的付費 App。[官方網站](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。 - **ZonePane(ぞーぺん)** (Android): 您可以為時間軸、清單和頻道建立分頁。具有優秀的閱讀管理。TwitPane 的 Misskey 版本,也支援 Mastodon 與 Bluesky。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。 - **TootRain**(Mac):一款 Mac 應用程式,可將時間軸或清單的貼文以即時、留言風格顯示在畫面上。 [官方網站](https://b123400.net/tootrain/ja)、[原始碼](https://github.com/b123400/TootRain)。 但由於 Misskey 的功能更新頻繁,因此可能會比較慢加入新功能。如果您沒有特別的偏好,我們建議使用 Misskey Web。 ================================================ FILE: content/tw/docs/2.for-users/4.resources/faq.md ================================================ --- description: '此頁面包含使用 Misskey 時的常見問題。' --- # 常見問題 這裡我們列出了使用 Misskey 時的常見問題。
有關 Misskey 專案的常見問題,請點擊[此處](../../about-misskey#常見問題)。 ## 有 Android/iOS 應用程式嗎? Misskey 專案並未為此類行動作業系統開發原生應用程序,但有幾款第三方應用程式可供使用。欲了解更多資訊,請參閱[這裡](./apps)。
不過,第三方應用程式在支援最新的Misskey功能方面難免會落後,因此如果您沒有特別的偏好,我們建議您使用Misskey的官方網頁用戶端Misskey Web。此外,由於Misskey Web支援PWA,因此它也可以像原生應用程式一樣運作。欲了解更多資訊,請參閱[這裡](/docs/for-users/stepped-guides/how-to-use-pwa/)。 ## 我可以用 Mastodon 的應用程式登入嗎? Misskey 與 Mastodon 的 API 不相容,因此除了少數例外情況,Mastodon 的第三方應用程式和網路用戶端都不能使用 Misskey。
請使用 Misskey 官方網路用戶端 Misskey Web。 ## misskey.io 是 Misskey 專案的官方伺服器嗎? misskey.io 不是官方的 Misskey 伺服器,也不是 Misskey 專案的一部分。misskey.io 是 Misskey 最大的伺服器,沒有特定的主題,是通用的,可以輕鬆註冊。 ## 與 MisskeyHQ 有限公司是什麼關係? MisskeyHQ 有限公司是一家以營運 misskey.io 為宗旨的公司。因此,它與 Misskey 開發項目沒有直接關係。 不過,Misskey 專案負責人 syuilo 也是董事會成員,雙方是合作開發 Misskey 的關係。 ## 「Misskey」這個名字的起源是什麼? 這個名字取自 May'n 的歌曲 "Brain Diver" 的歌詞,主要開發人員 syuilo 在想名字的時候恰好在聽這首歌。 ## 如何追隨其他 Misskey 、 Pleroma 與 Mastodon 等伺服器的用戶? 從選單中選擇搜尋並按以下格式輸入使用者帳戶:使用者帳戶包括使用者名稱和使用者所屬的伺服器或伺服器的主機名稱。不只是Misskey,許多分散式軟體如Mastodon、Pleroma等,都常見以下使用者帳戶格式。
使用者帳戶的格式: `@使用者名稱@Misskey 、Pleroma或Mastodon伺服器的主機名稱`
實際例子: `@syuilo@misskey.io`
儘管所有去中心化軟體的使用者帳戶格式並不相同,但它允許使用者追隨其他伺服器以及具有各種分散式軟體實現的伺服器的使用者。 ## 如何刪除轉發 點擊在轉發貼文時間顯示旁邊的「...」,點擊「取消轉發」。
有關轉發的更多資訊,請參閱[此處](../features/note/#renote)。 ## 不要在貼文中顯示 URL 的預覽 MFM(Markup language For Misskey)是 Misskey 自己的標記語言,它有一種語法可以停用 URL 預覽。要了解更多資訊,請參閱 MFM cheatsheet。在您所屬的伺服器上鍵入以下地址即可查看。`https://你的伺服器網址/mfm-cheat-sheet` ## 新增、編輯或刪除自訂表情符號 只有您所屬伺服器的管理員可以新增、編輯或刪除自訂表情符號。如果您想這樣做,請直接聯絡您的伺服器管理員。 ## 想開發 Bot 可以使用 Misskey API 開發 Bot。詳情請參閱[此處](../../for-developers/api/)。 ## 貼文的翻譯功能使用哪種服務? 可使用[DeepL翻譯](https://www.deepl.com/)。 ## 我想諮詢關於服務的問題 「Misskey」是用來建立網路服務的軟體,同時也是該專案的名稱。因此,「Misskey」本身並不是一個網路服務。
此外,Misskey Project 並不營運或管理任何網路服務,因此關於使用 Misskey 架設的網路服務的相關詢問,請直接聯繫該網路服務的客服窗口。
需要注意的是,有些人會將「使用 Misskey 架設的網路服務」簡稱為「Misskey」,因此在理解時請特別留意。 ## 支援金會如何被運用? 將用於持續開發 Misskey。 具體主要用途是支付全職開發者(目前為 @syuilo)的薪資(報酬)。 Misskey Project 正是因為有全職開發者才能維持運作。 此外,也會用於支付非全職開發者的委託報酬,以及不定期的獎勵金。 此外,雖然比例較低,但也會用於關係人的應酬交際費用、對其他開源軟體的支援費用、網域維護費用、開發所需各種軟體與服務的使用費用、資料(書籍等)購買費用、備品(如動作驗證用裝置)費用、商標等權利的維護費用、會計師報酬、周邊商品(如 Misskey 卡片)相關費用(製作費、寄送費用等)、資產(標誌、圖示、插畫、音效等)委託費用,以及虛擬辦公室租用費等。 關於廣告,目前並未實施,因此沒有產生宣傳廣告費用。 此外,基本上所收到的支援金在稅制上被視為「營業收入」,會成為受領方的課稅對象,且受領方需支付用於匯款的服務手續費,請注意並非能完全使用所收到的支援金全額。 ## 我已經創建了伺服器,需要提交電信業務通知嗎?(日本專屬問題) ### 簡短回答 以**商業目的**營運的話**是必要的**。若非如此則**不需要**。 ### 完整回答 根據[總務省的一份文件](https://www.soumu.go.jp/main_content/000477428.pdf),「經營者」被定義為「試圖透過提供服務並收取費用作為補償來賺取收入的人」。因此,除非伺服器的營運目的是作為一項業務賺取收入,否則無需通知。所以即使有捐贈或廣告收入,如果收入僅用於支付伺服器的營運成本,也不屬於需要申報的企業類別。(已和總務省確認)
更多資訊,請參閱總務省的[《電信業務準入手冊》](https://www.soumu.go.jp/main_content/000477428.pdf)和其他文件,或聯繫總務省。 ## 由於有私訊(DM)功能,是否就需要申報為電信事業呢? 如同[「我建立了一個伺服器,請問是否需要申報為電信事業?」](#サーバーを作成しましたが電気通信事業の届出は必要ですか)中所說,無論所運營的服務具備何種功能,只要不屬於「透過收取費用來獲取收益」的行為,就不會被視為需要申報的事業者。 ## 可以發布名稱中包含「Misskey」的服務嗎? 「Misskey」是 Misskey 專案的註冊商標(日本),但發布名稱中包含「Misskey」的服務(如 Misskey Tools)並無問題。 我們不打算在這種情況下收取授權費。 ================================================ FILE: content/tw/docs/2.for-users/4.resources/glossary.md ================================================ --- description: '與 Misskey 相關的用語表。' --- # 用語表 與 Misskey 相關的用語表。 ## Acct 格式為 `@username@host` 的字串,用於識別特定使用者。主要用於提及。 ## ActivityPub 一種開放式標準協定(規範),用於組成名為聯邦宇宙(Fediverse)的分散式社交網路。伺服器之間根據該協定相互連接,並在彼此的伺服器之間交換內容和通知等訊息。這對於形成聯邦宇宙網路至關重要。 ## AiScript 一種可在 Misskey 中使用並在 JavaScript 上運行的程式語言。詳情參考[這裡。](https://aiscript-dev.github.io/) ## API Misskey 伺服器提供的界面,用於從您的程式中處理 Misskey 的相關功能。詳情參考[這裡](../../for-developers/api) ## Bot 一個由程式操作的帳戶。 ## CW Contents Warning(內容警告)的縮寫。允許您防止在沒有互動的情況下顯示貼文內容的功能。主要用於隱藏冗長的內容或防止劇透。詳情參考[這裡。](../features/note/#cw) ## Fediverse 由 "Federated(聯邦)" 和 "Universe(宇宙)" 兩個字組合而成。一個去中心化的社交網絡,由實現各種去分散式軟體(包括 Misskey)的伺服器組成。除了 Misskey 之外,其他去分散式軟體還包括 Mastodon、Pleroma 和 Pixelfed。 ## GTL 公開時間軸(Global TimeLine)的縮寫。關於時間軸的詳情可參考[這裡](../features/timeline) ## HTL 首頁時間軸(Home TimeLine)的縮寫。關於時間軸的詳情可參考[這裡](../features/timeline) ## LTL 本地時間軸(Local TimeLine)的縮寫。關於時間軸的詳情可參考[這裡](../features/timeline) ## MFM Markup language For Misskey的縮寫,一種可以在 Misskey 上使用的標記語言。詳情參考[這裡](../features/mfm) ## Misskey Web Misskey 官方客戶端(介面)。透過個人電腦、智慧型手機或其他網路瀏覽器存取 Misskey 伺服器時,系統會自動顯示。 ## NSFW Not Safe For Work(工作場所不宜)的縮寫。此功能可讓您將圖像視為「敏感」並防止它們在沒有互動的情況下顯示。 ## 轉發 引用已有貼文或將該貼文作為新貼文共享的行為,以及由此創建的貼文。詳情參考[這裡。](../features/note/#renote) ## STL 社交時間軸(Social TimeLine)的縮寫。關於時間軸的詳情可參考[這裡](../features/timeline) ## 小藍 (讀音: ㄚㄧˇ)
Misskey的看板娘(官方代表人物)。詳情參考[這裡](https://xn--931a.moe/) ## 伺服器 todo ## 自訂表情符號 由每個 Misskey 伺服器的管理員或使用者獨立建立的表情符號。 非自訂表情符號的普通表情符號被稱為「Unicode表情符號」。詳情參考[這裡。](../features/custom-emoji) ## 控制臺 這是指 Misskey 伺服器設定畫面。 ## 系統帳戶 Misskey 伺服器使用的特殊帳號,例如在與外部伺服器互動時使用。它內建在 Misskey 伺服器中,並根據需要由伺服器自動操作。 ## 凍結 這意味著該帳戶已被停用。 ## 雲端硬碟 這是管理 Misskey 伺服器上使用者上傳的圖像和音樂等檔案的功能。詳情參考[這裡。](../features/drive) ## 貼文 使用者在 Misskey 伺服器上發布的文章。它可以包括各種 Misskey 自己的內容,如圖片、音樂和其他文件、投票等。詳情參考[這裡。](../features/note) ## 代理帳戶 為了獲取屬於外部伺服器的使用者貼文,Misskey 伺服器會自動建立並操作的系統帳戶。當自己伺服器的使用者試圖獲取其他伺服器使用者的內容,且該使用者並未追蹤該用戶時,系統可能會使用此帳戶代理追隨該使用者。 ## Miskist 在 Misskey 伺服器上擁有帳戶的使用者。或者說是最沈迷其中的使用者。 ## 審查員 有權操作伺服器的用戶,包括凍結帳號和刪除垃圾與不當貼文。伺服器管理員經常在其伺服器內招募和僱用審查員。 ## 遠端 指的是其他伺服器。也用作前綴,例如遠端使用者。這與本地相反。 ## 聯邦宇宙 指多個伺服器或相互連接並相互交換內容和通知等資訊的伺服器的集合。 ## 本地 指的是你自己的伺服器。也可用作前綴,如本地用戶、本地時間軸等。它與遠端相反。 ================================================ FILE: content/tw/docs/2.for-users/4.resources/misskey-hub.md ================================================ # 關於 Misskey Hub Misskey Hub 是 Misskey 的官方網站,提供有關 Misskey 的知識和其他文件、開發部落格和外掛程式商店。 它的目標是「關於 Misskey 的一切都在這裡」。 歡迎提供更多文件和翻譯。Misskey Hub 也是[開放原始碼](https://github.com/misskey-dev/misskey-hub) :::tip Misskey Hub 是使用 Nuxt 建置的靜態網站。 ::: ## 為 Misskey Hub 做出貢獻 歡迎提供更多文件和翻譯。 ================================================ FILE: content/tw/docs/2.for-users/4.resources/self-xss.md ================================================ # 關於 Self-XSS 攻擊 ![](/img/docs/for-users/resources/self-xss/console_warn.png) 您是否在按照某人的指示操作 Misskey 時,遇到了如上圖所示的畫面,並最終來到這個頁面? **也許您被惡意攻擊者欺騙了。** 除非您輸入了被指示的內容(很可能是程式碼),否則不會向發出指示的攻擊者發送任何資訊。**請立即停止操作。** 這個畫面是開發者用來查看代碼或進行錯誤修正的「控制台」工具,**在正常使用中,您不需要進入這個畫面。** ## 詳細說明 在 Self-XSS 攻擊中,攻擊者會欺騙使用者,讓他們將惡意的程式碼貼到瀏覽器的開發者工具中。在這種情況下,攻擊者通常會使用以下類似的語句來誘導用戶: - 可以解鎖隱藏功能或特典 - 請為了安全測試執行這段代碼 - 可以通過攻擊網站來非法獲取點數 如果您被這類語句欺騙並執行了代碼,您將按照攻擊者的意圖進行操作,這可能會導致您的個人資訊被竊取或帳戶被控制。 與一般所謂的「網路攻擊」不同,Self-XSS 攻擊是通過用戶使用的正規應用程式來竊取機密數據。因此,不僅需要系統方面的防範措施,用戶自身的警惕和日常注意也非常重要。 ================================================ FILE: content/tw/docs/2.for-users/5.stepped-guides/1.index.md ================================================ # 逐步指南 本節逐步解釋您在使用 Misskey 時會遇到的複雜操作。 :::warning 此部分處於測試階段。內容可能不完整。 ::: ================================================ FILE: content/tw/docs/2.for-users/5.stepped-guides/_dir.yml ================================================ title: "逐步指南" description: "一步步解釋Misskey的操作。如果您不知道如何使用,請查看這裡!" ================================================ FILE: content/tw/docs/2.for-users/5.stepped-guides/how-to-delete-account.yml ================================================ title: "如何刪除帳戶" description: "瞭解如何刪除 Misskey 帳戶。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | Misskeyのアカウントが必要なくなったなどで、アカウントを削除したい方もおられると思います。このページでは、 - アカウント削除に際しての注意点 - アカウント削除の方法 についてご紹介します。 :::danger 後ほど詳しくご紹介しますが、**アカウントを削除すると、Misskeyの利用を再開する(再度登録し直す)際にまで影響がおよびます。** アカウントの削除はくれぐれも慎重に行ってください。 ::: ## アカウント削除に際しての注意点 アカウントを削除すると、次のことが起こります: - アカウントにログインできなくなります - データの削除は時間をかけて行われます - 同じIDは二度と使えなくなります 一つずつ説明します。 ### アカウントにログインできなくなります アカウント削除を実施すると、そのアカウントに再度ログインすることはできなくなります。 **間違えて削除した際の復旧機能などはありません。** ご注意ください。 ### データの削除は時間をかけて行われます データの削除は非常に負荷のかかる操作です。そのため、他のユーザーの利用に支障をきたさないように、データの削除は時間をかけて行われます。 アカウント削除と同時にすべてのデータが削除されるわけではありませんのでご注意ください。 ### 同じIDは二度と使えなくなります 連合処理との兼ね合い上、現時点では、一度取得したID(`@someone@misskey.example.com` の `@someone` の部分)は**二度と使えなくなります。** 同じサーバー上において再度同じIDでアカウントを取得することは出来なくなりますので、**十分ご注意ください。** --------------- 以上すべてをご理解の上で、それでもアカウントを削除する必要がある方は、以下からお使いの機器タイプを選択し、アカウント削除を行ってください。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "スマートフォン" steps: - title: "設定を開く" image: "sp/1.png" description: | Misskeyを開き、画面右下の「≡」ボタンをタップ、でてきたメニューの「設定」をタップします。 - title: "「その他」をタップ" image: "sp/2.png" description: | 設定カテゴリの中から「その他」を見つけてタップします。 - title: "「アカウント削除をリクエスト」をタップ" image: "sp/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "sp/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "sp/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "設定を開く" image: "pc/2.png" description: | 「設定」を開き、少しスクロールすると見える「その他」をクリックします。 - title: "「アカウント削除をリクエスト」をクリック" image: "pc/3.png" description: | 「アカウントを閉鎖する」をタップして開き、注意事項を確認の上「アカウント削除をリクエスト」をタップします。 - title: "パスワードを入力" image: "pc/4.png" description: | 重要な操作のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "アカウント削除の申請完了" image: "pc/5.png" description: | この画面が表示されたらアカウント削除の申請は完了です。「わかった」をタップすると、Misskeyサーバーからログアウトします。 ================================================ FILE: content/tw/docs/2.for-users/5.stepped-guides/how-to-enable-2fa.yml ================================================ title: "設置兩步驟驗證的方法(一次性密碼)" description: "本節說明如何為 Misskey 帳戶設定一次性密碼,以提高安全性。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | 設定兩步驗證可降低帳戶被入侵的風險,並加強安全性。 您可以在此瞭解如何設定一次性密碼。 guides: - _AUTOSELECT_TYPE_: "HARD_SMARTPHONE" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "智慧型手機" steps: - title: "下載兩步驗證應用程式" description: | 在開始操作之前,請安裝用於生成兩步驟驗證一次性密碼的應用程序。以下是一些例子: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) - title: "開啟設定" image: "sp/1.png" description: | 開啟 Misskey,點選螢幕左下方的「≡」按鈕,然後在出現的功能表中點選「設定」。 - title: "點選安全性" image: "sp/2.png" description: | 在「設定」類別中找到「安全性」,然後點選它 - title: "點選「開始設定驗證應用程式」" image: "sp/3.png" description: | 在「雙因素驗證」的「驗證應用程式」下,點選「開始設定驗證應用程式」。 - title: "輸入密碼" image: "sp/4.png" description: | 對於安全相關的設定,請輸入您登入帳號時使用的密碼以進行確認。 - title: "開始設定認證應用程式" image: "sp/8.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### 今お使いの端末で二段階認証アプリを設定する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、**二次元コードをタップするとアプリが起動します。** :::tip 起動しない場合は、2段階認証用アプリが正しくインストールされているか確認してください。 ::: ### 別の端末にインストールされた2段階認証アプリを設定する場合 2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "sp/6.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "sp/7.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: - _AUTOSELECT_TYPE_: "HARD_PC" title: "PC" steps: - title: "2段階認証用アプリをダウンロード" description: | 操作を始める前に、2段階認証用のワンタイムパスワードを生成するためのアプリをお使いのスマートフォンなどにインストールしてください。以下にその例を示します: - Google Authenticator: [Google Play](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) [App Store](https://apps.apple.com/app/google-authenticator/id388497605) - FreeOTP: [Google Play](https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp) [App Store](https://apps.apple.com/app/freeotp-authenticator/id872559395) :::tip PC用のワンタイムパスワード生成ソフトもありますが、ポータビリティの観点からスマホ用のアプリをおすすめします。 ::: - title: "設定を開く" image: "pc/8.png" description: | 「設定」→「セキュリティ」と進み、「二要素認証」の中にある「認証アプリ」から、「認証アプリの設定を開始」をタップします。 - title: "パスワードを入力" image: "pc/3.png" description: | セキュリティに関わる設定のため、確認のために、お使いのアカウントにログインする際に使用しているパスワードを入力します。 - title: "認証アプリの設定を開始する" image: "pc/7.png" description: | 2段階認証アプリを設定するためのコードが生成されます。以下のいずれかの方法で設定してください。 ### スマホの2段階認証アプリを設定する場合(推奨) お使いのスマートフォンで2段階認証アプリを開き、アプリの指示に従って、ワンタイムパスワードの新規登録を行います。この際に、画面に表示されている二次元コードをスキャンしてください。 ### PC上の2段階認証アプリを使用する場合 「アプリを起動」ボタンをタップします。このボタンがない場合は、二次元コードをタップするとアプリが起動します。 - title: "認証アプリで生成されたコードをコピーする" image: "sp/9.png" description: | このあとのMisskey側でのセットアップで、認証アプリが正しく設定されていたかの確認のために、アプリで生成されたワンタイムパスワードを入力する手順があります。 アプリの指示に従い、ワンタイムパスワードを覚えておくか、コピーしておいてください。 :::warning ワンタイムパスワードはすぐ(約30秒)失効します。ご注意ください。 ::: - title: "ワンタイムパスワードを入力する" image: "pc/5.png" description: | さきほどのワンタイムパスワードを入力し、「続ける」をタップします。 - title: "バックアップコードをダウンロードする" image: "pc/6.png" description: | **2段階認証の設定が完了しました。** 最後に、2段階認証が使えなくなった際に使用できる「バックアップコード」も生成されますので、必ずダウンロードしてから終了してください。 :::warning バックアップコードは、ワンタイムパスワードが使用できなくなったときにアカウントにログインできる救済機能です。 このコードが無いとアカウントにログインすることができなくなるので、必ずダウンロードして安全な場所に保管しておいてください。 このコードは、これ以降 二度と表示されません。 ::: ================================================ FILE: content/tw/docs/2.for-users/5.stepped-guides/how-to-use-pwa.yml ================================================ title: "Misskey Webをアプリ化して使う方法" description: "Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。" #Do not translate any keys that includes underscore _TYPE_: "STEPPED_GUIDE" body: | ここでは、Misskey WebをPWAアプリ化する方法をご紹介します。スマートフォンでMisskeyを利用する際のおすすめの方法です。 ## PWAとは? PWAは、Progressive Web Appの略で、ウェブページをアプリのように扱うことができる技術です。Misskeyは、標準でPWAに対応しています。 ここでは、PWAの設定方法を端末のOS別に紹介しています。以下からお使いのOSを選んで進んでください! guides: - _AUTOSELECT_TYPE_: "OS_ANDROID" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "Android (Google Chrome)" description: | AndroidでPWAをお使いになる際は、Google Chromeがおすすめです。 ここでは、Google Chromeを使用した設定方法について解説します。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "android/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "詳細設定メニューを開く" image: "android/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、右上にある「︙」ボタンをタップします。 - title: "「ホーム画面に追加」または「アプリをインストール」をタップ" image: "android/sp_2.png" description: | メニュー内にある「ホーム画面に追加」もしくは「アプリをインストール」の項目をタップし、出てきたダイアログの指示に従ってください。 - title: "ホーム画面を確認する" image: "android/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 - _AUTOSELECT_TYPE_: "OS_IOS" _LAYOUT_TYPE_: "IMAGE_PORTRAIT_FIXED" title: "iOS / iPadOS" description: | iOS または iPadOS でPWAをお使いになる際は、Safariをご利用ください。 開始する前に、お使いの端末に搭載されているOSが最新のものかどうかを確認してください。最新ではない場合は、[こちら](https://support.apple.com/ja-jp/ios/update)を参考にしてアップデートしてください。 steps: - title: "PWAにしたいMisskeyサーバーを開く" image: "ios/sp_0.png" description: | PWAとして端末にインストールしたいMisskeyサーバーにアクセスし、ログインしてください。 - title: "共有ボタンをタップして開く" image: "ios/sp_1.png" description: | Misskeyサーバーの任意のページを開いたまま、メニューバーの共有ボタンをタップします。 - title: "「ホーム画面に追加」をタップ" image: "ios/sp_2.png" description: | オプションのリストを下にスクロールしてから、「ホーム画面に追加」をタップします。 この後、通知の送信許可を求められることがありますので、画面の指示に従い、必要に応じて許可してください。 「ホーム画面に追加」が表示されない場合は、設定項目が非表示になっている可能性があります。表示するには、リストの一番下までスクロールし、「アクションを編集」から「ホーム画面に追加」の項目を追加してください。詳しくは[Appleのサポートページ](https://support.apple.com/ja-jp/guide/iphone/iph42ab2f3a7/ios)をご覧ください。 - title: "ホーム画面を確認する" image: "ios/sp_3.png" description: | しばらくすると、ホーム画面に、サーバーのアイコンもしくはMisskeyのアイコンが追加されます。 このアイコンをタップすることで、Misskeyはアプリモードで起動します。 ================================================ FILE: content/tw/docs/2.for-users/_dir.yml ================================================ title: "針對 Misskey 的使用者" ================================================ FILE: content/tw/docs/3.for-admin/_dir.yml ================================================ title: "針對伺服器營運者" description: "提供有關如何建立和運行伺服器的有用資訊。" ================================================ FILE: content/tw/docs/3.for-admin/features/1.index.md ================================================ --- description: "為伺服器管理員提供的功能說明。" --- # 伺服器功能 Misskey 提供一系列功能來幫助您運行伺服器。 ================================================ FILE: content/tw/docs/3.for-admin/features/abuse-report.md ================================================ # 檢舉 在 Misskey 中,可以接收來自伺服器內外使用者對伺服器內容的檢舉。 報告會傳送到[控制台 > 檢舉](x-mi-web://admin/abuses)。**應該定期檢查,以確保及時處理。** ## 處理檢舉 檢舉報告包含 - 被檢舉的使用者 - 被檢舉的內容 - 檢舉者 以上內容。 :::tip 有時會有來自遠端伺服器的檢舉被轉發過來。在這種情況下,檢舉者可能是該伺服器的系統帳號 (`@instance.actor`)。 ::: 根據需要,可以留下僅有管理員和版主權限帳戶才能查看的審查備註,以記錄有關檢舉的處理狀況。 處理完檢舉後,應該將其標記為已完成。 - 如果內容是正確的,並且已採取了某些行動,則應標記為「解決(接受)」 - 如果內容是不正確的,且沒有採取任何行動,則應標記為「解決(拒絕)」 根據處理結果,可以區分解決的狀態,並結束對應的處理。 ## 轉發到遠端 如果檢舉是針對遠端使用者,可以將該檢舉轉發到該使用者所屬的伺服器。在轉發檢舉時,檢舉者會以匿名的系統帳戶(`@instance.actor`)轉發。 ## 檢舉通知 可以透過 Webhook 或電子郵件通知來接收檢舉的通知。開啟[控制台 > 報告](x-mi-web://admin/abuses) 並進入「通知設定」。 ================================================ FILE: content/tw/docs/3.for-admin/features/announcement.md ================================================ # 公告 公告是 Misskey 提供的伺服器功能之一。 透過公告功能,使用者可以發布伺服器範圍內的公告,也可以從伺服器發送訊息給單一使用者。 :::warning 大量的活動通知會增加用戶(尤其是新用戶)的確認過程,並可能降低用戶體驗。在這種情況下,您可以考慮以下選項: - 建立公告時啟用「僅限既有的使用者」選項 - 建立公告時啟用「不發送通知」選項 - 將已到期的公告封存 ::: ## 顯示樣式 您可以選擇以下類型的公告顯示格式。 - **正常** ... 公告將發佈在公告清單頁面。 - **橫幅** ... 除了出現在公告清單頁面外,它們還會以橫幅的形式顯示在客戶端畫面的頂部。 - **對話方塊** ... 除了顯示在公告清單頁面外,它還會在客戶端啟動時以對話方塊的形式顯示。 - 如果同時有 2 個以上對話方塊形式的公告存在,對於使用者體驗很可能會有不良的影響,因此建議謹慎使用。 ## 新增公告 ### 全站公告 1. 以具有管理員或審查員權限的帳號,進入[控制台 > 公告](x-mi-web://admin/announcements)。 2. 按一下「新增」按鈕以新增公告項目。 3. 編輯內容並按一下「儲存」以發佈公告。 ### 針對特定使用者的個別公告 1. 開啟您要發布公告的使用者的審查頁面。 - 使用具有管理員或版主權限的帳號開啟使用者的個人資料頁面,然後按一下使用者旁邊的「...」按鈕 ,然後點擊「審查」。 - 以具有管理員或版主權限的帳號,進入[控制台 > 使用者](x-mi-web://admin/users),搜尋並點擊使用者帳戶 2. 按一下上方的「公告」標籤。 3. 按一下「+」按鈕,會顯示「新增公告」對話方塊。 4. 編輯內容,然後按一下「儲存」,將公告發布給使用者。 ================================================ FILE: content/tw/docs/3.for-admin/features/cli.md ================================================ # 管理用指令 從 2025.8.0 版本起,Misskey 可使用伺服器管理指令。 可以使用 `pnpm cli <指令>` 的形式。 - `reset-captcha` - 重設 CAPTCHA 設定 ================================================ FILE: content/tw/docs/3.for-admin/features/federation.md ================================================ # 聯邦模式 Misskey 作為分散式平台,預設支援 ActivityPub 進行聯邦通訊,但根據伺服器的運營方針,可以選擇限制聯邦範圍或完全停用該功能。 :::tip 聯邦功能預設為啟用狀態,通常(允許聯邦通訊的情況)不需要進行額外設定。 ::: ## 設定方式 可以在[控制台 > 一般](x-mi-web://admin/settings) 的「站台聯邦」區段中設定。 ### 全部 與所有伺服器進行聯邦通訊(不包括封鎖的伺服器)。這是預設的設定。 ### 指定主機 僅與特定伺服器進行聯邦通訊(白名單)。在「允許聯邦通訊的伺服器」中輸入允許通訊的伺服器主機名稱,並以換行分隔。 ### 無 不與其他伺服器進行聯邦通訊。某些與聯邦相關的設定畫面和項目將被省略。 ================================================ FILE: content/tw/docs/3.for-admin/features/ftt.md ================================================ # Fan-out Timeline Technology (FTT) FTT 是 Misskey 上提供的伺服器功能之一。 啟用此功能後,檢索各種時間軸的效能可顯著提高,資料庫的負載也會減少。不過,Redis 的記憶體使用量會增加。如果您的伺服器記憶體不足或運作不穩定,您可以停用它。 您可以從「控制台」→「一般」配置設定。 ## 資料庫的回退 - 啟用後,如果時間軸未快取,將執行回退處理以額外查詢資料庫。 - 停用它可以透過不執行回退處理來進一步減少伺服器負載,但會限制可檢索的時間軸範圍。 ## 適用 FTT 的時間軸 - 首頁時間軸 - 本地時間軸 - 社交時間軸 - 使用者清單時間軸 ================================================ FILE: content/tw/docs/3.for-admin/features/managing-emojis.md ================================================ # 管理自訂表情符號 :::warning 現在、このドキュメントは更新作業中です。注意,這裏可能包含過去的資訊。 ::: 自定表情符號可由管理員/版主和具有「管理自定義表情符號」權限的使用者管理,方法是從「設置」中訪問「自定表情符號」頁面上的子功能表。 默認情況下,將顯示目前安裝在本地的表情符號清單。 最初,此清單爲空,但您可以通過多種方式添加自定表情符號。 ## 他のインスタンスから絵文字をコピーする 絵文字は他のインスタンスから簡単にコピーできます。 まず、カスタム絵文字設定の「リモート」タブに切り替えます。絵文字は名前やホストで検索することができます。 欲しい絵文字が見つかったら、それをクリックしてメニューを開き、絵文字をインポートすることができます。 絵文字は著作権保護の対象となる場合がありますので、絵文字が利用できるかどうか、権利面の確認を忘れないようにしましょう。 ## 個別の絵文字のインポート カスタム絵文字にしたい画像ファイルがある場合、その画像を絵文字としてインポートできます。 :::danger ドライブから絵文字をインポートする場合、ファイルはドライブ内に残ります。 Misskeyはこのファイルのコピーを作成しないため、ファイルを削除すると、絵文字が表示されなくなります。 ::: 絵文字がサーバーに追加され、通常通り編集や削除ができるようになります。 ## 一括インポート 絵文字は、特別な形式でパッケージ化されたZIPファイルとして一括でインポートできます。 この機能は、カスタム絵文字メニューの右上隅にあるメニューボタンから利用できます。 :::warning 一括インポートは、既存の絵文字を上書きしたり、サーバーに問題を引き起こす可能性があります。 可能な限りご自身でエクスポートした絵文字のみをインポートするようにし、外部から一括インポートを行う場合は、信頼できるソースかどうかを確認してください。 ::: ### パッケージ化された絵文字の形式 トップレベルには `meta.json` というファイルがあり、このファイルにはパッケージ化された絵文字に関する情報が含まれています。 このファイルの型定義は以下のようになり、`Meta` はファイル全体の構造です。 ```typescript class Meta { metaVersion: number; host: string; /** * 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[]; }; } ``` `Meta` のフィールドは現在、絵文字のインポート時に使用またはチェックされていませんが、`emojis` フィールドは使用されます。 各 `Emoji` に対して: - `downloaded`: 常に true に設定します。このフィールドがないか、true でない場合、その絵文字はインポートされません。 - `fileName`: パッケージ化されたファイル内の画像ファイルの名前。 - `emoji`: データベースに保存されていた絵文字に関連するデータ。以下の項目が現在使用されています: - `name`: ユーザーが入力する絵文字の名前、例: `blobfox`(ユーザーが `:blobfox:` と入力するとその絵文字が表示されます)。 同じ名前の絵文字が既に存在する場合、**上書きされます** - `category`: 絵文字のカテゴリ - `aliases`: 別名として追加される文字列のリスト。管理者UIではこれを「タグ」と呼びます。 ## 絵文字の編集と削除 絵文字のプロパティは、ローカル絵文字のリストでクリックすることで編集できます。 カスタム絵文字をクリックすると、そのプロパティを編集するためのダイアログが開きます。 このダイアログでは、絵文字を削除することもできます。 :::danger カスタム絵文字を削除すると、それを含む古いノートには絵文字の名前がテキストとして残ります。 その絵文字は正しく表示されなくなります。 ::: リモート絵文字は編集や削除ができないことに注意してください。 每個表情符號可以有一個名稱、類別和多個標籤。 類別用於表情符號選擇器的結構化。 在表情符號選擇器中搜尋時,標籤作為找尋表情符號所使用的別名。 編集が終わったら、ダイアログの右上隅にあるチェックマークをクリックして変更を保存します。 ### 一括編集 絵文字は、検索フィールドの下にあるボックスをチェックすることで一括編集できます。 これを有効にすると、絵文字をクリックしても編集ダイアログが開くのではなく、絵文字が選択されます。 編集オプションは、チェックボックスの下にボタンとして表示されます。 通常の動作に戻るには、もう一度ボックスのチェックを外します。 ================================================ FILE: content/tw/docs/3.for-admin/features/role.md ================================================ # 角色 角色是可以指派給使用者的屬性,可讓您顯示徽章並透過政策設定調整使用者權限。 使用者角色指派可以手動完成,也可以透過指定條件自動完成。 可以將多個角色指派給一個使用者。 ## 基本角色 可以在基本角色設定中設定預設適用於所有使用者的政策。 基本角色可以在控制臺中的「角色 → 基本角色」下進行設定。 ## 指派的類型 指派方法可選擇手動或條件指派。 - **手動** ... 手動分配和取消指派使用者。(手動角色) - 還可以設定指派的期限。 - **有條件的** ... 您可以設定條件,滿足條件的使用者將自動包含在內。(條件角色) :::warning 與手動角色相比,條件角色有以下限制 - 無法手動指派/取消指派。 - 無法檢索指定條件角色中包含的使用者清單。 ::: ## 權限 您可以為角色選擇以下基本權限。 - **一般使用者** ... 沒有特殊特權。 - **審查員** ... 可以執行基本的審查操作。 - **管理員** ... 可以更改所有伺服器設定。 可以在政策設定中配置更詳細的權限。 ## 政策 可以調整角色的政策,以變更權限和功能的限制。 也可以將政策配置為繼承基本角色中設定的值。 ### 優先級 如果指派了多個角色,並且為每個角色定義了不同值的相同政策,則可以設定這些角色相對於其他定義的優先順序。 設定的優先順序越高,就越優先於其他定義。 優先順序是按政策設定的,而不是按角色設定的。它也不能在基本角色中設定。 **如果優先權相同,則預設選擇最大或最權威的值。** :::tip 例如,如果為使用者指派角色 A 和角色 B,角色 A 的雲端硬碟空間策略定義為 500MB,角色 B 的雲端硬碟空間策略定義為 300MB - 如果優先權相同而角色 A 的雲端硬碟容量政策優先權較高,則使用500MB的值。 - 如果角色 B 的雲端硬碟容量政策具有較高優先權,則將使用 300MB 的值 此外,如果為使用者指派了角色 C 和角色 D,並且角色 C 的公開發布政策定義為「否」,而角色 D 的公開發布政策定義為「是」的情況 - 如果優先順序相同而角色 D 中公開發布政策的優先順序較高,則採用「是」。 - 如果角色 C 的公開發布政策的優先順序較高,則採用「否」。 ::: ### 使用基本角色的值 啟用此設定可從基本角色繼承政策的值。 ## 建立角色 您可以透過控制臺中的「角色」來建立新角色。 ## 查看、編輯和刪除角色訊息 這可以使用控制臺中的「角色」來完成。 ## 為使用者指派和取消指派角色 這可以在使用者的「審查→角色」中完成。 您也可以直接從使用者選單進行指派。 指派時,可以設定指派的期間。 :::tip 角色指派/取消指派可能需要一些時間才能反映出來。 ::: :::warning 無法手動指派條件角色。 ::: ## 檢查使用者政策 這可以在使用者的「審查→概覽→政策」中檢視。 ================================================ FILE: content/tw/docs/3.for-admin/features/search.md ================================================ # 搜尋貼文 Misskey 具有貼文的搜尋功能。啟用後,即可使用貼文搜尋功能。 :::tip 搜尋功能預設為關閉。 如要使用,請在角色設定中啟用「可否搜尋貼文」。 ::: ## 支援的搜尋引擎 Misskey 提供了多種用於貼文搜尋的演算法。可依伺服器規模或需求進行切換。 - sqlLike ... 使用 PostgreSQL 的標準功能進行搜尋。(預設) - 由於使用資料庫內建功能,因此操作簡便。 - 隨著資料量增加,搜尋可能會變得較慢。 - sqlPgroonga ... 使用全文搜尋引擎 [Pgroonga](https://pgroonga.github.io) 進行搜尋。 - 需要安裝 Pgroonga。 - 比 sqlLike 提供更高速的搜尋。 - meilisearch ... 使用全文搜尋引擎 [Meilisearch](https://www.meilisearch.com) 進行搜尋。 - 需要安裝 Meilisearch。 - 比 sqlLike 提供更高速的搜尋。 - 可搜尋公開範圍為「公開」或「首頁」的貼文。如要包含僅限追隨者的貼文,則需要使用 `sqlLike` 或 `sqlPgroonga`。 若要更換搜尋引擎,請修改設定檔中 `fulltextSearch` 的 `provider`,並重新啟動 Misskey 。 ## 使用 Pgroonga ### 安裝 Pgroonga :::warning 建議在操作前先備份資料庫。 此外,請在操作前先停止 Misskey。 ::: 以下是在 Ubuntu 22.04、PostgreSQL 15 環境下安裝 Pgroonga 的範例。 詳細請參考 [官方 PostgreSQL 安裝方法](https://pgroonga.github.io/ja/install/ubuntu.html)。 ```sh sudo apt install -y -V ca-certificates lsb-release wget wget https://packages.groonga.org/ubuntu/groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo apt install -y -V ./groonga-apt-source-latest-$(lsb_release --codename --short).deb sudo wget -O /usr/share/keyrings/pgdg.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc (echo "Types: deb"; \ echo "URIs: http://apt.postgresql.org/pub/repos/apt"; \ echo "Suites: $(lsb_release --codename --short)-pgdg"; \ echo "Components: main"; \ echo "Signed-By: /usr/share/keyrings/pgdg.asc") | \ sudo tee /etc/apt/sources.list.d/pgdg.sources sudo apt update sudo apt install -y -V postgresql-15-pgdg-pgroonga ``` 如要使用基於 MeCab 的分詞器,請同時執行以下操作。 ```sh sudo apt install -y -V groonga-tokenizer-mecab ``` #### Docker環境を使用している場合 Docker環境ではPGroonga導入済みのDockerイメージが使用できます。 PGroonga導入済みのPostgreSQLイメージを使用するには、`postgres:15-alpine`の代わりに`groonga/pgroonga:latest-alpine-15-slim`を使用してください。 ### 啟用 Pgroonga 接著登入 PostgreSQL。 ```sh sudo -u postgres psql ``` 登入後,選擇 Misskey 的資料庫。 ```sh \c "mk1" ``` 啟用 PGroonga。 ```sh CREATE EXTENSION pgroonga; ``` 建立 PGroonga 專用的索引。 :::warning 建立索引可能需要一些時間。請確保有足夠的操作時間。 ::: ```sh CREATE INDEX idx_note_text_with_pgroonga ON note USING pgroonga (text); ``` 完成後,輸入 `exit`,並登出 PostgreSQL。 ### 更換搜尋引擎 編輯 Misskey 的設定檔。 將 `fulltextSearch` 更改為 `sqlPgroonga`。 ```sh fulltextSearch: provider: sqlPgroonga ``` 啟動 Misskey 的程序,確認貼文搜尋功能可用後,即完成設定。 ================================================ FILE: content/tw/docs/3.for-admin/install/_dir.yml ================================================ title: "Misskey 安裝和維護" description: "包含有關如何安裝 Misskey 的資訊以及對後續維護工作有用的資訊。" ================================================ FILE: content/tw/docs/3.for-admin/install/guides/1.index.md ================================================ --- description: '有關如何建立 Misskey 伺服器的指南。' --- # 建置 Misskey 伺服器 感謝您對 Misskey 伺服器的建置表達興趣。建立伺服器有幾種方法,請選擇以下一種並閱讀指南。 :::danger 一旦開始使用,請勿使用伺服器的網域名稱/主機名稱重新建立資料庫! ::: :::warning 如果您修改了 Misskey 的原始碼(包含 Fork),由於授權的因素您會有義務公開變更的部分。細節請參閱[此處](/docs/for-admin/install/resources/forking/) ::: ## 安裝在 Xserver VPS 上 [Xserver VPS](https://vps.xserver.ne.jp/) 提供了標準的 Misskey 應用程式映像檔,因此可以輕鬆建立 Misskey 伺服器。 詳情請參閱[「使用 Misskey 應用程式映像檔」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php)。 詳細資訊請參閱[這裡](https://sns.xserver.ne.jp/misskey.php)。 ## 安裝方法列表 ================================================ FILE: content/tw/docs/3.for-admin/install/guides/2.service.md ================================================ --- description: 'サードパーティーが提供するサービスを利用して、簡単にMisskeyサーバーを作成することができます。' --- # サービスを利用する Misskeyのサーバーは、ホスティングサービスなどが提供する機能を利用して簡単に構築することができます。ここでは、Misskeyに対応したサービスの一部を紹介します。 :::warning こちらに掲載されているサービスはMisskeyプロジェクトが把握しているサービスであり、すべてのサービスのリストではありません。また、動作確認やサービスの公認認定などは、特に記載がない限り、運営企業がMisskey Projectのスポンサーか否かにかかわらず行っていないことにご留意ください **(サービスに関するお問い合わせはMisskey Projectではなく各サービスの運営者にお願いします)** 。 ::: ## Misskeyのホスティングに特化したサービス Misskey専用にカスタマイズされた管理画面などが用意されているサービスもあります。これらを利用すると、特に技術的な知識を必要とすることなく、Misskeyサーバーを構築することが可能です。 ### XServer SNS [XServer SNS](https://sns.xserver.ne.jp/)では、使用できるSNSソフトウェアとしてMisskeyが用意されています。サーバーの保守やバージョンアップデートはXServerが行うため、技術的な知識はほとんど必要なく、簡単にMisskeyサーバーの構築が可能となっています。 ## VPSのアプリイメージ VPS (Virtual Private Server) サービスの一部では、「簡単インストール」や「アプリイメージ」等の名称で、環境構築が簡単にできる機能が用意されています。Misskeyに標準で対応しているものもあります。ここではその一部を紹介します。 ### XServer VPS・シンVPS [XServer VPS](https://vps.xserver.ne.jp/)および[シンVPS](https://www.shin-vps.jp/)ではアプリイメージとしてMisskeyが提供されています。 詳細については、 - XServer: [「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php) - シンVPS: [「Misskeyアプリイメージを利用する」](https://www.shin-vps.jp/support/manual/man_server_app_use_misskey.php) をご覧ください。 ### さくらのVPS [さくらのVPS](https://vps.sakura.ad.jp/)では、スタートアップスクリプトとしてMisskeyが提供されています。 詳細は、[「Sakura VPS Manual スタートアップスクリプト」](https://manual.sakura.ad.jp/vps/startupscript/startupscript.html)をご覧ください。 ================================================ FILE: content/tw/docs/3.for-admin/install/guides/bash.md ================================================ # Misskey install shell script v3.0.0 現在可以透過 shell script 簡單安裝 Misskey! 您可以只回答幾個問題,然後在 Ubuntu Server 上面簡單的安裝 Misskey (v12) ! 另外,有可能有更新後的 Script. [v12 版在此處 (日語文件)](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\ [**English version**](./README.en.md) ## 需要事前準備的東西 1. 域名 2. 安裝好 Ubuntu 的 Server 3. Cloudflare 帳號 (推薦) :::danger 一旦開始使用,請勿使用伺服器的域名以及主機名稱重新建立資料庫! ::: 由於 Let's Enctypt 的認證嘗試次數是有限的,因此請在開始安裝之前先仔細檢查伺服器的網路或 DNS 是否設定正確。 ## 設定 Cloudflare Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。 \ ネームサーバーの適用には最大で3日程度かかる場合があります。 また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、 - DNSを設定してください。 - SSL/TLS設定にて、暗号化モードを「フル」に設定してください。 ## 操作 ### 1. SSH サーバーにSSH接続します。 \ (サーバーのデスクトップを開いている方はシェルを開きましょう。) ### 2. 環境を最新にする 將所有套件更新到最新,然後重新開機。 ```sh sudo apt update; sudo apt full-upgrade -y; sudo reboot ``` ### 3. 開始安裝 SSHを接続しなおして、Misskeyのインストールを始めましょう。 ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh ``` 請將其中的 example.com 換成自己的域名。 ### 4. 進行更新 這邊也有用於更新用的 script. アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG(日本語)および[GitHubのリリース一覧(英語)](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。 まずはダウンロードします。 ```sh wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh ``` アップデートしたいときにスクリプトを実行してください。 ```sh sudo bash update.sh ``` - systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。 - docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。 ## 已確認可以正常運作的環境 ### Oracle Cloud Infrastructure このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。 - VM.Standard.E2.1.Micro (AMD) - VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater] 請使用 iptables. ## Issues & PRs Welcome 上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。 上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。 機能の提案についても歓迎いたします。 # Tips 選択肢の選び方や仕様についてなど。 ## Systemd or Docker? v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。 Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。 \ [docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0) Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。 \ ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。 \ また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。 ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。 systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。 推薦順序如下: 1. Docker Hub 2. systemd 3. Docker Build ## nginxを使うかどうか 以下のケースに該当する場合を除き、インターネットとMisskeyの仲立ちをするリバースプロキシとしてnginxの採用をおすすめしています。 - ユーザは自分のみ(いわゆるお一人様サーバー)or ごく少数 - ロードバランサー等nginxのリバースプロキシ・キャッシュ機能を他の手段で賄う用意がある(上級者向け) nginxをリバースプロキシとして採用することにより、画像ファイルなどの静的コンテンツをキャッシュしサーバーリソースの浪費を抑えることが出来ます。 また、nginxにはキャッシュが無い状態での大量アクセスを上手くコントロールする機能が搭載されていますので、Misskeyの負荷増大を抑える効果を期待できます。 設定例は[nginxの設定](../resources/nginx/)ページにて記載しています。 ## Add more swaps! スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。 ## 途中で失敗してまたスクリプトを実行する場合 万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。 - RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。 \ host・port設定はそのままEnterを押します。 ユーザー名やパスワードは、前回実行した際に指定したものを入力します。 ## .envファイルについて インストールスクリプトは、2つの.envファイルを作成します。 \ 在更新時會使用到。 ### /root/.misskey.env misskeyを実行するユーザーを覚えておくために必要です。 ### /home/(misskey user)/.misskey.env systemdの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 ### /home/(misskey user)/.misskey-docker.env Dockerの場合に生成されます。 \ 実行されているコンテナとイメージの番号を保存しています。 \ コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。 ## 自分で管理する インストール後、構成を変更する際に役立つかもしれないメモです。 "example.com"を自分のドメインに置き換えて読んでください。 ### Misskey 目錄 Misskey 的原始碼會被 clone 到 `/home/{{user}}/{{directory}}` 底下。 \ ({{user}}、{{directory}} 的預設值都是 misskey。) 如果要移動到 Misskey 目錄,請透過以下指令移動。 ```sh sudo -iu {{user}} cd {{directory}} ``` 要返回本來的 user 請輸入 exit. ```sh exit ``` ### systemd systemd 的 process name 是 example.com. \ たとえば再起動するには次のようにします。 ```sh sudo systemctl restart example.com ``` 可以透過 journalctl 來檢查紀錄檔。 ```sh journalctl -t example.com ``` 設定檔被放在 `/etc/systemd/system/example.com.service` ### Docker DockerはMisskeyユーザーでrootless実行されています。 sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。 ```sh 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 ``` ワンライナーなら次のようにします。 ```sh 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ディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。 ```sh pnpm run clean-all ``` journalctlでログを確認すると、たいていre2が云々という記述が見当たります。 ## Q. 想要在同個伺服器裡面再建一個 Misskey スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。 \ 幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。 ================================================ FILE: content/tw/docs/3.for-admin/install/guides/docker.md ================================================ --- description: '本指南介紹如何使用 Docker 安裝設置 Misskey。' --- # 使用 Docker Compose 建置 Misskey 本指南介紹如何使用 Docker Compose 安裝設置 Misskey。 :::danger 一旦開始使用,請勿使用伺服器的域名以及主機名稱重新建立資料庫! ::: :::tip{label='前提条件'} - 必須安裝 Docker 和 Docker Compose。 ::: ## 取得 Misskey 原始碼 ```sh git clone -b master https://github.com/misskey-dev/misskey.git cd misskey git checkout master ``` ## 設定 使用以下命令複製各種設定檔的範例。 ```sh cp .config/docker_example.yml .config/default.yml cp .config/docker_example.env .config/docker.env cp ./compose_example.yml ./compose.yml ``` 按照檔案中的說明編輯 `default.yml` 和 `docker.env`。 如有必要,也請編輯 `compose.yml`。(例如,如果您想更改連接埠) ## 建構和初始化 使用以下命令建構 Misskey 並初始化資料庫。 這需要一些時間。 ```shell sudo docker compose build sudo docker compose run --rm web pnpm run init ``` ## 啟動 辛苦了。可以使用以下指令啟動 Misskey。 ```sh sudo docker compose up -d ``` GLHF✨ ## 如何更新Miskey :::warning 在進行更新時,請務必確認[變更日誌](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md),預先了解變更和可能需要的作業(通常不需要)。 ::: ```sh git stash git checkout master git pull git submodule update --init git stash pop sudo docker compose build sudo docker compose stop && sudo docker compose up -d ``` 根據更新內容和資料庫大小,可能需要一些時間。 ## 如何執行 cli 命令 ```sh sudo docker compose run --rm web node packages/backend/built/tools/foo bar ``` ================================================ FILE: content/tw/docs/3.for-admin/install/guides/kubernetes.md ================================================ # 使用 Kubernetes/TrueNAS 建置 Misskey 本指南說明如何使用 Kubernetes 和 HelmChart 設定 Misskey。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## TrueCharts 與 TrueNAS Scale MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。 現在、Misskeyは_incubator_ trainで進行中です。 :::tip{label='前提条件'} - TrueNAS Scale 以及 - KubernetesクラスターとHelm ::: ## TrueNAS Scale [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。 _incubator_ trainを追加し、Misskeyをインストールします。 設定の URL の欄は必ず変更してください。 TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。 ## Helmを使用して手動で構築 TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。 values.yamlの `misskey:` の `url:` を必ず書き換えてください。 他の個所は、必要に応じて書き換えてください。 このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。 ``` helm repo add TrueCharts https://charts.truecharts.org helm repo update helm install misskey TrueCharts/misskey ``` ## 升級 Misskey Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。 問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。 ================================================ FILE: content/tw/docs/3.for-admin/install/guides/manual.md ================================================ --- description: '本指南介紹如何安裝和設定 Misskey。' --- # 手動建置 Misskey 本指南介紹如何安裝和設定 Misskey。 :::danger 一旦開始使用伺服器,切勿更改伺服器的網域名稱/主機名稱! ::: :::tip{label='前提条件'} #### 必須安裝並設定以下軟體 - **[Node.js](https://nodejs.org/en/)** (20.4.x以上) - **[pnpm](https://pnpm.io/)** (v10以上) - **[PostgreSQL](https://www.postgresql.org/)** (v15以上) - **[Redis](https://redis.io/)** - **[FFmpeg](https://www.ffmpeg.org/)** 如果您使用 Debian/Ubuntu,最好安裝 `build-essential` 軟體包。 ::: ## 建立使用者 Misskey 不應以 root 使用者身分執行,因此應建立使用者。 Debian 範例: ```sh adduser --disabled-password --disabled-login misskey ``` ## 安裝 Misskey ```sh sudo -iu misskey git clone --recursive https://github.com/misskey-dev/misskey.git cd misskey git checkout master git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile ``` ## 設定 請複製範例中的 `.config/example.yml`,並且重新命名為 `default.yml`。 ```sh cp .config/example.yml .config/default.yml ``` 請根據檔案中的指示編輯 `default.yml`。 ## 建構和初始化 使用以下命令建構 Misskey 並初始化資料庫。 這需要一些時間。 ```sh NODE_ENV=production pnpm run build pnpm run init ``` ## 啟動 辛苦了。可以使用以下指令啟動 Misskey。 ```sh NODE_ENV=production pnpm run start ``` GLHF✨ ::::g-details{summary="透過 systemd 進行管理"} 建立 systemd 設定檔 `/etc/systemd/system/misskey.service` 在編輯器中打開它,貼上下面的程式碼並儲存: ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` :::warning 在 CentOS 中使用小於 1024 的 port 號使用 Misskey 的話 必須修改為 `ExecStart=/usr/bin/sudo /usr/bin/npm start` ::: 重新載入 systemd 並啟用 misskey 服務。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey ``` 啟動 misskey 服務 ```sh sudo systemctl start misskey ``` :::tip 輸入 `systemctl status misskey` 查看服務狀態。 ::: :::: ## 如何更新Miskey :::warning 在進行更新時,請務必確認[變更日誌](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md),預先了解變更和可能需要的作業(通常不需要)。 ::: 拉回 master,安裝、建置和遷移資料庫: ```sh git checkout master git pull git submodule update --init NODE_ENV=production pnpm install --frozen-lockfile NODE_ENV=production pnpm run build pnpm run migrate ``` 根據更新內容和資料庫大小,可能需要一些時間。 更新完成後,請重新啟動 Misskey 服務。 ```sh sudo systemctl restart misskey ``` :::tip 如果您在建置或啟動過程中遇到錯誤,請嘗試以下命令: - `pnpm run clean` 或 `pnpm run clean-all` - `pnpm rebuild` ::: ::: ================================================ FILE: content/tw/docs/3.for-admin/install/guides/ubuntu-manual.md ================================================ # 在 Ubuntu 安裝 Misskey 的詳細說明 ## その他のMisskeyインストール方法 - [基本版 Misskey構築の手引き (manual)](./manual/) - [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧) ## シェルスクリプトのお知らせ コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/) :::tip シェルスクリプトでの開発環境へのインストールは想定されていません。 ::: :::tip ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 ::: 不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。 ## この記事について この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。 [docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。 :::danger 一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください! ::: ## はじめに この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。 Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。 この記事では、具体性を重視し、特定の環境に特化した記述をしている。 OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。 わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。 ## 環境と条件 - OSは**Ubuntu 22.04 LTS**を利用する。 - ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。 - メモリは4GB程度あると良い。 - (従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。) - 独自のドメインを購入し、Cloudflareを使用する。 - ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。 - ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます(設定ファイルの項で別途説明) :::danger 一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください! ::: ## nanoの使い方 今回はテキストエディターにnanoを使う。次のように起動する。 ```sh nano /path/to/file ``` 一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。 終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。 下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。 ## ユーザーの作成 Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。 ```sh sudo adduser --disabled-password --disabled-login misskey ``` :::tip 開発環境の場合はユーザーを分ける必要はありません ::: ## 基本的なソフトウェアのインストールと設定 基本的なソフトウェアのインストールを行う。 ### Node.js Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。 ```sh sudo rm /usr/share/keyrings/nodesource.gpg; curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg; NODE_MAJOR=22; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list; sudo apt update; sudo apt install -y nodejs; # Node.jsがインストールされたので、バージョンを確認する。 node -v ``` v22.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。 ### pnpm pnpmは、Misskeyで使用しているパッケージ管理ツールであり、外部ライブラリを参照したり、その依存関係を管理したりするのに使用されている。 ここでは、Node.jsに付属しているパッケージ管理ツール「npm」を使用してpnpmをインストールする方法を紹介しているが、[pnpmのウェブサイト](https://pnpm.io/installation)では他にも様々な方法でのインストール方法が紹介されているので、一度目を通したうえで、お使いの環境に最適な方法でインストールすることをお勧めする。 ```sh npm i -g pnpm ``` ### PostgreSQL PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。 #### インストール シェルスクリプトを実行し、最新バージョン(v15)をインストールしよう。 ```sh sudo apt install -y postgresql-common sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15; # systemctlでデーモンの状態を確認。 systemctl status postgresql ``` activeならOK。 #### ユーザーとデータベースの作成 psqlを起動。 ```sh sudo -u postgres psql ``` Misskeyで使うユーザーを作成する。\ ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\ (LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。) ```sql CREATE ROLE misskey LOGIN PASSWORD 'hoge'; ``` データベースを作成。データベース名をmk1としている。 ```sql CREATE DATABASE mk1 OWNER misskey; \q ``` ### Redis Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。 redis.ioのドキュメントに従いインストールする。 https\://redis.io/docs/getting-started/installation/install-redis-on-linux/ ```sh sudo apt-get install lsb-release curl gpg curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list sudo apt-get update sudo apt-get install redis ``` 起動する ```sh sudo systemctl enable redis-server sudo systemctl start redis-server ``` systemctlでデーモンの状態を確認。 ```sh systemctl status redis-server ``` activeならOK。 ### FFmpeg FFmpegは、動画や音声に関する処理を担う。以下でインストールしておく。 ```sh sudo apt install ffmpeg ``` ### nginx http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。 :::tip 開発環境の場合はnginxのセットアップは不要です ::: nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。 ```sh sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。 ```sh echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx sudo apt update sudo apt install -y nginx ``` systemctlでデーモンの状態を確認。 ```sh systemctl status nginx ``` activeならOK。そうでなければ、次のコマンドを実行。 ```sh sudo systemctl start nginx sudo systemctl enable nginx ``` http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\ curlで確認するのもよいだろう。 ```sh curl http://localhost ``` ### その他 Git(バージョン管理ソフト)およびbuild-essential(Misskeyのビルド時に必要)をインストールする。 ```sh sudo apt update sudo apt install -y git build-essential ``` ## 追加の設定とインストール サーバーをインターネットに公開する準備をする。 :::tip 開発環境の場合はファイヤーウォールやCloudflare、Certbotの設定は不要です ::: ### ファイヤーウォール 今回は、ファイヤーウォールとしてufwを使用する。 次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。 ```sh sudo ufw enable sudo ufw default deny sudo ufw limit 22 sudo ufw allow 80 sudo ufw allow 443 ``` ufwのステータスを確認しておく。 ```sh sudo ufw status ``` systemctlで永続化する。 ```sh sudo systemctl enable ufw ``` :::tip ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。 ::: ### Cloudflare Cloudflareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\ Cloudflareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。 [**→ CDNの設定**](../resources/cdn/) [Cloudflareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。 DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。 ドメインを購入した所によっては適用に3日程度かかる場合がある。 ### Certbot (Let’s Encrypt) の設定 HTTPS・WSS通信に使用する証明書をCloudflareを使う方式でLet’s Encryptから取得する。 certbotとCloudflareプラグインをインストール ```sh sudo apt install -y certbot python3-certbot-dns-cloudflare ``` CloudflareのAPIキーを取得する。以下の手順で取得されたい。 1. https\://dash.cloudflare.com/profile/api-tokens にアクセス 2. Global API KeyのViewを選択 3. パスワードを入力しhCaptchaを解除、Viewを選択 Cloudflareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。 ```sh mkdir /etc/cloudflare nano /etc/cloudflare/cloudflare.ini ``` dns_cloudflare_email(下の例ではbar\@fuga.foo)にはCloudFlareで登録しているメールアドレスを設定する。 ```sh dns_cloudflare_email = bar@fuga.foo dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx ``` これを保存し、パーミッションを600に設定。 ```sh sudo chmod 600 /etc/cloudflare/cloudflare.ini ``` 準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。 ```sh sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld ``` \*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。 自動更新の設定はインストールと同時に行われているため不要。 ## Misskeyのインストール これで前準備はあらかた終わったので、Misskeyを準備していく。 misskeyユーザーに変更。 ```sh sudo su - misskey ``` Gitでファイル類を展開。 ```sh git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules cd misskey git checkout master ``` 必要なnpmパッケージをインストール。 ```sh NODE_ENV=production pnpm install --frozen-lockfile ``` ## Misskeyを設定する ### default.yml 設定ファイル.config/default.ymlを作成。 ```sh nano .config/default.yml ``` 次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。 この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。 設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。 :::tip 開発環境の場合、urlは`url: http://localhost:3000`と指定します。 ::: ```yml # ● Misskeyを公開するURL url: https://example.tld/ # ポートを3000とする。 port: 3000 # ● PostgreSQLの設定。 db: host: localhost port: 5432 db : mk1 # 〇 PostgreSQLのデータベース名 user: misskey # 〇 PostgreSQLのユーザー名 pass: hoge # ● PostgreSQLのパスワード #   Redisの設定。 redis: host: localhost port: 6379 #   IDタイプの設定。 id: 'aidx' #   syslog syslog: host: localhost port: 514 ``` 指定できたら保存する。 ### nginxの設定 nginxの設定を行う。 ルート権限で行う。 ```sh exit ``` /etc/nginx/conf.d/misskey.confを作成する。 ```sh sudo nano /etc/nginx/conf.d/misskey.conf ``` [Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピー&ペーストし、次の部分を自分のものに書き換える。 - 18行目と30行目のドメイン名 - 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK) - 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除 変更を保存する。 設定ファイルがきちんと機能するか確認。 ```sh sudo nginx -t ``` OKならば、nginxデーモンを再起動。 ```sh sudo systemctl restart nginx ``` ステータスを確認。 ```sh sudo systemctl status nginx ``` activeであればOK。 ## Misskeyのビルド misskeyユーザーにログインし直す。 ```sh sudo su - misskey ``` ビルドをする。yes we can… ```sh cd misskey NODE_ENV=production pnpm run build ``` :::tip 開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。 ::: ### サーバーでビルドできない場合 RAMの不足が考えられる。 Misskeyのビルドやデータベースのマイグレーション(初期化を含む)には、RAMが2GB以上必要になっている。\ RAMが足りない場合、以下のような解決策が考えられる。 - サーバーにスワップを追加する - ローカルでビルドしたもの(builtディレクトリ)をsftpで転送する ## データベースの初期化 ```sh pnpm run init ``` ## Misskeyを起動する ```sh NODE_ENV=production pnpm run start ``` **Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。 Misskeyのウェルカムページが表示されるはずだ。 アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。 ### アクセスできない場合 #### CloudflareのDNSを確認する CloudflareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。 #### ルーターの設定を確認する 自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。 クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。 ## Misskeyのデーモンを作成 :::tip 開発環境の場合、デーモンの作成は不要です。 ::: いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。 ルート権限で行う。 ```sh exit ``` /etc/systemd/system/misskey.serviceを作成する。 ```sh sudo nano /etc/systemd/system/misskey.service ``` 次の内容を貼り付け、保存する。 ```ini [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` systemdを設定し、misskeyデーモンを開始。 ```sh sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey ``` systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。 ```sh sudo systemctl status misskey ``` activeならOK。 **これでMisskeyのインストールはほぼ完了だ。** Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。 ## Misskeyの設定を続ける - [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp) - [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw) - [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk) ## Misskeyのアップデート [Misskeyのアップデート方法](./manual/#misskeyのアップデート方法) 作業中はMisskeyを使うことができません。 ```sh sudo systemctl stop misskey su - misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit ``` ### Case 1: apt upgradeをする場合 ```sh sudo apt update -y sudo apt full-upgrade -y sudo reboot ``` 再起動後はMisskeyは自動で起動します。 ### Case 2: そのまま起動 ```sh sudo systemctl start misskey ``` ================================================ FILE: content/tw/docs/3.for-admin/install/resources/_dir.yml ================================================ title: "Misskey 維護/故障排除" description: "定期維護對 Misskey 伺服器的運作至關重要。以下是一些有用的資訊和處理問題的方法。" ================================================ FILE: content/tw/docs/3.for-admin/install/resources/cdn.md ================================================ # 設定 CDN 在正式對外公佈 Misskey 伺服器之前,強烈建議使用如 [Cloudflare](https://www.cloudflare.com/) 之類的 CDN 服務。 使用 CDN 有以下好處: - 靜態內容可以被快取,減少伺服器負載 - 避免伺服器的 IP 位址直接暴露,可以減輕 DoS 攻擊 ## 快取 Misskey Web 是完全靜態的,不需要伺服器來運作。因此整個 Misskey Web 可以快取在 CDN 上。 但 Misskey API 無法被快取。 請在CDN上進行以下設定。 - 除 `/api/*` 以外的網址全部進行快取 :::tip 更新 Misskey 時無需清除快取。 ::: ================================================ FILE: content/tw/docs/3.for-admin/install/resources/forking.md ================================================ # Misskeyをフォーク・カスタマイズする際の注意点 Misskeyが採用するGNU Affero General Public License v3.0(AGPL-3.0)は、Misskeyのソースコードを変更した場合、その変更点を公開することを義務付けています。 Misskey v2024.2.0以降では、このライセンスへの適合をかんたんにできるようにする機能を実装しています。ここではその設定方法をご紹介します。 :::warning もちろん、それ以前のバージョンをベースにする場合でも、ライセンスに適合するための措置を講じる必要があります。 ::: ## Misskeyをそのまま使う場合 Misskeyのコードベースに一切変更を加えることなく、内蔵の機能だけを使用する場合は、特に何もする必要はありません。 ## Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合 Misskeyのコードに何らかの変更を加え、その変更したバージョンをGitHubなどで公開する場合は、以下の点を確認してください。 - リポジトリを公開しておくこと(アクセス制限などを行わず、誰でもアクセスできるようにすること) では、早速設定を行いましょう。 1. 変更したバージョンのMisskeyをビルドし、本番環境で稼働させます。 2. Adminアカウントでログインした状態で [管理画面](x-mi-web://admin/settings) を開きます。 3. 「リポジトリURL」の欄に、あなたのMisskeyのリポジトリへのURLを入力します。 ## Misskeyのコードに何らかの変更を加えるが、その変更したバージョンをGitHubなどで公開しない(できない)場合 この場合でも、ソースコードをMisskeyのインターフェイス上から直接アクセスできるようにする必要があります。Misskey v2024.2.0以降では、ビルド時に自動的にソースコードを書庫ファイルにまとめる機能が実装されています。 :::tip なお、**ソースコードを要求されたときにだけ開示するという処置はライセンスの履行には不十分だとされています。** Misskey内蔵のソースコード提供機能を使用しない場合でも、何らかの方法で、動作中のバージョンのMisskeyのソースコードへのリンクをMisskey Webのインターフェイス上から直接アクセスできるようにしてください。 ::: では、早速設定を行いましょう。 1. Misskeyのコンフィグファイル(デフォルトは `.config/default.yml` )を開きます。 2. `publishTarballInsteadOfProvideRepositoryUrl` を `true` に設定します(コンフィグファイル内の指定のコメントアウト部分を外すだけでもOKです)。 3. Misskeyをビルドします(この際ソースコードのtarballが生成されます)。 4. 生成された書庫ファイルを開き、**トークンなどの機密情報が配布用のソースコードに含まれていないかを確認してください。** 5. 機密情報が含まれていた場合は、`scripts/tarball.mjs` を編集して、それらの情報を除外するようにしてください。 :::warning ソースコードの書庫ファイル生成はビルド時に行われます。`scripts/tarball.mjs` に変更を加えた際には必ず再度ビルドを行ってください。 ::: ================================================ FILE: content/tw/docs/3.for-admin/install/resources/nginx.md ================================================ # 設定 Nginx [nginx](https://nginx.org/)をリバースプロキシとして活用し、Misskeyサーバーを直接インターネットに公開せず運用することをお勧めします。 これにより、以下のようなメリットが得られます。 - セキュリティ強化:リバースプロキシを通じてアクセスを制御することで、Misskeyサーバーに直接攻撃が及ぶリスクを軽減します。 - 柔軟な設定:nginxは柔軟な設定オプションを提供しており、リバースプロキシとしての機能だけでなく、キャッシュ[^1]やセキュリティポリシーの設定も行えます。 これらの利点を活かして、Misskeyサーバーをより安全かつ効率的に運用することが可能です。 また、CloudflareなどのCDNと併せて設定することで、さらなる効果を見込めます。 [^1]: nginxの機能である[proxy_cache_lock](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock)と[proxy_cache_use_stale](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale)を活用することで、キャッシュ未作成の状態で大量アクセスがあってもMisskeyサーバーの負荷増大を抑える効果が期待できます。 ## 設定方法の一例 以下はサーバーマシン(VPSなど)に直接nginxをインストールし、認証局として[Let's Encrypt](https://letsencrypt.org/)を採用したケースでの設定例です。 1. 建立 `/etc/nginx/conf.d/misskey.conf` 或 `/etc/nginx/sites-available/misskey.conf` 並複製下面的設定範例。(檔名不必是misskey。) 2. 編輯內容如下 1. 將 example.tld 替換為您自己的網域。\ 將 `ssl_certificate` 和 `ssl_certificate_key` 設定為透過 Let's Encrypt 取得的憑證的路徑。 2. 如果您使用 Cloudflare 等 CDN,請刪除「If it's behind another reverse proxy or CDN, remove the following.」中的 4 行。 3. 如果建立了 `/etc/nginx/sites-available/misskey.conf`,請建立軟連結作為 `/etc/nginx/sites-enabled/misskey.conf`。\ `sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf` 4. 使用 `sudo nginx -t` 檢查設定檔是否載入成功。 5. 使用 `sudo systemctl restart nginx` 重啟 nginx。 ## 設置範例 ```nginx # For WebSocket map $http_upgrade $connection_upgrade { default upgrade; '' close; } proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off; server { listen 80; listen [::]:80; server_name example.tld; # For SSL domain validation root /var/www/html; location /.well-known/acme-challenge/ { allow all; } location /.well-known/pki-validation/ { allow all; } location / { return 301 https://$server_name$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name example.tld; ssl_session_timeout 1d; ssl_session_cache shared:ssl_session_cache:10m; ssl_session_tickets off; # To use Let's Encrypt certificate ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem; # To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate) #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; # SSL protocol settings ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; # Change to your upload limit client_max_body_size 80m; # Proxy to Node location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_http_version 1.1; proxy_redirect off; # If it's behind another reverse proxy or CDN, remove the following. proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; # For WebSocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # Cache settings proxy_cache cache1; proxy_cache_lock on; proxy_cache_use_stale updating; proxy_force_ranges on; add_header X-Cache $upstream_cache_status; } } ``` ================================================ FILE: content/tw/docs/3.for-admin/install/resources/push-docker-hub.md ================================================ # 如何使用 GitHub Actions 推送到 Docker Hub [/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) 描述了使用 GitHub Action 推送到 Docker Hub 的工作流程。 オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 \ \ ※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。 Fork先でこのワークフローを実行すると失敗します。 以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。 ## 自分のDocker Hubリポジトリにpushするように設定する方法 1. Docker Hubでリポジトリを作成します。 2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。 3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。 \ \ 作成が必要なのは `DOCKER_USERNAME` と `DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。 ## pushする方法 上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。 \ \ 具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。 また、GitHub上から手動でpushすることも出来ます。 \ \ それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。 \ \ ただし、この場合作成されるタグは`<ブランチ名>`になります。 ================================================ FILE: content/tw/docs/3.for-admin/install/resources/scale-out.md ================================================ # 橫向擴展 Misskey 伺服器 隨著伺服器使用者數量的增加,有必要加強伺服器機器的規格或增加伺服器的數量來處理負載。本文介紹了有關擴展 Misskey 伺服器的技巧。 ## PostgreSQL 的複寫機制 有關複寫的詳細資訊,請參閱PostgreSQL的文件。 Misskey 支持 PostgreSQL的複寫機制,在 config 文件中進行以下配置。(摘錄一部分) ```yml # 如果使用複寫則設為 true dbReplications: true # 此處設定唯讀副本清單(您可以設定任意數量) dbSlaves: - host: foo port: 5432 db: misskey user: xxxxx pass: xxxxx - host: bar port: 5432 db: misskey user: xxxxx pass: xxxxx ``` 透過此設置,當 Misskey 向資料庫發出讀取查詢時,它將從 `dbSlaves` 列表中隨機選擇一個唯讀副本並發送查詢,從而分散資料庫負載。 ## 根據角色的不同進行 Redis 的分割 Misskey 將 Redis 用於多種目的,包括: - 工作佇列管理 - 速率限制管理 - 快取 - 儲存通知等訊息 - 全域事件的Pub/Sub 在 Misskey 中,您可以為不同的用途配置不同的 Redis 伺服器,從而將負擔分散到多台伺服器上。(摘錄一部分) ```yml redisForPubsub: host: foo port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 redisForJobQueue: host: bar port: 6379 #family: 0 # 0=Both, 4=IPv4, 6=IPv6 #pass: example-pass #prefix: example-prefix #db: 1 ``` 除了主 Redis 之外,如上所述還可以為「全域事件 Pub/Sub」和「工作佇列管理」設定 Redis。 ## 禁用遠端圖表 如果不需要個別遠端使用者的活動圖表或個別遠端伺服器的圖表,禁用這些生成功能將提高性能。 您可以從控制臺中關閉「生成遠端使用者圖表」和「生成遠端伺服器圖表」來禁用它們。 ================================================ FILE: content/tw/docs/3.for-admin/install/resources/troubleshooting.md ================================================ # 手動安裝過程中的故障排除 2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\ この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。 **まず最初に、[構築の手引き](../guides/manual/)を熟読してください。** また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。 # Ubuntu向けシェルスクリプトのお知らせ Ubuntu向け解説はコピペばかりでつまらない!時間がかかる!とにかく面倒! ……あれ、コピペだけでできるなら、つまり完全自動化できるのでは? というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\ [**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme) ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。 シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。 # インストールとビルド [構築の手引き](../guides/manual/)をよく読みましょう。 ## ImageMagick関連 _**ImageMagickは不要です!**_ ## ビルドが失敗する Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\ サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。 ## なんだかうまくいかない - [構築の手引き](../guides/manual/)をよく読みましょう。 - node.jsのバージョンが古いかも? - 新しめのバージョンにしましょう。 - インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。 - node-gypがインストールされていないかも? - `apt install build-essential`を試す。 - Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 ## バージョンアップ後に不具合が発生した - [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。 - Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。 - これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。 --- # 設定 [構築の手引き](../guides/manual/)をよく読みましょう。 `.config/default.yml`で設定を行います。 [`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。 (YAML形式では、`#`から行末まではコメントとして扱われます。) ## URLとポート番号 URLとポート番号のしくみは、少し分かりにくいと思います。 `.config/example.yml`に「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。 本文の解説を日本語訳しながらやっていきます。 ### URLの設定 ```yml # Final accessible URL seen by a user. # 最終的にユーザーがアクセスするURL url: https://example.tld/ ``` **`url`には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。** ### ポートの設定 ```yml # ┌───────────────────────┐ #───┘ Port and TLS settings └─────────────────────────────────── #### ポートとTLSの設定 #################################### # Misskey requires a reverse proxy to support HTTPS connections. # MisskeyでHTTPS接続をサポートするにはリバースプロキシが必須です。 # # +----- https://example.tld/ ------------+ # +------+ |+-------------+ +----------------+| # | User | ---> || Proxy (443) | ---> | Misskey (3000) || # +------+ |+-------------+ +----------------+| # +---------------------------------------+ # # You need to set up a reverse proxy. (e.g. nginx) # この方法では、リバースプロキシ(例: nginx)をセットアップする必要があります。 # An encrypted connection with HTTPS is highly recommended # because tokens may be transferred in GET requests. # GETリクエストでトークンがURLに含まれる可能性があるため、 # HTTPSによる暗号化を強く推奨します。 ``` ```yml # The port that your Misskey server should listen on. # Misskeyサーバがリッスンするポート port: 3000 ``` この例では、Misskeyはポート3000で通信します。 リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。 ---- # `npm start`やアクセス時によく遭遇するエラー `npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。 まず、[構築の手引き](../guides/manual/)をよく読みましょう。 ## YAMLのエラーが出る `default.yml`の構文にミスがある可能性があります。 行頭に余分なスペースはありませんか? ## redisに接続できない redis-serverは起動していますか? 何らかの接続数の上限に達していませんか? 11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。 - redisにパスワードを設定しない。 - `default.yml`の`redis:`の`pass:`の行をコメントアウトする。 ## 上部に「開発ビルドです」と書かれた赤いバーが表示される サーバーを公開する場合は必ずproductionビルドを使いましょう。 製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。 ## 新規登録できない APIに接続できないようです。 `default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。 Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。 また、正しく`default.yml`が書かれていますか? ## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。 PostgreSQLはなるべくv13にしてください。 redisの接続も確認した方がよいでしょう。 [→ redisに接続できない? を参照](#redisに接続できない?) ## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。 ## オブジェクトストレージ使用時、不具合が出る オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。 また、`default.yml`をもう一度確認してみてください。 ### S3 example (with CDN, custom domain) S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。 endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。 ### S3互換サービスでの設定 Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。 Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。 各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。 ### ローディングが終わらない Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。 --- # まったく解決しなかった場合 以下の順序を試してみてください。 1. Misskeyのドキュメントをよく読む。 2. Googleで検索してみる。 3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる(同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります)。 4. 検索してどうしても見つからなかったら、専門家に質問してみてください。 1. [MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)などで聞いてみる 2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライや指名投稿を送信して聞いてみる ================================================ FILE: content/tw/docs/3.for-admin/moderation-tips/_dir.yml ================================================ title: "有關審查的有用資訊" description: "總結了實際運行伺服器的有用資訊。" ================================================ FILE: content/tw/docs/3.for-admin/moderation-tips/disable-timelines.md ================================================ # 停用 LTL/STL/GTL Misskey 允許分別停用 LTL/STL/GTL。若要啟用/停用,請在伺服器控制臺的角色功能進行設定。 LTL 和 STL 的優點在於,新用戶無需搜尋用戶,因為他們可以看到該伺服器上所有人的貼文,從而更容易找到感興趣的用戶。 但同時,它也有一些缺點,例如追隨功能利用率不高,不適當的貼文變得更加顯眼,像聊天般的性質會形成一個內部圈子,這反過來又會使新用戶更難加入。 由於優點/缺點可能因伺服器而異,因此可以作為選項停用它。 如果您認為弊大於利,請考慮停用這些時間軸。 :::warning 停用可能會使用戶感到困惑,並在短期內減少用戶數量。因此,建議仔細考慮禁用的影響,並留出一定的時間提前解釋和安排後續工作。 ::: 請注意,這些時間軸的停用狀態不適用於管理員/審查員,他們可以繼續使用這些時間軸。 ================================================ FILE: content/tw/docs/4.for-developers/_dir.yml ================================================ title: "針對開發者" description: "為插件/Play 開發人員和使用 API 的外部應用程式開發人員提供的資源。" ================================================ FILE: content/tw/docs/4.for-developers/aiscript.md ================================================ # AiScript AiScript 是一種可用於 Misskey 以下部分的腳本語言。 - [外掛](./plugin/create-plugin/) - [小工具](/docs/for-users/features/widgets/) - 按鈕 - AiScript控制台 - AiScript App - [Misskey Play](./plugin/create-play/) - Scratchpad :::tip AiScript 的實現與 Misskey 是分開的儲存庫,並已[以開源方式公開](https://github.com/aiscript-dev/aiscript)。 ::: ## 使用方法 可使用 AiScript 標準語法和內建函數。 :::tip 說明文件在[這裡](https://aiscript-dev.github.io/)。視 Misskey 本身的版本而定,可用的 AiScript版本可能有所不同。可使用 AiScript 標準語法和內建函數。若要檢查版本,請使用 Scratchpad 或類似的軟體執行 `<: Core:v`。 ::: 除此之外,還提供三組 Misskey 特有的內建常數和函式。 ### Misskey AiScript API 字首: `Mk:`\ 一套常數函數,可在 Misskey 內的所有 AiScript 環境中使用。如需更多資訊,請參閱[AiScript Misskey 擴展 Api 參考文件](./plugin/plugin-api-reference/)中標記為 `Mk:`的部分。 ### 外掛 Api 字首: `Plugin:`\ [外掛](./plugin/)中限定使用的內建函數群。 如需詳細資訊,請參閱 [外掛 Api 參考文件](./plugin/plugin-api-reference/) 與 `Plugin:`。 ### 使用者界面 API 接頭辞: `Ui:`\ [ウィジェット](/docs/for-users/features/widgets/)(AiScript App)、Misskey Play、Scratchpadで使用できます。 ドキュメントは未整備(TODO)ですが、インターネット上に有志の方が執筆された解説記事があります。 ### 標準輸入輸出 AiScript 標準中定義的 `readline` 和 `print` 函式 (以及 `<:` 語法) 的內部實作,在 Misskey 端獨立提供。 #### readline(message) `message`: `str`\ 回傳值: `str`\ 可在 Misskey 內的所有 AiScript 環境中使用。 \ 彈出提示輸入字串。 #### print(message) `message`: `any`\ 回傳值: `null`\ 可在[小工具](/docs/for-users/features/widgets/)(AiScriptコンソール)、Scratchpad 使用。 \ 輸出字串到瀏覽器網頁開發者工具的主控台。 \ 跟`<:`語法的運作方式類似。 ================================================ FILE: content/tw/docs/4.for-developers/api/1.index.md ================================================ --- description: 'Misskey已經公開了API。使用API,您可以開發Misskey客戶端、整合Misskey的Web服務、機器人等(以下統稱「應用程序」)。' --- # Misskey API Misskey已經公開了API。使用API,您可以開發Misskey客戶端、整合Misskey的Web服務、機器人等(以下統稱「應用程序」)。 由於還有資料流API,因此您還可以創建具有即時性的應用程序。 :::tip 透過使用Misskey官方的SDK或第三方函式庫,您可以更方便地使用API​​,包括簡化本文檔中所述的一些步驟。\\ ::: ================================================ FILE: content/tw/docs/4.for-developers/api/endpoints.md ================================================ # 端點清單 :::tip 端點清單目前正在準備中。在它可用之前,您可以存取每個 Misskey 伺服器上的 [`/api-doc` 頁面](x-mi-web://api-doc) 或瀏覽 [Misskey 原始碼](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)。 您也可以使用 [舊版 Misskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html),雖然資訊有點過時。 ::: ================================================ FILE: content/tw/docs/4.for-developers/api/libraries.md ================================================ --- description: '與 Misskey API 相關的函式庫列表' --- # 函式庫一覽 ## JavaScript - [misskey.js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js) ## Java - [misskey4j](https://github.com/uakihir0/misskey4j) ## Kotlin - [kmisskey](https://github.com/uakihir0/kmisskey) ## Python - [Misskey.py](https://github.com/YuzuRyo61/Misskey.py) - [MiPA](https://github.com/yupix/MiPA) - [MiPAC](https://github.com/yupix/MiPAC) ## .Net - [Misq](https://github.com/syuilo/Misq) ## Dart / Flutter - [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart) ## Go - [go-misskey](https://github.com/yitsushi/go-misskey) ## Rust - [misskey-rs](https://github.com/coord-e/misskey-rs) ================================================ FILE: content/tw/docs/4.for-developers/api/permission.md ================================================ --- description: '應用程式所需的權限一覽' --- # 權限列表 :::tip 這個頁面是從[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)自動產生的,所以文件和翻譯可能不完整。 ::: ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/1.index.md ================================================ --- description: 'ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。' --- # ストリーミングAPI :::tip 最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。 ::: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 ## ストリームに接続する ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。 以下の形式のURLにwebsocket接続します: ``` wss://{host}/streaming?i={token} ``` ここで、 - `{host}`の部分は、接続したいサーバーのホストに置き換えます。 - `{token}`の部分は、ユーザーのアクセストークンに置き換えます。 :::tip アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。 ::: ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。 **ストリーム上のやり取りはすべてJSONで行われます。** ## チャンネル MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 :::tip ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。 ::: 以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。 ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'connect', body: { channel: 'xxxxxxxx', id: 'foobar', params: { ... } } } ``` ここで、 - `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。 - `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 - `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 :::tip IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 ::: ### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 - `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 - `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 ### チャンネルに向けてメッセージを送信する チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'channel', body: { id: 'foobar', type: 'something', body: { some: 'thing' } } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 - `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 - `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 ### チャンネルから切断する チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: ```js { type: 'disconnect', body: { id: 'foobar' } } ``` ここで、 - `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 ## 投稿のキャプチャ Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。 ### 投稿をキャプチャする 投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: ```js { type: 'subNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャしたい投稿の`id`を設定します。 このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: ```js { type: 'noteUpdated', body: { id: 'xxxxxxxxxxxxxxxx', type: 'reacted', body: { reaction: 'like', userId: 'yyyyyyyyyyyyyyyy' } } } ``` ここで、 - `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 - `body`内の`type`に、イベントの種類が設定されます。 - `body`内の`body`に、イベントの詳細が設定されます。 ### 投稿のキャプチャを解除する その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 次のメッセージを送信します: ```js { type: 'unsubNote', body: { id: 'xxxxxxxxxxxxxxxx' } } ``` ここで、 - `id`にキャプチャを解除したい投稿の`id`を設定します。 このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/channel/1.index.md ================================================ # 頻道一覽 ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/channel/global-timeline.md ================================================ --- description: "グローバルタイムラインのノートが流れるチャンネルです。" --- # `globalTimeline` 漂流 global timeline 的貼文的頻道。 ## 參數 無 ## 事件 ### `note` グローバルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 無 ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/channel/home-timeline.md ================================================ --- description: "ホームタイムラインのノートが流れるチャンネルです。" --- # `homeTimeline` ホームタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ホームタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/channel/hybrid-timeline.md ================================================ --- description: "ソーシャルタイムラインのノートが流れるチャンネルです。" --- # `hybridTimeline` ソーシャルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ソーシャルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/channel/local-timeline.md ================================================ --- description: "ローカルタイムラインのノートが流れるチャンネルです。" --- # `localTimeline` ローカルタイムラインのノートが流れるチャンネルです。 ## パラメータ なし ## イベント ### `note` ローカルタイムラインに新しいノートが追加されたときに発生します。 ## 操作 なし ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/channel/main.md ================================================ --- description: "基本的な情報が流れるチャンネルです。" --- # `main` 基本的な情報が流れるチャンネルです。 ## パラメータ なし ## イベント ### `notification` 通知を受け取ったときに発生します。 ### `mention` メンションされたときに発生します。 ### `reply` 返信されたときに発生します。 ### `renote` Renoteされたときに発生します。 ### `follow` 自分が他のユーザーをフォローしたときに発生します。 ### `followed` 他のユーザーが自分をフォローしたときに発生します。 ### `unfollow` 自分が他のユーザーをフォロー解除したときに発生します。 ### `messagingMessage` メッセージを受け取ったときに発生します。 ### `readAllNotifications` 全ての通知が既読になったときに発生します。 ### `unreadNotification` 新しい通知があるときに発生します。 ### `unreadMention` 新しいメンションがあるときに発生します。 ### `readAllUnreadMentions` 全てのメンションが既読になったときに発生します。 ### `unreadSpecifiedNote` 新しい指名ノートがあるときに発生します。 ### `readAllUnreadSpecifiedNotes` 全ての指名ノートが既読になったときに発生します。 ### `unreadMessagingMessage` 新しいメッセージがあるときに発生します。 ### `readAllMessagingMessages` 全てのメッセージが既読になったときに発生します。 ## 操作 なし ================================================ FILE: content/tw/docs/4.for-developers/api/streaming/note-capture-events.md ================================================ # 投稿キャプチャイベント ## `reacted` 対象のノートにリアクションがされた場合に発生します。 ## `pollVoted` 対象のノートに添付されたアンケートに投票がされた場合に発生します。 ## `deleted` 対象のノートが削除された場合に発生します。 ================================================ FILE: content/tw/docs/4.for-developers/api/token/1.index.md ================================================ # アクセストークンの取得 APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 基本的に、APIはリクエストにはアクセストークンが必要となります。 アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。 :::tip ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。 ::: あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。 - 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む - 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む ## 自分自身のアクセストークンを手動発行する Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。 :::danger アクセストークンは他人に知られないようにしてください。 ::: ## アプリケーション利用者にアクセストークンの発行をリクエストする アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。 :MkIndex ## APIの利用 アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。 :::tip - HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です(drive/files/createを除く)。 - 要求ヘッダーに`Content-Type: application/json`を指定します。 - アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。 - ベースURLは`https://{サーバーのドメイン}/api`です。 ::: ### Authorization headerを使う方式 以下のようにヘッダーの`Authorization`フィールドを指定します。 ```js fetch("https://misskey.example/api/notes/create", { method: 'POST', body: JSON.stringify({ text: "Hello Misskey API World with My Application!" }), headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, credentials: 'omit', }); ``` ### iを使う方式 アクセストークン付きのボディの例(metaの場合): ```json { "i": "HogEFugA1341", "detail": false } ``` APIの詳細は、APIリファレンスを参照してください。 :::warning MisskeyはRESTを採用していません。 ::: また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。 ================================================ FILE: content/tw/docs/4.for-developers/api/token/2.miauth.md ================================================ --- description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。 --- # MiAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。 - [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md) - [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md) ::: ## Step 1 UUIDを生成する。以後これを**セッションID**と呼びます。 :::danger このセッションIDは毎回生成し、使いまわさないようにしてください。 ::: ## Step 2 アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます: ``` https://{host}/miauth/{session} ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 - `{session}`の部分は、セッションIDに置き換えます。 また、URLにクエリパラメータとしていくつかのオプションを設定できます: | 名前 | 説明 | | ------------ | ------------------------------------------------------------------------------ | | `name` | アプリケーション名。 | | `icon` | アプリケーションのアイコン画像URL。 | | `callback` | 認証が終わった後にリダイレクトするURL。
リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 | | `permission` | アプリケーションが要求する権限。
要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 | :::tip{label='例'} ``` https://misskey.example/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive ``` ::: ## Step 3 ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 ``` https://{host}/api/miauth/{session}/check ``` ここで、 - `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。 - `{session}`の部分は、セッションIDに置き換えます。 レスポンスに含まれるプロパティは以下の通りです: | 名前 | 説明 | | ------- | -------------- | | `token` | ユーザーのアクセストークン。 | | `user` | ユーザーの情報。 | ================================================ FILE: content/tw/docs/4.for-developers/api/token/3.oauth.md ================================================ --- description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。 --- # OAuth方式でのアクセストークン取得方式 アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。 :::tip 以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。 OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。 現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。 - [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md) - [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md) ::: ## Step 1 アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。 ```html ``` あとで`redirect_uri`のアドレスに認証コードが転送されます。 ## Step 2 PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。 - `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。 - `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。 - `state`文字列には特別な制限はありません。ランダムな文字列を使います。 :::danger この文字列は毎回生成し、使いまわさないようにしてください。 ::: :::tip [pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。 ::: :::tip{label='例'} ```js import crypto from "node:crypto"; const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~"; const codeVerifier = new Array(128) .fill(0) .map(() => chars[Math.floor(chars.length * Math.random())]) .join(""); console.log('code_verifier', codeVerifier); const codeChallenge = crypto .createHash("sha256") .update(codeVerifier, "ascii") .digest("base64url"); console.log('code_challenge', codeChallenge); const state = crypto.randomUUID(); console.log('state', state); ``` ::: ## Step 3 相手サーバーのOAuth情報を取得します。データはJSON形式になっています。 ``` https://{host}/.well-known/oauth-authorization-server ``` `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。 ここでは`authorization_endpoint`と`token_endpoint`を使います。 :::tip 次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。 ::: ## Step 4 アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます: ``` {authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state} ``` ここで、 - `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。 - `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。 - `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます - `code_challenge_method`の部分は常に`S256`にします。 - `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。 - `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 - `{state}`の部分は、前に生成した`state`文字列に置き換えます。 :::tip{label='例'} ``` https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: ## Step 5 ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。 | 名前 | 説明 | | ------- | ----------------------- | | `code` | ユーザーの認証コード。 | | `state` | 認証リクエストに使われた`state`文字列。 | :::tip{label='例'} ``` https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab ``` ::: `state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。 ## Step 6 転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。 | 名前 | 説明 | | --------------- | ------------------------------ | | `grant_type` | 常に`authorization_code`にします。 | | `client_id` | 認証リクエストに使われた`client_id`文字列。 | | `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 | | `scope` | 認証リクエストに使われた`scope`文字列。 | | `code` | 取得した認証コード。 | | `code_verifier` | 前に生成した`code_verifier`文字列。 | :::tip{label='例'} ```js const res = await fetch(endpoint, { method: "POST", body: JSON.stringify({ grant_type: "authorization_code", client_id: "https://example.com", redirect_uri: "https://example.com/redirect", scope: "write:notes", code: "...", code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA", }), headers: { "Content-Type": "application/json" } }); ``` ::: レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。 ================================================ FILE: content/tw/docs/4.for-developers/api/token/50.app.md ================================================ --- description: MiAuth導入以前(v12.27.0未満)でのアクセストークン取得方法について説明しています。 --- # アプリ作成方式でのアクセストークン取得方法(旧来型) [MiAuth](./miauth.md)導入(12.27.0)や[OAuth](./oauth.md)導入(2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。 12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。 ## 1. アプリケーションの作成 [`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。 ```json { // アプリの名前 "name": "test", // アプリの説明 "description": "my test application", // アプリのパーミッション "permission": ["write:notes"] } ``` この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。 ## 2. ユーザーに認証させる [`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf" } ``` `token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。 ## 3. accessTokenを問い合わせる 2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。 ```json { "appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf", "token": "798b9f6e-248d-43a7-a919-fabc664027f1" } ``` ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。 ## 4. iを生成 `i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。 ```javascript const crypto = require("crypto") const i = crypto.createHash("sha256") .update(accessToken + appSecret, "utf8") .digest("hex") console.log(i) ``` ## 5. 実際にテストする ```javascript fetch("https://misskey.example/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', }); ``` ================================================ FILE: content/tw/docs/4.for-developers/bot/1.index.md ================================================ # 創建機器人(Bot) 利用 [Misskey API](/docs/for-developers/api/) 可以開發機器人。 - [syuilo/ai](https://github.com/syuilo/ai) ... 使用 TypeScript 實作的機器人,在 Node.js 上運行 當您創建機器人時,我們強烈建議您在個人資料設定中開啟機器人標誌。 ## 關連資訊 - [Misskey API](/docs/for-developers/api/) ================================================ FILE: content/tw/docs/4.for-developers/plugin/_dir.yml ================================================ title: "創建插件/Play" description: "如何建立插件和 Play 以及各種參考資料。" ================================================ FILE: content/tw/docs/4.for-developers/plugin/create-play.md ================================================ # 建立 Play Play 是一項透過 AiScript 來組裝獨特使用者介面的功能,使用者可以自行製作迷你應用程式或遊戲。所完成的 Play 能夠在 Misskey 伺服器上公開,任何人都可以遊玩你所製作的 Play。 ## AiScript Play 主要透過以 AiScript 構成。 ## API Misskey Web 會對外提供插件(外掛)可使用的 API,透過這些 API,便能擴充客戶端的各項功能。若想了解可使用的 API,請參考 [AiScript Misskey 擴充 API](./plugin-api-reference/) 參考文件。 ================================================ FILE: content/tw/docs/4.for-developers/plugin/create-plugin.md ================================================ # プラグインの作成 Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。 ## プラグインの例 以下に完全なプラグインの例を示します。このプラグインは、[`Plugin:register_post_form_action`](/docs/for-developers/plugin/plugin-api-reference/#pluginregister_post_form_actiontitle-fn)を使用して、投稿フォームに「フグパンチボタン」を追加するものです。 このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに `フグパンチ!!!!🐡( '-' 🐡 )` が追加されます。 ```ais /// @ 0.12.4 ### { name: "フグパンチボタン" version: "0.0.1" author: "Misskey Project" } Plugin:register_post_form_action('フグパンチ', @(note, rewrite) { let fugu = "フグパンチ!!!!🐡( '-' 🐡 )" if (note.text.trim() == '') { // ノートの中身がない場合はフグパンチに置き換え rewrite('text', fugu) } else { // ノートの中身がある場合は冒頭にフグパンチを追加して改行 rewrite('text', `{fugu}{Str:lf}{note.text}`) } }) ``` ## AiScript プラグインはAiScriptを使って記述されるスクリプトです。 ## メタデータ プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。 ```AiScript /// @ 0.12.4 ### { name: "プラグイン名" version: "4.2.1" author: "作者名" description: "説明文" } ``` メタデータは次のプロパティを含むオブジェクトです。 ### name プラグイン名 ### author プラグイン作者 ### version プラグインバージョン。数値を指定してください。 ### description プラグインの説明 ### permissions プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 APIのリクエスト方法については、[AiScript Misskey拡張API リファレンス](/docs/for-developers/plugin/plugin-api-reference/)をご覧ください。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ### config プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 #### type 設定値の種類を表す文字列。以下から選択します。 string number boolean #### label ユーザーに表示する設定名 #### description 設定の説明 #### default 設定のデフォルト値 ## API Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかは[AiScript Misskey拡張API リファレンス](./plugin-api-reference/)を参照してください。 ## プラグインを配布する v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。 プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。 ================================================ FILE: content/tw/docs/4.for-developers/plugin/plugin-api-reference.md ================================================ # AiScript Misskey拡張API リファレンス ここでは、Misskeyで独自に拡張されたAiScript APIについて紹介しています。 :::tip 標準装備のAiScript APIは[こちら](https://aiscript-dev.github.io/guides/get-started.html)からご覧いただけます。 ::: ## 全分野共通定数 ### `USER_ID` 現在のユーザーのID ### `USER_NAME` 現在のユーザーの名前 ### `USER_USERNAME` 現在のユーザーのハンドル(`@`より後ろの部分。例: `@ai@example.com` → `ai`) ### `CUSTOM_EMOJIS` カスタム絵文字の一覧。以下のようなオブジェクトが配列で格納されています ```ts type EmojiSimple = { aliases: string[]; name: string; category: string | null; url: string; localOnly?: boolean; isSensitive?: boolean; roleIdsThatCanBeUsedThisEmojiAsReaction?: string[]; } ``` ### `LOCALE` 現在のMisskey Webの設定言語。RFC4646互換の形式(`ja-JP`など)で表されます ### `SERVER_URL` 現在のサーバーのURL。`https://www.example.com` のようにオリジンで表されます ## 全分野共通関数 ### `Mk:dialog(title, text, type)` ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `info` になります。 ### `Mk:toast(text)` トーストを表示します。ダイアログと違い、ユーザーがダイアログを閉じる操作が必要ないため、何らかの操作が完了したなどの単純なお知らせに使用できます。 ### `Mk:confirm(title, text, type)` 確認ダイアログを表示します。typeには以下の値が設定できます。\ `info` `success` `warning` `error` `question`\ 省略すると `question` になります。\ ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。 ```AiScript let response = Mk:confirm( '操作を続行しますか?' 'この操作は取り消せません。よく確認してください。' 'warning' ) if (response) { // OKした場合 } else { // キャンセルした場合 } ``` ### `Mk:api(endpoint, params, token?)` Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 第三引数にtokenを入れることもできます。プラグインで動作するとき、メタデータブロックにて`permissions`が指定されている場合、第三引数を指定しないことでそのpermissionが付与されたtokenが使用されます。 :::tip permissionの一覧は[こちら](/docs/for-developers/api/permission/)をご覧ください。 ::: ```AiScript ### { name: "プラグイン名", version: "4.2.1", author: "作者名", description: "説明文", permissions: ['write:notes'], } @onClick() { let res = Mk:api('notes/create', { text: 'Hello from plugin!' }) } ``` ### `Mk:save(key, value)` 任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 ### `Mk:load(key)` Mk:saveで永続化した指定の名前の値を読み取ります。 ### `Mk:remove(key)` ※v2025.1.0(仮称)以降で使用可能 Mk:saveで永続化した指定の名前の値を削除します。指定の名前の値が存在しない場合は何もしません。 ### `Mk:url()` 現在開いているページのURL(現在ブラウザのアドレスバーに表示されているURL)を取得します。 ### `Mk:nyaize(text)` 指定されたテキストをNyaizeします。MFMの構文などは考慮されません。 ## プラグイン専用 ### `Plugin:register_post_form_action(title, fn)` 投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に投稿フォームオブジェクトのうち`text`と`cw`が、第二引数にそれらを書き換えるための関数が渡されます。 ```AiScript Plugin:register_post_form_action('メニューに表示される項目名', @(note, rewrite) { // ノートに何らかの変更を加える rewrite('text', `{note.text}{Str:lf}#ハッシュタグ`) }) ``` ### `Plugin:register_note_action(title, fn)` ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 ```AiScript Plugin:register_note_action('メニューに表示される項目名', @(note) { // ノートを使って何かする Mk:api('notes/create', { text: '引用' renoteId: note.id }) }) ``` ### `Plugin:register_user_action(title, fn)` ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\ コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 ```AiScript Plugin:register_user_action('メニューに表示される項目名', @(user) { // ユーザー情報を使って何かする Mk:api('notes/create', { text: `{user.name}さん、ようこそ!` }) }) ``` ### `Plugin:register_note_view_interruptor(fn)` UIに表示されるノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。\ `null` を返すとそのノートを非表示にします。 :::warning v2025.8.0以降では、この関数は**同期的に実行**されます。 内部的に非同期な処理が実行される関数(`Mk:api`など)は実行できず、エラーとなります。 また、同期的に実行されるということは、プラグインの実行中はほかのJavaScriptの処理がすべて停止するということを意味します。これにより、ほかのプラグインフックと比べ、問題のあるスクリプト(無限ループなど)が実行された場合、ホストのJavascript環境に重大な影響を及ぼす可能性があります。十分注意してください。 ::: ```AiScript Plugin:register_note_view_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') // nullを返すと非表示 if (note.text.incl('納豆')) { return null } return note }) ``` ### `Plugin:register_note_post_interruptor(fn)` ノート投稿時にノート情報を書き換えます。\ コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\ コールバック関数の返り値でノートが書き換えられます。 ```AiScript Plugin:register_note_post_interruptor(@(note) { // ノートの中身を書き換える note.text = note.text.replace('リンゴ', 'バナナ') return note }) ``` ### `Plugin:register_page_view_interruptor(fn)` Page閲覧時にPage情報を書き換えます。\ コールバック関数には、第一引数に対象のPageオブジェクトが渡されます。\ コールバック関数の返り値でPageが書き換えられます。 ```AiScript Plugin:register_page_view_interruptor(@(page) { // ページの中身を書き換える(省略) return page }) ``` ### `Plugin:open_url(url)` 第一引数に渡されたURLをブラウザの新しいタブで開きます。 ### `Plugin:config` プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 ## Play専用 定数 ### `THIS_ID` PlayのID ### `THIS_URL` PlayのURL ## UI制御関数(Play・AiScript Appウィジェットで使用可能) ### `Ui:root` UIのルート要素。 ### `Ui:render([ ...components ])` `Ui:root.update({ children: [ ...components ] })` の糖衣構文。UIのルート要素を書き換えます。 ```AiScript Ui:render([ Ui:C:text({text: "A"}) Ui:C:button({text: "B", onClick: @(){}}) ]) ``` ### `Ui:get(id)` IDを付与したコンポーネントを取得し、操作を行えます。 ```AiScript Ui:C:text({text: "A"}, "text1") Ui:get("text1").update({text: "B"}) ``` ## コンポーネント関数(Play・AiScript Appウィジェットで使用可能) 以下の要素では、初期化の際に `Ui:C:xxx(props id)` のように第2引数にコンポーネントのidを指定することができます(以下のリファレンスではすべて省略しています)。指定したidは `Ui:get(id)` 関数で取得でき、`update` 関数でコンポーネントの中身を直接変更することができます(詳しくは `Ui:get(id)` のリファレンスをご覧ください)。 ### レイアウト #### `Ui:C:container` 幅寄せ、色などの書式設定ができる外枠(コンテナ) ```AiScript Ui:C:container({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] align: 'center' // 幅寄せ left,center,right bgColor: '#000' // 背景色 fgColor: '#00f' // 文字色 font: 'serif' // フォント serif,sans-serif,monospace borderWidth: 1 // 枠幅 borderColor: '#f00' // 枠の色 borderStyle: 'solid' // 枠の柄 padding: 1 // 余白幅 rounded: false // 角を丸く borderRadius: 1 // 角を丸く(丸みの度合いを数値指定) hidden: false // 隠す }) ``` #### `Ui:C:folder` アコーディオン要素(ユーザーが開けたり閉めたりできるコンテナ) ```AiScript Ui:C:folder({ children: [ // コンテナの中に入れたいコンポーネントの配列 Ui:C:text({text: "A"}) ] title: "タイトル" // フォルダの開閉部分に記載するタイトル opened: true // はじめから開いているか }) ``` ### テキスト #### `Ui:C:text` プレーンテキスト ```AiScript Ui:C:text({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace }) ``` #### `Ui:C:mfm` MFMテキスト ```AiScript Ui:C:mfm({ text: "内容" // 表示するテキスト size: 1 // 文字サイズ bold: false // ボールド color: '#000' // 色 font: 'monospace' // フォント serif,sans-serif,monospace onClickEv: @(id) { // $[clickable.ev=eventId TEXT] のMFM構文のハンドラ <: `{id} clicked` } }) ``` ### フォーム #### `Ui:C:button` ボタン ```AiScript Ui:C:button({ text: "ボタン" // ボタンに表示するテキスト onClick: @() { // 押したときのイベント } primary: false // 色を付けるか? rounded: false // 角を丸くするか? disabled: false // 無効化するか? }) ``` #### `Ui:C:buttons` ボタン(横並び) ```AiScript Ui:C:buttons({ buttons: [ // ボタン定義の配列。propsの指定形式は Ui:C:button と同じ {text: "a", onClick: @(){...}} {text: "b", onClick: @(){...}} ] }) ``` #### `Ui:C:switch` ```AiScript Ui:C:switch({ onChange: @(enabled) { // 変更された時のイベント。第1引数に変更後の状態(boolean) } default: false // デフォルト値 label: "ラベル" // スイッチ横のテキスト caption: "キャプション" // スイッチ下に表示する補助テキスト }) ``` #### `Ui:C:textInput` 1行のテキスト入力 ```AiScript Ui:C:textInput({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:numberInput` 1行のテキスト入力 ```AiScript Ui:C:numberInput({ onInput: @(number) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:textarea` 複数行のテキスト入力 ```AiScript Ui:C:textarea({ onInput: @(text) { // 入力された時のイベント。第1引数に変更後の値 } default: "デフォルト" // デフォルト値 label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` #### `Ui:C:select` 複数の値から一つ選ぶ形式 ```AiScript Ui:C:select({ items: [ // 選択肢の配列。textには表示するテキストを、valueには変更時のイベントで渡す値を入力 {text: "A", value: "v1"} {text: "B", value: "v2"} ] onChange: @(value){ // 変更された時のイベント。第1引数に変更後のvalue } default: "v1" // デフォルトのvalue label: "ラベル" // 入力欄上のテキスト caption: "キャプション" // 入力欄下に表示する補助テキスト }) ``` ### ノート投稿関連 #### `Ui:C:postForm` 投稿フォームをPlayに直接埋め込む ```AiScript Ui:C:postForm({ form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` #### `Ui:C:postFormButton` 投稿フォームを呼び出せる特殊ボタン ```AiScript Ui:C:postFormButton({ text: "投稿!" // ボタンに表示するテキスト primary: false // 色を付けるか? rounded: false // 角を丸くするか? form: { cw: "CW注釈" // CWを指定する場合の「要約」テキスト text: "投稿内容" // 投稿フォームのデフォルト文字列 // 以下はMisskey v2024.5.0以降で指定可能となります visibility: "home" // デフォルトの投稿の公開範囲(未指定の場合はpublic) localOnly: false // デフォルトで連合無しかどうか(未指定の場合はfalse) } }) ``` ================================================ FILE: content/tw/docs/4.for-developers/publish-on-your-website.md ================================================ # 發行外掛與主題 從 Misskey v2023.11.0 開始,可以直接從您的網站安裝各種外掛與主題。這對製作大量外掛程式和主題的使用者或想建立外掛程式發佈網站的使用者特別有用。 ## 外部からのインストールに対応しているリソース - [プラグイン](./plugin/create-plugin/) ... `plugin` - [テーマ](../for-users/features/theme/) ... `theme` ## しくみ インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。 ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。 ## 実装方法 ### 配布ページ側 「インストール」ボタンに、以下のようなURLを持つリンクを作成する ``` https://{HOST}/install-extensions?url={API_URL}&hash={HASH} ``` - `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。 - `{API_URL}`: リソース配布用API(後述)のURLに置き換えます。相対パスは不可 - `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。** ### リソース配布用API側 上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。 ```json { "type": "theme", "data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@someone@misskey.example',\n}" } ``` - `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。 - `data`: リソースのソースコードを**文字列で**入力 - この際、改行コードは**LF**としてください ================================================ FILE: content/tw/docs/5.releases.md ================================================ --- maxTocDepth: 2 --- # 版本資訊 Misskey 的版本資訊被發布在此。 ## 2025.11.1 リリース日: 2025/11/28 ### Client - Enhance: リアクションの受け入れ設定にキャプションを追加 #15921 - Fix: ページの内容がはみ出ることがある問題を修正 - Fix: ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 - Fix: ヘッダーメニューのチャンネルの新規作成の項目でチャンネル作成ページに飛べない問題を修正 #16816 - Fix: ラジオボタンに空白の選択肢が表示される問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1105) - Fix: 一部のシチュエーションで投稿フォームのツアーが正しく表示されない問題を修正 - Fix: 投稿フォームのリセットボタンで注釈がリセットされない問題を修正 - Fix: PlayのAiScriptバージョン判定(v0.x系・v1.x系の判定)が正しく動作しない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1129) - Fix: フォロー申請をキャンセルする際の確認ダイアログの文言が不正確な問題を修正 - Fix: 初回読み込み時にエラーになることがある問題を修正 - Fix: お気に入りクリップの一覧表示が正しく動作しない問題を修正 - Fix: AiScript Misskey 拡張APIにおいて、各種関数の引数で明示的に `null` が指定されている場合のハンドリングを修正 ### Server - Enhance: メモリ使用量を削減しました - Enhance: 依賴關係更新 - Fix: ワードミュートの文字数計算を修正 - Fix: チャンネルのリアルタイム更新時に、ロックダウン設定にて非ログイン時にノートを表示しない設定にしている場合でもノートが表示されてしまう問題を修正 - Fix: DeepL APIのAPIキー指定方式変更に対応 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1096) - 内部実装の変更にて対応可能な更新です。Misskey側の設定方法に変更はありません。 - Fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/1123) ## 2025.11.0 リリース日: 2025/11/16 ### General - Feat: チャンネルミュート機能の実装 #10649 - チャンネルの概要画面の右上からミュートできます(リンクコピー、共有、設定と同列) - Enhance: Node.js 24.10.0をサポートするようになりました - Enhance: DockerのNode.jsが24.10.0に更新されました - 依存関係の更新 ### Client - Feat: 画像にメタデータを含むフレームをつけられる機能 - Enhance: プリセットを作成しなくても画像にウォーターマークを付与できるように - Enhance: 管理しているチャンネルの見分けがつきやすくなるように - Enhance: プロフィールへのリンクをユーザーポップアップのアバターに追加 - Enhance: ユーザーのノート、フォロー、フォロワーページへのリンクをユーザーポップアップに追加 - Enhance: プッシュ通知を行うための権限確認をより確実に行うように - Enhance: 投稿フォームのチュートリアルを追加 - Enhance: 「自動でもっと見る」をほとんどの箇所で利用可能に - Enhance: アンテナ・リスト設定画面とタイムラインの動線を改善 - アンテナ・リスト一覧画面の項目を選択すると、設定画面ではなくタイムラインに移動するようになりました - アンテナ・リストの設定画面の右上にタイムラインに移動するボタンを追加しました - Fix: 紙吹雪エフェクトがアニメーション設定を考慮せず常に表示される問題を修正 - Fix: ナビゲーションバーのリアルタイムモード切替ボタンの状態をよりわかりやすく表示するように - Fix: ページのタイトルが長いとき、はみ出る問題を修正 - Fix: 投稿フォームのアバターが正しく表示されない問題を修正 #16789 - FIx: カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 #16626 ### Server - Enhance: Remote Notes Cleaningが複雑度が高いノートの処理を中断せずに次のノートから再開するように - Fix: チャンネルの説明欄の最小文字数制約を除去 ## 2025.10.2 リリース日: 2025/10/27 ### Client - Fix: アプリ内からキャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 - Fix: 期限が無期限のアンケートに投票できない問題を修正 ## 2025.10.1 リリース日: 2025/10/24 ### General - Enhance: リモートユーザーに付与したロールバッジを表示できるように(オプトイン) パフォーマンス上の問題からデフォルトで無効化されています。「コントロールパネル > パフォーマンス」から有効化できます。 - 依存関係の更新 ### Client - Enhance: デッキのメインカラムのヘッダをクリックしてページ上部/下部にスクロールできるように - Enhance: 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動されました - Fix: カスタム絵文字画面(beta)のaliasesで使用される区切り文字が一致していないのを修正 #15614 - Fix: バナー画像の幅が表示領域と一致していない問題を修正 - Fix: 一部のブラウザでバナー画像が上下中央に表示されない問題を修正 - Fix: ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 - Fix: ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 - Fix: 画像のマスクでタッチ操作が不安定な問題を修正 - Fix: ウォーターマークの各種挙動修正 - ウォーターマークを回転させると歪む問題を修正 - ウォーターマークを敷き詰めると上下左右反転した画像/文字が表示される問題を修正 - ウォーターマークを回転させた際に画面からはみ出た部分を考慮できるように - Fix: 投票が終了した後に投票結果が正しく表示されない問題を修正 - Fix: ダークモードの同期が機能しない場合がある問題を修正 - Fix: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正 ### Server - Enhance: 管理者/モデレーターはファイルのアップロード制限をバイパスするように - Enhance: セキュリティの向上 ## 2025.10.0 リリース日: 2025/10/08 ### NOTE - pnpm 10.16.0 が必要です - ロールのインポート機能の利用可否ポリシーのデフォルト値が「いいえ」に変わったため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 - ロールのアップロード可能なファイル種別ポリシーのデフォルト値に「text/\*」が追加されたため、デフォルトから変更していないサーバーでは適宜設定を変更してください。 ### General - Feat: 予約投稿ができるようになりました - デフォルトで作成可能数は1になっています。適宜ロールのポリシーで設定を行ってください。 - Enhance: 広告ごとにセンシティブフラグを設定できるようになりました - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 ### Client - Feat: アカウントのQRコードを表示・読み取りできるようになりました - Feat: 動画を圧縮してアップロードできるようになりました - Feat: (実験的) ブラウザ上でノートの翻訳を行えるように - Enhance: チャットの日本語名称がダイレクトメッセージに戻るとともに、ベータ版機能ではなくなりました - Enhance: 画像編集にマスクエフェクト(塗りつぶし、ぼかし、モザイク)を追加 - Enhance: 画像編集の集中線エフェクトを強化 - Enhance: ウォーターマークにアカウントのQRコードを追加できるように - Enhance: テーマをドラッグ&ドロップできるように - Enhance: 絵文字ピッカーのサイズをより大きくできるように - Enhance: カスタム絵文字が多い場合にサーバーの絵文字一覧ページがフリーズしないように - Enhance: 時刻計算のための基準値を一か所で管理するようにし、パフォーマンスを向上 - Enhance: 「お問い合わせ」ページから、バグの調査等に役立つ情報(OSやブラウザのバージョン等)を取得・コピーできるように - Fix: iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正 - Fix: アクティビティウィジェットのグラフモードが動作しない問題を修正 - Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が絵文字ピッカーで検索できなくなる絵文字があるバグを修正 ### Server - Enhance: ユーザーIPを確実に取得できるために設定ファイルにFastifyOptions.trustProxyを追加しました ## 2025.9.0 リリース日: 2025/09/08 ### Client - Enhance: AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように - Enhance: /flushページでサイトキャッシュをクリアできるようになりました - Enhance: クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張 - Enhance: 「キャッシュを削除」ボタンでブラウザの内部キャッシュの削除も行えるように - Enhance: Ctrlキー(Commandキー)を押下しながらリンクをクリックすると新しいタブで開くように - Fix: プッシュ通知を有効にできない問題を修正 - Fix: RSSティッカーウィジェットが正しく動作しない問題を修正 - Fix: プロファイルを復元後アカウントの切り替えができない問題を修正 - Fix: エラー画像が横に引き伸ばされてしまう問題に対応 ### Server - Fix: webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 ## 2025.8.0 リリース日: 2025/08/31 ### Note - サポートされるNode.jsの最小バージョンが**22.15.0**になりました ### General - ノートを削除した際、関連するノートが同時に削除されないようになりました - APIで、「replyIdが存在しているのにreplyがnull」や「renoteIdが存在しているのにrenoteがnull」であるという、今までにはなかったパターンが表れることになります - 定期的に古いリモートの投稿を削除する機能が実装されました - コントロールパネル→パフォーマンス→Remote Notes Cleaning で有効化できます - データベースの肥大化を防止することが可能です - 既存のサーバーで当機能を有効化した場合は、処理量が多くなるため、一時的にストレージ使用量が増加する可能性があります。 - 増加量を抑えるには、最大処理継続時間をデフォルトより短くしてください。 - データベースサイズへの効果が見られない場合はautovacuumが有効になっているか確認してください - サーバーの初期設定が完了するまでは連合がオンにならないようになりました - 日本語における公開範囲名称の「ダイレクト」が「指名」に改称されました - 実際の動作に即した名称になり、馴染みのない人でも理解しやすくなりました - 他サービスにおける「ダイレクトメッセージ」に相当するMisskeyの機能は「チャット」ですが(過去のバージョンのMisskeyでも、当該機能は「チャット」ではなく「ダイレクトメッセージ」でした)、「ダイレクト投稿」という名称の機能が存在するとそちらがダイレクトメッセージ機能であるような誤解を生んでいました - 今後、「チャット」の名称を「ダイレクトメッセージ」に戻す可能性があります - mfm.jsをアップデートしました - Enhance: Unicode 15.1 および 16.0 に収録されている絵文字に対応 - Enhance: acctに `.` が入っているユーザーのメンションに対応 - Fix: Unicode絵文字に隣接する異体字セレクタ(`U+FE0F`)が絵文字として認識される問題を修正 - Enhance: ユーザー検索をロールポリシーで制限できるように ### Client - Feat: AiScriptが1.1.0に更新されました - プラグインは1.xに対応したものが必要です - Playはそのまま動作しますが、新規に作られるプリセットは1.xになります - 以前のバージョンから無効化されていた note_view_interruptor が有効になりました - ハンドラは同期的である必要があります - Feat: セーフモード - プラグイン・テーマ・カスタムCSSの使用でクライアントの起動に問題が発生した際に、これらを無効にして起動できます - 以下の方法でセーフモードを起動できます - `g` キーを連打する - URLに`?safemode=true`を付ける - PWAのショートカットで Safemode を選択して起動する - Feat: 非ログイン時に表示されるトップページのスタイルを選択できるように - コントロールパネル→ブランディング→エントランスページのスタイル - Feat: ページのタブバーを下部に表示できるように - Feat: (実験的)iOSでの触覚フィードバックを有効にできるように - Feat: コントロールパネルを検索できるように - Enhance: 「自動でもっと見る」オプションが有効になり、安定性が向上しました - Enhance: トルコ語 (tr-TR) に対応 - Enhance: 不必要な翻訳データを読み込まなくなり、パフォーマンスが向上しました - Enhance: 画像エフェクトのパラメータ名の多言語対応 - Enhance: ノートを非表示にする相対期間を1ヶ月単位で自由に指定できるように - Enhance: メールアドレス確認画面のUIを改善 - Enhance: アイコンのスクロール追従を無効化する際の適用範囲を強化 - Enhance: レンダリングパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Fix: 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 - Fix: 一部の設定検索結果が存在しないパスになる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1171) - Fix: テーマエディタが動作しない問題を修正 - Fix: チャンネルのハイライトページにノートが表示されない問題を修正 - Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正 - Fix: 複数のメンションを1行に記述した場合に、サジェストが正しく表示されない問題を修正 - Fix: メンションとしての条件を満たしていても、特定の条件(`-`が含まれる場合など)で正しくサジェストされない問題を一部修正 - Fix: ユーザーの前後ノートを閲覧する機能が動作しない問題を修正 - Fix: 照会ダイアログでap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 - Fix: アイコンのデコレーションを付ける際にデコレーションが表示されなくなる問題を修正 - Fix: タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正 - Fix: 管理中アカウント一覧で正しい表示が行われない問題を修正 - Fix: lookupページでリモートURLを指定した際に正しく動作しない問題を修正 ### Server - Feat: サーバー管理コマンド - `pnpm cli foo` の形式で実行可能です - 現在以下のコマンドが利用可能です - `reset-captcha` - CAPTCHA設定をリセットします - Enhance: ノートの削除処理の効率化 - Enhance: 全体的なパフォーマンスの向上 - Enhance: 依存ソフトウェアの更新 - Enhance: `clips/list` APIがページネーションに対応しました - Fix: `notes/mentions` で場合によっては並び順が正しく返されない問題を修正 - Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 - Fix: 削除されたユーザーがチャットメッセージにリアクションしている場合`chat/history`などでエラーになる問題を修正 - Fix: Pageのアイキャッチ画像をドライブから消してもPageごと消えないように - Fix: タイムラインAPIの withRenotes: false 時のレスポンスを修正 ## 2025.7.0 リリース日: 2025/07/18 ### Note - Node.jsの最小バージョンを20.10.0から20.18.1に引き上げました - なお、特に必要がない限りNode.jsは推奨バージョンであるv22を使用するようにしてください ### General - Feat: ノートの下書き機能 - Feat: クリップ内でノートを検索できるように - Feat: Playを検索できるように - Feat: モデレーションにおいて、特定のドライブファイルを添付しているチャットメッセージを一覧できるように - Enhance: ウォーターマーク機能をロールで制御可能に ### Client - Note: 「自動でもっと見る」オプションは無効になっています - Feat: モデログを検索できるように - Enhance: 設定の自動バックアップをオンにした直後に自動バックアップするように - Enhance: ファイルアップロード前にキャプション設定を行えるように - Enhance: ファイルアップロード時にセンシティブ設定されているか表示するように - Enhance: 投稿フォームにファイルをペースト/ドロップした際のUXを改善 - Enhance: ページネーション(一覧表示)の並び順を逆にできるように - Enhance: ページネーション(一覧表示)の基準日時を指定できるように - Enhance: レンダリングパフォーマンスの向上 - Fix: ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正 - Fix: プラグインをアンインストールしてもセーブデータが残る問題を修正 - Fix: 数時間後Misskeyのタブに戻った際に、タブがスロットリングされている間の更新アニメーションを延々見せ続けられる問題を修正 - Fix: 非ログイン時のハイライトノートの画像がCWの有無を考慮せず表示される問題を修正 - Fix: レンジ選択・ドロップダウンにて、操作を無効にすべきところで無効にならない問題を修正 - Fix: Pull to refreshが有効なときに横スクロールができない問題を修正 ### Server - Enhance: sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に - Enhance: メールの送信者としてサーバー名を表示するように (サーバー名が設定されている場合) - Fix: ジョブキューのProgressの値を正しく計算する ## 2025.6.3 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 ## 2025.6.2 リリース日: 2025/06/16 ### Client - Fix: キャッシュを削除しないとクライアントが使用できないことがある問題を修正 - 翻訳の更新 ## 2025.6.1 リリース日: 2025/06/16 ### Note - AiScript Misskey拡張API(Misskey Webプラグイン)の[note_view_interruptor](https://misskey-hub.net/ja/docs/for-developers/plugin/plugin-api-reference/#pluginregister_note_view_interruptorfn)は不具合の影響により現在一時的に無効化されています。 - Misskey Web投稿フォームのプレビュー切り替えは「...」メニュー内に配置されました ### Client - Feat: 画像にウォーターマークを付与できるようになりました - Feat: 画像の加工ができるようになりました(実験的) - Enhance: ノートのリアクション一覧で、押せるリアクションを優先して表示できるようにするオプションを追加 - Enhance: 全てのチャットメッセージを既読にできるように(設定→その他) - Enhance: ミュートした絵文字をデバイス間で同期できるように - Fix: ドライブファイルの選択が不安定な問題を修正 - Fix: コントロールパネルのファイル欄などのデザインが崩れている問題を修正 - Fix: ユーザーの検索結果を追加で読み込むことができない問題を修正 - Fix: タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 - Fix: ウェルカムタイムラインでリアクションが表示されない問題を修正 - Fix: デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正 ### Server - Feat: 全てのチャットメッセージを既読にするAPIを追加(chat/read-all) - Fix: アカウント削除が正常に行われないことがあった問題を修正 - Fix: outboxのページネーションが正しく行われない問題を修正 ### Misskey.js - Fix: misskey-jsの drive/file/create でファイルアップロードができない問題を修正 ## 2025.6.0 リリース日: 2025/06/02 ### Client - Enhance: 非同期的なコンポーネントの読み込み時のハンドリングを強化 - Fix: リアクションの一部の絵文字が重複して表示されることがある問題を修正 - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合にログインできない問題を修正 ### Server - Fix: 非利用者に対するユーザー作成コンテンツの公開範囲が全て非公開になっている場合でもusers/showを許可するように ## 2025.5.1 リリース日: 2025/05/31 ### Note - 設定ファイルの以下の項目がコントロールパネルから設定するようになりました - signToActivityPubGet - proxyRemoteFiles - disallowExternalApRedirect - 許可しないかどうかではなく、許可するかどうかの設定(allowExternalApRedirect)になりました ### General - Feat: 非ログインでサーバーを閲覧された際に、サーバー内のコンテンツを非公開にすることができるようになりました - モデレーションが行き届きにくい不適切なリモートコンテンツなどが、自サーバー経由で図らずもインターネットに公開されてしまうことによるトラブル防止などに役立ちます - 「全て公開(今までの挙動)」「ローカルのコンテンツだけ公開(=サーバー内で受信されたリモートのコンテンツは公開しない)」「何も公開しない」から選択できます - デフォルト値は「ローカルのコンテンツだけ公開」になっています - Feat: ロールでアップロード可能なファイル種別を設定可能になりました - デフォルトは**テキスト、JSON、画像、動画、音声ファイル**になっています。zipなど、その他の種別のファイルは含まれていないため、必要に応じて設定を変更してください。 - 場合によってはファイル種別を正しく検出できないことがあります(特にテキストフォーマット)。その場合、ファイル種別は application/octet-stream と見做されます。 - したがって、それらの種別不明ファイルを許可したい場合は application/octet-stream を指定に追加してください。 - Feat: プレビュー先がリダイレクトを伴う場合、リダイレクト先のコンテンツを取得しに行くか否かを設定できるように(#16043) - Enhance: UIのアイコンデータの読み込みを軽量化 ### Client - Feat: ドライブのUIが強化されました - 複数のファイルをまとめて移動できるようになりました - Feat: ファイルのアップロードUIが一新されました - アップロード前にファイル情報を確認できるようになりました - 圧縮の品質を選択できるようになりました - アップロードに失敗したときに再試行できるようになりました - アップロード前に画像のクロッピングを行えるようになりました - ファイルサイズのチェックは圧縮後の実際にアップロードされるサイズで行われるようになりました - ファイルのアップロードを中断できるようになりました - Feat: サーバー初期設定ウィザードが実装されました - 簡単なウィザードに従うだけで、サーバーに最適な設定が適用されます - Feat: Websocket接続を行わずにMisskeyを利用するNo Websocketモードが実装されました(beta) - サーバーのパフォーマンス向上に寄与することが期待されます - 何らの理由によりWebsocket接続が行えない環境でも快適に利用可能です - 従来のWebsocket接続を行うモードはリアルタイムモードとして再定義されました - チャットなど、一部の機能は引き続き設定に関わらずWebsocket接続が行われます - Feat: 絵文字をミュート可能にする機能 - 絵文字(ユニコードの絵文字・カスタム絵文字)毎にミュートし、不可視化することができるようになりました - Feat: モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように(実験的) - Enhance: 設定の同期をオンにするときに競合したときに値をマージできるように - Enhance: メモリ使用量を軽減しました - Enhance: 画像の高品質なプレースホルダを無効化してパフォーマンスを向上させるオプションを追加 - Enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように - Enhance: リプライ元にアンケートがあることが表示されるように - Enhance: ノートのサーバー情報のデザインを改善・パフォーマンス向上 (Based on https://github.com/taiyme/misskey/pull/198, https://github.com/taiyme/misskey/pull/211, https://github.com/taiyme/misskey/pull/283) - Enhance: ユーザー設定でURLプレビューを無効化できるように - Enhance: ヒントとコツを追加 - Enhance: ヒントとコツを再表示できるように - Enhance: AiScriptからtoastを表示する関数 `Mk:toast` を追加 - Enhance: シンタックスハイライトのエンジンをJavaScriptベースのものに変更 - フロントエンドの読み込みサイズを軽量化しました - ほとんどの言語のハイライトは問題なく行えますが、互換性の問題により一部の言語が正常にハイライトできなくなる可能性があります。詳しくは https://shiki.style/references/engine-js-compat をご覧ください。 - Fix: チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正 - Fix: アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 - Fix: "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない問題を修正 - Fix: 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように - Fix: Twitchのクリップがプレイヤーで再生できない問題を修正 ### Server - Enhance: リストやフォローをエクスポートする際にリプライを含むかどうかの情報を含むように - Enhance: チャットルームの最大メンバー数を30人から50人に調整 - Enhance: ノートのレスポンスにアンケートが添付されているかどうかを示すフラグ`hasPoll`を追加 - Enhance: チャットルームのレスポンスに招待されているかどうかを示すフラグ`invitationExists`を追加 - Enhance: レートリミットの計算方法を調整 (#13997) - Enhance: 外部サイトのOGPのキャッシュ期間を調整 - Fix: チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 - Fix: ユーザ除外アンテナをインポートできない問題を修正 - Fix: アンテナのセンシティブなチャンネルのノートを含むかどうかの情報がエクスポートされない問題を修正 - Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正 #16009 - Fix: 連合モードが「なし」の場合に、生成されるHTML内のactivity jsonへのリンクタグを省略するように - Fix: コントロールパネルから招待コードを作成すると作成者の情報が記録されない問題を修正 - Fix: コントロールパネルのジョブキューページからPausedなジョブ一覧を閲覧できない問題を修正 ## 2025.5.0 リリース日: 2025/05/07 ### Note - DockerのNode.jsが22.15.0に更新されました ### Client - Feat: マウスで中ボタンドラッグによりタイムラインを引っ張って更新できるように - アクセシビリティ設定からオフにすることもできます - Enhance: タイムラインのパフォーマンスを向上 - Enhance: バックアップされた設定のプロファイルを削除できるように - Fix: 一部のブラウザでアコーディオンメニューのアニメーションが動作しない問題を修正 - Fix: ダイアログのお知らせが画面からはみ出ることがある問題を修正 - Fix: ユーザーポップアップでエラーが生じてもインジケーターが表示され続けてしまう問題を修正 ### Server - Enhance: 凍結されたユーザのノートが各種タイムラインで表示されないように `#15775` - Enhance: 連合先のソフトウェア及びバージョン名により配信停止を行えるように `#15727` - Enhance: 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました。 `#15915` - `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY` 環境変数を `1` にセットしていると、巨大なテーブルの既存のカラムに関するインデックス再生成が`CREATE INDEX CONCURRENTLY`を使用するようになりました。 - 複数のサーバープロセスをクラスタリングしているサーバーにおいて、一部のプロセスが起動している状態でこのオプションを有効にしてマイグレーションすることにより、ダウンタイムを削減することができます。 - ただし、このオプションを有効にする場合、インデックスの作成にかかる時間が倍~3倍以上になることがあります。 - また、大きなインスタンスである場合にはインデックスの作成に失敗し、複数回再試行する必要がある可能性があります。 - Fix: チャンネルのフォロー一覧の結果が一部正しくないのを修正 (#12175) - Fix: ファイルをアップロードした際にファイル名が常に untitled になる問題を修正 - Fix: ファイルのアップロードに失敗することがある問題を修正 - 投稿フォーム上で画像のクロップを行うと、`Invalid Param.`エラーでノートが投稿出来なくなる問題も解決されます。 - この事象によって既にノートが投稿出来ない状態になっている場合は、投稿フォーム右上のメニューから、下書きデータの「リセット」を行ってください。 ## 2025.4.1 リリース日: 2025/04/30 ### General - Feat: bull-boardに代わるジョブキューの管理ツールが実装されました - Feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に - デフォルトで10MBになっています - Enhance: チャットの新規メッセージをプッシュ通知するように - Enhance: サーバーブロックの対象になっているサーバーについて、当該サーバーのユーザーや既知投稿を見えないように - Enhance: 依存関係の更新 - Enhance: 翻訳の更新 - Fix: セキュリティに関する修正 ### Client - Feat: チャットウィジェットを追加 - Feat: デッキにチャットカラムを追加 - Feat: タイトルバーを表示できるように - Enhance: Unicode絵文字をslugから入力する際に`:ok:`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように - Enhance: コントロールパネルでジョブキューをクリアできるように - Enhance: テーマでページヘッダーの色を変更できるように - Enhance: スワイプでのタブ切り替えを強化 - Enhance: デザインのブラッシュアップ - Fix: ログアウトした際に処理が終了しない問題を修正 - Fix: 自動バックアップが設定されている環境でログアウト直前に設定をバックアップするように - Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836 - Fix: タイムラインのスクロール位置を記憶するように修正 - Fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 #15841 - Fix: アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正 #15843 - Fix: タイムラインでノートが重複して表示されることがあるのを修正 ### Server - Enhance: ジョブキューの成功/失敗したジョブも一定数・一定期間保存するようにし、後から問題を調査することを容易に - Enhance: フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/568 and https://github.com/team-shahu/misskey/pull/38) - Enhance: ユーザーごとにノートの表示が高速化するように - Fix: システムアカウントの名前がサーバー名と同期されない問題を修正 - Fix: 大文字を含むユーザの URL で照会された場合に 404 エラーを返す問題 #15813 - Fix: リードレプリカ設定時にレコードの追加・更新・削除を伴うクエリを発行した際はmasterノードで実行されるように調整( #10897 ) - Fix: ファイルアップロード時の挙動を一部調整(#15895) ## 2025.4.0 リリース日: 2025/04/09 ### General - Feat: チャット(ダイレクトメッセージ)がリニューアルして復活しました - 既存のDM機能よりも便利で効率的な実装になっています - チャットを受け付ける相手を制限可能です - 誰でも / フォローユーザーのみ / フォロワーのみ / 相互のみ / 受け付けない から選択できます - 自分からメッセージを送った相手とは上記の設定に関わらずチャット可能です - チャット機能を開放するかどうかをロールで制御可能です - ルームを作成して、複数人でのチャットも可能です - 過去自分が送ったメッセージ・自分に送られたメッセージの検索が可能です - 参加中のルームをミュートして通知が来ないように設定可能です - メッセージにはリアクションも可能です - 現在、リモートユーザーがチャットを受け付ける設定になっているかどうかを取得する術がないため、ローカルユーザー間でのみ利用可能です - Feat: アカウントの移行時に古いアカウントからあたらしいアカウントにロールをコピーできるようになりました。 - 管理者がロールの設定でマイグレーション時にコピーするかを指定できるようになります。 - Enhance: セキュリティを強化するため、ジョブキューのダッシュボード(bull-board)統合が削除されました。 - Misskeyネイティブでダッシュボードを実装予定です - Enhance: フロントエンドのエラートラッキングができるように - `.config/default.yml`中の項目`sentryForFrontend`を適宜設定してください。 - 外部サービスであるSentryへエラー情報が送信されます。ご利用の地域の法令に従い、適切なプライバシーポリシーを策定の上で運用してください。 - Enhance: ミュートしているユーザーをユーザー検索の結果から除外するように - Enhance: アンテナでセンシティブなチャンネルのノートを除外できるように `#14177` - Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題を修正 ### Client - Feat: 設定の管理が強化されました - 内部処理が一新され、安定性とパフォーマンスが向上しました - 全てのクライアント設定がエクスポート(バックアップ)/インポート対象に含まれるようになりました - プラグイン、テーマ、クライアントに追加されたすべてのアカウント情報も含まれるようになりました - 自動で設定データをサーバーにバックアップできるように - 設定→設定のプロファイル→自動バックアップ で有効にできます - 新しいデバイスからログインしたり、ブラウザから設定データが消えてしまったときに自動で復元されます(復元をスキップすることも可能) - 任意の設定項目をデバイス間で同期できるように - 設定項目の「...」メニュー→「デバイス間で同期」 - 同期をオンにした際にサーバーに保存された値とローカルの値が競合する場合はどちらを優先するか選択できます - 任意の設定項目を初期値にリセットできるように - 設定項目の「...」メニュー→「初期値にリセット」 - アカウントごとに設定値が分離される設定とそうでないクライアント設定が混在していた(かつ分離するかどうかを設定不可だった)のを、基本的に一律でクライアント全体に適用されるようにし、個別でアカウントごとに異なる設定を行えるように - 設定項目の「...」メニュー→「アカウントで上書き」をオンにすることで、設定値をそのアカウントでだけ適用するようにできます - ログアウトすると設定データもブラウザから消去されるようになりプライバシーが向上しました - 再度ログインすればサーバーのバックアップから設定データを復元可能です - エクスポートした設定データを他のサーバーでインポートして適用すること(設定の持ち運び)が可能になりました - 設定情報の移行は自動で行われますが、何らかの理由で失敗した場合、設定→その他→旧設定情報を移行 で再試行可能です - 過去に作成されたバックアップデータとは現在互換性がありませんのでご注意ください - Feat: 画面を重ねて表示するオプションを実装(実験的) - 設定 → その他 → 実験的機能 → Enable stacking router view - Enhance: プラグインの管理が強化されました - インストール/アンインストール/設定の変更時にリロード不要になりました - Enhance: ログアウト時、ブラウザに保存されたWebクライアントのデータを全て消去するように - Enhance: デッキUIでカラム間のマージンを設定できるように - Enhance: デッキUIでデッキメニューの位置を設定できるように - Enhance: デッキUIでナビゲーションバーの位置を設定できるように - Enhance: アイコンのスクロール追従を無効化してパフォーマンス向上できるように - Enhance: CWの注釈テキストが入力されていない場合, Postボタンを非アクティブに - Enhance: CWを無効にした場合, 注釈テキストが最大入力文字数を超えていても投稿できるように - Enhance: テーマ設定画面のデザインを改善 - Enhance: 投稿フォームの設定メニューを改良 - 投稿フォームをリセットできるように - 文字数カウントを復活 - Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように - Enhance: 全体的なブラッシュアップ - Enhance 全体的なパフォーマンス向上 - Enhance: ファイルのアップロードでデフォルトで圧縮するかどうかのオプションが廃止され、アップロード時に圧縮するかどうかを選択するようになりました - 画像データの貼り付け、ドロップ時は圧縮されるようになりました - Fix: 読み込み直後にスクロールしようとすると途中で止まる場合があるのを修正 - Fix: テーマ切り替え時に一部の色が変わらない問題を修正 - Fix: iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正 - NOTE: 構造上クラシックUIを新しいデザインシステムに移行することが困難なため、クラシックUIが削除されました - デッキUIでカラムを中央寄せにし、メインカラムの左右にウィジェットカラムを配置し、ナビゲーションバーを上部に表示することである程度クラシックUIを再現できます ### Server - Enhance 全体的なパフォーマンス向上 - Fix: プロフィール追加情報で無効なURLに入力された場合に照会エラーを出るのを修正 - Fix: ActivityPubリクエストURLチェック実装は仕様に従っていないのを修正 - Fix: 連合無しモードでも外部から照会可能だった問題を修正 - Fix: テスト用WebHookのペイロードの`emojis`パラメータが実際のものと異なる問題を修正 - Fix: 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 ## 2025.3.1 リリース日: 2025/03/09 ### General - pnpmをv10に更新 - Corepackを削除 ### Client - Feat: 設定の検索を追加(実験的) - Enhance: 設定項目の再配置 ### Server - Fix: DBマイグレーション際にシステムアカウントのユーザーID判定が正しくない問題を修正 - Fix: user.featured列が状況によってJSON文字列になっていたのを修正 ## 2025.3.0 リリース日: 2025/03/06 ### General - Enhance: プロキシアカウントをシステムアカウントとして作成するように - Enhance: OAuthで外部アプリからロゴが提供されている場合、それを表示できるように 書式は https://indieauth.spec.indieweb.org/20220212/#example-2 に準じます。 - Fix: システムアカウントが削除できる問題を修正 ### Client - Enhance: モデレーターがセンシティブ設定を変更する際に確認ダイアログを出すように - Enhance: 「UIのアニメーションを減らす」で画面上のエフェクトも減らせるように - Enhance: 投稿フォームにおける、メディアの添付可能個数のカウントを反転しました - これまでの表示は`添付可能残り個数/上限数`でしたが、`添付個数/上限数`としました - Fix: フォローされたときのメッセージがちらつくことがある問題を修正 - Fix: 投稿ダイアログがサイズ限界を超えた際にスクロールできない問題を修正 ### Server - Fix: 特定のケースでActivityPubの処理がデッドロックになることがあるのを修正 - Fix: S3互換オブジェクトストレージでファイルのアップロードに失敗することがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/895) ## 2025.2.1 リリース日: 2025/02/27 ### General - Feat: アクセストークン発行時に通知するように - Feat: 実験的なGoogleAnalyticsサポートを追加 - 依存関係の更新 ### Client - Feat: 投稿フォームで画像をプレビュー可能に - Enhance: 投稿フォームの「迷惑になる可能性があります」のダイアログを表示する条件においてCWを考慮するように - Enhance: アンテナ、リスト等の名前をカラム名のデフォルト値にするように `#13992` - Enhance: クライアントエラー画面の多言語対応 - Enhance: 開発者モードでメニューからファイルIDをコピー出来るように \`#15441' - Enhance: ノートに埋め込まれたメディアのコンテキストメニューから管理者用のファイル管理画面を開けるように ( #15440 ) - Enhance: リアクションする際に確認ダイアログを表示できるように - Enhance: コントロールパネルのユーザ検索で入力された情報をページ遷移で損なわないように `#15437` - Enhance: CWの注釈で入力済みの文字数を表示 - Enhance: ノート検索ページのデザイン調整 (Cherry-picked from https://github.com/taiyme/misskey/pull/273) - Fix: ノートページで、クリップ一覧が表示されないことがある問題を修正 - Fix: コンディショナルロールを手動で割り当てできる導線を削除 `#13529` - Fix: 埋め込みプレイヤーから外部ページに移動できない問題を修正 - Fix: Play の再読込時に UI が以前の状態を引き継いでしまう問題を修正 `#14378` - Fix: カスタム絵文字管理画面(beta)にてisSensitive/localOnlyの絞り込みが上手くいかない問題の修正 ( #15445 ) - Fix: ユーザのサジェスト中に@を入力してもサジェスト結果が消えないように `#14385` - Fix: CWの注釈が100文字を超えている場合、ノート投稿ボタンを非アクティブに - Fix: テーマ選択で現在のテーマが初期表示されていない問題を修正 - 翻訳の更新 ### Server - Enhance: 成り済まし対策として、ActivityPub照会された時にリモートのリダイレクトを拒否できるように (config.disallowExternalApRedirect) - Fix: `following/invalidate`でフォロワーを解除しようとしているユーザーの情報を返すように - Fix: オブジェクトストレージの設定でPrefixを設定していなかった場合nullまたは空文字になる問題を修正 - Fix: HTTPプロキシとその除外設定を行った状態でカスタム絵文字の一括インポートをしたとき、除外設定が効かないのを修正( #8766 ) - Fix: pgroongaでの検索時にはじめのキーワードのみが検索に使用される問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/886) - Fix: メールアドレスの形式が正しくなければ以降の処理を行わないように - Fix: `update-meta`でobjectStoragePrefixにS3_SAFEかつURL-safeでない文字列を使えないように - Fix: クリップの説明欄を更新する際に空にできない問題を修正 - Fix: フォロワーではないユーザーにリノートもしくは返信された場合にノートのDeleteアクティビティが送られていない問題を修正 ## 2025.2.0 リリース日: 2025/02/05 ### General - Fix: Docker のビルドに失敗する問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883) ### Client - Fix: パスキーでパスワードレスログインが出来ない問題を修正 - Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題 - Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正 - Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正 - Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正 - Fix: デッキのプロファイルが新規作成できない問題を修正 - Fix: セキュリティに関する修正 - ローカライゼーションの更新 - Playが実装されたため、ページ機能の「ソースを見る」は削除されました ### Server - Enhance: ページのURLに使用可能な文字を限定するように - Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正 ## 2025.1.0 リリース日: 2025/01/28 ### Note - [重要] ノート検索プロバイダの追加に伴い、configファイル(default.ymlなど)の構成が少し変わります. - 新しい設定項目"fulltextSearch.provider"が追加されました. sqlLike, sqlPgroonga, meilisearchのいずれかを設定出来ます. - すでにMeilisearchをお使いの場合、 **"fulltextSearch.provider"を"meilisearch"に設定する必要** があります. - 詳細は #14730 および `.config/example.yml` または `.config/docker_example.yml`の'Fulltext search configuration'をご参照願います. - 【開発者向け】従来の開発モードでHMRが機能しない問題が修正されたため、バックエンド・フロントエンド分離型の開発モードが削除されました。開発環境においてconfigの変更が必要となる可能性があります。 ### General - Feat: カスタム絵文字管理画面をリニューアル #10996 - β版として公開のため、旧画面も引き続き利用可能です ### Client - Enhance: PC画面でチャンネルが複数列で表示されるように (Cherry-picked from https://github.com/Otaku-Social/maniakey/pull/13) - Enhance: 照会に失敗した場合、その理由を表示するように - Enhance: ワードミュートで検知されたワードを表示できるように - Enhance: リモートのノートのリンクをコピーできるように - Enhance: 連合がホワイトリスト化・無効化されているサーバー向けのデザイン修正 - Enhance: AiScriptのセーブデータを明示的に削除する関数`Mk:remove`を追加 - Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加 (Based on https://github.com/Otaku-Social/maniakey/pull/14) - Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に - Enhance: クエリパラメータでuiを一時的に変更できるように #15240 - Enhance: リモート絵文字のインポート時に詳細を確認できるように #15336 - Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正 - Fix: サーバー情報メニューに区切り線が不足していたのを修正 - Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正 - Fix: 公開範囲がホームのノートの埋め込みウィジェットが読み込まれない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/803) - Fix: 絵文字管理画面で一部の絵文字が表示されない問題を修正 - Fix: プラグイン `register_note_view_interruptor` でノートのサーバー情報の書き換えができない問題を修正 - Fix: Botプロテクションの設定変更時は実際に検証を通過しないと保存できないように( #15137 ) - Fix: ノート検索が使用できない場合でもチャンネルのノート検索欄がでていた問題を修正 - Fix: `Ui:C:select`で値の変更が画面に反映されない問題を修正 - Fix: MiAuth認可画面で、認可処理に失敗した場合でもコールバックURLに遷移してしまう問題を修正 (Cherry-picked from https://github.com/TeamNijimiss/misskey/commit/800359623e41a662551d774de15b0437b6849bb4) - Fix: ノート作成画面でファイルの添付可能個数を超えてもノートボタンが押せていた問題を修正 - Fix: 「アカウントを管理」画面で、ユーザー情報の取得に失敗したアカウント(削除されたアカウントなど)が表示されない問題を修正 - Fix: MacOSでChrome系ブラウザを使用している場合に、Misskeyを閉じた際に他のタブのオーディオ機能と干渉する問題を修正 - Fix: 言語データのキャッシュ状況によっては、埋め込みウィジェットが正しく起動しない問題を修正 - Fix: 「削除して編集」でノートの引用を解除出来なかった問題を修正( #14476 ) - Fix: RSSウィジェットが正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/857) - Fix: ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 - Fix: アンケートでリモートの絵文字が正しく描画できない問題の修正 (Cherry-picked from https://github.com/yojo-art/cherrypick/pull/153) - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 - Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 - Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように - Enhance: ノート検索の選択肢としてpgroongaに対応 ( #14730 ) - Enhance: チャート更新時にDBに同時接続しないように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/830) - Enhance: config(default.yml)からSQLログ全文を出力するか否かを設定可能に ( #15266 ) - Fix: ユーザーのプロフィール画面をアドレス入力などで直接表示した際に概要タブの描画に失敗する問題の修正( #15032 ) - Fix: 起動前の疎通チェックが機能しなくなっていた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/737) - Fix: ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 - Fix: 絵文字の連合でライセンス欄を相互にやり取りするように ( #10859, #14109 ) - Fix: ロックダウンされた期間指定のノートがStreaming経由でLTLに出現するのを修正 ( #15200 ) - Fix: disableClustering設定時の初期化ロジックを調整( #15223 ) - Fix: URLとURIが異なるエンティティの照会に失敗する問題を修正( #15039 ) - Fix: ActivityPubリクエストかどうかの判定が正しくない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/869) - Fix: `/api/pages/update`にて`name`を指定せずにリクエストするとエラーが発生する問題を修正 - Fix: AIセンシティブ判定が arm64 環境で動作しない問題を修正 - Fix: 非Misskey系のソフトウェアからHTML``タグを含むノートを受信した場合、MFMの読み仮名(ルビ)文法に変換して表示 - Fix: 連合OFFで投稿されたノートに対する冗長な処理を抑止 ( #15018 ) - Fix: `/api.json`のレスポンスが2回目のリクエスト以降おかしくなる問題を修正 ### Misskey.js - Feat: allow setting `binaryType` of WebSocket connection ## 2024.11.0 リリース日: 2024/11/22 ### Note - Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。 - なお、Node.js 23.xは対応していません。 - DockerのNode.jsが22.11.0に更新されました ### General - Feat: コンテンツの表示にログインを必須にできるように - Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 ) ### Client - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751) - Enhance: ドライブでソートができるように - Enhance: アイコンデコレーション管理画面の改善 - Enhance: 「単なるラッキー」の取得条件を変更 - Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように( #10866 ) - Enhance: MiAuth, OAuthの認可画面の改善 - どのアカウントで認証しようとしているのかがわかるように - 認証するアカウントを切り替えられるように - Enhance: Self-XSS防止用の警告を追加 - Enhance: カタルーニャ語 (ca-ES) に対応 - Enhance: 個別お知らせページではMetaタグを出力するように - Enhance: ノート詳細画面にロールのバッジを表示 - Enhance: 過去に送信したフォローリクエストを確認できるように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663) - Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 ) - Enhance: リノートメニューに「リノートの詳細」を追加 - Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上 - Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正 - Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768) - Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正 - Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used - Fix: リンク切れを修正 - Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/305) - Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 - Fix: 画面幅が狭い環境でデザインが崩れる問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815) - Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725) ### Server - Enhance: DockerのNode.jsを22.11.0に更新 - Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように (Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588) (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715) - Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように - Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない - Fix: Aproving request from GtS appears with some delay - Fix: フォロワーへのメッセージの絵文字をemojisに含めるように - Fix: Nested proxy requestsを検出した際にブロックするように [ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236) - Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706) - Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711) - Fix: ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712) - Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709) - Fix: User Webhookテスト機能のMock Payloadを修正 - Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996) - Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 - Fix: Inboxの処理で生じるエラーを誤ってActivityとして処理することがある問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/730) - Fix: セキュリティに関する修正 ### Misskey.js - Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正 ## 2024.10.1 リリース日: 2024/10/15 ### Note - スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替え(コントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 ) - 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。 ### General - Feat: ユーザーの名前に禁止ワードを設定できるように ### Client - Enhance: タイムライン表示時のパフォーマンスを向上 - Enhance: アーカイブした個人宛のお知らせを表示・編集できるように - Enhance: l10nの更新 - Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正 ### Server - Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 ) - Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように - Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正 - Fix: RBT有効時、リノートのリアクションが反映されない問題を修正 - Fix: キューのエラーログを簡略化するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649) ## 2024.10.0 リリース日: 2024/10/09 ### Note - セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません) - ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。 - なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能です(UI上で初期パスワードの入力欄を空欄にすると続行できます)。 - ユーザーデータを読み込む際の型が一部変更されました。 - `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました ### General - Feat: サーバー初期設定時に初期パスワードを設定できるように - Feat: 通報にモデレーションノートを残せるように - Feat: 通報の解決種別を設定できるように - Enhance: 通報の解決と転送を個別に行えるように - Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました - Enhance: 依存関係の更新 - Enhance: l10nの更新 - Enhance: Playの「人気」タブで10件以上表示可能に #14399 - Fix: 連合のホワイトリストが正常に登録されない問題を修正 ### Client - Enhance: デザインの調整 - Enhance: ログイン画面の認証フローを改善 - Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657) ### Server - Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように - Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように - Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 ) - Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正 ## 2024.9.0 リリース日: 2024/09/29 ### General - Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能 - 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください - Feat: パスキーでログインボタンを実装 (#14574) - Feat: フォローされた際のメッセージを設定できるように - Feat: 連合をホワイトリスト制にできるように - Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445) - Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680) - Feat: データエクスポートが完了した際に通知を発行するように - Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように - Enhance: 依存関係の更新 - Enhance: l10nの更新 ### Client - Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: アイコンデコレーション管理画面にプレビューを追加 - Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく - Enhance: ScratchpadにUIインスペクターを追加 - Enhance: Play編集画面の項目の並びを少しリデザイン - Enhance: 各種メニューをドロワー表示するかどうか設定可能に - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加 - Enhance: CWでも絵文字をクリックしてメニューを表示できるように - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正 - Fix: 月の違う同じ日はセパレータが表示されないのを修正 - Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/265) - Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725) - Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 - Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110) - Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 ) ### Server - Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に - Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように - この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます - Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8) - Fix: Continue importing from file if single emoji import fails - Fix: `Retry-After`ヘッダーが送信されなかった問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624) - Fix: サーバーサイドのDOM解析完了時にリソースを開放するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634) - Fix: ``を追って照会するのはOKレスポンスが返却された場合のみに (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633) - Fix: メールにスタイルが適用されていなかった問題を修正 ## 2024.8.0 リリース日: 2024/08/18 ### General - Enhance: モデレーターはすべてのユーザーのフォロー・フォロワーの一覧を見られるように - Enhance: アカウントの削除のモデレーションログを残すように - Enhance: 不適切なページ、ギャラリー、Playを管理者権限で削除できるように - Fix: リモートユーザのフォロー・フォロワーの一覧が非公開設定の場合も表示できてしまう問題を修正 ### Client - Enhance: 「自分のPlay」ページにおいてPlayが非公開かどうかが一目でわかるように - Enhance: 不適切なページ、ギャラリー、Playを通報できるように - Fix: Play編集時に公開範囲が「パブリック」にリセットされる問題を修正 - Fix: ページ遷移に失敗することがある問題を修正 - Fix: iOSでユーザー名などがリンクとして誤検知される現象を抑制 - Fix: mCaptchaを使用していてもbotプロテクションに関する警告が消えないのを修正 - Fix: ユーザーのモデレーションページにおいてユーザー名にドットが入っているとシステムアカウントとして表示されてしまう問題を修正 - Fix: 特定の条件下でノートの削除ボタンが出ないのを修正 ### Server - Enhance: 照会時にURLがhtmlかつheadタグ内に`rel="alternate"`, `type="application/activity+json"`の`link`タグがある場合に追ってリンク先を照会できるように - Enhance: 凍結されたアカウントのフォローリクエストを表示しないように - Fix: WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題 #14374 - 通知ページや通知カラム(デッキ)を開いている状態において、新たに発生した通知が既読されない問題が修正されます。 - これにより、プッシュ通知が有効な同条件下の環境において、プッシュ通知が常に発生してしまう問題も修正されます。 - Fix: Play各種エンドポイントの返り値に`visibility`が含まれていない問題を修正 - Fix: サーバー情報取得の際にモデレーター限定の情報が取得できないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/582) - Fix: 公開範囲がダイレクトのノートをユーザーアクティビティのチャート生成に使用しないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/679) - Fix: ActivityPubのエンティティタイプ判定で不明なタイプを受け取った場合でも処理を継続するように - キュー処理のつまりが改善される可能性があります - Fix: リバーシの対局設定の変更が反映されないのを修正 - Fix: 無制限にストリーミングのチャンネルに接続できる問題を修正 - Fix: ベースロールのポリシーを変更した際にモデログに記録されないのを修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/700) - Fix: Prevent memory leak from memory caches (#14310) - Fix: More reliable memory cache eviction (#14311) ## 2024.7.0 リリース日: 2024/07/31 ### Note - デッキUIの新着ノートをサウンドで通知する機能の追加(v2024.5.0)に伴い、以前から動作しなくなっていたクライアント設定内の「アンテナ受信」「チャンネル通知」サウンドを削除しました。 - Streaming APIにて入力が不正な場合にはそのメッセージを無視するようになりました。 #14251 ### General - Feat: 通報を受けた際、または解決した際に、予め登録した宛先に通知を飛ばせるように(mail or webhook) #13705 - Feat: ユーザーのアイコン/バナーの変更可否をロールで設定可能に - 変更不可となっていても、設定済みのものを解除してデフォルト画像に戻すことは出来ます - Feat: ユーザ作成時にSystemWebhookを送信可能に #14281 - Feat: メディアサイレンスを実装 #13842 - メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。 - Enhance: 管理画面でアーカイブにしたお知らせを表示・編集できるように - Fix: 配信停止したインスタンス一覧が見れなくなる問題を修正 - Fix: Dockerコンテナの立ち上げ時に`pnpm`のインストールで固まることがある問題 - Fix: デフォルトテーマに無効なテーマコードを入力するとUIが使用できなくなる問題を修正 - 翻訳の更新 - 依存関係の更新 ### Client - Feat: ユーザーページから「このユーザーのノートを検索」できるように (#14128) - Feat: 検索ページはクエリを受け付けるようになりました (#14128) - Enhance: 検索ページのUI改善 (#14128) - Enhance: 内蔵APIドキュメントのデザイン・パフォーマンスを改善 - Enhance: 非ログイン時に他サーバーに遷移するアクションを追加 - Enhance: 非ログイン時のハイライトTLのデザインを改善 - Enhance: フロントエンドのアクセシビリティ改善 (Based on https://github.com/taiyme/misskey/pull/226) - Enhance: サーバー情報ページ・お問い合わせページを改善 (Cherry-picked from https://github.com/taiyme/misskey/pull/238) - Enhance: AiScriptを0.19.0にアップデート - Enhance: Allow negative delay for MFM animation elements (`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`) - Enhance: センシティブなメディアを開く際に確認ダイアログを出せるように - Enhance: 検索(ノート/ユーザー)で `#` から始まる文字列を入力すると、そのハッシュタグのノート/ユーザー一覧ページが表示できるように - Enhance: 検索(ノート/ユーザー)において、入力に空白が含まれている場合は照会を行わないように - Enhance: 検索(ノート/ユーザー)において、照会を行うかどうか、ハッシュタグのノート/ユーザー一覧ページを表示するかどうかの確認ダイアログを出すように - Enhance: 検索(ノート/ユーザー)で `@` から始まる文字列(`@user@host`など)を入力すると、そのユーザーを照会できるように - Enhance: ドライブのファイル・フォルダをドラッグしなくても移動できるように (Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99) - Enhance: デッキのアンテナ・リスト選択画面からそれぞれを新規作成できるように - Enhance: ブラウザのコンテキストメニューを使用できるように - Enhance: 連合の「連合中」,「購読中」,「配信中」に対してブロックしているサーバー、配信停止しているサーバーを含めないように - Fix: `/about#federation` ページなどで各インスタンスのチャートが表示されなくなっていた問題を修正 - Fix: ユーザーページの追加情報のラベルを投稿者のサーバーの絵文字で表示する (#13968) - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: コントロールパネルでベースロールのポリシーを編集してもUI上では変更が反映されない問題を修正 - Fix: アンテナの編集画面のボタンに隙間を追加 - Fix: テーマプレビューが見れない問題を修正 - Fix: ショートカットキーが連打できる問題を修正 (Cherry-picked from https://github.com/taiyme/misskey/pull/234) - Fix: MkSignin.vueのcredentialRequestからReactivityを削除(ProxyがPasskey認証処理に渡ることを避けるため) - Fix: 「アニメーション画像を再生しない」がオンのときでもサーバーのバナー画像・背景画像がアニメーションしてしまう問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/574) - Fix: Twitchの埋め込みが開けない問題を修正 - Fix: 子メニューの高さがウィンドウからはみ出ることがある問題を修正 - Fix: 個人宛てのダイアログ形式のお知らせが即時表示されない問題を修正 - Fix: 一部の画像がセンシティブ指定されているときに画面に何も表示されないことがあるのを修正 - Fix: リアクションしたユーザー一覧のユーザー名がはみ出る問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/672) - Fix: `/share`ページにおいて絵文字ピッカーを開くことができない問題を修正 - Fix: deck uiの通知音が重なる問題 (#14029) - Fix: ダイレクト投稿の"削除して編集"において、宛先が保持されていなかった問題を修正 - Fix: 投稿フォームへのURL貼り付けによる引用が下書きに保存されていなかった問題を修正 - Fix: "削除して編集"や下書きにおいて、リアクションの受け入れ設定が保持/保存されていなかった問題を修正 - Fix: 照会に `#` から始まる文字列を入力してそのハッシュタグのページを表示する際、入力が `#` のみの場合に「指定されたURLに該当するページはありませんでした。」が表示されてしまう問題を修正 - Fix: 照会に `@` から始まる文字列を入力してユーザーを照会する際、入力が `@` のみの場合に「問題が発生しました」が表示されてしまう問題を修正 - Fix: 投稿フォームにノートのURLを貼り付けて"引用として添付"した場合、投稿文を空にすることによるRenote化が出来なかった問題を修正 - Fix: フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正 - Fix: タイムラインページを開いた時、`TLに他の人への返信を含める`がオフのときに`ファイル付きのみ`をオンにできない問題を修正 - Fix: deck uiでタイムラインを切り替えた際にTLの設定項目が更新されず、`TLに他の人への返信を含める`のトグルが表示されない問題を修正 - Fix: ウィジェットのタイムライン選択欄に無効化されたタイムラインが表示される問題を修正 - Fix: サウンドにドライブの音声を使用している際にドライブの音声が再生できなくなると設定が変更できなくなる問題を修正 ### Server - Feat: レートリミット制限に引っかかったときに`Retry-After`ヘッダーを返すように (#13949) - Enhance: エンドポイント`clips/update`の必須項目を`clipId`のみに - Enhance: エンドポイント`admin/roles/update`の必須項目を`roleId`のみに - Enhance: エンドポイント`pages/update`の必須項目を`pageId`のみに - Enhance: エンドポイント`gallery/posts/update`の必須項目を`postId`のみに - Enhance: エンドポイント`i/webhook/update`の必須項目を`webhookId`のみに - Enhance: エンドポイント`admin/ad/update`の必須項目を`id`のみに - Enhance: `default.yml`内の`url`, `db.db`, `db.user`, `db.pass`を環境変数から読み込めるように - Enhance: エンドポイント`api/meta`にプロパティ`noteSearchableScope`が増え、`string`値`local`または`global`を返却します - Fix: チャート生成時にinstance.suspensionStateに置き換えられたinstance.isSuspendedが参照されてしまう問題を修正 - Fix: ユーザーのフィードページのMFMをHTMLに展開するように (#14006) - Fix: アンテナ・クリップ・リスト・ウェブフックがロールポリシーの上限より一つ多く作れてしまうのを修正 (#14036) - Fix: notRespondingSinceが実装される前に不通になったインスタンスが自動的に配信停止にならない (#14059) - Fix: FTT有効時、タイムライン用エンドポイントで`sinceId`にキャッシュ内最古のものより古いものを指定した場合に正しく結果が返ってこない問題を修正 - Fix: 自分以外のクリップ内のノート個数が見えることがあるのを修正 - Fix: 空文字列のリアクションはフォールバックされるように - Fix: リノートにリアクションできないように - Fix: ユーザー名の前後に空白文字列がある場合は省略するように - Fix: プロフィール編集時に名前を空白文字列のみにできる問題を修正 - Fix: ユーザ名のサジェスト時に表示される内容と順番を調整(以下の順番になります) #14149 1. フォロー中かつアクティブなユーザ 2. フォロー中かつ非アクティブなユーザ 3. フォローしていないアクティブなユーザ 4. フォローしていない非アクティブなユーザ また、自分自身のアカウントもサジェストされるようになりました。 - Fix: 一般ユーザーから見たユーザーのバッジの一覧に公開されていないものが含まれることがある問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/652) - Fix: ユーザーのリアクション一覧でミュート/ブロックが機能していなかった問題を修正 - Fix: FTT有効時にリモートユーザーのノートがHTLにキャッシュされる問題を修正 - Fix: 一部の通知がローカル上のリモートユーザーに対して行われていた問題を修正 - Fix: エラーメッセージの誤字を修正 (#14213) - Fix: ソーシャルタイムラインにローカルタイムラインに表示される自分へのリプライが表示されない問題を修正 - Fix: リノートのミュートが適用されるまでに時間がかかることがある問題を修正 (Cherry-picked from https://github.com/Type4ny-Project/Type4ny/commit/e9601029b52e0ad43d9131b555b614e56c84ebc1) - Fix: Steaming APIが不正なデータを受けた場合の動作が不安定である問題 #14251 - Fix: `users/search`において `@` から始まる文字列が与えられた際の処理が正しくなかった問題を修正 - 名前や自己紹介に `@` から始まる文言が含まれるユーザーも検索できるようになります - Fix: 一部のMisskey以外のソフトウェアからファイルを受け取れない問題 (Cherry-picked from https://github.com/Secineralyr/misskey.dream/pull/73/commits/652eaff1e8aa00b890d71d2e1e52c263c1e67c76) - NOTE: `drive_file`の`url`, `uri`, `src`の上限が512から1024に変更されます Migrationではカラム定義の変更のみが行われます。 サーバー管理者は各サーバーの必要に応じ`drive_file` `("uri")`に対するインデックスを張りなおすことでより安定しDBの探索が行われる可能性があります。詳細 は [GitHub](https://github.com/misskey-dev/misskey/pull/14323#issuecomment-2257562228)で確認可能です - Fix: 自分のフォロワー限定投稿に対するリプライがホームタイムラインで見えないことが有る問題を修正 - Fix: フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題を修正 ### Misskey.js - Feat: `/drive/files/create` のリクエストに対応(`multipart/form-data`に対応) - Feat: `/admin/role/create` のロールポリシーの型を修正 ## 2024.5.0 釋出時間: 2024/05/31 ### Note - コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。 - 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。 - 管理者向け権限 `read:admin:show-users` は `read:admin:show-user` に統合されました。必要に応じてAPIトークンを再発行してください。 ### General - Feat: エラートラッキングにSentryを使用できるようになりました - Enhance: URLプレビューの有効化・無効化を設定できるように #13569 - Enhance: アンテナでBotによるノートを除外できるように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545) - Enhance: クリップのノート数を表示するように - Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667) - 猫ユーザーか - botユーザーか - サスペンド済みユーザーか - 鍵アカウントユーザーか - 「アカウントを見つけやすくする」が有効なユーザーか - Enhance: Goneを出さずに終了したサーバーへの配信停止を自動的に行うように - もしそのようなサーバーからから配信が届いた場合には自動的に配信を再開します - Enhance: 配信停止の理由を表示するように - Enhance: サーバーのお問い合わせ先URLを設定できるようになりました - Fix: Play作成時に設定した公開範囲が機能していない問題を修正 - Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 - Fix: みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正 ### Client - Feat: アップロードするファイルの名前をランダム文字列にできるように - Feat: 個別のお知らせにリンクで飛べるように (Based on https://github.com/MisskeyIO/misskey/pull/639) - Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように - Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように - Enhance: リアクション・いいねの総数を表示するように - Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように - Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように - 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました - Enhance: ページのデザインを変更 - Enhance: 2要素認証(ワンタイムパスワード)の入力欄を改善 - Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように - Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように - Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加 - Enhance: 映像・音声の再生にキーボードショートカットが使えるように - Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように - Enhance: リプライにて引用がある場合テキストが空でもノートできるように - 引用したいノートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます - Enhance: フォローするかどうかの確認ダイアログを出せるように - Enhance: Playを手動でリロードできるように - Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように - Enhance: `Ui:C:postForm` および `Ui:C:postFormButton` に `localOnly` と `visibility` を設定できるように - Enhance: AiScriptを0.18.0にバージョンアップ - Enhance: 通常のノートでも、お気に入りに登録したチャンネルにリノートできるように - Enhance: 長いテキストをペーストした際にテキストファイルとして添付するかどうかを選択できるように - Enhance: 新着ノートをサウンドで通知する機能をdeck UIに追加しました - Enhance: コントロールパネルのクイックアクションからファイルを照会できるように - Enhance: コントロールパネルのクイックアクションから通常の照会を行えるように - Fix: 一部のページ内リンクが正しく動作しない問題を修正 - Fix: 周年の実績が閏年を考慮しない問題を修正 - Fix: ローカルURLのプレビューポップアップが左上に表示される - Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459) - Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528) - Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177 - CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。 - Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 - Fix: CWのみの引用リノートが詳細ページで純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: ノート詳細ページにおいてCW付き引用リノートのCWボタンのラベルに「引用」が含まれていない問題を修正 - Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正 - Fix: ダイレクト投稿の宛先が保存されない問題を修正 - Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正 - Fix: ページのOGP URLが間違っているのを修正 - Fix: リバーシの対局を正しく共有できないことがある問題を修正 - Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正 - Fix: 連合なしの状態の読み書きができない問題を修正 - Fix: `/share` で日本語等を含むurlがurlエンコードされない問題を修正 - Fix: ファイルを5つ以上添付してもテキストがないとノートが折りたたまれない問題を修正 ### Server - Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに - Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化) - Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756) - 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります - Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける - Fix: フォローリクエストを作成する際に既存のものは削除するように (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440) - Fix: エンドポイント`notes/translate`のエラーを改善 - Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632) - Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正 - Fix: リプライのみの引用リノートと、CWのみの引用リノートが純粋なリノートとして誤って扱われてしまう問題を修正 - Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606) - Fix: Add Cache-Control to Bull Board - Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 - Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正 - Fix: グローバルタイムラインで返信が表示されないことがある問題を修正 - Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正 - Fix: AP Link等は添付ファイル扱いしないようになど (#13754) - Fix: FTTが有効かつsinceIdのみを指定した場合に帰って来るレスポンスが逆順である問題を修正 - Fix: `/i/notifications`に `includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正 - Fix: 複数idを指定する`users/show`が関係ないユーザを返すことがある問題を修正 - Fix: `/tags` と `/user-tags` が検索エンジンにインデックスされないように - Fix: もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように - センシティブとして連合したファイルは非センシティブとして連合されてもセンシティブとして扱われます ## 2024.3.1 リリース日: 2024/03/02 ### Client - Fix: 絵文字関係の不具合を修正 (#13485) - 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる - Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる - Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487 ## 2024.3.0 リリース日: 2024/03/01 ### General - Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように - デフォルトのメンション上限は20アカウントに設定されます。(管理者はベースロールの設定で変更可能です。) - 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。 - Enhance: 通知がミュート、凍結を考慮するようになりました - Enhance: サーバーごとにモデレーションノートを残せるように - Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 - Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加 - Enhance: 通知の履歴をリセットできるように - Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように ### Client - Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整 - Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題 - Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正 - Fix: チャートのラベルが消えている問題を修正 - Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正 - Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正 - Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正 - Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正 - Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正 ### Server - Enhance: エンドポイント`flash/update`の`flashId`以外のパラメータは必須ではなくなりました - Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正 - Fix: 破損した通知をクライアントに送信しないように - 通知欄が無限にリロードされる問題が改善する可能性があります - Fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題を修正 - Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正 - Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正 - Fix: エンドポイント`admin/emoji/update`の各種修正 - 必須パラメータを`id`または`name`のいずれかのみに - `id`の代わりに`name`で絵文字を指定可能に(`id`・`name`両指定時は従来通り`name`を変更する挙動) - `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正 - Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正 ## 2024.2.0 リリース日: 2024/02/17 ### Note - 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。 ### General - Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加 - Feat: Add support for TrueMail - Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加 - 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります - 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します - Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように - Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正 - Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正 - すべてのリモートユーザーのリアクション一覧を見えないようにします - Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207 - デフォルトは空欄なので適用前と同等の動作になります ### Client - Feat: 新しいゲームを追加 - Feat: 音声・映像プレイヤーを追加 - Feat: 絵文字の詳細ダイアログを追加 - Feat: 枠線をつけるMFM`$[border.width=1,style=solid,color=fff,radius=0 ...]`を追加 - デフォルトで枠線からはみ出る部分が隠されるようにしました。初期と同じ挙動にするには`$[border.noclip`が必要です - Feat: スワイプでタブを切り替えられるように - Enhance: MFM等のコードブロックに全文コピー用のボタンを追加 - Enhance: ハッシュタグ入力時に、本文の末尾の行に何も書かれていない場合は新たにスペースを追加しないように - Enhance: チャンネルノートのピン留めをノートのメニューからできるように - Enhance: 管理者の場合はAPI tokenの発行画面で管理機能に関する権限を付与できるように - Enhance: AiScriptを0.17.0に更新 [CHANGELOG](https://github.com/aiscript-dev/aiscript/blob/bb89d132b633a622d3cb0eff0d0cc7e476c0cfdd/CHANGELOG.md) - 配列の範囲外・非整数のインデックスへの代入が完全禁止になるので注意 - Enhance: 絵文字ピッカー・オートコンプリートで、完全一致した絵文字を優先的に表示するように - Enhance: Playの説明欄にMFMを使えるように - Enhance: チャンネルノートの場合は詳細ページからその前後のノートを見れるように - Enhance: 季節に応じた画面の演出を南半球でも利用できるように - Enhance: タイムラインフィルターの設定をすべて保持できるように - 今までの「TLに他の人への返信を含める」設定は一旦リセットされます - Enhance: タイムラインフィルターに「センシティブなファイルを含むノートを表示」を追加 - Enhance: ノート作成画面のファイル添付メニューから直接ファイルを削除できるように - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように - Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように - Enhance: コードのシンタックスハイライトにテーマを適用できるように - Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように - リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合 - センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合 - ロールが必要な絵文字をリアクションしようとした場合 - Enhance: ページ遷移時にPlayerを閉じるように - Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように - Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように - Enhance: オフライン表示のデザインを改善・多言語対応 - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 - Fix: v2023.12.1で追加された`$[clickable ...]`および`onClickEv`が正しく機能していないのを修正 - Fix: Renoteのキーボードショートカットが機能していなかった問題を修正 - Fix: 投稿フォームでアンケートの日時指定をした状態で再読み込みをすると期日が復元されない問題を修正 - Fix: アンケートを設定したノートを「削除して編集」をするとアンケートの期日が引き継がれず、リセットされてしまう問題を修正 - Fix: デッキのプロファイル作成時に名前を空にできる問題を修正 - Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正 - Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正 - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 - Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 - Fix: 画像をクロップ時、正常に完了できない問題の修正 - Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 - Fix: プロフィールを編集してもリロードするまで反映されない問題を修正 - Fix: エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 - Fix: MkCodeEditorで行がずれていってしまう問題の修正 - Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196 ### Server - Enhance: 連合先のレートリミットを超過した際にリトライするようになりました - Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916) - Enhance: クリップをエクスポートできるように - Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように - Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新 - Enhance: 連合向けのノート配信を軽量化 #13192 - Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正 - Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更 - Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text`が`""`から`null`になるように変更 - Fix: ipv4とipv6の両方が利用可能な環境でallowedPrivateNetworksが設定されていた場合プライベートipの検証ができていなかった問題を修正 - Fix: properly handle cc followers - Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec - Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122 - Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273 ## 2023.12.2 リリース日: 2023/12/28 ### General - v2023.12.1でDockerを利用してサーバーを起動できない問題を修正 ### Client - Enhance: 検索画面においてEnterキー押下で検索できるように ## 2023.12.1 リリース日: 2023/12/27 ### Note - アクセストークンの権限が再整理されたため、一部のAPIが古いAPIトークンでは動作しなくなりました。\ 権限不足になる場合には権限を再設定して再生成してください。 ### General - Enhance: ローカリゼーションの更新 - Fix: 自分のdirect noteがuser list timelineに追加されない ### Client - Feat: AiScript専用のMFM構文`$[clickable.ev=EVENTNAME ...]`を追加。`Mk:C:mfm`のオプション`onClickEv`に関数を渡すと、クリック時に`EVENTNAME`を引数にして呼び出す - Enhance: MFM入力補助ボタンを投稿フォームに表示できるように #12787 - Fix: 一部のモデログ(logYellowでの表示対象)について、表示の色が変わらない問題を修正 - Fix: `fg`/`bg`MFMに長い単語を指定すると、オーバーフローされずはみ出る問題を修正 ### Server - Enhance: センシティブワードの設定がハッシュタグトレンドにも適用されるようになりました - Enhance: `oauth/token`エンドポイントのCORS対応 - Fix: 1702718871541-ffVisibility.jsのdownが壊れている - Fix:「非センシティブのみ(リモートはいいねのみ)」を設定していても、センシティブに設定されたカスタム絵文字をリアクションできる問題を修正 - Fix: ロールアサイン時の通知で,ロールアイコンが縮小されずに表示される問題を修正 - Fix: サードパーティアプリケーションがWebsocket APIに無条件にアクセスできる問題を修正 - Fix: サードパーティアプリケーションがユーザーの許可なしに非公開の情報を見ることができる問題を修正 ## 2023.12.0 發行日:2023/12/23 ### Note - 依存関係の更新に伴い、Node.js 20.10.0が最小要件になりました - 絵文字の追加辞書を既にインストールしている場合は、お手数ですが再インストールのほどお願いします - 絵文字ピッカーにピン留め表示する絵文字設定が「リアクション用」と「絵文字入力用」に分かれました。以前の設定は「リアクション用」として使用されます。 **影響:** それにより、投稿フォームから表示される絵文字ピッカーのピン留め絵文字がリセットされたように感じるかもしれません(新設された"ピン留め(全般)"の設定が使われるため)。 投稿用のピン留め絵文字をアップデート前の状態にするには、以下の手順で操作します。 1. 「設定」メニューに移動し、「絵文字ピッカー」タブを選択します。 2. 「ピン留 (全般)」のタブを選択します。 3. 「リアクション設定から上書きする」ボタンを押すことで、アップデート前の状態に戻すことができます。 ### General - Feat: メールアドレスの認証にverifymail.ioを使えるように (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/971ba07a44550f68d2ba31c62066db2d43a0caed) - Feat: モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能を追加 (cherry-pick from https://github.com/TeamNijimiss/misskey/commit/e0eb5a752f6e5616d6312bb7c9790302f9dbff83) - Feat: TL上からノートが見えなくなるワードミュートであるハードミュートを追加 - Enhance: 指定したドメインのメールアドレスの登録を弾くことができるように - Enhance: 公開ロールにアサインされたときに通知が作成されるように - Enhance: アイコンデコレーションを複数設定できるように - Enhance: アイコンデコレーションの位置を微調整できるように - Enhance: つながりの公開範囲をフォロー/フォロワーで個別に設定可能に #12072 - Enhance: 在地化更新 - Enhance: 依存関係の更新 - Fix: MFM `$[unixtime ]` に不正な値を入力した際に発生する各種エラーを修正 ### Client - Feat: 今日誕生日のフォロー中のユーザーを一覧表示できるウィジェットを追加 - Feat: 画面に雪を降らせられるように - Enhance: MFMのアニメーション要素(`tada`, `jelly`, `twitch`, `shake`, `spin`, `jump`, `bounce`, `rainbow`)に `delay` オプションを追加 - Enhance: センシティブと判断されたウェブサイトのサムネイルを非表示に - ウェブサイトをセンシティブと判断する仕組みが動いていないため、summalyProxyを使用しないと機能しません。 - Enhance: 投稿フォームの絵文字ピッカーをリアクション時に使用するものと同じのを使用するように #12336 #12560 - Enhance: リアクション用ピン留め絵文字と投稿時の絵文字入力用ピン留め絵文字を分けて設定できるように #12560 - Enhance: 絵文字のオートコンプリート機能強化 #12364 - Enhance: ユーザーのRawデータを表示するページが復活 - Enhance: リアクション選択時に音を鳴らせるように - Enhance: サウンドにドライブのファイルを使用できるように - Enhance: ナビゲーションバーに項目「キャッシュを削除」を追加 - Enhance: Shareページで投稿を完了すると、親ウィンドウ(親フレーム)にpostMessageするように - Enhance: チャンネル、クリップ、ページ、Play、ギャラリーにURLのコピーボタンを設置 #11305 - Enhance: ノートプレビューに「内容を隠す」が反映されるように - Enhance: データセーバーでコードハイライトの読み込みを削減できるように - Enhance: データセーバーの適用範囲を個別で設定できるように - 従来のデータセーバーの設定はリセットされます - Enhance: タイムライン上のタブからリスト、アンテナ、チャンネルの管理ページにジャンプできるように - Enhance: ユーザー名、プロフィール、お知らせ、ページの編集画面でMFMや絵文字のオートコンプリートが使用できるように - Enhance: プロフィール、お知らせの編集画面でMFMのプレビューを表示できるように - Enhance: 絵文字の詳細ページに記載される情報を追加 - Enhance: リアクションの表示幅制限を設定可能に - Enhance: Unicode 15.0のサポート - Enhance: コードブロックのハイライト機能を利用するには言語を明示的に指定させるように - MFMでコードブロックを利用する際に意図しないハイライトが起こらないようになりました - 逆に、MFMでコードハイライトを利用したい際は言語を明示的に指定する必要があります (例: ` ```js ` → Javascript, ` ```ais ` → AiScript) - Enhance: 絵文字などのオートコンプリートでShift+Tabを押すと前の候補を選択できるように - Enhance: チャンネルに新規の投稿がある場合にバッジを表示させる - Enhance: サウンド設定に「サウンドを出力しない」と「Misskeyがアクティブな時のみサウンドを出力する」を追加 - Enhance: 設定したタグをトレンドに表示させないようにする項目を管理画面で設定できるように - Enhance: 絵文字ピッカーのカテゴリに「/」を入れることでフォルダ分け表示できるように - Fix: 「設定のバックアップ」で一部の項目がバックアップに含まれていなかった問題を修正 - Fix: ウィジェットのジョブキューにて音声の発音方法変更に追従できていなかったのを修正 #12367 - Fix: コードエディタが正しく表示されない問題を修正 - Fix: プロフィールの「ファイル」にセンシティブな画像がある際のデザインを修正 - Fix: 一度に大量の通知が入った際に通知音が音割れする問題を修正 - Fix: 共有機能をサポートしていないブラウザの場合は共有ボタンを非表示にする #11305 - Fix: 通知のグルーピング設定を変更してもリロードされるまで表示が変わらない問題を修正 #12470 - Fix: 長い名前のチャンネルにおける投稿フォームの表示が崩れる問題を修正 - Fix: セキュリティ向上のためAiScriptの`Mk:apiExternal`を無効化 - Fix: ノート中の絵文字をタップして「リアクションする」からリアクションした際にリアクションサウンドが鳴らない不具合を修正 - Fix: ノート中のリアクションの表示を微調整 #12650 - Fix: AiScriptの`readline`が不正な値を返すことがある問題を修正 - Fix: 投票のみ/画像のみの引用RNが、通知欄でただのRNとして判定されるバグを修正 - Fix: CWをつけて引用RNしても、普通のRNとして扱われてしまうバグを修正しました。 - Fix: 「画像が1枚のみのメディアリストの高さ」を「デフォルト」以外に設定していると、CWの中などに添付された画像が見られないバグを修正 - Fix: DeepL TranslationのPro accountトグルスイッチが表示されていなかったのを修正 - Fix: twitterの埋め込みカード内リンクからリンク先を開けない問題を修正 - Fix: WebKitブラウザー上でも「デバイスの画面を常にオンにする」機能が効くように - Fix: ページ一覧ページの表示がモバイル環境において崩れているのを修正 - Fix: MFMでルビの中のテキストがnyaizeされない問題を修正 ### Server - Enhance: MFM `$[ruby ]` が他ソフトウェアと連合されるように - Enhance: Meilisearchを有効にした検索で、ユーザーのミュートやブロックを考慮するように - Enhance: カスタム絵文字のインポート時の動作を改善 - Fix: 時間経過により無効化されたアンテナを再有効化したとき、サーバ再起動までその状況が反映されないのを修正 #12303 - Fix: ロールタイムラインが保存されない問題を修正 - Fix: api.jsonの生成ロジックを改善 #12402 - Fix: 招待コードが使い回せる問題を修正 - Fix: 特定の条件下でチャンネルやユーザーのノート一覧に最新のノートが表示されなくなる問題を修正 - Fix: 何もノートしていないユーザーのフィードにアクセスするとエラーになる問題を修正 - Fix: リストタイムラインにてミュートが機能しないケースがある問題と、チャンネル投稿がストリーミングで流れてきてしまう問題を修正 #10443 - Fix: 「みつける」のなかにミュートしたユーザが現れてしまう問題を修正 #12383 - Fix: Social/Local/Home Timelineにてインスタンスミュートが効かない問題 - Fix: ユーザのノート一覧にてインスタンスミュートが効かない問題 - Fix: チャンネルのノート一覧にてインスタンスミュートが効かない問題 - Fix: 「みつける」が年越し時に壊れる問題を修正 - Fix: アカウントをブロックした際に、自身のユーザーのページでノートが相手に表示される問題を修正 - Fix: モデレーションログがモデレーターは閲覧できないように修正 - Fix: ハッシュタグのトレンド除外設定が即時に効果を持つように修正 - Fix: HTTP Digestヘッダのアルゴリズム部分に大文字の"SHA-256"しか使えない - Fix: 管理者用APIのアクセス権限が適切に設定されていない問題を修正 ## 2023.11.1 發行日:2023/11/17 ### Note - 修正了惡意第三方可冒充遠端使用者接收任意 Activity 的問題。詳情請參考[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-3f39-6537-3cgc)。 ### General - Feat: 管理員現在可以透過控制台查詢電子郵件地址 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: 能夠使用 Ruby 的 MFM。 - 例: `$[ruby 三須木 みすき]` - Enhance: 可以透過在 MFM 中指定 UNIX 時間來顯示日期和時間 - 例: `$[unixtime 1701356400]` - Enhance: 改進了插件中發生錯誤時的處理 - Enhance: 微調細部的使用者界面 - Fix: 修正了在播放音效時,裝置上播放的影片和音訊會停止的問題 #12339 - Fix: 使用多欄顯示時,修復切換頻道時頻道顯示沒有立即反映的問題 #12236 - Fix: 修正了插件無法重寫貼文顯示的問題 - Fix: 已修復圖示裝飾可能被裁切的問題 - Fix: 修正了按下「在時間軸包含/不包含追隨中所有人的回覆」按鈕時確認不起作用的問題。 - Fix: 更改為未登入時不顯示「新增註解」 #12309 - Fix: 修正了表情符號選擇器中的搜尋不會更新的問題 - 修正了某些情況下貼文不會被nyaize的問題 ### Server - Enhance: 可以設定是否對FTT資料庫執行回退處理 - Fix: 避免在卸載沒有令牌的插件時出現錯誤 - Fix: 即使開啟貼文通知,用戶也將不再收到直接貼文的通知。 - Fix: 修復了在用戶時間軸中選擇「貼文」時,轉發可能混在一起的問題 #12306 - Fix: 修正了在某些情況下發佈到頻道的貼文會混入LTL的現象 - Fix: ActivityPub: 修正了附加資訊中的自訂表情符號未包含在使用者資訊標籤中的問題。 - Fix: 改進了 ActivityPub 的安全性 - Fix: 無法回覆非公開的貼文 ## 2023.11.0 リリース日: 2023/11/05 ### Note - iOS 16.4未満を使用している場合はiOS 16.4以上にアップデートをお願いします ### General - Feat: アイコンデコレーション機能 - サーバーで用意された画像をアイコンに重ねることができます - 画像のテンプレートはこちらです: https://misskey-hub.net/brand-assets/#avatar-decoration - 最大でも黄色いエリア内にデコレーションを収めることを推奨します。 - 画像は512x512pxを推奨します。 - Feat: チャンネル設定にリノート/引用リノートの可否を設定できる項目を追加 - Enhance: アカウント登録時のメールアドレス認証に30分の有効期限を設定 - 有効期限が切れた後であれば、登録時に使用した招待コードを再度利用できるように変更しました。 - ユーザーが誤ったメールアドレスを入力した場合に招待コードが失効してしまう問題が解消されます。 - Enhance: すでにフォローしたすべての人の返信をTLに追加できるように - Enhance: 未読の通知数を表示できるように - Enhance: 通知されず、確認の必要もないお知らせ(silence)を作成可能になりました - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Change: CWを使用する場合、注釈を空にすることは許可されなくなりました ### Client - Feat: プラグイン・テーマを外部サイトから直接インストールできるようになりました - 外部サイトでの実装が必要です。詳細は Misskey Hub をご覧ください https://misskey-hub.net/docs/advanced/publish-on-your-website.html - Feat: 通知をグルーピングして表示するオプション(オプトアウト) - Feat: Misskeyの基本的なチュートリアルを実装 - Feat: スワイプしてタイムラインを再読込できるように - PCの場合は右上のボタンからでも再読込できます - Enhance: タイムラインの自動更新を無効にできるように - Enhance: コードのシンタックスハイライトエンジンをShikiに変更 - AiScriptのシンタックスハイライトに対応 - MFMでAiScriptをハイライトする場合、コードブロックの開始部分を ` ```is ` もしくは ` ```aiscript ` としてください - Enhance: データセーバー有効時はアニメーション付きのアバター画像が停止するように - Enhance: プラグインを削除した際には、使用されていたアクセストークンも同時に削除されるようになりました - Enhance: プラグインで`Plugin:register_note_view_interruptor`を用いてnoteの代わりにnullを返却することでノートを非表示にできるようになりました - Enhance: AiScript関数`Mk:nyaize()`が追加されました - Enhance: 情報→ツール はナビゲーションバーにツールとして独立した項目になりました - Enhance: ノート内の絵文字をクリックすることで、コピーおよびリアクションができるように - Enhance: その他細かなブラッシュアップ - Fix: 投稿フォームでのユーザー変更がプレビューに反映されない問題を修正 - Fix: ユーザーページの ノート > ファイル付き タブにリプライが表示されてしまう - Fix: 「検索」MFMにおいて一部の検索キーワードが正しく認識されない問題を修正 - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 - Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 - Fix: 絵文字ピッカーでバッテリーの絵文字が複数表示される問題を修正 #12197 - Fix: 11以上されているリアクションにおいてツールチップで示されるリアクション数が本来よりも1多い問題を修正 #12174 - Fix: サイレンス状態で公開範囲のパブリックを選択できてしまう問題を修正 #12224 - Fix: In deck layout, replies option is not saved after refresh - Fix: アーカイブしたお知らせがコントロールパネルに表示される問題を修正 - Note: アップデート後、サウンドに関する設定が初期化されます ### Server - Feat: Registry APIがサードパーティから利用可能になりました - Enhance: RedisへのTLのキャッシュ(FTT)をオフにできるように - Enhance: フォローしているチャンネルをフォロー解除した時(またはその逆)、タイムラインに反映される間隔を改善 - Enhance: プロフィールの自己紹介欄のMFMが連合するようになりました - 相手がMisskey v2023.11.0以降である必要があります - Enhance: チャンネル取得時のパフォーマンスを向上 - Enhance: AP: ApplicationタイプのアカウントをisBotとして扱うように - Fix: リストTLに自分のフォロワー限定投稿が含まれない問題を修正 - Fix: ローカルタイムラインに投稿者自身の投稿への返信が含まれない問題を修正 - Fix: 自分のフォローしているユーザーの自分のフォローしていないユーザーの visibility: followers な投稿への返信がストリーミングで流れてくる問題を修正 - Fix: RedisへのTLキャッシュが有効の場合にHTL/LTL/STLが空になることがある問題を修正 - Fix: STLでフォローしていないチャンネルが取得される問題を修正 - Fix: `hashtags/trend`にてRedisからトレンドの情報が取得できない際にInternal Server Errorになる問題を修正 - Fix: HTLをリロードまたは遡行したとき、フォローしているチャンネルのノートが含まれない問題を修正 #11765 #12181 - Fix: リノートをリノートできるのを修正 - Fix: アクセストークンを削除すると、通知が取得できなくなる場合がある問題を修正 - Fix: 自身の宛先なしダイレクト投稿がストリーミングで流れてこない問題を修正 - Fix: サーバーサイドからのテスト通知を正しく行えるように修正 - Fix: GTLの「リノートを表示」オプションが機能しないのを修正 #1223 ## 2023.10.2 リリース日: 2023/10/21 ### General - Feat: アンテナでローカルの投稿のみ収集できるようになりました - Feat: サーバーサイレンス機能が追加されました - Enhance: 新規にフォローした人の返信をデフォルトでTLに追加できるオプションを追加 - Enhance: HTL/LTL/STLを2023.10.0アップデート以前まで遡れるように - Enhance: フォロー/フォロー解除したときに過去分のHTLにも含まれる投稿が反映されるように - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 ### Client - Enhance: TLの返信表示オプションを記憶するように - Enhance: 投稿されてから時間が経過しているノートであることを視覚的に分かりやすく ### Server - Enhance: タイムライン取得時のパフォーマンスを向上 - Enhance: ストリーミングAPIのパフォーマンスを向上 - Fix: users/notesでDBから参照した際にチャンネル投稿のみ取得される問題を修正 - Fix: コントロールパネルの設定項目が正しく保存できない問題を修正 - Fix: 管理者権限のロールを持っていても一部のAPIが使用できないことがある問題を修正 - Change: ユーザーのisCatがtrueでも、サーバーではnyaizeが行われなくなりました - isCatな場合、クライアントでnyaize処理を行うことを推奨します ## 2023.10.1 リリース日: 2023/10/12 ### General - Enhance: ローカルタイムライン、ソーシャルタイムラインで返信を含むかどうか設定可能に ### Client - Fix: 絵文字ピッカーで横に長いカスタム絵文字が見切れる問題を修正 ### Server - Fix: フォローしているユーザーからの自分の投稿への返信がタイムラインに含まれない問題を修正 - Fix: users/notesでセンシティブチャンネルの投稿が含まれる場合がある問題を修正 ## 2023.10.0 リリース日: 2023/10/10 ### NOTE - 2023.9.2で導入されたノート編集機能はクオリティの高い実装が困難であることが判明したため撤回されました - アップデートを行うと、タイムラインが一時的にリセットされます ### Changes - API: users/notes, notes/local-timeline で fileType 指定はできなくなりました - API: notes/featured でページネーションは他APIと同様 untilId を使って行うようになりました ### General - Feat: ユーザーごとに他ユーザーへの返信をタイムラインに含めるか設定可能になりました - Feat: ユーザーリスト内のメンバーごとに他ユーザーへの返信をユーザーリストタイムラインに含めるか設定可能になりました - Feat: ユーザーごとのハイライト - Feat: プライバシーポリシー・運営者情報(Impressum)の指定が可能になりました - プライバシーポリシーはサーバー登録時に同意確認が入ります - Feat: タイムラインがリアルタイム更新中に広告を挿入できるようになりました - デフォルトは無効 - 頻度はコントロールパネルから設定できます。運営中のサーバーのTLの流速を見て、最適な値を指定してください。 - Enhance: ソフトワードミュートとハードワードミュートは統合されました - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 - Enhance: 依存関係の更新 - Fix: ダイレクト投稿をリノートできてしまう問題を修正 - Fix: ユーザーリストTLにチャンネル投稿が含まれる問題を修正 ### Client - Feat: 「ファイルの詳細」ページを追加 - ドライブのファイルの拡大プレビューができるように - ファイルが添付されたノートの一覧が表示できるように - Enhance: 二要素認証のバックアップコード一覧をテキストファイルでダウンロード可能に - Enhance: 動画再生時のデフォルトボリュームを30%に - Fix: リアクションしたユーザ一覧のUIが稀に左上に残ってしまう不具合を修正 ### Server - Enhance: drive/files/attached-notes がページネーションに対応しました - Enhance: タイムライン取得時のパフォーマンスを大幅に向上 - Enhance: ハイライト取得時のパフォーマンスを大幅に向上 - Enhance: トレンドハッシュタグ取得時のパフォーマンスを大幅に向上 - Enhance: WebSocket接続が多い場合のパフォーマンスを向上 - Enhance: 不要なPostgreSQLのインデックスを削除しパフォーマンスを向上 - Fix: 連合なしアンケートに投票をするとUpdateがリモートに配信されてしまうのを修正 - Fix: nodeinfoにおいてCORS用のヘッダーが設定されていないのを修正 - Fix: 同じ種類のTLのストリーミングを複数接続できない問題を修正 - Fix: アンテナTLを途中までしかページネーションできなくなることがある問題を修正 - Fix: 「ファイル付きのみ」のTLでファイル無しの新着ノートが流れる問題を修正 - Fix: プロセスが終了しない、あるいは非常に時間がかかる問題を修正 ## 2023.9.3 リリース日: 2023/09/30 ### General - Enhance: ノートの翻訳機能の利用可否をロールで設定可能に ### Client - Enhance: AiScriptでホストのアドレスを参照する定数`SERVER_URL`を追加 - Enhance: モデレーションログ機能の強化 - Enhance: ローカリゼーションの更新 ### Server - Fix: Redisに古いバージョンのキャッシュが残っている場合、キャッシュが消えるまでの間通知が届かなくなる問題を修正 - Fix: 後方互換性の修正 ## 2023.9.2 リリース日: 2023/09/29 ### General - Feat: ノートの編集をできるように - ロールで編集可否を設定可能 - Feat: 通知を種類ごとに 全員から受け取る/フォロー中のユーザーのみ受け取る/フォロワーのみ受け取る/相互のみ受け取る/指定したリストのメンバーのみ受け取る/受け取らない から選べるように - Enhance: タイムラインからRenoteを除外するオプションを追加 - Enhance: ユーザーページのノート一覧でRenoteを除外できるように - Enhance: タイムラインでファイルが添付されたノートのみ表示するオプションを追加 - Enhance: モデレーションログ機能の強化 - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Enhance: Plugin:register_post_form_actionを用いてCWを取得・変更できるように - Enhance: admin/ad/listにて掲載中の広告が絞り込めるように - Enhance: AiScriptにリモートサーバーのAPIを叩く用の関数を追加(`Mk:apiExternal`) ### Server - Enhance: MasterプロセスのPIDを書き出せるように - Enhance: admin/ad/createにてレスポンス200、設定した広告情報を返すように ## 2023.9.1 リリース日: 2023/09/25 ### General - Enhance: モデレーションログ機能の強化 ### Client - Fix: ノートのメニューにある「詳細」ボタンの表示がログイン/ログアウト状態で統一されていない問題を修正 ### Server - Fix: お知らせのページネーションが機能しない - Fix: 「ユーザーの新規投稿」の通知設定を切り替えるとサーバー内部エラーが出る ## 2023.9.0 リリース日: 2023/09/24 ### Note - meilisearchを使用する場合、v1.2以上が必要です ### General - Feat: OAuth 2.0のサポート - Feat: お知らせ機能の強化 - ユーザー個別のお知らせを作成可能に - お知らせのバナー表示やダイアログ表示が可能に - お知らせのアイコンを設定可能に - Feat: チャンネルをセンシティブ指定できるようになりました - センシティブチャンネルのNoteのReNoteはデフォルトでHome TLに流れるようになりました - センシティブチャンネルのノートはユーザープロフィールに表示されません - Feat: 二要素認証のバックアップコードが生成されるようになりました - ref. https://github.com/MisskeyIO/misskey/pull/121 - Feat: 二要素認証でパスキーをサポートするようになりました - Feat: 指定したユーザーが投稿したときに通知できるようになりました - Feat: プロフィールでのリンク検証 - Feat: モデレーションログ機能 - Feat: 通知をテストできるようになりました - Feat: PWAのアイコンが設定できるようになりました - Enhance: サーバー名の略称が設定できるようになりました - Enhance: アンテナの受信ソースに指定したユーザを除外するものを追加 - Enhance: 二要素認証設定時のセキュリティを強化 - パスワード入力が必要な操作を行う際、二要素認証が有効であれば確認コードの入力も必要になりました - Enhance: manifest.jsonをオーバーライド可能に - Enhance: 依存関係の更新 - Enhance: ローカリゼーションの更新 ### Client - Feat: 任意のユーザーリストをタイムラインページにピン留めできるように - 設定->クライアント設定->全般 から設定可能です - Feat: Playで直接投稿フォームを埋め込めるように(`Ui:C:postForm`) - Feat: クライアントを起動している間、デバイスの画面が自動でオフになるのを防ぐオプションを追加 - Feat: 新しい実績を追加 - Enhance: ノート詳細ページでリノート一覧、リアクション一覧タブを追加 - ノートのメニューからは当該項目は消えました - Enhance: センシティブなメディアを目立たせる設定を追加 - Enhance: プロフィールにその人が作ったPlayの一覧出せるように - Enhance: メニューのスイッチの動作を改善 - Enhance: 絵文字ピッカーの検索の表示件数を100件に増加 - Enhance: 投稿フォームのプレビューの表示状態を記憶するように - Enhance: ユーザーメニューでスイッチでユーザーリストに追加・削除できるように - Enhance: 自分が押したリアクションのデザインを改善 - Enhance: ノート検索にローカルのみ検索可能なオプションの追加 - Enhance: Renote自体を通報できるように - Enhance: データセーバーモードの強化 - Enhance: Renoteを管理者権限で削除可能に - Enhance: `$[rainbow ]`記法が、動きのあるMFMが無効になっていても使用できるようになりました - Enhance: Playの操作を行うAPI TokenをAPIコンソールから発行できるように - Enhance: リアクションの表示サイズをより大きくできるように - Enhance: AiScriptを0.16.0に更新 - Enhance: AiScriptからMisskeyサーバーAPIを呼び出す際の制限を撤廃 - Enhance: AiScriptで`LOCALE`として現在の設定言語を取得できるように - Enhance: Mk:apiが失敗した時にエラー型の値(AiScript 0.16.0で追加)を返すように - Enhance: ScratchpadでAsync:系関数やボタンのコールバックなどのエラーにもダイアログを出すように(試験的なためPlayなどには未実装) - Enhance: ノート詳細ページ読み込み時のパフォーマンスが向上しました - Enhance: タイムラインでリスト/アンテナ選択時のパフォーマンスを改善 - Enhance: 「Moderation note」、「Add moderation note」をローカライズできるように - Enhance: プラグインのソースコードを確認・コピーできるように - Enhance: 細かなデザインの調整 - Fix: サーバー情報画面(`/instance-info/{domain}`)でブロックができないのを修正 - Fix: 未読のお知らせの「わかった」をクリック・タップしてもその場で「わかった」が消えない問題を修正 - Fix: iOSで画面を回転させるとテキストサイズが変わる問題を修正 - Fix: word mute for sub note is not applied - Fix: タイムラインを下にスクロールしてノート画面に移動して再び戻ったら以前のスクロール位置を失う問題を修正 - Fix: Misskeyプラグインをインストールする際のAiScriptバージョンのチェックが0.14.0以降に対応していない問題を修正 - Fix: 他のサーバーのユーザーへ「メッセージを送信」した時の初期テキストのメンションが間違っている問題を修正 - Fix: 環境によってはMisskey Webが開けない問題を修正 - Fix: プラグインの権限リストが見れない問題を修正 - Fix: 複数の階層があるメニューで、短くタップすると正常に動かない場合がある問題を修正 - Fix: アニメーションがオフのとき、スマホで子メニューの選択ができない問題を修正 - Fix: ドロワーメニューで、親メニュー項目をマウスでホバーすると子メニューが表示されてしまう問題を修正 - Fix: AiScriptでMk:apiが外部と通信できる問題を修正 ### Server - Change: cacheRemoteFilesの初期値はfalseになりました - Enhance: ファイルアップロード時等にファイル名の拡張子を修正する関数(correctFilename)の挙動を改善 - Enhance: Webhookのペイロードにサーバーのurlが含まれるようになりました - Enhance: Webhook設定でsecretを空に出来るように - Enhance: 使われていないアンテナの自動停止を設定可能に - Enhance: nodeinfo 2.1対応 - Enhance: 自分へのメンション一覧を取得する際のパフォーマンスを向上 - Enhance: Docker環境でjemallocを使用することでメモリ使用量を削減 - Enhance: ID生成方式としてaidxを追加、かつデフォルトに - Enhance: Add address bind config option (outgoingAddress) - Fix: MK_ONLY_SERVERオプションを指定した際にクラッシュする問題を修正 - Fix: notes/reactionsのページネーションが機能しない問題を修正 - Fix: ノート検索 `notes/search` にてhostを指定した際に検索結果に反映されるように - Fix: 一部のfeatured noteを照会できない問題を修正 - Fix: muteがapiからのuser list timeline取得で機能しない問題を修正 - Fix: ジョブキュー管理画面の認証を回避できる問題を修正 - Fix: 一部のサーバー内部エラーがスタックトレースを返さないように修正 - Fix: 一部のリモートユーザーをフォローすることができない問題を修正 ## 13.14.2 リリース日: 2023/07/27 ### Client - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように - URL取得変数を関数に変更 CURRENT_URL -> Mk:url() - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正 - Fix: 一部モーダルダイアログでスクロールできない問題を修正 - Fix: Selecting all emojis in Custom emoji is impossible - Fix: PhotoSwipeによるメモリリークの修正 ### Server - Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正 - Fix: 外部サーバーの投稿がタイムラインに表示されないことがある問題を修正 ## 13.14.1 リリース日: 2023/07/21 ### General - 招待機能を改善しました - 過去に発行した招待コードを確認できるようになりました - ロールごとに招待コードの発行数制限と制限対象期間、有効期限を設定できるようになりました - 招待コードを作成したユーザーと使用したユーザーを確認できるようになりました - ユーザーにロールが期限付きでアサインされている場合、その期限をユーザーのモデレーションページで確認できるようになりました - identicon生成を無効にしてパフォーマンスを向上させることができるようになりました - サーバーのマシン情報の公開を無効にしてパフォーマンスを向上させることができるようになりました ### Client - deck UIのカラムのメニューからアンテナとリストの編集画面を開けるように - ドライブファイルのメニューで画像をクロップできるように - 画像を動画と同様に簡単に隠せるように - Enhance: ノートの埋め込みが複数画像と動画を表示されるように - オリジナル画像を保持せずにアップロードする場合webpでアップロードされるように(Safari以外) - 見たことのあるRenoteを省略して表示をオンのときに自分のnoteのrenoteを省略するように - フォルダーやファイルに対しても開発者モード使用時、IDをコピーできるように - 引用対象を「もっと見る」で展開した場合、「閉じる」で畳めるように - プロフィールURLをコピーできるボタンを追加 #11190 - `CURRENT_URL`で現在表示中のURLを取得できるように(AiScript) - ユーザーのContextMenuに「アンテナに追加」ボタンを追加 - フォローやお気に入り登録をしていないチャンネルを開く時は概要ページを開くように - 画面ビューワをタップした場合、マウスクリックと同様に画像ビューワを閉じるように - オフライン時の画面にリロードボタンを追加 - Renote時に公開範囲のデフォルト設定が適用されるように - Deckで非ルートページにアクセスした際に簡易UIで表示しない設定を追加 - ロール設定画面でロールIDを確認できるように - コンテキストメニュー表示時のパフォーマンスを改善 - フォロー/フォロワー非公開時の表示を改善 - 本文にMFMが含まれている場合に自動でたたまれる機能が、返信先や引用RNにも適用されるように - position は対象外になりました - AiScriptを0.15.0に更新 - Fix: サーバーメトリクスが90度傾いている - Fix: 非ログイン時にクレデンシャルが必要なページに行くとエラーが出る問題を修正 - Fix: sparkle内にリンクを入れるとクリック不能になる問題の修正 - Fix: ZenUIでポップアップの表示位置がおかしい問題を修正 - Fix: ページ遷移でスクロール位置が保持されない問題を修正 - Fix: フォルダーのページネーションが機能しない #11180 - Fix: 長い文章を投稿する際、プレビューが画面からはみ出る問題を修正 - Fix: システムフォント設定が正しく反映されない問題を修正 - Fix: アンケート終了時のプッシュ通知が正しく表示されない問題を修正 - Fix: MasterVolumeが0の時だけでなく各通知音の音量設定が0のときも、HTMLAudioElement.playが実行されないように変更 ### Server - JSON.parse の回数を削減することで、ストリーミングのパフォーマンスを向上しました - nsfwjs のモデルロードを排他することで、重複ロードによってメモリ使用量が増加しないように - 連合の配送ジョブのパフォーマンスを向上(ロック機構の見直し、Redisキャッシュの活用) - featuredノートのsignedGet回数を減らしました - ActivityPubの署名用鍵長を2048bitに変更しパフォーマンスを向上(新規アカウントのみ) - リモートサーバーのセンシティブなファイルのキャッシュだけを無効化できるオプションを追加 - MeilisearchにIndexするノートの範囲を設定できるように - Export notes with file detail - Add unix socket support - 設定ファイルでioredisの全てのオプションを指定可能に - Fix: エクスポートしたカスタム絵文字のzipが大きいと読み込めない問題を修正 - Fix: リモートサーバーに無意味なActivityPubの配信を行うことがあるのを修正 - Fix: Remove Meilisearch index when notes are deleted - Fix: 非英語環境でのPostgreSQLのエラーハンドリングを修正 - Fix: インスタンスのアイコンがbase64の場合の挙動を修正 - Fix: ローカルの `Person` を指す `acct` URI を解析するときのバグを修正しました - Fix: 無効化されたアンテナが再度有効化されないことがある問題を修正 ## 13.13.2 リリース日: 2023/06/13 ### General - エラー時や項目が存在しないときなどのアイコン画像をサーバー管理者が設定できるように - ロールが付与されているユーザーリストを非公開にできるように - サーバーの負荷が非常に高いため、ユーザー統計表示機能を削除しました ### Client - Fix: タブがバックグラウンドでもstreamが切断されないように ### Server - Fix: キャッシュが溜まり続けないように ## 13.13.1 リリース日: 2023/06/06 ### Client - Fix: タブがアクティブな間はstreamが切断されないように ### Server - Fix: api/metaで`TypeError: JSON5.parse is not a function`エラーが発生する問題を修正 ## 13.13.0 リリース日: 2023/06/05 ### General - カスタム絵文字ごとにそれをリアクションとして使えるロールを設定できるように - カスタム絵文字ごとに連合するかどうか設定できるように - カスタム絵文字ごとにセンシティブフラグを設定できるように - センシティブなカスタム絵文字のリアクションを受け入れない設定が可能に - タイムラインにフォロイーの行った他人へのリプライを含めるかどうかの設定をアカウントに保存するのをやめるように - 今後はAPI呼び出し時およびストリーミング接続時に設定するようになります - リストを公開できるようになりました ### Client - リアクションの取り消し/変更時に確認ダイアログを出すように - 開発者モードを追加 - AiScriptを0.13.3に更新 - Deck UIを使用している場合、`/`以外にアクセスした際にZen UIで表示するように - メインカラムを設置していない場合の問題を解決 - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 - サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 - Fix: ロールタイムラインにて全ての投稿が流れてしまう問題の修正 - Fix: 「アクセストークンの管理」画面でアプリの情報が表示されない問題の修正 - Fix: Firefoxにおける絵文字ピッカーのTabキーフォーカス問題の修正 - Fix: フォローボタンがテーマのカラースキームによって視認性が悪くなる問題を修正 - 新しいプロパティ `fgOnWhite` が追加されました ### Server - bullをbull-mqにアップグレードし、ジョブキューのパフォーマンスを改善 - ストリーミングのパフォーマンスを改善 - Fix: 無効化されたアンテナにアクセスがあった際に再度有効化するように - Fix: お知らせの画像URLを空にできない問題を修正 - Fix: i/notificationsのsinceIdが機能しない問題を修正 - Fix: pageのピン留めを解除することができない問題を修正 ## 13.12.2 リリース日: 2023/05/12 ### NOTE Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io` 過去に作成された`notes`インデックスは、`---notes`にリネームが必要です。例: `misskey-io---notes` ### General - 投稿したコンテンツのAIによる学習を軽減するオプションを追加 ### Client - ユーザーを指定してのノート検索が可能に - アカウント初期設定ウィザードにプライバシー設定を追加 - リテンション率チャートに折れ線グラフを追加 - Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正 - Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正 - Fix: カラーバーがリプライには表示されないのを修正 - Fix: チャンネル内の検索ボックスが挙動不審な問題を修正 - Fix: リテンションチャートのレンダリングを修正 - Fix: リアクションエフェクトのレンダリングの問題を修正 ### Server - センシティブワードの登録にAnd、正規表現が使用できるようになりました。 - Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正 ## 13.12.1 リリース日: 2023/05/09 ### Client - プロフィール画面におけるモデレーションノートの表示を調整 - Fix: 一部ダイアログが表示されない問題を修正 - Fix: MkUserInfoのフォローボタンが変な位置にある問題を修正 ### Server - Fix: リモートサーバーの情報が更新できない問題を修正 - Fix: 13.11を経験しない状態で13.12にアップデートした場合ユーザープロフィール関連の画像が消失する問題を修正 ## 13.12.0 リリース日: 2023/05/09 ### NOTE - Node.js 18.6.0以上が必要になりました ### General - アカウントの引っ越し(フォロワー引き継ぎ)に対応 - Meilisearchを全文検索に使用できるようになりました - 新規登録前に簡潔なルールをユーザーに表示できる、サーバールール機能を追加 - ユーザーへの自分用メモ機能 - ユーザーに対して、自分だけが見られるメモを追加できるようになりました。 (自分自身に対してもメモを追加できます。) - ユーザーメニューから追加できます。 (デスクトップ表示ではusernameの右側のボタンからも追加可能) - チャンネルに色を設定できるようになりました。各ノートに設定した色のインジケーターが表示されます。 - チャンネルをアーカイブできるようになりました。 - アーカイブすると、チャンネル一覧や検索結果に表示されなくなり、新たな書き込みもできなくなります。 - アンテナのエクスポート・インポートができるようになりました - ロールタイムラインをロールごとに表示するかどうかの選択できるようになりました。 - デフォルトがオフになるので、ロールタイムラインを表示する場合はオンにしてください。 - ロールに強制的にNSFWを付与するポリシーを追加 - アップロード済みのファイルはNSFWにならない為注意してください。 - モデレーションノートがユーザーのプロフィールページからも閲覧および編集できるようになりました。 - カスタム絵文字のライセンスを複数でセットできるようになりました。 - 管理者が予約ユーザー名を設定できるようになりました。 - Fix: フォローリクエストの通知が残る問題を修正 ### Client - アカウント作成時に初期設定ウィザードを表示するように - チャンネル内検索ができるように - チャンネル検索ですべてのチャンネルの取得/表示ができるように - 通知の表示をカスタマイズできるように - ドライブのファイル一覧から直接ノートを作成できるように - ノートメニューからRenoteしたユーザーの一覧を見れるように - コントロールパネルのカスタム絵文字ページおよびaboutのカスタム絵文字の検索インプットで、`:emojiname1::emojiname2:`のように検索して絵文字を検索できるように - 絵文字ピッカーから入力可能になります - データセーバーモードを追加 - 画像が全て隠れた状態で表示されるようになります - 閲覧注意設定された画像は表示した状態でもそれが閲覧注意だと分かる表示をするように - モデレーターはノートに添付された画像上から直接NSFW設定できるように - プロフィール設定「追加情報」の項目の削除と並び替えができるように - 新しい実績を追加 - AiScriptを0.13.2に更新 - Fix: AiScript APIのMk:dialogで何も返していなかったのをNULLを返すように修正 - Fix: 1:1ではない画像のリアクション通知バッジが左や上に寄ってしまっていたのを中央に来るように修正 - Fix: リアクションをホバーした時のユーザーリストで猫耳が切れてしまっていた問題を修正 - Fix: NSFWメディアの上に表示された「もっと見る」ボタンが押しづらい問題を修正 ### Server - channel/searchのqueryが空の場合に全てのチャンネルを返すように変更 - 環境変数MISSKEY_CONFIG_YMLで設定ファイルをdefault.ymlから変更可能に - Fix: 他のサーバーの情報が取得できないことがある問題を修正 - Fix: エクスポートデータの拡張子がunknownになる問題を修正 - Fix: Content-Dispositionのパースでエラーが発生した場合にダウンロードが完了しない問題を修正 - Fix: API: i/update avatarIdとbannerIdにnullを渡した時、画像がリセットされない問題を修正 - Fix: .wav, .flacが再生できない問題を修正(新しくアップロードされたファイルのみ修正が適用されます) - Fix: 凍結されたユーザーが一部APIのレスポンスに含まれる問題を修正 - Fix: メモリの使用量を`used - buffers - cached`ではなく`total - available`で求めるように(環境によって正常に計測できていなかったため) ## 13.11.3 リリース日: 2023/04/13 ### General - 指定したロールを持つユーザーのノートのみが流れるロールタイムラインを追加 - Deckのカラムとしても追加可能 - カスタム絵文字関連の改善 - ノートなどに含まれるemojis(populateEmojiの結果)は(プロキシされたURLではなく)オリジナルのURLを指すように - MFMでx3/x4もしくはscale.x/yが2.5以上に指定されていた場合にはオリジナル品質の絵文字を使用するように - カスタム絵文字でリアクションできないことがある問題を修正 ### Client - チャンネルのピン留めされたノートの順番が正しくない問題を修正 ### Server - フォローインポートなどでの大量のフォロー等操作をキューイングするように #10544 @nmkj-io - Misskey Webでのサーバーサイドエラー画面を改善 - Misskey Webでのサーバーサイドエラーのログが残るように - ノート作成時のアンテナ追加パフォーマンスを改善 - アンテナとロールTLのuntil/sinceプロパティが動くように ## 13.11.2 リリース日: 2023/04/11 ### Note - 13.11.0または13.11.1から13.11.2以降にアップデートする場合、Redisのカスタム絵文字のキャッシュを削除する必要があります(https://github.com/misskey-dev/misskey/issues/10502#issuecomment-1502790755 参照) ### General - チャンネルの検索用ページの追加 ### Client - 常に広告を見られるオプションを追加 - ユーザーページの画像一覧が表示されない問題を修正 - webhook, 連携アプリ一覧でコンテンツが重複して表示される問題を修正 - iPhoneで絵文字ピッカーの表示が崩れる問題を修正 - iPhoneでウィジェットドロワーの「ウィジェットを編集」が押しにくい問題を修正 - 投稿フォームのデザインを調整 - ギャラリーの人気の投稿が無限にページングされる問題を修正 ### Server - channels/search Endpoint APIの追加 - APIパラメータサイズ上限を32kbから1mbに緩和 - プッシュ通知送信時のパフォーマンスを改善 - ローカルのカスタム絵文字のキャッシュが効いていなかった問題を修正 - アンテナのノート、チャンネルのノート、通知が正常に作成できないことがある問題を修正 - ストリーミングのLTLチャンネルでサーバー側にエラーログが出るのを修正 ### Service Worker - 「通知が既読になったらプッシュ通知を削除する」を復活 - 「プッシュ通知が更新されました」の挙動を変えた(ホストとバージョンを表示するようにし、一定時間後の削除は行わないように) - プッシュ通知が実績を解除 (achievementEarned) に対応 - プッシュ通知のアクションから既存のクライアントの投稿フォームを開くことになった際の挙動を修正 - たくさんのプッシュ通知を閉じた際、その通知の数だけnotifications/mark-all-as-readを叩くのをやめるように ## 13.11.1 リリース日: 2023/04/09 ### General - チャンネルの投稿を過去までさかのぼれるように ### Client - PWA時の絵文字ピッカーの位置をホームバーに重ならないように調整 - リスト管理の画面でリストが無限に読み込まれる問題を修正 - 自分のクリップが無限に読み込まれる問題を修正 - チャンネルのお気に入りが無限に読み込まれる問題を修正 - さがすのローカルユーザー(ピンどめ)が無限に生成される問題を修正 - チャンネルを新規作成できない問題を修正 - ユーザープレビューが表示されない問題を修正 ### Server - 通知読み込みでエラーが発生する場合がある問題を修正 - リアクションできないことがある問題を修正 - IDをaid以外に設定している場合の問題を修正 - 連合しているインスタンスについて予期せず配送が全て停止されることがある問題を修正 ## 13.11.0 リリース日: 2023/04/08 ### NOTE - このバージョンからRedis 7.xが必要です。 - アップデートを行うと全ての通知およびアンテナのノートはリセットされます。 ### General - チャンネルをお気に入りに登録できるように - タイムラインのアンテナ選択などでは、フォローしているアンテナの代わりにお気に入りしたアンテナが表示されるようになっています。チャンネルをお気に入りに登録するには、当該チャンネルのページ→概要→⭐️のボタンを押します。 - チャンネルにノートをピン留めできるように ### Client - 投稿フォームのデザインを改善 - 検索ページでURLを入力した際に照会したときと同等の挙動をするように - ノートのリアクションを大きく表示するオプションを追加 - ギャラリー一覧にメディア表示と同じように NSFW 設定を反映するように(ホバーで表示) - オブジェクトストレージの設定画面を分かりやすく - 広告・お知らせが新規登録時に増殖しないように - 「にゃああああああああああああああ!!!!!!!!!!!!」 (`isCat`) 有効時にアバターに表示される猫耳について挙動を変更 - 「UIにぼかし効果を使用」 (`useBlurEffect`) で次の挙動が有効になります - 猫耳のアバター内部部分をぼかしでマスク表示してより猫耳っぽく見えるように - 「UIのアニメーションを減らす」 (`reduceAnimation`) で猫耳を撫でられなくなります - Add Minimizing ("folding") of windows ### Server - PostgreSQLのレプリケーション対応 - 設定ファイルの `dbReplications` および `dbSlaves` にて設定できます - イベント用Redisを別サーバーに分離できるように - ジョブキュー用Redisを別サーバーに分離できるように - サーバーの全体的なパフォーマンスを向上 - ノート作成時のパフォーマンスを向上 - アンテナのタイムライン取得時のパフォーマンスを向上 - チャンネルのタイムライン取得時のパフォーマンスを向上 - 通知に関する全体的なパフォーマンスを向上 - webhookがcontent-type text/plain;charset=UTF-8 で飛んでくる問題を修正 ## 13.10.3 リリース日: 2023/03/25 ### General - コンディショナルロールの条件に「投稿数が~以下」「投稿数が~以上」を追加 - リアクション非対応AP実装からのLikeアクティビティの解釈を👍から♥に ### Client - クリップボタンをノートアクションに追加できるように - センシティブワードの一覧にピン留めユーザーのIDが表示される問題を修正 ### Server - リモートユーザーのチャート生成を無効にするオプションを追加 - リモートサーバーのチャート生成を無効にするオプションを追加 - ドライブのチャートはローカルユーザーのみ生成するように - 空のアンテナが作成できるのを修正 ## 13.10.2 リリース日: 2023/03/22 ### Server - 絵文字を編集すると保存できないことがある問題を修正 ### Client - ドライブファイルのメニューが正常に動作しない問題を修正 ## 13.10.1 リリース日: 2023/03/22 ### Client - Misskey PlayのPlayボタンを押した時にエラーが発生する問題を修正 ## 13.10.0 リリース日: 2023/03/22 ### General - ユーザーごとにRenoteをミュートできるように - ノートごとに絵文字リアクションを受け取るか設定できるように - クリップをお気に入りに登録できるように - ノート検索の利用可否をロールで制御可能に(デフォルトでオフ) - ロールの並び順を設定可能に - カスタム絵文字にライセンス情報を付与できるように - 指定した文字列を含む投稿の公開範囲をホームにできるように - 使われてないアンテナは自動停止されるように ### Client - 設定から自分のロールを確認できるように - 広告一覧ページを追加 - ドライブクリーナーを追加 - DM作成時にメンションも含むように - フォロー申請のボタンのデザインを改善 - 付箋ウィジェットの高さを設定可能に - APオブジェクトを入力してフェッチする機能とユーザーやノートの検索機能を分離 - ナビゲーションバーの項目に「プロフィール」を追加できるように - ナビゲーションバーのカスタマイズをドラッグ&ドロップで行えるように - ジョブキューの再試行をワンクリックでできるように - AiScriptを0.13.1に更新 - oEmbedをサポートしているウェブサイトのプレビューができるように - YouTubeをoEmbedでロードし、プレビューで共有ボタンを押すとOSの共有画面がでるように - ([FirefoxでSpotifyのプレビューを開けるとフルサイズじゃなくプレビューサイズだけ再生できる問題](https://bugzilla.mozilla.org/show_bug.cgi?id=1792395)があります) - (すでにブラウザーでキャッシュされたリンクに対しては以前のプレビュー行動が行われてます。その場合、ブラウザーのキャッシュをクリアしてまた試してください。) - プロフィールで設定した情報が削除できない問題を修正 - ロールで広告を無効にするとadmin/adsでプレビューがでてこない問題を修正 - /api-consoleページにアクセスすると404が出る問題を修正 - Safariでプラグインが複数ある場合に正常に読み込まれない問題を修正 - Bookwyrmのユーザーのプロフィールページで「リモートで表示」をタップしても反応がない問題を修正 - 非ログイン時の「Misskeyについて」の表示を修正 - PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正 ### Server - OpenAPIエンドポイントを復旧 - WebP/AVIF/JPEGのweb公開用画像は、サーバーサイドではJPEGではなくWebPに変換するように - アニメーション画像のサムネイルを生成するように - アクティブユーザー数チャートの記録上限値を拡張 - Playのソースコード上限文字数を2倍に拡張 - 配送先サーバーが410 Goneで応答してきた場合は自動で配送停止をするように - avatarBlurHash/bannerBlurHashの型をstringに限定 - タイムライン取得時のパフォーマンスを改善 - SMTP Login id length is too short - API上で`visibility`を`followers`に設定してrenoteすると連合や削除で不具合が発生する問題を修正 - AWS S3からのファイル削除でNoSuchKeyエラーが出ると進めらない状態になる問題を修正 - `disableCache: true`を設定している場合に絵文字管理操作でエラーが出る問題を修正 - リテンション分析が上手く機能しないことがあるのを修正 - 空のアンテナが作成できないように修正 - 特定の条件で通報が見れない問題を修正 - 絵文字の名前に任意の文字が使用できる問題を修正 ## 13.9.2 リリース日: 2023/03/06 ### Improvements - クリップ、チャンネルページに共有ボタンを追加 - チャンネルでタイムライン上部に投稿フォームを表示するかどうかのオプションを追加 - ブラウザでメディアプロキシ(/proxy)からファイルを保存した際に、なるべくオリジナルのファイル名を継承するように - ドライブの「URLからアップロード」で、content-dispositionのfilenameがあればそれをファイル名に - Identiconがローカルとリモートで同じになるように - これまでのIdenticonは異なる画像になります - サーバーのパフォーマンスを改善 ### Bugfixes - ロールの権限で「一般ユーザー」のロールがいきなり設定できない問題を修正 - ユーザーページのバッジ表示を適切に折り返すように @arrow2nd - fix(client): みつけるのロール一覧でコンディショナルロールが含まれるのを修正 - macOSでDev Containerが動作しない問題を修正 @RyotaK ## 13.9.1 リリース日: 2023/03/03 ### Bugfixes - ノートに添付したファイルが表示されない場合があるのを修正 ## 13.9.0 リリース日: 2023/03/03 ### Improvements - 時限ロール - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 - サーバーのパフォーマンスを改善 ### Bugfixes - 外部メディアプロキシ使用時にアバタークロップができない問題を修正 - fix(server): メールアドレス更新時にバリデーションが正しく行われていないのを修正 - fix(server): チャンネルでミュートが正しく機能していないのを修正 - プッシュ通知でカスタム絵文字リアクションを表示できなかった問題を修正 ## 13.8.1 リリース日: 2023/02/26 ### Bugfixes - モバイルでドロワーメニューが表示されない問題を修正 ## 13.8.0 リリース日: 2023/02/26 ### Improvements - チャンネル内ハイライト - ホームタイムラインのパフォーマンスを改善 - renoteした際の表示を改善 - バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない - enhance(client): MkUrlPreviewの閉じるボタンを見やすく - Add dialog to remove follower - enhance(client): improve clip menu ux - 検索画面の統合 - enhance(client): ノートメニューからユーザーメニューを開けるように - photoswipe 表示時に戻る操作をしても前の画面に戻らないように ### Bugfixes - Windows環境でswcを使うと正しくビルドできない問題の修正 - fix(client): Android ChromeでPWAとしてインストールできない問題を修正 - 未知のユーザーが deleteActor されたら処理をスキップする - fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする - fix(server): notes/createのバリデーションが機能していないのを修正 - fix(server): エラーのスタックトレースは返さないように ## 13.7.2 リリース日: 2023/02/23 ### Note 13.7.0以前からアップデートする場合は全ての通知が削除されます。 ### Improvements - enhance: make pwa icon maskable - chore(client): tweak custom emoji size ### Bugfixes - マイグレーションが失敗することがあるのを修正 ## 13.7.0 リリース日: 2023/02/22 ### Changes - チャット機能が削除されました ### Improvements - Server: URLプレビュー(summaly)はプロキシを通すように - Client: 2FA設定のUIをまともにした - セキュリティキーの名前を変更できるように - enhance(client): add quiz preset for play - 広告開始時期を設定できるように - みつけるで公開ロール一覧とそのメンバーを閲覧できるように - enhance(client): MFMのx3, x4が含まれていたらノートをたたむように - enhance(client): make possible to reload page of window ### Bugfixes - ユーザー検索ダイアログでローカルユーザーを絞って検索できない問題を修正 - fix(client): MkHeader及びデッキのカラムでチャンネル一覧を選択したとき、最大5個までしか表示されない - 管理画面の広告を10個以上見えるように - Moderation note が保存できない - ユーザーのハッシュタグ検索が機能していないのを修正 ## 13.6.1 リリース日: 2023/02/12 ### Improvements - アニメーションを少なくする設定の時、MkPageHeaderのタブアニメーションを無効化 - Backend: activitypub情報がcorsでブロックされないようヘッダーを追加 - enhance: レートリミットを0%にできるように - チャンネル内Renoteを行えるように ### Bugfixes - Client: ユーザーページでアクティビティを見ることができない問題を修正 ## 13.6.0 リリース日: 2023/02/11 ### Improvements - MkPageHeaderをごっそり変えた - モバイルではヘッダーは上下に分割され、下段にタブが表示されるように - iconOnlyのタブ項目がアクティブな場合にはタブのタイトルを表示するように - メインタイムラインではタイトルを表示しない - メインタイムラインかつモバイルで表示される左上のアバターを選択するとアカウントメニューが開くように - ユーザーページのノート一覧をタブとして分離 - コンディショナルロールもバッジとして表示可能に - enhance(client): ロールをより簡単に付与できるように - enhance(client): 一度見たノートのRenoteは省略して表示するように - enhance(client): 迷惑になる可能性のある投稿を行う前に警告を表示 - リアクションの数が多い場合の表示を改善 - 一部のMFM構文をopt-outに ### Bugfixes - Client: ユーザーページでタブがほとんど見れないことがないように ## 13.5.6 リリース日: 2023/02/10 ### Improvements - 非ログイン時にMiAuthを踏んだ際にMiAuthであることを表示する - /auth/のUIをアップデート - 利用規約同意UIの調整 - クロップ時の質問を分かりやすく ### Bugfixes - fix: prevent clipping audio plyr's tooltip ## 13.5.4 リリース日: 2023/02/09 ### Improvements - Server: UIのHTML(ノートなどの特別なページを除く)のキャッシュ時間を15秒から30秒に - i/notificationsのレートリミットを緩和 ### Bugfixes - fix(client): validate url to improve security - fix(client): dateの初期値が正常に入らない時がある ## 13.5.3 リリース日: 2023/02/09 ### Improvements - Client: デッキにチャンネルカラムを追加 ## 13.5.2 リリース日: 2023/02/08 ### Changes - Revert: perf(client): do not render custom emojis in user names ### Bugfixes - Client: register_note_view_interruptor not working - Client: ログイントークンの再生成が出来ない ## 13.5.0 リリース日: 2023/02/08 ### Changes - perf(client): do not render custom emojis in user names ### Improvements - Client: disableShowingAnimatedImagesのデフォルト値をprefers-reduced-motionにする - enhance(client): tweak medialist style ### Bugfixes - fix docker health check - Client: MkEmojiPickerでもChromeで検索ダイアログで変換確定するとそのまま検索されてしまうのを修正 - fix(mfm): default degree not used in rotate - fix(server): validate urls from ap to improve security ## 13.4.0 リリース日: 2023/02/05 ### Improvements - ロールにアイコンを設定してユーザー名の横に表示できるように - feat: timeline page for non-login users - 実績の単なるラッキーの獲得確立を調整 - Add Thai language support ### Bugfixes - fix(server): 自分のノートをお気に入りに登録しても実績解除される問題を修正 - fix(server): clean up file in FileServer - fix(server): Deny UNIX domain socket - fix(server): validate filename and emoji name to improve security - fix(client): validate input response in aiscript - fix(client): add webhook delete button - fix(client): tweak notification style - fix(client): インラインコードを折り返して表示する ## 13.3.3 リリース日: 2023/02/04 ### Bugfixes - Server: improve security ## 13.3.2 リリース日: 2023/02/04 ### Improvements - 外部メディアプロキシへの対応を強化しました 外部メディアプロキシのFastify実装を作りました https://github.com/misskey-dev/media-proxy - Server: improve performance ### Bugfixes - Client: validate urls to improve security ## 13.3.1 リリース日: 2023/02/04 ### Bugfixes - Client: カスタム絵文字にアニメーション画像を再生しない設定が適用されていない問題を修正 - Client: オートコンプリートでUnicode絵文字がカスタム絵文字として表示されてしまうのを修正 - Client: Fix Vue-plyr CORS issue - Client: validate urls to improve security ## 13.3.0 リリース日: 2023/02/03 ### Changes - twitter/github/discord連携機能が削除されました - ハッシュタグごとのチャートが削除されました - syslogのサポートが削除されました ### Improvements - ロールで広告の非表示が有効になっている場合は最初から広告を非表示にするように ## 13.2.6 リリース日: 2023/02/01 ### Changes - docker-compose.ymlをdocker-compose.yml.exampleにしました。docker-compose.ymlとしてコピーしてから使用してください。 ### Improvements - 絵文字ピッカーのパフォーマンスを改善 - AiScriptを0.12.4に更新 ### Bugfixes - Server: リレーと通信できない問題を修正 - Client: classicモード使用時にwindowサイズによってdefaultに変更された後に、windowサイズが元に戻ったらclassicに戻すように修正 #9669 - Client: Chromeで検索ダイアログで変換確定するとそのまま検索されてしまう問題を修正 ## 13.2.4 リリース日: 2023/01/27 ### Improvements - リモートカスタム絵文字表示時のパフォーマンスを改善 - Default to `animation: false` when prefers-reduced-motion is set - リアクション履歴が公開なら、ログインしていなくても表示できるように - tweak blur setting - tweak custom emoji cache ### Bugfixes - fix aggregation of retention - ダッシュボードでオンラインユーザー数が表示されない問題を修正 - フォロー申請・フォローのボタンが、通知から消えている問題を修正 ## 13.2.3 リリース日: 2023/01/26 ### Improvements - カスタム絵文字の更新をリアルタイムで反映するように ### Bugfixes - turnstile-failed: missing-input-secret ## 13.2.2 リリース日: 2023/01/25 ### Improvements - サーバーのパフォーマンスを改善 ### Bugfixes - サインイン時に誤ったレートリミットがかかることがある問題を修正 - MFMのposition、rotate、scaleで小数が使えない問題を修正 ## 13.2.1 リリース日: 2023/01/24 ### Improvements - デザインの調整 - サーバーのパフォーマンスを改善 ## 13.2.0 リリース日: 2023/01/23 ### Improvements - onlyServer / onlyQueue オプションを復活 - 他人の実績閲覧時は獲得条件を表示しないように - アニメーション減らすオプション有効時はリアクションのアニメーションを無効に - カスタム絵文字一覧のパフォーマンスを改善 ### Bugfixes - Aiscript: button is not defined ## 13.1.1 リリース日: 2023/01/22 ### Improvements - ローカルのカスタム絵文字を表示する際のパフォーマンスを改善 - Client: 瞬間的に大量の実績を解除した際の挙動を改善 ### Bugfixes - Client: アップデート時にローカリゼーションデータが更新されないことがあるのを修正 ## 13.1.0 リリース日: 2023/01/21 ### Improvements - 実績機能 - Playのプリセットを追加 - Playのscriptの文字数制限を緩和 - AiScript GUIの強化 - リアクション一覧詳細ダイアログを表示できるように - 存在しないカスタム絵文字をテキストで表示するように - Alt text in image viewer - ジョブキューのプロセスとWebサーバーのプロセスを分離 ### Bugfixes - playを削除する手段がなかったのを修正 - The … button on notes does nothing when not logged in - twitterと連携するときに autwh is not a function になるのを修正 ## 13.0.0 リリース日: 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 - ロール機能 - 従来より柔軟にユーザーのポリシーを管理できます。例えば、「インスタンスのパトロンはアンテナを30個まで作れる」「基本的にLTLは見れないが、許可した人だけ見れる」「招待制インスタンスだけどユーザーなら誰でも他者を招待できる」のような運用はもちろん、「ローカルユーザーかつアカウント作成から1日未満のユーザーはパブリックな投稿を行えない」のように複数条件を組み合わせて、自動でロールを付与する設定も可能です。 - Misskey Play - 従来の動的なPagesに代わる、新しいプラットフォームです。動的なコンテンツ(アプリケーション)に特化していて、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. - Docker環境でPostgreSQLのアップデートを行う際のガイドはこちら: https://github.com/misskey-dev/misskey/pull/9641#issue-1536336620 - Elasticsearchのサポートが削除されました - 代わりに今後任意の検索プロバイダを設定できる仕組みを構想しています。その仕組みを使えば今まで通りElasticsearchも利用できます - Yarnからpnpmに移行されました corepackの有効化を推奨します: `sudo corepack enable` - インスタンスブロックはサブドメインにも適用されるようになります - ロールの導入に伴い、いくつかの機能がロールと統合されました - モデレーターはロールに統合されました。今までのモデレーター情報は失われるため、予めモデレーター一覧を記録しておき、アップデート後にモデレーターロールを作りアサインし直してください。 - サイレンスはロールに統合されました。今までのユーザーは恩赦されるため、予めサイレンス一覧を記録しておくのをおすすめします。 - ユーザーごとのドライブ容量設定はロールに統合されました。 - インスタンスデフォルトのドライブ容量設定はロールに統合されました。アップデート後、ベースロールもしくはコンディショナルロールでドライブ容量を編集してください。 - LTL/GTLの解放状態はロールに統合されました。 - Dockerの実行をrootで行わないようにしました。Dockerかつオブジェクトストレージを使用していない場合は`chown -hR 991.991 ./files`を実行してください。 https://github.com/misskey-dev/misskey/pull/9560 #### For users - ノートのウォッチ機能が削除されました - アンケートに投票された際に通知が作成されなくなりました - ノートの数式埋め込みが削除されました - 新たに動的なPagesを作ることはできなくなりました - 代わりにAiScriptを用いてより柔軟に動的なコンテンツを作成できるMisskey Play機能が実装されています。 - AiScriptが0.12.2にアップデートされました - 0.12.xの変更点についてはこちら https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120 - 0.12.x未満のプラグインは読み込むことはできません - iOS15以下のデバイスはサポートされなくなりました - Firefox110以下はサポートされなくなりました - 109でもContainerQueriesのフラグを有効にする事で問題なく使用できます #### For app developers - API: metaのレスポンスに`emojis`プロパティが含まれなくなりました - カスタム絵文字一覧情報を取得するには、`emojis`エンドポイントにリクエストします - API: カスタム絵文字エンティティに`url`プロパティが含まれなくなりました - 絵文字画像を表示するには、`/emoji/.webp`にリクエストすると画像が返ります。 - e.g. `https://p1.a9z.dev/emoji/misskey.webp` - remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp` - API: `user`および`note`エンティティに`emojis`プロパティが含まれなくなりました - API: `user`エンティティに`avatarColor`および`bannerColor`プロパティが含まれなくなりました - API: `instance`エンティティに`latestStatus`、`lastCommunicatedAt`、`latestRequestSentAt`プロパティが含まれなくなりました - API: `instance`エンティティの`caughtAt`は`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 - レートリミットをユーザーごとに調整可能に @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはインスタンスの招待コードを発行できるように @syuilo - 非モデレーターでも、権限を持つロールをアサインされたユーザーはカスタム絵文字の追加、編集、削除を行えるように @syuilo - クリップおよびクリップ内のノートの作成可能数を設定可能に @syuilo - ユーザーリストおよびユーザーリスト内のユーザーの作成可能数を設定可能に @syuilo - ハードワードミュートの最大文字数を設定可能に @syuilo - Webhookの作成可能数を設定可能に @syuilo - ノートをピン留めできる数を設定可能に @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: アンケート選択肢の文字数制限を緩和 @syuilo - Server: プロフィールの文字数制限を緩和 @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からカスタム絵文字一覧を参照できるように @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: 引用内の文章がnyaizeされてしまう問題を修正 @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の最大ペイロードサイズを64kbに制限 @syuilo - Server: アンテナの作成数上限を追加 @syuilo - Server: pages/likeのエラーIDが重複しているのを修正 @syuilo - Server: pages/updateのパラメータによってはsummaryの値が更新されないのを修正 @syuilo - Server: Escape SQL LIKE @mei23 - Server: 特定のPNG画像のアップロードに失敗する問題を修正 @usbharu - Server: 非公開のクリップのURLでOGPレンダリングされる問題を修正 @syuilo - Server: アンテナタイムライン(ストリーミング)が、フォローしていないユーザーの鍵投稿も拾ってしまう @syuilo - Server: follow request list api pagination @sim1222 - Server: ドライブ容量超過時のエラーが適切にレスポンスされない問題を修正 @syuilo - Client: パスワードマネージャーなどでユーザー名がオートコンプリートされない問題を修正 @massongit - Client: 日付形式の文字列などがカスタム絵文字として表示されるのを修正 @syuilo - Client: case insensitive emoji search @saschanaz - Client: 画面の幅が狭いとウィジェットドロワーを閉じる手段がなくなるのを修正 @syuilo - Client: InAppウィンドウが操作できなくなることがあるのを修正 @tamaina - Client: use proxied image for instance icon @syuilo - Client: Webhookの編集画面で、内容を保存することができない問題を修正 @m-hayabusa - Client: Page編集でブロックの移動が行えない問題を修正 @syuilo - Client: update emoji picker immediately on all input @saschanaz - Client: チャートのツールチップが画面に残ることがあるのを修正 @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 リリース日: 2022/12/03 ### Bugfixes - Server: Mitigate AP reference chain DoS vector @skehmatics ## 12.119.0 リリース日: 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 - マイグレーションに失敗する問題を修正 - Server: 他人の通知を既読にできる可能性があるのを修正 @syuilo - Client: アクセストークン管理画面、アカウント管理画面表示できないのを修正 @futchitwo ## 12.118.0 リリース日: 2022/08/07 ### Improvements - Client: 設定のバックアップ/リストア機能 - Client: Add vi-VN language support - Client: Add unix time widget @syuilo ### Bugfixes - Server: リモートユーザーを正しくブロックできるように修正する @xianonn - Client: 一度作ったwebhookの設定画面を開こうとするとページがフリーズする @syuilo - Client: MiAuth認証ページが機能していない @syuilo - Client: 一部のアプリからファイルを投稿フォームへドロップできない場合がある問題を修正 @m-hayabusa ## 12.117.1 リリース日: 2022/07/19 ### Improvements - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Server: ファイルのアップロードに失敗することがある問題を修正 @acid-chicken - Client: リアクションピッカーがアプリ内ウィンドウの後ろに表示されてしまう問題を修正 @syuilo - Client: ユーザー情報の取得の再試行を修正 @xianonn - Client: MFMチートシートの挙動を修正 @syuilo - Client: 「インスタンスからのお知らせを受け取る」の設定を変更できない問題を修正 @syuilo ## 12.117.0 リリース日: 2022/07/18 ### Improvements - Client: ウィンドウを最大化できるように @syuilo - Client: Shiftキーを押した状態でリンクをクリックするとアプリ内ウィンドウで開くように @syuilo - Client: デッキを使用している際、Ctrlキーを押した状態でリンクをクリックするとページ遷移を強制できるように @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.116.1 リリース日: 2022/07/17 ### Bugfixes - Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo - Error During Migration Run to 12.111.x ## 12.116.0 リリース日: 2022/07/16 ### Improvements - Client: registry editor @syuilo - Client: UIのブラッシュアップ @syuilo ### Bugfixes - Error During Migration Run to 12.111.x - Server: TypeError: Cannot convert undefined or null to object @syuilo ## 12.115.0 リリース日: 2022/07/16 ### Improvements - Client: Deckのプロファイル切り替えを簡単に @syuilo - Client: UIのブラッシュアップ @syuilo ## 12.114.0 リリース日: 2022/07/15 ### Improvements - RSSティッカーで表示順序をシャッフルできるように @syuilo ### Bugfixes - クライアントが起動しなくなることがある問題を修正 @syuilo ## 12.113.0 リリース日: 2022/07/13 ### Improvements - Support `` syntax for MFM ### Bugfixes - Server: Fix crash at startup if TensorFlow is not supported @mei23 - Client: URLエンコードされたルーティングを修正 ## 12.112.3 リリース日: 2022/07/09 ### Improvements - Make active email validation configurable ### Bugfixes - Server: Fix Attempts to update all notifications @mei23 ## 12.112.2 リリース日: 2022/07/08 ### Bugfixes - Fix Docker doesn't work @mei23 Still not working on arm64 environment. (See 12.112.0) ## 12.112.1 リリース日: 2022/07/07 same as 12.112.0 ## 12.112.0 リリース日: 2022/07/07 ### Known issues - 現在arm64環境ではインストールに失敗します。これは次のバージョンで修正される予定です。 ### Changes - ハイライトがみつけるに統合されました - カスタム絵文字ページはインスタンス情報ページに統合されました - 連合ページはインスタンス情報ページに統合されました - メンション一覧ページは通知一覧ページに統合されました - ダイレクト投稿一覧ページは通知一覧ページに統合されました - メニューからアンテナタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました - メニューからリストタイムラインを表示する方法は廃止され、タイムライン上部のアイコンからアクセスするようになりました ### 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: メニューからページをリロードできるように @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 - ユーザーにモデレーションメモを残せる機能 @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 リリース日: 2022/06/13 ### Bugfixes - some fixes of multiple notification read @tamaina - some GenerateVideoThumbnail failed @Johann150 - Client: デッキでウィジェットの情報が保存されない問題を修正 @syuilo - Client: ギャラリーの投稿を開こうとすると編集画面が表示される @futchitwo ## 12.111.0 リリース日: 2022/06/11 ### Note - Node.js 16.15.0 or later is required ### Improvements - Supports Unicode Emoji 14.0 @mei23 - プッシュ通知を複数アカウント対応に #7667 @tamaina - プッシュ通知にクリックやactionを設定 #7667 @tamaina - ドライブに画像ファイルをアップロードするときオリジナル画像を破棄してwebpublicのみ保持するオプション @tamaina - Server: always remove completed tasks of job queue @Johann150 - Client: アバターの設定で画像をクロップできるように @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は配列でも受け付けるように #7667 @tamaina - API: ユーザー検索で、クエリがusernameの条件を満たす場合はusernameもLIKE検索するように @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: ノート詳細ページの新しいノートを表示する機能の動作が正しくなるように修正する @xianonn - MFM: more animated functions support `speed` parameter @futchitwo - MFM: limit large MFM @Johann150 ## 12.110.1 リリース日: 2022/04/23 ### Bugfixes - Fix GOP rendering @syuilo - Improve performance of antenna, clip, and list @xianonn ## 12.110.0 リリース日: 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: リモートインスタンスへのダイレクト投稿が届かない問題を修正 @syuilo ## 12.109.2 リリース日: 2022/04/03 ### Bugfixes - API: admin/update-meta was not working @syuilo - Client: テーマを切り替えたり読み込んだりするとmeta[name="theme-color"]のcontentがundefinedになる問題を修正 @tamaina ## 12.109.1 リリース日: 2022/04/02 ### Bugfixes - API: Renoteが行えない問題を修正 ## 12.109.0 リリース日: 2022/04/02 ### Improvements - Webhooks @syuilo - Bull Dashboardを組み込み、ジョブキューの確認や操作を行えるように @syuilo - Bull Dashboardを開くには、最初だけ一旦ログアウトしてから再度管理者権限を持つアカウントでログインする必要があります - Check that installed Node.js version fulfills version requirement @ThatOneCalculator - Server: overall performance improvements @syuilo - Federation: avoid duplicate activity delivery @Johann150 - Federation: limit federation of reactions on direct notes @Johann150 - Client: タッチパッド・タッチスクリーンでのデッキの操作性を向上 @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. @Johann150 - Use `fileIds` instead, it has the same behaviour. - Client: URIエンコーディングが異常でdecodeURIComponentが失敗するとURLが表示できなくなる問題を修正 @tamaina ## 12.108.1 リリース日: 2022/03/12 ### Bugfixes - リレーが動作しない問題を修正 @xianonn - ulidを使用していると動作しない問題を修正 @syuilo - 外部からOGPが正しく取得できない問題を修正 @syuilo - instance can not get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v ## 12.108.0 リリース日: 2022/03/09 ### NOTE ::: warning このバージョンからNode v16.14.0以降が必要です ::: ### Changes - ノートの最大文字数を設定できる機能が廃止され、デフォルトで一律3000文字になりました @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 - インスタンスデフォルトテーマを設定できるように @syuilo - ミュートに期限を設定できるように @syuilo - アンケートが終了したときに通知が作成されるように @syuilo - プロフィールの追加情報を最大16まで保存できるように @syuilo - 連合チャートにPub&Subを追加 @syuilo - 連合チャートにActiveを追加 @syuilo - デフォルトで10秒以上時間がかかるデータベースへのクエリは中断されるように @syuilo - 設定ファイルの`db.extra`に`statement_timeout`を設定することでタイムアウト時間を変更できます - Client: スプラッシュスクリーンにインスタンスのアイコンを表示するように @syuilo ### Bugfixes - Client: リアクションピッカーの高さが低くなったまま戻らないことがあるのを修正 @syuilo - Client: ユーザー名オートコンプリートが正しく動作しない問題を修正 @syuilo - Client: タッチ操作だとウィジェットの編集がしにくいのを修正 @xianonn - Client: register_note_view_interruptor()が動かないのを修正 @syuilo - Client: iPhone X以降(?)でページの内容が全て表示しきれないのを修正 @tamaina - Client: fix image caption on mobile @nullobsi ## 12.107.0 リリース日: 2022/02/12 ### Improvements - クライアント: テーマを追加 @syuilo ### Bugfixes - API: stats APIで内部エラーが発生する問題を修正 @syuilo - クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina - クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo - クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo ## 12.106.3 リリース日: 2022/02/11 ### Improvements - クライアント: スマートフォンでの余白を調整 @syuilo ### Bugfixes - クライアント: ノートの詳細が表示されない問題を修正 @syuilo ## 12.106.2 リリース日: 2022/02/11 ### Bugfixes - クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo - クライアント: リアクション数が正しくないことがある問題を修正 @syuilo - 一部環境でマイグレーションが動作しない問題を修正 @syuilo ## 12.106.1 リリース日: 2022/02/11 ### Bugfixes - クライアント: ワードミュートが保存できない問題を修正 @syuilo ## 12.106.0 リリース日: 2022/02/11 ### Improvements - Improve federation chart @syuilo - クライアント: リアクションピッカーのサイズを設定できるように @syuilo - クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo - Docker: Update to Node v16.13.2 @mei23 - Update dependencies ### Bugfixes - validate regular expressions in word mutes @Johann150 ## 12.105.0 リリース日: 2022/02/09 ### Improvements - インスタンスのテーマカラーを設定できるように @syuilo ### Bugfixes - 一部環境でマイグレーションが失敗する問題を修正 @syuilo ## 12.104.0 リリース日: 2022/02/09 ### Note ::: warning ビルドする前に`npm run clean`を実行してください。 ::: ::: warning このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。 マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。 ::: ### Improvements - チャートエンジンの強化 @syuilo - テーブルサイズの削減 - notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 - activeUsersチャートに新しい項目を追加 - federationチャートに新しい項目を追加 - apRequestチャートを追加 - networkチャート廃止 - クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo - クライアント: デバイスの種類を手動指定できるように @syuilo - クライアント: UIのアイコンを更新 @syuilo - クライアント: UIのアイコンをセルフホスティングするように @syuilo - NodeInfo のユーザー数と投稿数の内容を見直す @xianonn ### Bugfixes - Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina - Client: UIのサイズがおかしくなる問題の修正 @tamaina - Client: Setting instance information of notes to always show breaks the timeline @Johann150 - Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo - Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo - Client: アップデートお知らせダイアログが出ないのを修正 @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 - チャートの定期resyncが動作していない問題を修正 @syuilo ## 12.103.1 リリース日: 2022/02/02 ### Bugfixes - クライアント: ツールチップの表示位置が正しくない問題を修正 ## 12.103.0 リリース日: 2022/02/02 ### Improvements - クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように ### Bugfixes - クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正 - クライアント: 「クリップ」ページが開かない問題を修正 - クライアント: トレンドウィジェットが動作しないのを修正 - クライアント: フェデレーションウィジェットが動作しないのを修正 - クライアント: リアクション設定で絵文字ピッカーが開かないのを修正 - クライアント: DMページでメンションが含まれる問題を修正 - クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正 - クライアント: サイドビューが動かないのを修正 - クライアント: 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.0 リリース日: 2022/01/27 ### NOTE ::: warning アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。 ::: ### Changes - Room機能が削除されました - 後日別リポジトリとして復活予定です - リバーシ機能が削除されました - 後日別リポジトリとして復活予定です - Chat UIが削除されました - ノートに添付できるファイルの数が16に増えました - カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました ### Improvements - カスタム絵文字一括編集機能 - カスタム絵文字一括インポート - 投稿フォームで一時的に投稿するアカウントを切り替えられるように - Unifying Misskey-specific IRIs in JSON-LD `@context` - クライアントのパフォーマンス向上 - セキュリティの向上 ### Bugfixes - アップロードエラー時の処理を修正 ## 12.101.0 リリース日: 2021/12/29 ### Improvements - クライアント: ノートプレビューの精度を改善 - クライアント: MFM sparkleエフェクトの改善 - クライアント: デザインの調整 - セキュリティの向上 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - fix html blockquote conversion ## 12.100.2 リリース日: 2021/12/18 ### Bugfixes - クライアント: Deckカラムの増減がページをリロードするまで正しく反映されない問題を修正 - クライアント: 一部のコンポーネントが裏に隠れるのを修正 - クライアント: カスタム絵文字一覧ページの負荷が高いのを修正 ## 12.100.1 リリース日: 2021/12/17 ### Bugfixes - クライアント: デザインの調整 ## 12.100.0 リリース日: 2021/12/17 ### Improvements - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 ### Bugfixes - クライアント: 一部のコンポーネントが裏に隠れるのを修正 ## 12.99.3 リリース日: 2021/12/14 ### Bugfixes - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 ## 12.99.0 リリース日: 2021/12/14 ### Improvements - Added a user-level instance mute in user settings - フォローエクスポートでミュートしているユーザーを含めないオプションを追加 - フォローエクスポートで使われていないアカウントを含めないオプションを追加 - カスタム絵文字エクスポート機能 - チャートのパフォーマンスの改善 - グループから抜けられるように ### Bugfixes - クライアント: タッチ機能付きディスプレイを使っていてマウス操作をしている場合に一部機能が動作しない問題を修正 - クライアント: クリップの設定を編集できない問題を修正 - クライアント: メニューなどがウィンドウの裏に隠れる問題を修正 ## 12.98.0 リリース日: 2021/12/03 ### Improvements - API: /antennas/notes API で日付による絞り込みができるように - クライアント: アンケートに投票する際に確認ダイアログを出すように - クライアント: Renoteなノート詳細ページから元のノートページに遷移できるように - クライアント: 画像ポップアップでクリックで閉じられるように - クライアント: デザインの調整 - フォロワーを解除できる機能 ### Bugfixes - クライアント: LTLやGTLが無効になっている場合でもUI上にタブが表示される問題を修正 - クライアント: ログインにおいてパスワードが誤っている際のエラーメッセージが正しく表示されない問題を修正 - クライアント: リアクションツールチップ、Renoteツールチップのユーザーの並び順を修正 - クライアント: サウンドのマスターボリュームが正しく保存されない問題を修正 - クライアント: 一部環境において通知が表示されると操作不能になる問題を修正 - クライアント: モバイルでタップしたときにツールチップが表示される問題を修正 - クライアント: リモートインスタンスのノートに返信するとき、対象のノートにそのリモートインスタンス内のユーザーへのメンションが含まれていると、返信テキスト内にローカルユーザーへのメンションとして引き継がれてしまう場合がある問題を修正 - クライアント: 画像ビューワーで全体表示した時に上側の一部しか表示されない画像がある問題を修正 - API: ユーザーを取得時に条件によっては内部エラーになる問題を修正 ## 12.97.0 リリース日: 2021/11/19 ### Improvements - クライアント: 返信先やRenoteに対しても自動折りたたみされるように - クライアント: 長いスレッドの表示を改善 - クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように - クライアント: アカウント削除に確認ダイアログを出すように ### Bugfixes - クライアント: ユーザー検索の「全て」が動作しない問題を修正 - クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正 ## 12.96.1 リリース日: 2021/11/13 ### Improvements - npm scriptの互換性を向上 ## 12.96.0 リリース日: 2021/11/13 ### Improvements - フォロー/フォロワーを非公開にできるように - インスタンスプロフィールレンダリング ready - 通知のリアクションアイコンをホバーで拡大できるように - RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように - 返信の際にメンションを含めるように - 通報があったときに管理者へEメールで通知されるように - メールアドレスのバリデーションを強化 ### Bugfixes - アカウント削除処理があると高負荷になる問題を修正 - クライアント: 長いメニューが画面からはみ出す問題を修正 - クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正 - クライアント: fix missing i18n string - fix html conversion issue with code blocks ### Changes - ノートにモバイルからの投稿か否かの情報を含めないように ## 12.95.0 リリース日: 2021/10/31 ### Improvements - スレッドミュート機能 ### Bugfixes - リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正 - 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正 - クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正 - クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正 - API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正 ## 12.94.1 リリース日: 2021/10/25 ### Improvements ### Bugfixes - クライアント: ユーザーページのナビゲーションが失敗する問題を修正 ## 12.94.0 リリース日: 2021/10/25 ### Improvements - クライアント: 画像ビューアを強化 - クライアント: メンションにユーザーのアバターを表示するように - クライアント: デザインの調整 - クライアント: twemojiをセルフホスティングするように ### Bugfixes - クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正 ### NOTE - このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。 ## 12.93.2 リリース日: 2021/10/23 ### Bugfixes - クライアント: ウィジェットを追加できない問題を修正 ## 12.93.1 リリース日: 2021/10/23 ### Bugfixes - クライアント: 通知上でローカルのリアクションが表示されないのを修正 ## 12.93.0 リリース日: 2021/10/23 ### Improvements - クライアント: コントロールパネルのパフォーマンスを改善 - クライアント: 自分のリアクション一覧を見れるように - 設定により、リアクション一覧を全員に公開することも可能 - クライアント: ユーザー検索の精度を強化 - クライアント: 新しいライトテーマを追加 - クライアント: 新しいダークテーマを追加 - API: ユーザーのリアクション一覧を取得する users/reactions を追加 - API: users/search および users/search-by-username-and-host を強化 - ミュート及びブロックのインポートを行えるように - クライアント: /share のクエリでリプライやファイル等の情報を渡せるように - チャートのsyncを毎日0時に自動で行うように ### Bugfixes - クライアント: テーマの管理が行えない問題を修正 - API: アプリケーション通知が取得できない問題を修正 - クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 - ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正 ### Changes - 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました - データベースにログを保存しないようになりました - ログを永続化したい場合はsyslogを利用してください ## 12.92.0 リリース日: 2021/10/16 ### Improvements - アカウント登録にメールアドレスの設定を必須にするオプション - クライアント: 全体的なUIのブラッシュアップ - クライアント: MFM関数構文のサジェストを実装 - クライアント: ノート本文を投稿フォーム内でプレビューできるように - クライアント: 未読の通知のみ表示する機能 - クライアント: 通知ページで通知の種類によるフィルタ - クライアント: アニメーションを減らす設定の適用範囲を拡充 - クライアント: 新しいダークテーマを追加 - クライアント: テーマコンパイラに hue と saturate 関数を追加 - ActivityPub: HTML -> MFMの変換を強化 - API: グループから抜ける users/groups/leave エンドポイントを実装 - API: i/notifications に unreadOnly オプションを追加 - API: ap系のエンドポイントをログイン必須化+レートリミット追加 - MFM: Add tag syntaxes of bold and strikethrough ### Bugfixes - Fix createDeleteAccountJob - admin inbox queue does not show individual jobs - クライアント: ヘッダーのタブが折り返される問題を修正 - クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正 - クライアント: ユーザーページのタブが機能していない問題を修正 - クライアント: ピン留めユーザーの設定項目がない問題を修正 - クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正 - API: 管理者およびモデレーターをブロックできてしまう問題を修正 - MFM: Mentions in the link label are parsed as text - MFM: Add a property to the URL node indicating whether it was enclosed in <> - MFM: Disallows < and > in hashtags ### Changes - 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。 - 必要であれば、代わりに環境変数で設定することができます - MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。 - 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。 ## 12.91.0 リリース日: 2021/09/22 ### Improvements - ActivityPub: リモートユーザーのDeleteアクティビティに対応 - ActivityPub: add resolver check for blocked instance - ActivityPub: deliverキューのメモリ使用量を削減 - API: 管理者用アカウント削除APIを実装(/admin/accounts/delete) - リモートユーザーの削除も可能に - アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように - 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように - リスト、アンテナタイムラインを個別ページとして分割 - UIの改善 - MFMにsparklesエフェクトを追加 - 非ログイン自は更新ダイアログを出さないように - クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように ### Bugfixes - アカウントデータのエクスポート/インポート処理ができない問題を修正 - アンテナの既読が付かない問題を修正 - popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 - "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正 ## 12.90.1 リリース日: 2021/09/05 ### Bugfixes - Dockerfileを修正 - ノート翻訳時に公開範囲が考慮されていない問題を修正 ## 12.90.0 リリース日: 2021/09/04 ### Improvements - 藍モード、および藍ウィジェット - クライアントに藍ちゃんを召喚することができるようになりました。 - URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。 - developmentで動作している場合は、この制限は適用されません。 - Proxy使用時には、この制限は適用されません。 Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。 - `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。 - アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB) - `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。 ### Bugfixes - 管理者が最初にサインアップするページでログインされないのを修正 - CWを維持する設定を復活 - クライアントの表示を修正 ## 12.89.2 リリース日: 2021/08/24 ### Bugfixes - カスタムCSSを有効にしているとエラーになる問題を修正 ## 12.89.1 リリース日: 2021/08/24 ### Improvements - クライアントのデザインの調整 ### Bugfixes - 翻訳でDeepLのProアカウントに対応していない問題を修正 - インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正 - セキュリティの向上 ## 12.89.0 リリース日: 2021/08/21 ### Improvements - アカウント削除の安定性を向上 - 絵文字オートコンプリートの挙動を改修 - localStorageのaccountsはindexedDBで保持するように - ActivityPub: ジョブキューの試行タイミングを調整 (#7635) - API: sw/unregisterを追加 - ワードミュートのドキュメントを追加 - クライアントのデザインの調整 - 依存関係の更新 ### Bugfixes - チャンネルを作成しているとアカウントを削除できないのを修正 - ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 ## 12.88.0 リリース日: 2021/08/17 ### Features - ノートの翻訳機能を追加 - 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。 - Misskey更新時にダイアログを表示するように - ジョブキューウィジェットに警報音を鳴らす設定を追加 ### Improvements - ブロックの挙動を改修 - ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。 - UIデザインの調整 - データベースのインデックスを最適化 - Proxy使用時にKeep-Aliveをサポート - DNSキャッシュでネガティブキャッシュをサポート - 依存関係の更新 ### Bugfixes - タッチ操作でウィンドウを閉じることができない問題を修正 - Renoteされた時刻が投稿された時刻のように表示される問題を修正 - コントロールパネルでファイルを削除した際の表示を修正 - ActivityPub: 長いユーザーの名前や自己紹介の対応 ## 12.87.0 リリース日: 2021/08/12 ### Improvements - 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように - 絵文字オートコンプリートのパフォーマンスを改善 - about-misskeyページにドキュメントへのリンクを追加 - Docker: Node.jsを16.6.2に - 依存関係の更新 - 翻訳の更新 ### Bugfixes - Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正 ## 12.86.0 リリース日: 2021/08/11 ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 - ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 - フォローリクエストのEメール通知を修正 ================================================ FILE: content/tw/docs/6.donate.md ================================================ # 贊助此專案 :::tip 如果您正在考慮以公司身份支持(贊助)此專案,[請按此處。](/docs/become-a-sponsor/) ::: Misskey不是一家企業,由於它是免費使用的,開發者所能獲得的收入來自各位的捐款。(某些伺服器可能會有廣告收入,但那是運營者的收入而不是直接給開發人員的收入) 您的捐款讓開發能夠持續下去並為本專案做出貢獻。 您的贊助將使我們能夠繼續開發並且對專案做出貢獻。我們接受以下的捐款方式:(捐款前請仔細閱讀本頁內容。) - 持續捐款 - [Fanbox](https://syuilo.fanbox.cc/) - [Patreon](https://www.patreon.com/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 單次捐款 - (推薦) Kyash: @syuilo - [PayPal](https://paypal.me/syuilo) - [GitHub Sponsors](https://github.com/sponsors/misskey-dev) - 加密貨幣:`0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc` - [亞馬遜的願望清單](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share) :::tip 如果是大筆贊助(例如超過三萬日圓)的狀況,使用 PayPal 等方式會有高額手續費,請考慮使用 Kyash、或者是聯絡我們,我們將會提供給您銀行帳戶資訊。 ::: :::tip 根據金額提供以下回饋。 - 1,000日圓以上: 將mi徽章附加到您的misskey.io帳戶上 - 3,000日圓以上: ↑ + 在Misskey的捐款芳名錄上記載您的名字 - 10,000日圓以上: ↑ + 在Misskey的捐款芳名錄上記載您的名字 + 任意圖示 ) - 20,000円以上: ↑ + [頒發 MisskeyID 卡片](/docs/mi-card/) ::: :::warning 無論任何理由(包括沒有收到回饋等),都無法進行退款。十分感謝您的諒解並期待您的贊助。 ::: :::warning **由於徽章的分配和列入捐款芳名錄不是自動的,請將您的申請發送至@syuilo@misskey.io ,並提供您已捐款的資訊。** (如果您沒有收到回覆,請多次提及我,因為我可能沒有注意到您的提及。此外,從 misskey.io 以外的伺服器存在提及無法傳達到的狀況。如果無法聯絡上的話,請透過 Misskey Project 的聯絡表單進行聯絡) ::: 此外,伺服器的營運方基本上也沒有獲得任何收入。伺服器的營運支出很花錢的原因,請同時考慮贊助營運方。 雖然和系統開發沒有直接關係,但是存在伺服器才會讓這個專案存在的緣故,維持營運以及系統開發是同等重要的事情。 ================================================ FILE: content/tw/docs/7.become-a-sponsor.md ================================================ # 關於贊助商 :::tip 如果您正在考慮以個人身份支持(贊助)此專案,[請按此處。](/docs/donate/) ::: Misskey 專案正在尋找贊助商。 透過成為贊助商,您可以將您的公司商標發佈在 Misskey 和 Misskey Hub 上並獲得技術支援。 [詳情請點擊此處聯絡我們。](/contact/) ================================================ FILE: content/tw/docs/8.mi-card.md ================================================ # MisskeyID 卡 支持 Misskey 計畫的好處是可以獲得一張實體的「MisskeyID 卡」! **MisskeyID 卡是您自己的高耐用金屬卡,上面有連結的序號和擁有者。** 卡片以厚重的金屬板材製成,並經過精密加工,打造出地位崇高的卡片。 正面和背面均由 syuilo 精心設計。我們希望您能與它共度一生! 如需實際產品的影片[按一下這裡](https://www.youtube.com/shorts/AdzzwxEa-WE)(由於光線的關係,看起來是金色,但實際上是銀色)。 ## 卡片規格 - 尺寸: 54.0mm x 85.6mm - 重量:約34g - 材質:1.0 mm 厚鏡面不銹鋼 - 加工方式:鏡面加工(表面)、蝕刻(其他表面)、絲印(標誌)、雷射雕刻(編號) - 設計:由 syuilo 設計 / 附有序號、條碼、QR 代碼及小藍簽名雕刻 作為選項,也可以在卡片背面簽上「syuilo」。(免費) ### 以 3D 顯示 ::X__Docs__mi-card__InteractiveView :: \*背面的設計被省略。模型並非真品的精確複製品。 ## 交付對象 **累積支持金額達 20,000 日圓以上者,將獲贈一份。** :::g-details{summary='2枚以上ご希望の場合'} 如果您希望獲得兩張或以上的卡片,每 30,000 日圓可獲得一張額外的卡片。 您可獲得的額外副本數量為支援金額減去 20,000 除以 30,000。 例如,兩張卡的總計支持金額至少為 50,000 日元,三張卡的總計支持金額至少為 80,000 日元,以此類推。 您可以計算一共可以收到多少張卡片: ::X__Docs__mi-card__Calculator :: な請注意,根據庫存情況,可能無法提供所要求的張數。 ※申請表單僅能送出一次,若需第二次或之後的申請,請不便之處見諒,改由「聯絡我們表單」傳送與申請表單相同的內容。 ::: 無論何時給予支持,以美元表示的支持將被換算為 1USD = 150JPY。如需使用其他貨幣支付,請與我們聯絡。 希望領取卡片的人,請在充分閱讀本頁內容(含[注意事項](#注意事項))後提出申請。 很抱歉,目前由於送貨的原因,**送貨服務僅提供給日本居民。** :::warning **本卡片為支援「Misskey Project」(syuilo)時的回饋特典。** 請注意,針對其他 Misskey 伺服器的支援都不適用於此。 [點選此處支持 Misskey 計畫](/docs/donate/) ::: :::tip 累計支援額的計算不受支援方式和期間的限制。 例如,即使是在2023年通過PayPal獲得5000日圓支援,2024年通過Fanbox獲得12000日圓支援,以及從Amazon的願望清單收到3000日圓的禮物,這些支援仍會合計為5000 + 12000 + 3000 = 20000日圓,並且擁有獲得相應權利的資格。 ::: ## 申請方法 請使用以下表格提交您的申請。(需要 Google 帳戶) [MisskeyID 卡片領取申請表單](https://forms.gle/3EcRw21nUcGqGVk68) ## 運送 由日本郵政運送。**免運費。** - 寄出後,我們會以電子郵件通知您貨物追蹤號碼。 - 星期六和星期日也會送貨。 - 當您收到卡片時,可能需要出示身份證明。 檢查完成後,卡片會被小心包裝並運送。到貨後如有任何損壞,請聯絡日本郵政。 :::warning 卡片將寄送至您所填寫的地址。 請注意,無法寄送至申請人本人以外的地址。 此外,無法指定配送方式。 ::: ## 注意事項 - 規格如有變更,恕不另行通知。 - 無法選擇序號。 - 請見諒卡片上的細微刮痕。 - 尺寸與加工可能會有些微個體差異。請將其視為產品的個性來欣賞。 - 我們可能會在不另行通知的情況下,暫停或結束配發。 - 我們可能會在不另行通知的情況下,變更交付基準額。 - 若遺失、損壞或遭竊,將無法補發,請妥善保管。 - 敬請避免轉售或轉讓。 ================================================ FILE: content/tw/docs/9.misskey-and-misskey-servers.md ================================================ # Misskey 與 Misskey 伺服器 「Misskey」與「Misskey 伺服器」指的是不同的事物。 然而,由於名稱相似,「Misskey 伺服器」常被簡略稱為「Misskey」,因此容易造成混淆。 実際に、「Misskeyサーバー」のことを誤って「Misskey」と認識した上でのお問い合わせも多くあります。 (MisskeyはMisskeyサーバーの運営ではありません。また、当Webサイトは「Misskey」の公式Webサイトであり、「Misskeyサーバー」のWebサイトではありません) 請再次確認自己是否將兩者混淆。 ## 「Misskey」 Misskey 是由社群「Misskey Project」開發的「用於構建社交網路服務(SNS)的自由開源軟體」。 開源(Open Source)指軟體的原始程式碼(設計圖)是公開的。 自由(Free)則表示使用原始程式碼不需付費(免費),且任何人都可以自由使用。 Misskeyが「SNS」として紹介されることがありますが、それは誤りです。 あくまでも「Webサービスを作るためのソフトウェア」であり、登録やログインを行う「Webサービスそのもの」ではありません。 :::tip そのため、サービスとしての「Misskey運営」というものも存在しません。 登録やログインを行った経験があるのであれば、それはMisskeyではなくMisskeyサーバーになります。 ::: :::warning スパムアカウントが「Misskey運営」「Misskeyサポート」などを名乗っている場合があります。 前述のようにそのような組織・窓口はそもそも存在しません。請注意。 ::: 由於 Misskey 的原始程式碼任何人都可以自由使用,因此有各式各樣的人利用 Misskey 建立的社交網路服務(Misskey 伺服器)在網路上公開。 此外,任何人都可以參與開發。 ## 「Misskey 伺服器」 Misskey 伺服器是指「使用 Misskey 所建立的社交網路服務(SNS)」。 例如,「misskey.io」、「misskey.design」、「nijimiss.moe」等社交網路服務,即為 Misskey 伺服器(Misskey 系列伺服器)。 此外,Misskey 伺服器是組合各種軟體製作出來的,不僅包括 Misskey 本身,還包括資料庫軟體「PostgreSQL」、「Redis」以及 Web 伺服器軟體「Nginx」。 Misskeyサーバーの数は2025年現在、少なくとも1,000サーバー以上確認されています。 伺服器可能由個人或法人運營。 :::tip Misskey 專案(Misskey 開發社群)並不運營 Misskey 伺服器,也不管理或管轄各個 Misskey 伺服器,亦不參與其運營。 Misskey Project(Misskey開発コミュニティ)がMisskeyサーバーを運営することはしておらず、個々のMisskeyサーバーを管理・管轄したり、運営に関与する立場でもありません。 「カスタム絵文字」や個々の「ロール」、「広告」、「NGワードリスト」などについても、Misskeyに組み込まれているわけではなく、サーバーごとに運営者が設定を行うものです。 ::: 如前所述,由於 Misskey(系)伺服器常被簡單標示為 Misskey,因此關於 Misskey 的提及,實際上往往指的是特定的 Misskey(系)伺服器。ご注意ください。 另外,有時會在 Misskey 伺服器上看到「Misskey」的標誌或圖示,或標示「Powered by Misskey」,表示「使用 Misskey 製作」。 ### 「Misskey 系伺服器」 由 Misskey 衍生的軟體所建立的伺服器,有時會統稱為 Misskey 系伺服器。 Misskey 系伺服器有時也會簡稱為 Misskey 伺服器。 因此,被標示為「Misskey 伺服器」的社群媒體,實際上有時可能是「Misskey 系伺服器」,也就是並未使用 Misskey 的社群媒體。 ## 「Misskey 專案」 這是一個由志願者組成、進行「Misskey」開發的社群。 ## 図解 ![図](/img/docs/misskey-and-misskey-servers.ja-jp.png) ## 例子 ### 網站 若打個比方,Misskey 就像用來建立網站的軟體「WordPress」。 Misskey 伺服器相當於使用「WordPress」建立的各個實際網站。 ### 公寓 Misskey 就像「公寓的設計圖」,而 Misskey 伺服器則是「依據設計圖建造的各個公寓」。 Misskey 專案就像負責開發建築設計圖的「設計師事務所」,而 Misskey 伺服器的使用者(用戶)則相當於公寓的住戶。 就像每棟公寓的房東(管理公司)各不相同一樣,Misskey 伺服器的管理者與運營者也各自不同。 Misskey 專案僅負責公開設計圖,並不會實際使用這些設計圖建造公寓,也不會成為公寓的房東或管理公司,亦不參與已建公寓的管理。 #### 更新 公寓的設計圖會不斷修正與改進,也可能加入新的功能(例如增加外部樓梯)。 但設計圖即使更新,已建成的公寓並不會自動改變。 若要讓公寓符合最新的設計圖,房東必須依照設計圖對公寓進行改建或翻修(更新)。 公寓進行翻修的頻率由房東決定,因此各棟公寓的新舊程度會有所不同。 #### 支援 公寓內發生的鄰居糾紛或設備故障等問題,只有房東才能處理。 由於 Misskey 專案只是設計師事務所,因此沒有權限干預公寓的事務。 ================================================ FILE: crowdin.yml ================================================ files: - source: /locales/ja-JP.yml translation: /locales/%locale%.yml update_option: update_as_unapproved skip_untranslated_strings: true - source: /content/ja/docs/**/*.* translation: /content/%two_letters_code%/docs/**/%original_file_name% update_option: update_as_unapproved skip_untranslated_files: true ignore: - "/content/ja/docs/**/_*.md" languages_mapping: two_letters_code: zh-TW: tw zh-CN: cn - source: /content/ja/contact-faq/**/*.* translation: /content/%two_letters_code%/contact-faq/**/%original_file_name% update_option: update_as_unapproved skip_untranslated_files: true ignore: - "/content/ja/contact-faq/**/_*.md" languages_mapping: two_letters_code: zh-TW: tw zh-CN: cn ================================================ FILE: error.vue ================================================ ================================================ FILE: i18n/i18n.config.ts ================================================ export default defineI18nConfig(() => ({ legacy: false, fallbackLocale: ['en', 'ja'], })); ================================================ FILE: layouts/blank.vue ================================================ ================================================ FILE: layouts/default.vue ================================================ ================================================ FILE: layouts/docs.vue ================================================ ================================================ FILE: layouts/landing.vue ================================================ ================================================ FILE: layouts/slim.vue ================================================ ================================================ FILE: layouts/tools.vue ================================================ ================================================ FILE: locales/README.md ================================================ # **DO NOT edit locale files** except `ja-JP.yml`. When you add text to the ja-JP file (of misskey-dev/misskey-hub), it will automatically be applied to other language files. Translations added in ja-JP file should contain the original Japanese strings. ## 翻訳を追加する際の注意 最後の項目 `_api` は今後自動生成する可能性があり、その際にそれ以降のプロパティはすべて削除される可能性があります。 翻訳を追記する際は、`_api` より前に行ってください。 ================================================ FILE: locales/ca-ES.yml ================================================ noScript: "JavaScript està desactivat. Per poder veure aquesta web l'has de tenir activat, si us plau activa'l" learnMore: "Més informació" loading: "Carregant..." clickToExpand: "Fes clic per mostrar" copy: "Copiar" share: "Comparteix" note: "Nota" other: "Altre" add: "Afegeix" generate: "Genera" download: "Descarrega" browse: "Navega" settings: "Preferències" goToLegacyHub: "Versió anterior de Misskey Hub" contactUs: "Contacte amb nosaltres" detail: "Detall" lastUpdate: "Última actualització" empty: "Sense contingut" threeDimensionModel: "Model 3D" clickToShow: "Fes clic per mostrar" preview: "Vista prèvia" scrollable: "Això es pot desplaçar" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "No s'ha trobat la pàgina" notFoundDesc: "La pàgina que cerques no s'ha pogut trobar, si us plau, comprova l'adreça." generalError: "Error" generalErrorDesc: "Si això no estava previst, informa de l'error a continuació." reportProblem: "Informar d'un problema" goToTop: "Tornar a l'inici de la pàgina" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub - Pàgina web oficial del projecte Misskey" defaultTitleTagline: "Una xarxa que s'expandeix amb notes" defaultDescription: "El lloc oficial de Misskey. Una xarxa social descentralitzada, amb molta informació sobre Misskey, incloent-hi com iniciar-se amb Misskey una llista de servidors!" _nav: servers: "Servidors" docs: "Documentació" news: "Novetats" other: "Més!" switchLang: "Canvia l'idioma" _landing: _hero: description: "Misskey és una plataforma de xarxes socials descentralitzades i de codi obert." gettingStarted: "Comença a..." _keyFeatures: _open: title: "Lliure" description: "Misskey és una aplicació de codi obert i qualsevol pot fer-lo servir lliurement." _federated: title: "Federat" description: "Misskey incorpora un protocol descentralitzat, que connecta servidors de diferents comunitats." _powerful: title: "Potent" description: "Misskey té una varietat de funcions a escala de producció i pot ser personalitzat a molts nivells. És la millor solució per a grups grans i petits." _introduction: title: "Crear amb Misskey" description: "Misskey et permet construir d'una manera senzilla la teva plataforma única sense cap implementació complexa. Com el servei que has creat és completament teu, no existeix el risc de dependre d'altres plataformes existents per la teva presència en línia." tip: "Misskey, per si mateix no és un servei web. És l'aplicatiu fundacional per crear un servei web, semblant a fer servir Wordpress per fer una web." _decenterized: title: "Misskey és {0}" description: "Misskey és un projecte lliure i obert, el que vol dir que qualsevol pot crear un servidor fent servir Misskey, i és per això que ja hi han molts servidors disponibles a internet. Altre característica important és que Misskey fa servir un protocol de comunicació anomenat {0}, això significa que es igual quin servidor escollís, pots interactuar amb usuaris d'altres servidors. Per això es diu descentralitzat i això el fa totalment diferent a altres serveis com Twitter, que es publica sota una mateixa adreça URL i per un únic operador. Els temes principals, els usuaris i els idiomes canvien d'un servidor a un altre i part de la diversió es trobar el servidor més adecuat a la teva manera de ser (per descomptat, crear el teu propi servidor també es divertit)." activityPub: "ActivityPub" _useCases: title: "Com el pots fer servir" single: "Servidor personal per mantenir-te informat i per informar de les teves coses" official: "Servidor dedicat pel compte promocional d'una companyia" community: "Un servidor comunitari per a persones que comparteixin els mateixos interessos" inHouse: "Com a servidor privat social d'una companyia" _free: title: "Misskey és, i sempre serà, lliure i de codi obert" description: "Densa la seva creació al 2014 i en el futur, Misskey és i continuarà sent un programari de codi obert (OSS per les seves sigles en angles). El seu codi està disponible públicament per a qualsevol persona que el vulgui fer servir, modificar i distribuir de forma gratuïta. Misskey continua sent de codi obert gràcies al suport de la comunitat." _features: _root: title: "Funcions principals" description: "Misskey té una gamma molt ampla de característiques, tant generals com especials. Algunes són." _note: title: "Notes" description: "A Misskey les contribucions dels usuaris es diuen \"notes\". Pots citar altres notes i adjuntar imatges, vídeos, àudios o qualsevol altre arxiu." _federation: title: "Federació" description: "Fa servir ActivityPub, un protocol distribuït de codi obert, que li permet interactuar amb altres programes que suportin ActivityPub i també altres servidors Misskey." _reaction: title: "Reaccions" description: "Pots afegir \"reaccions\" a les teves notes, això et permetrà expressar i comunicar les teves emocions de forma fàcil i senzilla." _customEmojis: title: "Emojis personalitzats" description: "És possible crear emojis personalitzats per al servidor i fer-los servir en diferents parts de Misskey." _channel: title: "Canal" description: "Creant un canal et permet crear una comunitat dintre del servidor amb un tema en comú." _antenna: title: "Antena" description: "Pots crear línies de temps que continguin només notes que continguin determinades paraules." _drive: title: "Disc" description: "Hi ha una interfície per poder gestionar els arxius que has pujat. Això permet organitzar les teves imatges favorites en carpetes i tornar-les a compartir." _2fa: title: "Autentificació de doble factor" description: "Admet un seguit de tecnologies per augmentar la seguretat dels comptes, amb autentificació de doble factor mitjançant contrasenyes d'un sol ús i mitjançant claus físiques." _charts: title: "Gràfics" description: "Misskey ve equipat amb un motor que et permet visualitzar l'ús del servidor i altres informacions." _branding: title: "Marca" description: "Personalitza el logotip, les icones i els temes del teu servidor per crear, fàcilment, la teva imatge de marca." _roles: title: "Rol" description: "Els rols permeten personalitzar els permisos de cada usuari. Els rols condicionals també es poden utilitzar per assignar automàticament rols als usuaris que coincideixen amb certs criteris. També es poden fer servir insígnies als rols per ajudar a monetitzar el teu servidor." _moderation: title: "Moderació" description: "Per defecte s'inclouen una sèrie de funcions de moderació per facilitar-ne la gestió del servidor." _privacy: title: "Privacitat" description: "Control flexible sobre l'abast de la publicació de continguts amb àmplies opcions de privacitat." _multiPurpose: title: "Un o tots" description: "Pot fer-se servir com a xarxa social per un gran nombre d'usuaris, o com servidor personal, fent-lo servir com el teu propi i potent punt de connexió amb el Fedivers." _monetization: title: "Monetització" description: "Per garantir la sostenibilitat de les operacions, també hi ha ajudes que permeten monetitzar el servidor, com la visualització d'anuncis." _oss: title: "Mi ♥️ OSS" description: "Misskey ha sigut i continuarà sent de codi obert, amb el codi font accessible per tothom gratuïtament. El projecte Misskey també suporta altres aplicacions OSS." _battleTested: title: "fiabilitat" description: "Misskey ha estat provat en entorns reals durant més d'una dècada i està orgullós de ser altament fiable." _featuresServer: _root: title: "Funcions del servidor" description: "Característiques d'implementacions darrere de Misskey." _easyInstall: title: "Instal·lació senzilla" description: "Pot instal·lar-se amb comandes senzilles i també pot gestionar-se amb serveis d'allotjament proporcionats per diferents empreses." _easySetup: title: "Senzill de configurar" description: "La instal·lació d'un servidor Misskey no requereix cap configuració complexa i pot estar operatiu immediatament. Per altra banda es poden realitzar configuracions més avançades que s'adaptin a les seves necessitats." _api: title: "API" description: "Totes les funcions de Misskey és poden fer servir mitjançant una API HTTP, això facilita la integració amb altres aplicacions. També és compatible amb connexions Webhook i WebSockets que permet rebre esdeveniments de Misskey en temps real." _relay: title: "Suport de repetidors" description: "Admet servidors repetidors, que transmeten la informació del Fediverse, fent que es pugui recopilar informació sense la necessitat de connectar-se manualment a un gran nombre de servidors." _nodejs: title: "Node.js al darrere" description: "Misskey fa servir Node.js pel darrere, el que fa que sigui ràpid i lleuger." _postgresql: title: "PostgreSQL" description: "La base de dades principal és PostgreSQL, que proporciona una gestió sòlida de les dades." _fullTextSearch: title: "Cercador de text complert" description: "Fes cerques de text complet fent servir les capacitats de PostgreSQL o motors de cerca externs com Meilisearch." _jobQueue: title: "Eficaç cua de feines" description: "Per gestionar la cua de feines es fa servir BullMQ, que permet que les tasques es processin ràpida i amb eficiència. A més l'inspector de Misskey, implementar de forma nativa al taulell de control, permet fer la gestió sense la necessitat de fer servir eines externes." _cdn: title: "Suport de CDN" description: "Suport per desar recursos a CDNs externs, reduint la càrrega del servidor i retallant costos." _ftt: title: "FTT" description: "La tecnologia Fan-out Timeline (FTT) construeix les línies de temps a Redis per millorar el rendiment." _rbt: title: "RBT" description: "La tecnologia Reactions Buffering Technology (RBT) deixa a Redis les dades de les reaccions per millorar el rendiment." _scalable: title: "Escalable" description: "Dissenyat per escalar amb l'augment d'usuaris mitjançant agrupació de processos, l'equilibrament de càrregues entre servidors i replicació de bases de dades." _seo: title: "SEO" description: "Alguns continguts poden ser indexats per motors de cerca gràcies a la tecnologia SSR (Server Side Rendering) i la compatibilitat amb OGP permet la previsualització del contingut a xarxes socials. Per descomptat també pots configurar el sistema per rebutjar que els indexadors puguin indexar el contingut que no vols." _ml: title: "Aprenentatge automàtic" description: "Les funcions d'aprenentatge automàtic incloses es poden fer servir per reduir les càrregues operatives. Per exemple es poden fer servir per filtrar automàticament els fitxers sensibles." _sentry: title: "Suport per a Sentry" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "多言語対応" description: "クライアントを様々な言語で利用可能です。" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を用いたステートレス認証を実装し、よりセキュア・より高速なリクエストの検証を実現します。" _newBackend: title: "より軽量なバックエンド" description: "より高速・軽量に動作可能にするための全く新しいバックエンド実装の開発を進めています。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートし、より軽量なWeb UIを実現します。" _getStarted: title: "Misskeyをはじめる" _find: title: "サーバーを見つける" list: "サーバーリスト" _create: title: "サーバーを作成" guide: "セットアップガイド" _docs: title: "学ぶ" docs: "ドキュメント" _dev: title: "開発に参加する" _donation: title: "ご支援のお願い" description: "Misskeyは非営利なプロジェクトで、少数の有志による開発のため、開発資金は皆様からの寄付に頼っています。Misskeyを気に入ってくださいましたら、今後も開発を続けられるようにぜひ支援をお願いします!" _sponsors: title: "スポンサー" becomeASponsor: "スポンサーになる" _servers: title: "サーバー一覧" description: "Misskeyは単一のサービスではなく、各々がサービスを提供する分散型ネットワークとなっています。Misskeyを利用するには、サービスを提供しているサーバーでアカウントを作成する必要があります。" addYourServer: "あなたのサーバーが表示されませんか?{0}から登録してください!" addYourServerLink: "こちら" disclaimerTitle: "【重要】免責事項" disclaimer: "このサーバー一覧は、Fediverse上で発見されたMisskeyサーバーを自動で掲載するものであり、原則として手動での確認は行っておりません。ここに掲載されているサーバーは、Misskey Projectが確認・検証・承認したものではありません。アクセス先でユーザーに生じたあらゆる損害について、Misskey Projectは一切責任を負いません。" _system: fetchError: "データの読み込みに失敗しました。後でもう一度お試しください。" _statistics: title: "サーバー統計" description: "Misskeyサーバーの統計データをグラフでご紹介。" viewFullStats: "詳しい統計を見る" lang: "プライマリ言語" registerAcceptance: "新規登録受付方式" version: "バージョン" notes: "ノート数" users: "ユーザー数" servers: "サーバー数" _search: title: "絞り込み検索" all: "すべて" query: "キーワードで検索" lang: "言語" orderBy: "並び替え" recomendded: "デフォルト" notesCount: "ノート数" notesPer15Days: "1日あたりのノート数(15日平均)" usersCount: "ユーザー数" _registerAcceptance: title: "新規登録" public: "開放" inviteOnly: "招待のみ" _list: notFound: "指定された条件に合致するサーバーは見つかりませんでした。" showMore: "もっと見る" _view: title: "表示形式" list: "リスト" grid: "グリッド" _docs: title: "ドキュメント" description: "Misskeyはオープンソースの分散型ソーシャルネットワーキングプラットフォームです。Misskeyの上手な使い方から、サーバーの運営者・プログラムの開発者向けの情報まで網羅しています。" indexTitle: "目次ページ" _contribute: editThis: "このページを編集" translateThis: "このページを翻訳" _aboutMisskey: title: "Misskeyについて" description: "Misskeyをはじめて知ったかたや、これから使うかた向け!基本的なしくみや機能を見ていきましょう。" _changelog: title: "リリースノート" description: "Misskeyのバージョンアップ履歴をご覧いただけます。最新のバージョンで何が変わったのかを確認しましょう!" _donate: title: "プロジェクトへの寄付" description: "Misskeyは無料で使えるオープンソースのソフトウェアです。気に入っていただけたら、今後も開発を続けられるようにぜひ寄付をご検討ください。" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _forDevelopers: title: "開発者向け" _prevNext: prev: "前へ" next: "次へ" _toc: title: "このページの内容" toPageTop: "ページ上部に戻る" _steppedGuide: selectCourse: "ガイドを選ぶ" noImageInThisStep: "このステップには画像がありません" aiWellDone: "操作はこれで完了です。お疲れ様でした♪" _blog: title: "ブログ" description: "Misskeyの最新情報を発信しています!(日本語のみ)" back: "戻る" _content: tip: "ヒント" warning: "注意" danger: "警告" preview: "プレビュー" _other: title: "もっと!" description: "Misskeyをもっと楽しめるその他のリソースをご紹介しています。" _brandAssets: title: "アセット集" description: "Misskeyのロゴ、アイコンなどのアセットのコレクションです。一定のライセンスのもとでご自由にお使いいただけます。" license: "アセットは、CC BY-SAのライセンスの下で自由にお使いいただけます🎉" assetsDirectory: "全てのアセットは、{0}で管理されています。" logo: "ロゴ" icon: "アイコン" banner: "バナー" avatarDecorationTemplate: "アバターデコレーション テンプレート" fullColorPng: "フルカラー (PNG)" monoChromeSvg: "単色 (SVG)" _contact: title: "お問い合わせ" description: "Misskey Projectへのお問い合わせはこちらから" form: "こちらのフォームからご回答ください。" formGoogleAccountRequired: "現在、スパム対策のため、お問い合わせの送信にはGoogleアカウントが必要となっております。\nお手数をおかけしますが、ご理解のほどよろしくお願い致します。" formLink: "フォームへ進む" faqTitle: "よくあるお問い合わせ" faqDescription: "お問い合わせを送信する前に、あなたの知りたいことがここにないか確認してください。" ifNothingIsFound: "もしあてはまるものがなかったら…" _links: title: "リンク" _github: title: "GitHub" description: "Misskeyの開発はGitHub上で行われています。機能リクエストやバグ報告などはこちらから行えます。" _crowdin: title: "Crowdin" description: "Misskey本体、およびドキュメントの翻訳はこちらで管理されています。皆さんのご協力をお願いします。" _discord: title: "Discordサーバー" description: "Misskeyに関する質問や会話などをお楽しみいただけます。" _aiChan: title: "藍" description: "Misskeyの看板娘、藍のウェブサイトです。" _tools: title: "ツール集" index: "ツール集 ホーム画面" description: "Misskey向けの便利ツールを公開中!" menuToggle: "メニュー" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _mfmPlayground: title: "MFMお試しコーナー" description: "MFMを自由に練習できます!Misskeyの投稿画面・ノートの画面を再現!" preview: "プレビュー" disclaimer: "ここに表示される通りに描画されるとは限りません。コードのシンタックスハイライトには対応していません。" mfm: "MFM" character: "{0} 文字" domain: "表示を再現するサーバー" noteIt: "ノート" clearEmojiCacheDescription: "絵文字が表示されないとき" clearEmojiCache: "絵文字のキャッシュを削除" _aidConverter: title: "aid/aidxツール" description: "Misskeyの内部で使用されているランダムID生成アルゴリズム「aid」と「aidx」の変換・生成ができます。" aidToDate: "aid/aidx→日付時刻" dateToAid: "日付時刻→aid/aidx" mode: "作成するid" date: "日付時刻" inputByLine: "改行区切りで複数のaid/aidxを変換できます。" _aboutUs: title: "Misskey Projectについて" description: "Misskey Projectについての情報を掲載しています。" _team: title: "開発メンバー" description: "Misskeyの開発に関わっている方を紹介しています。" _core: title: "コア チームメンバー" description: "こちらのコアチームメンバーは、Misskey関連のプロジェクトを積極的にメンテナンスしています。" _coreEmeriti: title: "名誉コアチームメンバー" description: "過去に価値のある貢献をしてくださっていた、元コアチームメンバーの皆さんです。" _contributors: title: "コントリビューター" description: "こちらの皆さんは、Misskeyに特に貢献してくださっています。" seeMore: "すべてのコントリビューター" _orgPartner: title: "企業・団体パートナー" description: "こちらの企業・団体から、金銭的・技術的な観点でMisskeyの開発へご協力いただいております。" _hubTranslators: title: "Misskey Hub ローカライザー" description: "Misskey Hubの翻訳に協力いただいている皆さんです。" _coreTranslators: title: "Misskey ローカライザー" description: "Misskeyの翻訳に協力いただいている皆さんです。" _i18n: _missing: title: "翻訳にご協力ください" description: "このドキュメントはコミュニティによる翻訳です。ドキュメントの翻訳は{link}から行えます。ご協力をお願いします🙏" linkLabel: "Crowdin" _share: title: "Misskeyへノート" chooseServer: "ノートするサーバーを選択してください" addServer: "サーバーを追加" domain: "サーバーのドメイン" compatibleWith: "Misskeyと、一部のMisskeyフォークに対応しています。" recommendedByWebsite: "シェア元Webサイトからのおすすめ" _noteVisibility: public: "パブリック" home: "ホーム" followers: "フォロワー" specified: "指名" localOnly: "連合なし" _shareLinkGenerator: title: "共有ボタンジェネレーター" description: "Misskey Hubの共有ボタン中継サービスを利用して、Misskey用の共有ボタンを作成できます。" body: "本文" bodyWarning: "どのサーバーでも共有できるようにするため、カスタム絵文字は使用できません。" url: "URL" urlCaption: "任意。本文の後ろに挿入されます。" settings: "詳細設定" manualInstance: "おすすめサーバー ドメイン" manualInstanceDescription: "ここに指定したサーバー(ひとつ)をシェアボタン中継ページのトップに表示できます。ご自身のサーバーに誘導する際などにお使いいただけます。" visibility: "公開範囲" recipents: "指名ノートを受け取る人のacct(改行区切り)" resultLink: "リンク生成結果" resultButton: "共有ボタンのサンプル" testLink: "共有リンクを試す" typeSomethingToGetLink: "本文を入力するとリンクが生成されます。" typeSomethingToGetButton: "本文を入力するとボタンが生成されます。" documentationIs: "パラメータの詳細情報など、技術仕様は{here}" here: "こちら" _goToMisskey: title: "Misskey Webに移動" heading: "このページを開きたいサーバーを選択してください" _avatarDecorationPreview: title: "アバターデコレーション プレビュー" description: "アバターデコレーションがきれいに反映できるかをチェックできます。" preview: "プレビュー" settings: "設定" decoration: "デコ #{number}" placeholder: "「追加」から、アバターデコレーションを追加してプレビューできます。" _options: offsetX: "横位置調整" offsetY: "縦位置調整" angle: "角度" flip: "左右反転" overlayTemplate: "テンプレートを重ねる" _placeholder: username: "藍" noteText: "チョコのかかったドーナツを食べました🍩😋" profileDescription: "Misskey常駐AIの藍です!よろしくお願いします♪" _customEmojiPreview: title: "カスタム絵文字 プレビュー" description: "カスタム絵文字の視認性をチェックできます。" preview: "プレビュー" emoji: "絵文字 #{number}" placeholder: "「追加」から、カスタム絵文字を追加してプレビューできます。" limitReactionLength: "リアクションの最大横幅を制限し、縮小して表示する" _options: text: "ノート文面" textDescription: "追加したカスタム絵文字は{emoji_id}で参照できます。" _placeholder: noteText: "カスタム絵文字はこんな感じで表示されます→ :emoji_preview_1:\n文章を書き換えて、使い勝手を試してみてくださいね✨" _identiconGenerator: title: "初期アイコンジェネレーター" description: "Misskeyに登録した際にデフォルトで指定される初期アイコンを生成できます。" userName: "ユーザー名" includeDomain: "サーバーのドメイン名を含む完全なユーザー名を指定してください。" _historicalMaterials: title: "歴史資料館" description: "Misskeyに関する歴史的資料を一挙公開" heroSubtitle: "Misskey 10周年記念企画" heroDescription: "Misskeyは2014年に掲示板サービスとして生まれました。それから10年経ち、今ではたくさんの方々に利用していただけるプラットフォームになりました。\nここではMisskeyに関する歴史的資料を一挙公開します!" submissionTitle: "古いMisskeyの写真をお持ちですか?" submissionDescription: "昔のMisskeyにまつわる資料をお持ちの方は、ぜひ当館にお寄せください。\nGitHubを利用できる方は{gh_issue}に、利用できない方は {'@'}syuilo{'@'}misskey.io にお送りください。" _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にお手持ちの画像を当てはめて見栄えをチェックできます。" name: "サーバー名" serverDescription: "説明文" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されている場合は、背景画像の方を優先して表示します。画像は中心基準で16:9に収まる最大領域のみが表示されます。" _api: _permissions: title: "権限" description: "説明" _types: "read:account": "アカウントの情報を見る" "write:account": "アカウントの情報を変更する" "read:blocks": "ブロックを見る" "write:blocks": "ブロックを操作する" "read:drive": "ドライブを見る" "write:drive": "ドライブを操作する" "read:favorites": "お気に入りを見る" "write:favorites": "お気に入りを操作する" "read:following": "フォローの情報を見る" "write:following": "フォロー・フォロー解除する" "read:messaging": "チャットを見る" "write:messaging": "チャットを操作する" "read:mutes": "ミュートを見る" "write:mutes": "ミュートを操作する" "write:notes": "ノートを作成・削除する" "read:notifications": "通知を見る" "write:notifications": "通知を操作する" "read:reactions": "リアクションを見る" "write:reactions": "リアクションを操作する" "write:votes": "投票する" "read:pages": "ページを見る" "write:pages": "ページを操作する" "read:page-likes": "ページのいいねを見る" "write:page-likes": "ページのいいねを操作する" "read:user-groups": "ユーザーグループを見る" "write:user-groups": "ユーザーグループを操作する" "read:channels": "チャンネルを見る" "write:channels": "チャンネルを操作する" "read:gallery": "ギャラリーを見る" "write:gallery": "ギャラリーを操作する" "read:gallery-likes": "ギャラリーのいいねを見る" "write:gallery-likes": "ギャラリーのいいねを操作する" "read:flash": "Playを見る" "write:flash": "Playを操作する" "read:flash-likes": "Playのいいねを見る" "write:flash-likes": "Playのいいねを操作する" "read:admin:abuse-user-reports": "ユーザーからの通報を見る" "write:admin:delete-account": "ユーザーアカウントを削除する" "write:admin:delete-all-files-of-a-user": "ユーザーのすべてのファイルを削除する" "read:admin:index-stats": "データベースインデックスに関する情報を見る" "read:admin:table-stats": "データベーステーブルに関する情報を見る" "read:admin:user-ips": "ユーザーのIPアドレスを見る" "read:admin:meta": "インスタンスのメタデータを見る" "write:admin:reset-password": "ユーザーのパスワードをリセットする" "write:admin:resolve-abuse-user-report": "ユーザーからの通報を解決する" "write:admin:send-email": "メールを送る" "read:admin:server-info": "サーバーの情報を見る" "read:admin:show-moderation-log": "モデレーションログを見る" "read:admin:show-user": "ユーザーのプライベートな情報を見る" "write:admin:suspend-user": "ユーザーを凍結する" "write:admin:unset-user-avatar": "ユーザーのアバターを削除する" "write:admin:unset-user-banner": "ユーザーのバーナーを削除する" "write:admin:unsuspend-user": "ユーザーの凍結を解除する" "write:admin:meta": "インスタンスのメタデータを操作する" "write:admin:user-note": "モデレーションノートを操作する" "write:admin:roles": "ロールを操作する" "read:admin:roles": "ロールを見る" "write:admin:relays": "リレーを操作する" "read:admin:relays": "リレーを見る" "write:admin:invite-codes": "招待コードを操作する" "read:admin:invite-codes": "招待コードを見る" "write:admin:announcements": "お知らせを操作する" "read:admin:announcements": "お知らせを見る" "write:admin:avatar-decorations": "アバターデコレーションを操作する" "read:admin:avatar-decorations": "アバターデコレーションを見る" "write:admin:federation": "連合に関する情報を操作する" "write:admin:account": "ユーザーアカウントを操作する" "read:admin:account": "ユーザーに関する情報を見る" "write:admin:emoji": "絵文字を操作する" "read:admin:emoji": "絵文字を見る" "write:admin:queue": "ジョブキューを操作する" "read:admin:queue": "ジョブキューに関する情報を見る" "write:admin:promo": "プロモーションノートを操作する" "write:admin:drive": "ユーザーのドライブを操作する" "read:admin:drive": "ユーザーのドライブの関する情報を見る" "read:admin:stream": "管理者用のWebsocket APIを使う" "write:admin:ad": "広告を操作する" "read:admin:ad": "広告を見る" "write:invite-codes": "招待コードを作成する" "read:invite-codes": "招待コードを取得する" "write:clip-favorite": "クリップのいいねを操作する" "read:clip-favorite": "クリップのいいねを見る" "read:federation": "連合に関する情報を取得する" "write:report-abuse": "違反を報告する" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/de-DE.yml ================================================ noScript: "Javascript ist derzeit deaktiviert. Javascript ist erforderlich, um die Website anzuzeigen." learnMore: "Mehr erfahren" loading: "Wird geladen..." clickToExpand: "Erweitern" copy: "Kopieren" share: "teilen" note: "Notiz" other: "Mehr" add: "hinzufügen" generate: "Erstellen" download: "Herunterladen" browse: "anzeigen" settings: "Einstellungen" goToLegacyHub: "Vorherige Version von Misskey Hub" contactUs: "Kontakt" detail: "Details" lastUpdate: "Letztes Update" empty: "leer" threeDimensionModel: "3D-Modell" clickToShow: "Zum Anzeigen anklicken" preview: "Vorschau" scrollable: "scrollen" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "Seite konnte nicht gefunden werden" notFoundDesc: "Die gesuchte Seite konnte nicht gefunden werden.\nBitte überprüfe die URL oder versuche es später noch einmal." generalError: "Es ist ein Fehler aufgetreten" generalErrorDesc: "Sollte der Fehler weiterhin bestehen bleiben, bitte melde ihn unter \"Fehler melden\"." reportProblem: "Fehler melden" goToTop: "nach oben" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub - offizielle Website" defaultTitleTagline: "Ein durch Notizen verbundenes Netzwerk" defaultDescription: "Die offizielle Seite von Misskey, einem dezentralisierten sozialen Netzwerk, mit vielen Informationen über Misskey, einschließlich der Anleitung zum Betreiben von Misskey und einer Liste der verfügbaren Server!" _nav: servers: "Instanzen" docs: "Dokumentation" news: "ニュース" other: "Mehr!" switchLang: "Sprache" _landing: _hero: description: "Misskey ist eine quelloffene, dezentralisierte Plattform für soziale Netzwerke." gettingStarted: "Erste Schritte" _keyFeatures: _open: title: "offen" description: "Misskey ist eine Open-Source-Software und kann von allen frei verwendet werden." _federated: title: "Dezentralisierung" description: "Misskey implementiert ein dezentrales Protokoll, das Communities auf verschiedenen Servern miteinander verbindet." _powerful: title: "パワフル" description: "Misskeyはカスタマイズ可能なプロダクションレベルの様々な機能を備えています。多人数でも少人数でも、最適なソリューションに。" _introduction: title: "Misskeyで作ろう" description: "Misskeyを使えば、面倒な実装を行うことなく、簡単に独自のプラットフォームを構築可能です。あなたがMisskeyを使って作ったサービスはあなただけのものなので、情報発信における既存プラットフォームへの依存リスクもありません。" tip: "Misskeyは「Webサービスそのもの」ではなく、マイクロブログサービスを作るための「基盤となるソフトウェア」です。Webサイトを作るのにWordPressといったソフトウェアを使うのと同じです。" _decenterized: title: "Misskey ist eine {0}" description: "Misskey ist ein freies und offenes Projekt, was bedeutet, dass es jedem freisteht, einen Server mit Misskey zu erstellen, so das bereits eine Menge von Servern im Internet verfügbar sind. Ein weiteres Merkmal ist, dass Misskey ein verteiltes Kommunikationsprotokoll namens {0} implementiert. Das bedeutet, egal welcher Server gewählt wird, alle mit allen Benutzern auf anderen Servern interagieren können. Deshalb wird es dezentralisiert genannt und unterscheidet sich grundlegend von anderen Diensten wie zum Beispiel Twitter, die unter einer einzigen Website von einem einzigen Ceo veröffentlicht werden. Die Themen, Gruppen und Sprachen unterscheiden sich von Server zu Server. Den Server zu finden, der zu dir passt, ist Teil des Spaßes (und natürlich macht es auch Spaß, einen eigenen Server zu haben)." activityPub: "ActivityPub" _useCases: title: "こんな使い方ができます" single: "情報収集・情報発信のための自分専用のサーバー" official: "会社の広報アカウントを設置する専用のサーバー" community: "同じ関心をもつユーザー向けのコミュニティサーバー" inHouse: "社内SNSとしてのプライベートサーバー" _free: title: "Misskeyはずっと無料でオープン" description: "Misskeyは2014年の開発当初から、そしてこれから未来も、プログラムのソースコードが公開されているオープンソースソフトウェア(OSS)です。また、誰でも無料で・自由にソースコードを利用可能です。MisskeyがOSSであり続けられるのは皆様からの支援のおかげです。" _features: _root: title: "Basis-Features" description: "Misskey verfügt über eine breite Palette von allgemeinen und speziellen Funktionen. Einige davon sind" _note: title: "Notiz" description: "In Misskey werden Beiträge als „Notizen“ bezeichnet. Benutzer können Notizen zitieren und Bilder, Videos, Audio- oder andere Dateien anhängen." _federation: title: "Fediversum" description: "ActivityPub ist ein offenes und dezentrales Protokoll, das mit anderer Software und Misskey-Instanzen interagieren kann, die ActivityPub unterstützt." _reaction: title: "Reaktionen" description: "Füge Notizen „Reaktionen“ hinzufügen um so Gefühle einfach auszudrücken und dich mitzuteilen." _customEmojis: title: "カスタム絵文字" description: "Misskeyの様々な場所で使用できる、サーバーオリジナルの絵文字を作成可能です。" _channel: title: "チャンネル" description: "チャンネルを作成すれば、共通のテーマでサーバー内コミュニティを作成することが可能です。" _antenna: title: "アンテナ" description: "特定のワードが含まれるノートだけを収集するタイムラインを作成可能です。" _drive: title: "Drive" description: "Schnittstelle zur Verwaltung hochgeladener Dateien. So können Lieblingsbilder ganz einfach in Ordnern organisieren und freigegeben werden." _2fa: title: "多要素認証" description: "ワンタイムパスワードを使用した多要素認証や、物理的なキーを使用したパスキー認証で、アカウントのセキュリティを高める各種技術をサポート。" _charts: title: "Statistiken" description: "Misskey verfügt über eine integrierte Diagramm-Engine, mit der sich Dinge wie die Serverauslastung einfach visualisieren lassen." _branding: title: "ブランディング" description: "サーバーのロゴ、アイコン、テーマなどをカスタマイズして、簡単にSNSのブランディングを行えます。" _roles: title: "ロール" description: "ロールを使用すると、ユーザーごとに権限を細かくカスタマイズできます。また、コンディショナルロールを使えば、条件に一致するユーザーに自動でロールをアサインすることも可能です。ロールにバッジを設定して、サーバーのマネタイズに役立てることもできます。" _moderation: title: "モデレーション" description: "サーバー運営を助ける、充実のモデレーション機能が標準搭載。WebUIに統合されているため、シームレスに操作可能です。" _privacy: title: "プライバシー" description: "豊富なプライバシー設定で、コンテンツの公開範囲を柔軟にコントロール。" _multiPurpose: title: "ひとりでも、みんなでも" description: "多数の利用者を受け入れるSNSとしての運用はもちろん、個人用サーバーとしての利用もサポート。Fediverseと繋がるための、あなただけの強力な拠点になります。" _monetization: title: "収益化" description: "広告の表示など、サーバーのマネタイズを助ける機能も用意されていて、持続可能な運用を目指せます。" _oss: title: "Mi ❤️ OSS" description: "Misskeyはこれまでもこれからもオープンソースで、誰でも自由に、無料でソースコードを利用可能です。またMisskey Projectは、他のOSSに対して積極的に支援活動を行っています。" _battleTested: title: "信頼性" description: "Misskeyは10年以上にわたって実際の環境で使われており(battle-tested)、高い信頼性があると自負しています。" _featuresServer: _root: title: "サーバーの機能" description: "Misskeyを支えるバックエンド実装の特徴。" _easyInstall: title: "簡単インストール" description: "簡単なコマンドでインストールできるほか、各社提供のホスティングサービスを利用すれば、管理の手間も省けます。" _easySetup: title: "セットアップもカンタン" description: "Misskeyサーバーのセットアップに複雑な設定は不要。ウィザードに従うだけで最適な設定が行われ、すぐに運用を始められます。一方、ニーズに合わせて高度な設定を行うことも可能です。" _api: title: "API" description: "Misskeyの全ての機能はHTTP APIを通じて操作でき、他のアプリケーションとの連携も容易です。さらに、WebhookやWebSocket接続もサポートしているので、リアルタイムにMisskeyからのイベントを受け取ることも可能です。" _relay: title: "リレー対応" description: "Fediverse内のアクティビティを中継するリレーサーバーへの接続をサポートしているので、手動で多数のサーバーと繋げることなく情報収集が可能です。" _nodejs: title: "Node.jsバックエンド" description: "MisskeyはバックエンドにNode.jsを採用しており、高速・軽量に動作します。" _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを採用し、堅牢なデータ管理を実現しています。" _fullTextSearch: title: "全文検索" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにBullMQを採用し、タスクを複数のサーバーで効率的に処理。また、Misskeyネイティブで実装されたインスペクタはコントロールパネルに統合され、外部ツールに頼ることなく管理が可能です。" _cdn: title: "CDN対応" description: "外部CDNによるリソースのキャッシュに対応しています。サーバーへのリクエストを減らすことで、負荷低減・コスト削減が可能です。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)により、タイムラインをRedis上に構築しパフォーマンスを向上させることができます。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)により、リアクション情報をRedis上にキャッシュしパフォーマンスを向上させることができます。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応しており、ユーザーの増加にも対応できます。" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "機械学習" description: "組み込みの機械学習機能を利用して、自動的にセンシティブなメディアのフィルタリングを行うなど、運用の負担を軽減することも可能です。" _sentry: title: "Sentryサポート" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "多言語対応" description: "クライアントを様々な言語で利用可能です。" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を用いたステートレス認証を実装し、よりセキュア・より高速なリクエストの検証を実現します。" _newBackend: title: "より軽量なバックエンド" description: "より高速・軽量に動作可能にするための全く新しいバックエンド実装の開発を進めています。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートし、より軽量なWeb UIを実現します。" _getStarted: title: "Mit Misskey beginnen" _find: title: "Server finden" list: "Verfügbare Server" _create: title: "Server Erstellen" guide: "Setup-Anleitung" _docs: title: "Mehr erfahren" docs: "Dokumentation ansehen" _dev: title: "開発に参加する" _donation: title: "Finanziell unterstützen" description: "Da Misskey eine gemeinnützige Organisation ist, sind wir zur Finanzierung unserer Entwicklung auf Ihre Spenden angewiesen. Unterstütze uns, wenn dir Misskey gefällt." _sponsors: title: "Sponsoren" becomeASponsor: "Sponsor werden" _servers: title: "Serverliste" description: "Misskey ist kein einzelner Dienst, sondern ein dezentrales Netzwerk, in dem jeder Dienst von verschiedenen Leuten bereitgestellt wird. Um Misskey verwenden zu können, muss auf dem Server, der den Dienst bereitstellt, ein Konto erstellt werden." addYourServer: "Dein Server nicht dabei? Melde dich {0} an!" addYourServerLink: "hier" disclaimerTitle: "【Wichtiger】Haftungsausschluss" disclaimer: "Diese Serverliste wird automatisch mit auf Fediverse entdeckten Misskey-Servern gefüllt und wird in der Regel nicht manuell überprüft. Die hier aufgeführten Server wurden von Misskey Project weder geprüft noch verifiziert oder freigegeben. Misskey Project übernimmt keine Verantwortung für Schäden, die den Benutzern auf den von ihnen aufgerufenen Websites entstehen." _system: fetchError: "Daten konnten nicht geladen werden. Bitte versuchen es später erneut." _statistics: title: "Serverstatistiken" description: "Einführung von Misskey-Serverstatistiken in Diagrammen" viewFullStats: "Detaillierte Statistiken anzeigen" lang: "Hauptsprache" registerAcceptance: "Registration" version: "Version" notes: "Anzahl der Notizen" users: "Anzahl von Benutzern" servers: "Anzahl der Server" _search: title: "Suche filtern" all: "Alle" query: "Stichwortsuche" lang: "Sprache" orderBy: "Sortieren nach" recomendded: "Standard" notesCount: "Anzahl der Notizen" notesPer15Days: "Suche Notizen (letzte 15Tage)" usersCount: "Anzahl von Benutzern" _registerAcceptance: title: "Registrieren" public: "offen" inviteOnly: "Nur auf Einladung" _list: notFound: "Es wurden keine Server gefunden, die den angegebenen Kriterien entsprechen." showMore: "Mehr anzeigen" _view: title: "Stil anzeigen" list: "Liste" grid: "Gitter" _docs: title: "Dokumentation" description: "Misskey ist eine dezentrale, quelloffene & Soziale Netzwerk-Plattform. Es deckt alles von der effektiven Verwendung von Misskey, bis zu Informationen für Serverbetreiber und Programmierer ab." indexTitle: "Dokumentation" _contribute: editThis: "Seite bearbeiten" translateThis: "Übersetzen" _aboutMisskey: title: "Über Misskey" description: "Für alle, die zum ersten Mal von Misskey hören oder planen, es in Zukunft zu verwenden! Schauen wir uns die grundlegenden Mechanismen und Funktionen an." _changelog: title: "Release Notes" description: "Lasse dir die Release Notes von Misskey anzeigen und schau, was sich in der neuesten Version geändert hat!" _donate: title: "Spenden" description: "Misskey ist eine kostenlose Open-Source-Software. Wenn es dir gefällt, unterstütze uns mit einer Spende." _forUsers: title: "Für Misskey-Nutzer" _forAdmin: title: "Für Serverbetreiber" _forDevelopers: title: "Für Entwickler" _prevNext: prev: "zurück" next: "weiter" _toc: title: "Auf dieser Seite" toPageTop: "nach oben" _steppedGuide: selectCourse: "Leitfaden auswählen" noImageInThisStep: "Für diesen Schritt sind keine Bilder verfügbar." aiWellDone: "Der Vorgang ist nun abgeschlossen. Vielen Dank für deine harte Arbeit ♪" _blog: title: "Blog" description: "Wir liefern die neuesten Informationen zu Misskey! (nur Japanisch)" back: "Zurück" _content: tip: "Hinweis" warning: "Achtung" danger: "WARNUNG" preview: "Vorschau" _other: title: "Mehr!" description: "Hier sind einige andere Ressourcen." _brandAssets: title: "Asset-Sammlung" description: "Eine Sammlung von Logos, Symbolen und anderen Assets von Misskey." license: "Die Assets können unter der CC BY-SA-Lizenz kostenlos verwendet werden 🎉" assetsDirectory: "Alle Assets werden von {0} verwaltet." logo: "Logo" icon: "Avatar" banner: "Banner" avatarDecorationTemplate: "Vorlagen Avatar-Dekoration" fullColorPng: "Farbig (PNG)" monoChromeSvg: "Monochrom (SVG)" _contact: title: "Kontakt" description: "Misskey-Projekt kontaktieren" form: "Bitte beantworte die Fragen in diesem Formular." formGoogleAccountRequired: "Um Spam zu verhindern, wird derzeit ein Google-Konto benötigt. Wir entschuldigen uns für die Unannehmlichkeiten und danken für das Verständnis." formLink: "Weiter zum Formular" faqTitle: "FAQ - Häufig gestellte Fragen" faqDescription: "Bitte schaue zuerst in das FAQ, bevor du fortfährst." ifNothingIsFound: "Wenn nichts gefunden wurde, was zu deinem Thema passt…" _links: title: "Link" _github: title: "Github" description: "Die Misskey-Entwicklung wird auf GitHub durchgeführt. Funktionswünsche und Fehlerberichte können dort abgegeben werden." _crowdin: title: "Crowdin" description: "Die Übersetzung erfolgt durch Freiwillige, wie dich." _discord: title: "Discord Server" description: "Stelle eine Frage und sei teil unserer Community." _aiChan: title: "Ai" description: "Dies ist die Website von Misskey-Maskotchen Ai." _tools: title: "Tools" index: "Tools-Startbildschirm" description: "Neue Tools für Misskey sind jetzt verfügbar!" menuToggle: "Menü" _forUsers: title: "Für Misskey-Nutzer" _forAdmin: title: "Für Serverbetreiber" _mfmPlayground: title: "MFM-Testecke" description: "MFM in aller Ruhe ausprobieren, indem Sie die Buchungs- und Notizbildschirme von Misskey nachbilden!" preview: "Vorschau" disclaimer: "Es kann sein, dass die Darstellung nicht exakt so ist, wie hier gezeigt. Die Hervorhebung der Codesyntax wird nicht unterstützt." mfm: "MFM" character: "{0} Zeichen" domain: "Server, um den Bildschirm zu reproduzieren." noteIt: "Notiz" clearEmojiCacheDescription: "Falls keine Piktogramme angezeigt werden" clearEmojiCache: "Lösche den Cache" _aidConverter: title: "aid/aidx-Tools" description: "Die in Misskey intern verwendeten Algorithmen zur Erzeugung von Zufalls-IDs 'aid' und 'aidx' können konvertiert und erstellt werden." aidToDate: "aid/aidx → Datum" dateToAid: "Datum → aid/aidx" mode: "ID erstellen" date: "Datum & Zeit" inputByLine: "aid/aidx können mit Zeilenumbrüchen konvertiert werden." _aboutUs: title: "Über das Misskey-Projekt" description: "Informationen über das Misskey-Projekt." _team: title: "Entwickler-Team" description: "Lerne das Team hinter Misskey kennen" _core: title: "Kernteam" description: "Das Kernteam steht aktiv zu Misskey" _coreEmeriti: title: "Ehrenmitglieder" description: "Dabei handelt es sich um ehemalige Mitglieder des Kernteams, die in der Vergangenheit wertvolle Beiträge geleistet haben." _contributors: title: "Mitwirkende" description: "Jeder Leistet einen Beitrag und bringt Misskey voran." seeMore: "Alle Mitwirkenden" _orgPartner: title: "Sponsoren" description: "Folgende Unternehmen und Organisationen unterstützen die Entwicklung von Misskey technisch und finanziell." _hubTranslators: title: "Misskey-Hub Übersetzer" description: "Das sind die Leute, die bei der Übersetzung von Misskey Hub helfen." _coreTranslators: title: "Misskey Übersetzer" description: "Das sind die Leute, die bei der Übersetzung von Misskey helfen." _i18n: _missing: title: "hilf mit beim Übersetzen" description: "Dieses Dokument wurde von der Community übersetzt. Dokumentation hier übersetzen: {link} Vielen Dank für die Mitarbeit🙏" linkLabel: "Crowdin" _share: title: "Zu Misskey" chooseServer: "Wähle einen Server aus" addServer: "Server hinzufügen" domain: "Domain" compatibleWith: "Kompatibel mit Misskey und Misskey-Forks" recommendedByWebsite: "Empfehlungen" _noteVisibility: public: "Öffentlich" home: "Startseite" followers: "Follower" specified: "Direktnachrichten" localOnly: "Deföderieren" _shareLinkGenerator: title: "Share-Button erstellen" description: "Mit dem Share-Button-Relay-Dienst von Misskey Hub eine Share-Button für Misskey erstellen." body: "Text" bodyWarning: "Benutzerdefinierte Emojis sind nicht zulässig." url: "URL" urlCaption: "Zufällig, wird nach dem Text eingefügt" settings: "Erweiterte Einstellungen" manualInstance: "Empfohlene Domains" manualInstanceDescription: "Der hier angegebene Server (einer) wird oben auf der Relay-Seite der Share-Schaltfläche angezeigt. Benutzer können auf Ihren eigenen Server umleiten." visibility: "Sichtbarkeit" recipents: "Empfänger, trennen mit Zeilenumbruch" resultLink: "Linkgenerierung" resultButton: "Beispiel „Teilen“" testLink: "Versuche es mit einem freigegebenen Link" typeSomethingToGetLink: "Sobald der Text eingeben ist, wird der Link generiert." typeSomethingToGetButton: "Sobald der Text eingeben ist, wird eine Schaltfläche generiert." documentationIs: "Technische Daten, einschließlich detaillierter Parameterinformationen, findest du {here}." here: "hier" _goToMisskey: title: "Zu Misskey Web" heading: "Wähle den Server aus, auf dem diese Seite öffnen soll." _avatarDecorationPreview: title: "Vorlagen Avatar-Dekoration" description: "Du kannst Überprüfen, ob die Avatar-Dekoration richtig wiedergegeben wird." preview: "Vorschau" settings: "Einstellungen" decoration: "Deko #{number}" placeholder: "Klicken auf „Hinzufügen“, um Avatar-Dekorationen hinzuzufügen und in der Vorschau anzuzeigen." _options: offsetX: "Horizontale Positionsanpassung" offsetY: "Vertikale Positionsanpassung" angle: "Winkel" flip: "Horizontal spiegeln" overlayTemplate: "Überlagern" _placeholder: username: "Ai" noteText: "Ich hatte gerade einen Donut mit Schokoladenüberzug 🍩😋" profileDescription: "Ich bin Ai, die ansässige KI von Misskey! Vielen Dank im Voraus ♪" _customEmojiPreview: title: "Benutzerdefinierte Emoji-Vorschau" description: "Sichtbarkeit von benutzerdefinierten Emojis überprüfen." preview: "Vorschau" emoji: "Deko #{number}" placeholder: "Klicke auf „Hinzufügen“, um benutzerdefinierte Emoji hinzuzufügen und in der Vorschau anzuzeigen." limitReactionLength: "Begrenze die Breite der Reaktion und zeige sie verkleinert an" _options: text: "Notiztext" textDescription: "Mit {emoji_id} auf die benutzerdefinierten Emoji verweisen." _placeholder: noteText: "Vorschau → :emoji_preview_1:\nVersuche, den Text neu zu schreiben, und überzeuge Sie, wie einfach die Anwendung ist.✨" _identiconGenerator: title: "Icon-Generator" description: "Das erste Symbol generieren, das standardmäßig angegeben wird, wenn man sich bei Misskey registriert." userName: "Benutzername" includeDomain: "Gebe den vollständigen Benutzernamen, einschließlich des Serverdomänennamens an." _historicalMaterials: title: "Historisches Museum" description: "Eine Sammlung von historischen Dokumenten über Misskey." heroSubtitle: "Misskey-Projekt zum 10.ten Geburtstag" heroDescription: "Misskey wurde 2014 als Bulletin-Board-Dienst gestartet. Seitdem sind zehn Jahre vergangen und es ist mittlerweile eine Plattform geworden, die von vielen Menschen weltweit genutzt wird.\nHier enthüllen wir alle historischen Informationen über Misskey!" submissionTitle: "Noch alte Fotos von Misskey?" submissionDescription: "Wenn du alte Materialien zu Misskey hast, sende an unser Museum.\nZugriff über GitHub: sende es an {gh_issue}. Wenn kein Github-Account zur Verfügung steht, kannst du dies auch ann {'@'}syuilo{'@'}misskey.io senden." _miHubServerListPreview: title: "Vorschau der Misskey Hub-Serverliste" description: "Aussehen des Bildes überprüfen, indem du es auf die Serverliste auf Misskey Hub anwenden." name: "Servername" serverDescription: "Beschreibung" icon: "Bild:" bannerOrBg: "Bannerbild oder Hintergrundbild" bannerOrBgDescription: "Wenn sowohl ein Bannerbild als auch ein Hintergrundbild angegeben sind, wird zuerst das Hintergrundbild angezeigt. Es wird immer nur der maximale Bildbereich angezeigt, der ins 16:9-Format passt, ausgehend von der Mitte." _api: _permissions: title: "Berechtigungen" description: "Beschreibung" _types: "read:account": "Deine Benutzerkontoinformationen lesen" "write:account": "Deine Benutzerkontoinformationen bearbeiten" "read:blocks": "Die Liste deiner blockierten Benutzer lesen" "write:blocks": "Die Liste deiner blockierten Benutzer bearbeiten" "read:drive": "Deine Drive-Dateien und Ordner lesen" "write:drive": "Deine Drive-Dateien und Ordner bearbeiten oder löschen" "read:favorites": "Deine Favoriten-Liste lesen" "write:favorites": "Deine Favoriten-Liste bearbeiten" "read:following": "Die Liste der Benutzer, denen du folgst, lesen" "write:following": "Anderen Benutzern folgen oder entfolgen" "read:messaging": "Chats lesen" "write:messaging": "Chats verwenden" "read:mutes": "Stummschaltungen lesen" "write:mutes": "Stummschaltungen bearbeiten" "write:notes": "Notizen schreiben oder löschen" "read:notifications": "Benachrichtigungen lesen" "write:notifications": "Benachrichtigungen bearbeiten" "read:reactions": "Reaktionen lesen" "write:reactions": "Reaktionen hinzufügen und bearbeiten" "write:votes": "Abstimmen" "read:pages": "Seite anschauen" "write:pages": "Deine Seiten bearbeiten oder löschen" "read:page-likes": "Liste der Seiten, die mir gefallen, lesen" "write:page-likes": "Liste der Seiten, die mir gefallen, bearbeiten" "read:user-groups": "Benutzergruppen lesen" "write:user-groups": "Benutzergruppen bearbeiten oder löschen" "read:channels": "Kanäle lesen" "write:channels": "Kanäle bearbeiten oder löschen" "read:gallery": "Beiträge deiner Galerie lesen" "write:gallery": "Deine Galerie bearbeiten oder löschen" "read:gallery-likes": "Liste deiner mit \"Gefällt mir\" markierten Galerie-Beiträge lesen" "write:gallery-likes": "Liste deiner mit \"Gefällt mir\" markierten Galerie-Beiträge bearbeiten oder löschen" "read:flash": "Spiel ansehen" "write:flash": "Spiel bearbeiten oder löschen" "read:flash-likes": "Liste der Plays, die mir gefallen, lesen" "write:flash-likes": "Liste der Plays, die mir gefallen, bearbeiten oder löschen" "read:admin:abuse-user-reports": "Geblockte Kontakte sehen" "write:admin:delete-account": "Mein Benutzerkonto löschen" "write:admin:delete-all-files-of-a-user": "Alle Dateien eines Benutzers löschen" "read:admin:index-stats": "Statistiken zu Datenbankindizes einsehen" "read:admin:table-stats": "Statistiken zu Datenbanktabellen einsehen" "read:admin:user-ips": "IP-Adressen von Benutzern anzeigen" "read:admin:meta": "Metadaten der Instanz einsehen" "write:admin:reset-password": "Benutzerpasswort zurücksetzen" "write:admin:resolve-abuse-user-report": "Benutzerbeschwerden lösen" "write:admin:send-email": "E-Mail versenden" "read:admin:server-info": "Serverinformationen anzeigen" "read:admin:show-moderation-log": "Moderationsprotokoll einsehen" "read:admin:show-user": "Private Benutzerinformationen einsehen" "write:admin:suspend-user": "Benutzer finden" "write:admin:unset-user-avatar": "Den Avatar entfernen" "write:admin:unset-user-banner": "Den Banner entfernen" "write:admin:unsuspend-user": "Einen Benutzer freigeben" "write:admin:meta": "Metadaten der Instanz einsehen" "write:admin:user-note": "Moderationsnotiz hinzufügen" "write:admin:roles": "Deine Seiten bearbeiten oder löschen" "read:admin:roles": "Deine Seiten lesen" "write:admin:relays": "Relays bearbeiten oder löschen" "read:admin:relays": "Relays anzeigen" "write:admin:invite-codes": "Einladungscodes verwalten" "read:admin:invite-codes": "Einladung erstellt" "write:admin:announcements": "Ankündigungen verwalten" "read:admin:announcements": "Ankündigungen einsehen" "write:admin:avatar-decorations": "Kann Avatar-Dekorationen verwalten" "read:admin:avatar-decorations": "Avatar-Dekorationen ansehen" "write:admin:federation": "Informationen über Förderationen bearbeiten oder löschen" "write:admin:account": "Benutzerkonto löschen" "read:admin:account": "Informationen zu einem Benutzer anzeigen" "write:admin:emoji": "Emoji bearbeiten oder löschen" "read:admin:emoji": "Emoji anzeigen" "write:admin:queue": "Warteschlange bearbeiten oder löschen" "read:admin:queue": "Warteschlange anzeigen" "write:admin:promo": "Moderationsnotiz hinzufügen" "write:admin:drive": "Drive bearbeiten oder löschen" "read:admin:drive": "Drive ansehen" "read:admin:stream": "Verwenden der Admin-Websocket-API" "write:admin:ad": "Benachrichtigungen bearbeiten" "read:admin:ad": "Werbung ansehen" "write:invite-codes": "Einladungscodes verwalten" "read:invite-codes": "Einladungscodes anzeigen" "write:clip-favorite": "Clip-Likes bearbeiten oder löschen" "read:clip-favorite": "Clip-Likes ansehen" "read:federation": "Informationen über Förderationen bearbeiten oder löschen" "write:report-abuse": "Fehler melden" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/en-US.yml ================================================ noScript: "JavaScript is currently disabled. Please enable it as JavaScript is required for site functionality." learnMore: "Learn More" loading: "Loading..." clickToExpand: "(Click to expand)" copy: "Copy" share: "Share" note: "Note" other: "Other" add: "Add" generate: "Generate" download: "Download" browse: "Browse" settings: "Settings" goToLegacyHub: "Legacy Misskey Hub" contactUs: "Contact" detail: "Details" lastUpdate: "Last Update" empty: "No content" threeDimensionModel: "3D Model" clickToShow: "Click to show" preview: "Preview" scrollable: "This can be scrolled" serverListUnderMaintenance: "Server list is under maintenance." _error: notFound: "Page not found" notFoundDesc: "The page you are looking for could not be found. Please check the URL." generalError: "Something went wrong" generalErrorDesc: "If this is not what you meant to do, please click on the button below to report the problem." reportProblem: "Report a Problem" goToTop: "Back to top page" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Official website of the Misskey Project" defaultTitleTagline: "A Network Expanding with Notes" defaultDescription: "This is the official site for Misskey, a decentralized social networking software. Find out how to get started, a list of servers, and lots more information about Misskey!" _nav: servers: "Servers" docs: "Docs" news: "News" other: "More!" switchLang: "Language Settings" _landing: _hero: description: "Misskey is free and open-source software for creating social networking services." gettingStarted: "Get Started" _keyFeatures: _open: title: "Open" description: "Misskey is open source. Anyone can freely create and operate their own Misskey server at no cost." _federated: title: "Federated" description: "Because Misskey implements a decentralized protocol, it serves as a gateway to the federated social network, the Fediverse." _powerful: title: "Powerful" description: "Misskey comes with a variety of production-level features and is highly customizable. It's the optimal solution, whether for a large number of users or a small group." _introduction: title: "Create with Misskey" description: "Misskey allows you to easily build your own unique platform without any complex implementation. Since the service you create is entirely your own, there's no risk of depending on existing platforms for your online presence." tip: "Misskey isn't a web service in itself, but rather the foundational software for creating one, much like using WordPress to build a website." _decenterized: title: "A powerful platform for connecting to the Fediverse" description: "Misskey implements {0}, a protocol for decentralized services, allowing you to easily build a platform connected to the Fediverse—a network of federated social media. Whether you want to create a public social network, a personal hub for following other servers, or a dedicated server for broadcasting your content to the Fediverse, Misskey has you covered." activityPub: "ActivityPub" _useCases: title: "Use Cases" single: "A personal server for gathering and sharing information." official: "A dedicated server for a company's promotional account." community: "A community server for users with shared interests." inHouse: "A private server for internal company social networking." _free: title: "Misskey is, and always will be, free and open" description: "From its inception in 2014 and into the future, Misskey is and will remain open-source software (OSS). Its source code is publicly available for anyone to use, modify, and distribute freely. Misskey continues to be OSS thanks to the support of our community." _features: _root: title: "Features" description: "An introduction to Misskey's features and functions." _note: title: "Notes" description: "User posts are called 'Notes'. You can quote other notes, attach images, videos, audio, or any other file, and even create polls." _federation: title: "Federation" description: "Implementing the open, decentralized protocol ActivityPub allows you to interact not just with other Misskey servers, but with any software that supports it." _reaction: title: "Reactions" description: "Easily express yourself by adding 'Reactions' to notes." _customEmojis: title: "Custom Emojis" description: "Create your own server-specific emojis for use anywhere on Misskey." _channel: title: "Channels" description: "Create channels to build communities around specific topics within your server." _antenna: title: "Antennas" description: "Create timelines that collect only notes containing specific keywords." _drive: title: "Drive" description: "Manage your uploaded files with a dedicated interface. Easily organize your favorite images into folders and share them again." _2fa: title: "Multi-Factor Authentication" description: "Enhance your account security with support for multi-factor authentication using one-time passwords and passkeys with physical security keys." _charts: title: "Charts" description: "Misskey comes with a built-in chart engine, making it easy to visualize server usage statistics." _branding: title: "Branding" description: "Easily brand your server by customizing its logo, icons, themes, and more." _roles: title: "Roles" description: "Use Roles to finely tune user permissions. With Conditional Roles, you can automatically assign roles to users who meet specific criteria. You can also set badges for roles, helping to monetize your server." _moderation: title: "Moderation" description: "Comes standard with a comprehensive suite of moderation tools to help you run your server. It's fully integrated into the web UI for seamless operation." _privacy: title: "Privacy" description: "Take control of your content's visibility with a rich set of privacy settings." _multiPurpose: title: "For One, or For Many" description: "Misskey works great as a large social network, but it's also perfect for personal use. It can be your own powerful hub connected to the Fediverse." _monetization: title: "Monetization" description: "Features like ad display are available to help monetize your server, enabling sustainable operation." _oss: title: "Mi ❤️ OSS" description: "Misskey is and always will be open source, with its code freely available to everyone. The Misskey Project also actively supports other open-source software projects." _battleTested: title: "Battle-Tested" description: "Having been in real-world use for over a decade, Misskey is battle-tested and we're confident in its high reliability." _featuresServer: _root: title: "Server Features" description: "An overview of Misskey's backend features." _easyInstall: title: "Easy Installation" description: "Install with a simple command, or use a managed hosting service to save on administrative overhead." _easySetup: title: "Simple Setup" description: "Setting up a Misskey server requires no complex configuration. Simply follow the wizard for an optimal setup and start running your server right away. Advanced settings are also available for specific needs." _api: title: "API" description: "All of Misskey's functions are accessible via an HTTP API, making integration with other applications easy. It also supports Webhooks and WebSocket connections for receiving real-time events." _relay: title: "Relay Support" description: "Support for relay servers, which forward activity across the Fediverse, allows you to discover content without manually connecting to numerous other servers." _nodejs: title: "Node.js Backend" description: "Misskey uses a Node.js backend, ensuring fast and lightweight performance." _postgresql: title: "PostgreSQL" description: "Utilizes PostgreSQL as the main database for robust data management." _fullTextSearch: title: "Full-Text Search" description: "Perform full-text searches using PostgreSQL's built-in capabilities or external engines like Meilisearch." _jobQueue: title: "Efficient Job Queue" description: "Employs BullMQ for its job queue, efficiently processing tasks across multiple workers. A native inspector integrated into the control panel allows for management without external tools." _cdn: title: "CDN Support" description: "Supports resource caching via external CDNs, reducing server load and cutting costs." _ftt: title: "FTT" description: "Fan-out Timeline Technology (FTT) builds timelines on Redis to improve performance." _rbt: title: "RBT" description: "Reactions Buffering Technology (RBT) caches reaction data on Redis to improve performance." _scalable: title: "Scalable" description: "Designed to scale with user growth through process clustering, multi-server load balancing, and database replication." _seo: title: "SEO" description: "Server-side rendering (SSR) for certain content ensures indexability by search engines. OGP support provides rich previews when shared on social media. Of course, you can also configure your server to block crawlers if you prefer not to be indexed." _ml: title: "Machine Learning" description: "Leverage built-in machine learning features to automatically filter sensitive media, reducing the moderation workload." _sentry: title: "Sentry Support" description: "Supports metrics collection with Sentry, helping you monitor server resources, perform health checks, and simplify maintenance." _featuresClient: _root: title: "Web UI" description: "An introduction to Misskey Web, the powerful web frontend included with Misskey." _responsive: title: "Responsive UI" description: "The UI is built on a sophisticated, proprietary design system and is carefully crafted to provide an optimal experience on desktops, tablets, and smartphones." _theme: title: "Themes" description: "Use Misskey with a look and feel you love. Full dark mode support is included, and you can even create your own advanced themes." _mfm: title: "MFM" description: "Use MFM (Misskey Flavored Markdown), a special markup language, in your notes. Decorate your text with bolding, links, animations, and more using a simple syntax." _widgets: title: "Widgets" description: "Freely arrange various types of widgets to get quick access to the information you need." _deck: title: "Deck UI" description: "The Deck UI allows for even deeper customization. Build your own unique client experience." _embed: title: "Embeds" description: "Embed and display notes, timelines, and more on external websites." _realtimeMode: title: "Real-time Mode" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "Push Notifications" description: "Receive real-time alerts from your server with support for push notifications." _multiAccounts: title: "Multiple Accounts" description: "Easily switch between and use multiple accounts." _watermark: title: "Watermarking" description: "Automatically add a customizable watermark to your images to easily credit your work." _imageEditing: title: "Image Editing" description: "Add effects, perform color grading, and apply various other creative edits to your images." _achievements: title: "Achievements" description: "Serves as a motivation to explore Misskey's features and aids in user onboarding." _plugin: title: "Plugins" description: "Extend the client's functionality by installing plugins written in the secure AiScript language." _settingsManagement: title: "Flexible Settings Management" description: "Override any client setting on a per-account basis, and share and sync settings across multiple devices. Plus, your settings can be backed up automatically." _pwa: title: "PWA" description: "Misskey Web is a Progressive Web App (PWA), allowing it to run like a native app on your device." _i18n: title: "Internationalization" description: "The client is available in a wide variety of languages." _featuresUpcoming: _root: title: "Coming Soon" description: "Introducing features planned for upcoming releases." _jwt: title: "JWT Authentication" description: "Implementing stateless authentication with JSON Web Tokens (JWT) for more secure and faster request validation." _newBackend: title: "Lighter Backend" description: "We are developing an all-new backend for even faster and more lightweight performance." _vueVapor: title: "Vapor Mode Support" description: "Support for Vapor, the new compile strategy for the Vue framework, will deliver an even more lightweight web UI." _getStarted: title: "Get Started with Misskey" _find: title: "Find a Server" list: "Server List" _create: title: "Create a Server" guide: "Setup Guide" _docs: title: "Learn" docs: "Documentation" _dev: title: "Contribute to Development" _donation: title: "Support Us" description: "Misskey is a non-profit project developed by a small team of volunteers, and we rely on donations for our development funds. If you enjoy Misskey, please consider supporting us so we can continue its development!" _sponsors: title: "Sponsors" becomeASponsor: "Become a Sponsor" _servers: title: "Server List" description: "Misskey is not a single service but a decentralized network where individuals provide services. To use Misskey, you need to create an account on a server that offers the service." addYourServer: "Is your server not listed? Please register it {0}!" addYourServerLink: "here" disclaimerTitle: "DISCLAIMER" disclaimer: "This server list is an automated listing of Misskey servers found in the Fediverse and is generally not verified manually. The servers listed here have NOT been checked, verified, or approved by the Misskey Project. The Misskey Project is not responsible for any damages incurred by users at the server accessed." _system: fetchError: "Failed to fetch data. Please try again later." _statistics: title: "Server Statistics" description: "A graphical presentation of the statistics of the Misskey servers." viewFullStats: "See detailed statistics" lang: "Primary Language" registerAcceptance: "New registration acceptance" version: "Version" notes: "Notes" users: "Users" servers: "Servers" _search: title: "Advanced Search" all: "All" query: "Search by keyword" lang: "Language" orderBy: "Sort by" recomendded: "Default" notesCount: "Notes Count" notesPer15Days: "Number of notes per day (average of last 15 days)" usersCount: "Users Count" _registerAcceptance: title: "Sign-up Policy" public: "Public" inviteOnly: "Invite Only" _list: notFound: "No servers matching the specified criteria were found." showMore: "Show More" _view: title: "Display format" list: "List" grid: "Grid" _docs: title: "Documentation" description: "Comprehensive information ranging from how to use Misskey to resources for server operators and developers." indexTitle: "Table of Contents" _contribute: editThis: "Edit this page" translateThis: "Translate this page" _aboutMisskey: title: "About Misskey" description: "A complete guide for those new to Misskey or considering using it! Let's explore the basics and features." _changelog: title: "Release Notes" description: "View the version history of Misskey. Find out what's new in the latest version!" _donate: title: "Donating to the project" description: "Misskey is free and open source software. If you like it, please consider donating so that we can continue to develop it." _forUsers: title: "For Misskey Users" _forAdmin: title: "For Server Administrators" _forDevelopers: title: "For Developers" _prevNext: prev: "Previous" next: "Next" _toc: title: "Table of Contents" toPageTop: "Back to Top" _steppedGuide: selectCourse: "Select a Guide" noImageInThisStep: "There is no image in this step" aiWellDone: "That's all for the procedure. Well done!" _blog: title: "Blog" description: "Get the latest information about Misskey straight from the Misskey Project! (Japanese only)" back: "Back" _content: tip: "Tips" warning: "Warning" danger: "Danger" preview: "Preview" _other: title: "More!" description: "Introducing more enjoyable resources for Misskey!" _brandAssets: title: "Brand Assets" description: "A collection of Misskey's logo, icons, and other assets. Feel free to use for literally anything under the CC BY-SA License!" license: "Assets are available under the CC BY-SA license 🎉" assetsDirectory: "All assets are managed on {0}." logo: "Logo" icon: "Icon" banner: "Banner" avatarDecorationTemplate: "Avatar Decoration Template" fullColorPng: "Full color PNG" monoChromeSvg: "Monochrome SVG" _contact: title: "Contact" description: "Get in touch with the Misskey Project" form: "To send us an inquiry, please fill out this form." formGoogleAccountRequired: "Currently, we ask you to have a Google Account to submit your inquiry in order to deal with serious spam.\nWe apologize for the inconvenience and thank you for your understanding." formLink: "Go to the form" faqTitle: "FAQs" faqDescription: "Before submitting your inquiry, please make sure that what you want to know is not here." ifNothingIsFound: "If none of the above fits you…" _links: title: "Links" _github: title: "GitHub" description: "Misskey development takes place on GitHub. You can submit feature requests and bug reports here." _crowdin: title: "Crowdin" description: "Translations for Misskey core and documentation are managed here. We appreciate your contributions." _discord: title: "Discord Server" description: "Engage in discussions and ask questions about Misskey here." _aiChan: title: "Ai-Chan" description: "Visit the website of Ai-Chan, the mascot of Misskey." _tools: title: "Tool Collection" index: "Tool Collection Home" description: "Discover handy tools for Misskey, crafted by the original developers!" menuToggle: "Menu" _forUsers: title: "For Misskey Users" _forAdmin: title: "For Server Administrators" _mfmPlayground: title: "MFM Playground" description: "Practice MFM freely!" preview: "Preview" disclaimer: "It may not render exactly as shown here. Syntax highlighting for code is not supported for performance reason." mfm: "MFM" character: "{0} characters" domain: "Server to replicate the appearance (e.g. custom emojis)" noteIt: "Note It" clearEmojiCacheDescription: "When emojis are not displayed:" clearEmojiCache: "Clear Emoji Cache" _aidConverter: title: "aid/aidx utilities" description: "This tool can convert and generate aid and aidx, the random ID generation algorithms used inside Misskey." aidToDate: "aid/aidx to Date" dateToAid: "Date to aid/aidx" mode: "Type of ID" date: "Date/Time" inputByLine: "You can convert multiple aids/aidx separated by newlines." _aboutUs: title: "About Misskey Project" description: "Information about the Misskey Project." _team: title: "Dev Members" description: "Introducing the people involved in the development of Misskey!" _core: title: "Core Team Member" description: "These core team members are actively maintaining Misskey-related projects." _coreEmeriti: title: "Core Team Member Emeriti" description: "These are former core team members who have made valuable contributions in the past." _contributors: title: "Contributors" description: "These are some of the most active Misskey contributors." seeMore: "All contributors" _orgPartner: title: "Corporate & Organization Partners" description: "These companies and organizations have contributed financially and technically to the development of Misskey." _hubTranslators: title: "Misskey Hub Translators" description: "Those are the people who are helping with translating Misskey Hub." _coreTranslators: title: "Misskey Translators" description: "Those are the people who are helping with translating Misskey." _i18n: _missing: title: "Help us translate" description: "This document is translated by the community. You can contribute on {link}. We appreciate your cooperation 🙏." linkLabel: "Crowdin" _share: title: "Note to Misskey" chooseServer: "Choose the server you want to note" addServer: "Add Server" domain: "Server domain" compatibleWith: "Compatible with Misskey and certain Misskey forks." recommendedByWebsite: "Recommended Server Domain" _noteVisibility: public: "Public" home: "Home" followers: "Followers" specified: "Direct" localOnly: "Defederate" _shareLinkGenerator: title: "Share Button Generator" description: "Create share buttons for Misskey using the Misskey Hub's url share relay service." body: "Body" bodyWarning: "You can't use custom emojis in order to make them compatible with any server." url: "URL" urlCaption: "Optional. Inserted after the body." settings: "Advanced Settings" manualInstance: "Recommended Server" manualInstanceDescription: "The server specified here can be displayed at the top of the Share button relay page. You can use this to direct people to your own server, for example." visibility: "Visibility" recipents: "Acct of the person receiving the direct (enter on a new line separator)" resultLink: "Generated results of shared links" resultButton: "Sample share button" testLink: "Test the sharing link" typeSomethingToGetLink: "Enter the body to generate sharing link." typeSomethingToGetButton: "Enter the body to generate share button code." documentationIs: "Detailed technical specifications such as parameter references can be found {here}" here: "here" _goToMisskey: title: "Go to your Misskey Web" heading: "Select the server you want to open the page and continue" _avatarDecorationPreview: title: "Avatar Decoration Previewer" description: "You can check whether the avatar decoration fits properly." preview: "Preview" settings: "Settings" decoration: "Decoration #{number}" placeholder: "Through the 'Add' button you can add and preview the avatar decorations." _options: offsetX: "Horizontal Offset" offsetY: "Vertical Offset" angle: "Angle" flip: "Flip Horizontally" overlayTemplate: "Overlay template" _placeholder: username: "Ai" noteText: "Just had a chocolate-glazed donut 🍩😋" profileDescription: "I am Ai, Misskey's AI! Nice to meet you ♪" _customEmojiPreview: title: "Custom Emoji Preview" description: "The usability of custom emojis can be checked here." preview: "Preview" emoji: "Emoji #{number}" placeholder: "Under 'Add', you can add and preview custom emojis." limitReactionLength: "Limit the maximum width of reactions and display them in reduced size" _options: text: "Note text" textDescription: "The custom emoji you have added can be referenced by {emoji_id}" _placeholder: noteText: "Custom emoji will appear like this → :emoji_preview_1:\nYou can rewrite the text and test its usability✨." _identiconGenerator: title: "Identicon Generator" description: "You can generate an initial icon that will be specified by default when you register with Misskey." userName: "Username" includeDomain: "Specify the full user name, including the server's domain name." _historicalMaterials: title: "Historical Museum" description: "Explore some old photos of Misskey" heroSubtitle: "Misskey 10th Anniversary Project" heroDescription: "Misskey was launched in 2014 as a bulletin board service. Ten years have passed since then, and it has now become a platform used by many people.\nLet's discover the historical screenshots of Misskey!" submissionTitle: "Have some classic screenshots of Misskey?" submissionDescription: "If you have any materials related to the old Misskey, please send them to us.\nGitHub users can submit them to {gh_issue}, and those who cannot use GitHub can send them to {'@'}syuilo{'@'}misskey.io." _miHubServerListPreview: title: "Misskey Hub Server List Preview" description: "You can check how your server looks by applying your images to the list of servers in Misskey Hub." name: "Server Name" serverDescription: "Description" icon: "Server icon" bannerOrBg: "Banner image or background image" bannerOrBgDescription: "If both a banner image and a background image are specified, the background image will be displayed. Only the largest area of the image that fits into the 16:9 center-based frame will be displayed." _api: _permissions: title: "Permissions" description: "Description" _types: "read:account": "View your account information" "write:account": "Edit your account information" "read:blocks": "View your list of blocked users" "write:blocks": "Edit your list of blocked users" "read:drive": "Access your Drive files and folders" "write:drive": "Edit or delete your Drive files and folders" "read:favorites": "View your list of favorites" "write:favorites": "Edit your list of favorites" "read:following": "View information on who you follow" "write:following": "Follow or unfollow other accounts" "read:messaging": "View your chats" "write:messaging": "Compose or delete chat messages" "read:mutes": "View your list of muted users" "write:mutes": "Edit your list of muted users" "write:notes": "Compose or delete notes" "read:notifications": "View your notifications" "write:notifications": "Manage your notifications" "read:reactions": "View your reactions" "write:reactions": "Edit your reactions" "write:votes": "Add Vote" "read:pages": "View your Pages" "write:pages": "Edit or delete your Pages" "read:page-likes": "View list of liked Pages" "write:page-likes": "Edit list of liked Pages" "read:user-groups": "View your user groups" "write:user-groups": "Edit or delete your user groups" "read:channels": "View your channels" "write:channels": "Edit your channels" "read:gallery": "View your gallery" "write:gallery": "Edit your gallery" "read:gallery-likes": "View your list of liked gallery posts" "write:gallery-likes": "Edit your list of liked gallery posts" "read:flash": "View Play" "write:flash": "Edit Plays" "read:flash-likes": "View list of liked Plays" "write:flash-likes": "Edit list of liked Plays" "read:admin:abuse-user-reports": "View user reports" "write:admin:delete-account": "Delete user account" "write:admin:delete-all-files-of-a-user": "Delete all files of a user" "read:admin:index-stats": "View database index stats" "read:admin:table-stats": "View database table stats" "read:admin:user-ips": "View user IP addresses" "read:admin:meta": "View instance metadata" "write:admin:reset-password": "Reset user password" "write:admin:resolve-abuse-user-report": "Resolve user report" "write:admin:send-email": "Send email" "read:admin:server-info": "View server info" "read:admin:show-moderation-log": "View moderation log" "read:admin:show-user": "View private user info" "write:admin:suspend-user": "Suspend user" "write:admin:unset-user-avatar": "Remove user avatar" "write:admin:unset-user-banner": "Remove user banner" "write:admin:unsuspend-user": "Unsuspend user" "write:admin:meta": "Manage instance metadata" "write:admin:user-note": "Manage moderation note" "write:admin:roles": "Manage roles" "read:admin:roles": "View roles" "write:admin:relays": "Manage relays" "read:admin:relays": "View relays" "write:admin:invite-codes": "Manage invite codes" "read:admin:invite-codes": "View invite codes" "write:admin:announcements": "Manage announcements" "read:admin:announcements": "View announcements" "write:admin:avatar-decorations": "Manage avatar decorations" "read:admin:avatar-decorations": "View avatar decorations" "write:admin:federation": "Manage federation" "write:admin:account": "Manage user account" "read:admin:account": "View user account" "write:admin:emoji": "Manage emoji" "read:admin:emoji": "View emoji" "write:admin:queue": "Manage job queue" "read:admin:queue": "View job queue info" "write:admin:promo": "Manage promoted notes" "write:admin:drive": "Manage user drive" "read:admin:drive": "View user drive info" "read:admin:stream": "Use admin WebSocket API" "write:admin:ad": "Manage ads" "read:admin:ad": "View ads" "write:invite-codes": "Create invite codes" "read:invite-codes": "Get invite codes" "write:clip-favorite": "Manage favorited clips" "read:clip-favorite": "View favorited clips" "read:federation": "Get federation info" "write:report-abuse": "Report violation" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/es-ES.yml ================================================ noScript: "JavaScript está actualmente deshabilitado. Habilítelo, ya que se requiere JavaScript para la funcionalidad del sitio." learnMore: "Acerca de" loading: "Cargando..." clickToExpand: "(Clic para mostrar)" copy: "Copiar" share: "Compartir" note: "Nota" other: "Otros" add: "Añadir" generate: "Generar" download: "Descargar" browse: "Buscar" settings: "Configuración" goToLegacyHub: "Legacy Misskey Hub" contactUs: "Contacto" detail: "Detalles" lastUpdate: "Última actualización" empty: "Sin contenido" threeDimensionModel: "Modelo 3D" clickToShow: "Clic para mostrar" preview: "Preview" scrollable: "Esto se puede desplazar" serverListUnderMaintenance: "La lista de servidores está actualmente en mantenimiento." _error: notFound: "Página no encontrada" notFoundDesc: "No se ha podido encontrar la página que buscas. Por favor, comprueba la URL." generalError: "Se ha producido un error" generalErrorDesc: "Si esto no es lo que pretendía hacer, haga click en el botón de abajo para informar el problema." reportProblem: "Reportar un Problema" goToTop: "Volver al inicio de la página" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Página web oficial del Proyecto Misskey" defaultTitleTagline: "Una red que se expande con notas" defaultDescription: "Este es el sitio oficial de Misskey, una red social descentralizada. Aprende cómo empezar, consulta una lista de servidores y descubre más información sobre Misskey." _nav: servers: "Servidores" docs: "Documentación" news: "Noticias" other: "Más" switchLang: "Configuración de idioma" _landing: _hero: description: "¡Misskey es una plataforma de redes sociales código abierto y descentralizada que es libre para siempre!" gettingStarted: "Empezar" _keyFeatures: _open: title: "Libre" description: "Misskey es software de código abierto, y cualquier persona puede utilizarlo sin restricciones." _federated: title: "Federado" description: "Misskey es una plataforma descentralizada, por lo que las comunidades en diferentes servidores pueden conectar entre sí." _powerful: title: "Poderoso" description: "Misskey tiene una variedad de características de nivel de producción y puede ser finamente personalizado. Es la mejor solución para grupos grandes y pequeños." _introduction: title: "Creemos con Misskey" description: "Con Misskey, puedes crear fácilmente tu propia plataforma sin necesidad de realizar complicadas implementaciones. El servicio que crees con Misskey será exclusivamente tuyo, por lo que no correrás el riesgo de depender de plataformas existentes para la difusión de información." tip: "Misskey no es un «servicio web en sí mismo», sino un «software base» para crear servicios de microblogging. Es similar a utilizar software como WordPress para crear un sitio web." _decenterized: title: "Misskey es una plataforma {0}." description: "Misskey es solo una plataforma para que los propietarios de servidores creen sus propias instancias de Misskey, y todas pueden comunicarse entre sí! Hay instancias grandes para las masas, instancias más pequeñas para grupos, fandoms y subculturas, e incluso instancias solo para individuos y sus amigos. ¿Quieres tener aún más control? Puedes crear tu propia instancia en tu servidor con facilidad, cortando los lazos con cualquier gran empresa que quiera espiarte y vender tus datos. Misskey se trata de comunidad y compartir, no de corporaciones y alta tecnología. ¿Tienes amigos que no están en Misskey? No hay problema. Debido a que Misskey está en el Fediverso ({0}), puedes interactuar con personas en otras plataformas como Mastodon, PixelFed, PeerTube y más." activityPub: "ActivityPub" _useCases: title: "Se puede utilizar de esta manera." single: "Servidor propio para la recopilación y difusión de información." official: "Servidor dedicado para la creación de una cuenta de relaciones públicas de la empresa." community: "Servidor para una comunidad para personas con intereses comunes." inHouse: "Servidor privado como red social interna de una empresa" _free: title: "Misskey siempre ha sido gratuito y abierto." description: "Misskey es un software de código abierto (OSS) desde su desarrollo inicial en 2014 y seguirá siéndolo en el futuro. El código fuente del programa está disponible públicamente. Además, cualquiera puede utilizar el código fuente de forma gratuita y libre. Misskey puede seguir siendo un OSS gracias al apoyo de todos ustedes." _features: _root: title: "Características clave" description: "Misskey ofrece una amplia variedad de características únicas! Aquí hay algunas destacadas." _note: title: "Notas" description: "En Misskey, los posts de los usuarios se llaman 'Notas'. Responde, cita, añade emojis personalizados, texto animado, advertencias de contenido, adjunta múltiples imágenes, videos, GIFs, clips de audio o cualquier otra cosa!" _federation: title: "Federación" description: "¿No estás en Misskey? No hay problema. No solo pueden las instancias de Misskey comunicarse entre sí, sino que también puedes hacer amigos con personas en otras redes como Mastodon y Pixelfed!" _reaction: title: "Reacciones" description: "Puedes agregar reacciones con emojis a cualquier publicación! Ya no estás limitado por un botón de me gusta, muestra a todos exactamente cómo te sientes con solo un toque." _customEmojis: title: "Emojis personalizados" description: "Es posible crear emojis de servidor originales para usarlos en varias partes de Misskey." _channel: title: "Canales" description: "Crear un canal te permite crear una comunidad dentro del servidor con un tema común." _antenna: title: "Antenas" description: "Puedes crear líneas de tiempos que contengan solo notas que contengan determinadas palabras." _drive: title: "Drive" description: "¿Odias no poder encontrar algo que subiste? Con Drive, obtienes almacenamiento en la nube organizado y eficiente directamente en tu red social!" _2fa: title: "Autenticación de doble factor" description: "Admite una serie de tecnologías para aumentar la seguridad de las cuentas, con autenticación multifactor mediante contraseñas de un solo uso y autenticación mediante claves físicas." _charts: title: "Gráficas" description: "Para aquellos que necesitan verlo todo, Misskey cuenta con estadísticas en tiempo real para que tanto usuarios como administradores puedan ver qué está sucediendo en su instancia." _branding: title: "Marca" description: "Personaliza el logotipo, los iconos y los temas de tu servidor para crear, fácilmente, tu imagen de marca." _roles: title: "Roles" description: "Los roles permiten personalizar los permisos de cada usuario. Los roles condicionales también se pueden utilizar para asignar automáticamente roles a los usuarios que coincidan con los criterios. También puedes establecer insignias para los roles para ayudar a monetizar tu servidor." _moderation: title: "Moderación" description: "Se incluyen de serie una serie de funciones de moderación para facilitar la gestión del servidor." _privacy: title: "Privacidad" description: "Control flexible sobre el alcance de la publicación de contenidos con amplias opciones de privacidad." _multiPurpose: title: "Solo o juntos" description: "Puede utilizarse como red social para un gran número de usuarios, o como servidor personal, convirtiéndolo en tu propio y potente centro de conexión con el Fediverso." _monetization: title: "Monetización" description: "Para garantizar la sostenibilidad de las operaciones, también hay disponibles funciones que ayudan a monetizar el servidor, como la visualización de anuncios." _oss: title: "Mi ❤️ OSS" description: "Misskey ha sido y seguirá siendo de código abierto, y el código fuente está a disposición de todo el mundo, de forma gratuita. El proyecto Misskey también apoya activamente otros OSS." _battleTested: title: "Confiabilidad" description: "Misskey ha sido utilizado en entornos reales (probado en batalla) durante más de una década y se enorgullece de ser altamente fiable." _featuresServer: _root: title: "Características del lado del servidor" description: "Características de la implementación back-end detrás de Misskey." _easyInstall: title: "Fácil de instalar" description: "Puede instalarse con sencillos comandos y también puede gestionarse con servicios de alojamiento proporcionados por diversas empresas." _easySetup: title: "Fácil de instalar" description: "La instalación de un servidor Misskey no requiere ninguna configuración compleja y puede estar operativo inmediatamente. Por otro lado, se pueden realizar configuraciones avanzadas que se adapten a sus necesidades." _api: title: "API" description: "Todas las funciones de Misskey pueden ser operadas a través de una API HTTP, por lo que es fácil de integrar con otras aplicaciones. Además, también es compatible con conexiones Webhook y WebSocket, por lo que puede recibir eventos de Misskey en tiempo real." _relay: title: "Soporte de Relays" description: "Admite conexiones a servidores de retransmisión que retransmiten la actividad en el Fediverso, de modo que se puede recopilar información sin tener que conectarse manualmente a un gran número de servidores." _nodejs: title: "Node.js Backend" description: "Misskey utiliza Node.js como backend, por lo que es rápido y ligero." _postgresql: title: "PostgreSQL" description: "La base de datos principal es PostgreSQL, que proporciona una sólida gestión de datos." _fullTextSearch: title: "Búsqueda de texto completo" description: "Además de PostgreSQL, es posible realizar búsquedas de texto completo utilizando motores de búsqueda de texto completo como Meilisearch." _jobQueue: title: "Cola de trabajos muy eficaz" description: "BullMQ se utiliza para la cola de trabajos, permitiendo que las tareas sean procesadas eficientemente en múltiples servidores. Además, el Inspector de Misskey implementado de forma nativa está integrado en el panel de control y se puede gestionar sin tener que depender de herramientas externas." _cdn: title: "Compatibilidad con CDN" description: "Admite el almacenamiento en caché de recursos mediante CDN externas. Al reducir el número de peticiones al servidor, pueden reducirse la carga y los costes." _ftt: title: "FTT" description: "La tecnología Fan-out Timeline (FTT) permite construir líneas de tiempo en Redis para mejorar el rendimiento." _rbt: title: "RBT" description: "Reactions Buffering Technology (RBT) permite almacenar en caché la información de las reacciones en Redis para mejorar el rendimiento." _scalable: title: "Escalable" description: "Admite la agrupación de procesos, el equilibrio de carga con varios servidores, la replicación de bases de datos y puede dar cabida a un número creciente de usuarios." _seo: title: "SEO" description: "Además de poder realizar SSR en parte del contenido y indexarlo en los motores de búsqueda, también es compatible con OGP, lo que permite previsualizar el contenido cuando se comparte en redes sociales. Por supuesto, también es posible configurar el rechazo de rastreadores en situaciones en las que no se desea que el contenido sea indexado." _ml: title: "Aprendizaje automático" description: "Las funciones integradas de aprendizaje automático también pueden utilizarse para reducir las cargas operativas, por ejemplo filtrando automáticamente los medios sensibles." _sentry: title: "Soporte para Sentry" description: "Sentry permite la recopilación de métricas del servidor para ayudar a supervisar, comprobar el estado y mantener los recursos del servidor." _featuresClient: _root: title: "WebUI" description: "Cuenta con un sofisticado front-end web (Misskey Web) que viene con Misskey." _responsive: title: "Interfaz de usuario adaptable" description: "La interfaz de usuario se diseña mediante un sofisticado sistema de diseño propio y se implementa cuidadosamente para optimizar la visualización y el comportamiento de cada ordenador de sobremesa, tableta y smartphone." _theme: title: "Temas" description: "Puedes utilizar Misskey con el aspecto que desees. Por supuesto, el modo oscuro es totalmente compatible. También puedes crear tus propios temas avanzados." _mfm: title: "MFM" description: "Para las notas existe un lenguaje de marcado específico de Misskey, denominado MFM. La decoración del texto, como negritas, inserción de enlaces y adición de movimiento, puede expresarse mediante una sintaxis sencilla." _widgets: title: "Widgets" description: "Coloca libremente varios tipos de widgets para acceder rápidamente a la información que necesitas." _deck: title: "Deck UI" description: "Con el deck UI, la interfaz de usuario puede personalizarse aún más. Puedes crear tu propio cliente único." _embed: title: "Incrustación en otros sitios web" description: "Las notas, líneas de tiempo, etc. pueden incrustarse y mostrarse en sitios web externos." _realtimeMode: title: "Modo en tiempo real" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "Notificaciones push" description: "Las notificaciones push son compatibles, por lo que puedes recibir notificaciones del servidor en tiempo real." _multiAccounts: title: "Soporte multicuenta" description: "Se puede alternar fácilmente entre varias cuentas." _watermark: title: "Marca de agua" description: "Puedes añadir automáticamente una marca de agua a las imágenes que publiques y dejar fácilmente una información para identificarte como autor. La marca de agua se puede personalizar como quieras." _imageEditing: title: "Edición de imagen" description: "Añade efectos, realiza ajustes de color y aplica otras ediciones creativas a tus imágenes." _achievements: title: "Logros" description: "Sirve como motivación para explorar las funciones de Misskey y ayuda a la incorporación de los usuarios." _plugin: title: "Plugins" description: "La funcionalidad del cliente puede ampliarse instalando plug-ins mediante AiScript seguro." _settingsManagement: title: "Gestión flexible de la configuración" description: "Cualquier configuración del cliente puede anularse por cuenta, y los ajustes pueden compartirse y sincronizarse entre varios dispositivos. Además, se pueden realizar copias de seguridad automáticas de la información de configuración." _pwa: title: "PWA" description: "Misskey Web es compatible con Progressive Web Apps (PWA) y puede funcionar como una aplicación nativa en el dispositivo." _i18n: title: "Soporte Multilingüe" description: "Los clientes están disponibles en varios idiomas." _featuresUpcoming: _root: title: "Próximamente" description: "Funciones previstas para el futuro." _jwt: title: "Certificados JWT" description: "La autenticación sin estado mediante JSON Web Token (JWT) se implementa para una validación de solicitudes más segura y rápida." _newBackend: title: "Back-end más ligero" description: "Se está desarrollando un back-end completamente nuevo para permitir un funcionamiento más rápido y ligero." _vueVapor: title: "Compatibilidad con Vue Vapor" description: "Es compatible con la nueva estrategia de compilación del framework Vue empleada en el front-end, lo que permite una interfaz de usuario web más ligera." _getStarted: title: "Comienza con Misskey" _find: title: "Busca un servidor" list: "Lista de servidores disponibles" _create: title: "Crea tu propio servidor" guide: "Guía paso a paso" _docs: title: "Más información" docs: "Consulta nuestra documentación" _dev: title: "Contribuye al desarrollo" _donation: title: "Ayuda a Misskey" description: "Somos un proyecto sin fines de lucro y dependemos de tus donaciones para seguir mejorando. Si te gusta Misskey, ¡considera apoyarnos para que podamos seguir ofreciendo una experiencia increíble!" _sponsors: title: "Patrocinadores" becomeASponsor: "Convertirse en patrocinador" _servers: title: "Lista de servidores" description: "Misskey no es un solo servicio, sino una red descentralizada donde las personas proporcionan servicios. Para utilizar Misskey, debes crear una cuenta en un servidor que ofrezca el servicio." addYourServer: "¿No está tu servidor en la lista?. Registralo {0}!" addYourServerLink: "aquí" disclaimerTitle: "AVISO" disclaimer: "Esta lista de servidores es una lista automática de servidores de Misskey encontrados en el Fediverso y no se verifica manualmente. Los servidores enumerados aquí no han sido verificados, o aprobados por el Proyecto Misskey. El Proyecto Misskey no se hace responsable de cualquier daño incurrido por los usuarios en el servidor al que se accede." _system: fetchError: "Error al obtener datos. Por favor, inténtalo de nuevo más tarde." _statistics: title: "Estadísticas del servidor" description: "Una gráfica de las estadísticas de los servidores de Misskey." viewFullStats: "Ver estadísticas detalladas" lang: "Idioma principal" registerAcceptance: "Nuevas inscripciones aceptadas" version: "Versión" notes: "Notas" users: "Usuarios" servers: "Servidores" _search: title: "Búsqueda avanzada" all: "Todos" query: "Buscar por palabras claves" lang: "Idioma" orderBy: "Ordenar por" recomendded: "Por defecto" notesCount: "Número de notas" notesPer15Days: "Número de notas por día (promedio de los últimos 15 días)" usersCount: "Número de usuarios" _registerAcceptance: title: "Política de registro" public: "Publico" inviteOnly: "Solamente por Invitación" _list: notFound: "No se encontraron servidores que coincidan con los criterios especificados." showMore: "Mostrar más" _view: title: "Formato de pantalla" list: "Lista" grid: "Cuadrilla" _docs: title: "Documentación" description: "Información completa que va desde cómo usar Misskey hasta recursos para los administradores de servidores y desarrolladores." indexTitle: "Índice" _contribute: editThis: "Editar esta página" translateThis: "Traducir esta página" _aboutMisskey: title: "Acerca de Misskey" description: "Una guía completa para aquellos nuevos en Misskey o pensando en usarlo! Vamos a explorar los fundamentos y características." _changelog: title: "Notas de lanzamiento" description: "Ver el historial de versiones de Misskey. Descubre las novedades de la última versión!" _donate: title: "Donando al proyecto" description: "Misskey es software libre y de código abierto. Si te gusta, por favor considera donar para que podamos continuar desarrollándolo." _forUsers: title: "Para usuarios de Misskey" _forAdmin: title: "Para administradores" _forDevelopers: title: "Para desarrolladores" _prevNext: prev: "Anterior" next: "Siguiente" _toc: title: "Índice" toPageTop: "Volver al inicio" _steppedGuide: selectCourse: "Selecciona una guía" noImageInThisStep: "No hay imagen para este paso" aiWellDone: "Eso es todo el procedimiento. Bien hecho!" _blog: title: "Blog" description: "Obtenga la última información sobre Misskey directamente de el proyecto Misskey (sólo en japonés)" back: "Atrás" _content: tip: "Consejos" warning: "Advertencia" danger: "Peligro" preview: "Preview" _other: title: "Más!" description: "Presentando recursos más agradables para Misskey!" _brandAssets: title: "Assets de la marca" description: "Una colección de logotipos, iconos y otros assets de Misskey. Siéntete libre de usar para literalmente cualquier cosa bajo la licencia CC BY-SA!" license: "Los assets están disponibles bajo la licencia CC BY-SA 🎉" assetsDirectory: "Todos los assets se gestionan en {0}." logo: "Logo" icon: "Icono" banner: "Banner" avatarDecorationTemplate: "Plantilla para decoración del avatar" fullColorPng: "PNG a color" monoChromeSvg: "SVG monocromático" _contact: title: "Contacto" description: "Póngase en contacto con el Proyecto Misskey." form: "Para enviarnos una consulta, por favor rellene este formulario." formGoogleAccountRequired: "En la actualidad, te pedimos que tengas una cuenta de Google para enviar tu consulta con el fin de hacer frente al spam.\nNos disculpamos por las molestias y le agradecemos su comprensión." formLink: "Ir al formulario" faqTitle: "Preguntas frecuentes" faqDescription: "Antes de enviar su consulta, asegúrese de que lo que quiere saber no está aquí." ifNothingIsFound: "Si no es nada de lo anterior…" _links: title: "Enlaces" _github: title: "GitHub" description: "El desarrollo de Misskey tiene lugar en GitHub. Puede enviar peticiones de características e informes de errores aquí." _crowdin: title: "Crowdin" description: "Las traducciones para Misskey y documentación se manejan aquí. Apreciamos sus contribuciones." _discord: title: "Servidor de Discord" description: "Participe en las discusiones y haga preguntas sobre Misskey aquí." _aiChan: title: "Ai-Chan" description: "Visite el sitio web de Ai-Chan, la mascota de Misskey." _tools: title: "Colección de herramientas" index: "Colección de herramientas" description: "Descubra herramientas para Misskey, elaboradas por sus desarrolladores!" menuToggle: "Menú" _forUsers: title: "Para usuarios de Misskey" _forAdmin: title: "Para administradores" _mfmPlayground: title: "MFM Playground" description: "Practica MFM con libertad!" preview: "Preview" disclaimer: "Puede no renderizar exactamente como se muestra aquí. El resaltado de sintaxis para código no está soportado por razones de rendimiento." mfm: "MFM" character: "{0} caracteres" domain: "Servidor para replicar la apariencia (por ejemplo, emojis personalizado)" noteIt: "Notar" clearEmojiCacheDescription: "Cuando los emojis no se muestran:" clearEmojiCache: "Borrar Caché de Emojis" _aidConverter: title: "Herramientas de aid/aidx" description: "Esta herramienta puede convertir y generar aid y aidx, los algoritmos utilizados en Misskey para la generación de ID aleatorios" aidToDate: "aid/aidx a Fecha" dateToAid: "Fecha a aid/aidx" mode: "Tipo de ID" date: "Fecha/Hora" inputByLine: "Puedes convertir múltiples aids/aidx separados por reglones." _aboutUs: title: "Acerca de la División de Desarrollo de Misskey" description: "Información sobre el equipo de desarrollo de Misskey." _team: title: "Miembros del Equipo" description: "¡Conoce a las personas involucradas en el desarrollo de Misskey!" _core: title: "Miembros del Equipo Principal" description: "Estos miembros del equipo central están activamente manteniendo proyectos relacionados con Misskey." _coreEmeriti: title: "Miembros Veteranos del Equipo Central" description: "Estos son antiguos miembros del equipo central que han hecho contribuciones valiosas en el pasado." _contributors: title: "Colaboradores" description: "Estos son algunos de los colaboradores más activos de Misskey." seeMore: "Todos los colaboradores" _orgPartner: title: "Socios Corporativos y Organizaciones" description: "Estas empresas y organizaciones han contribuido financiera y técnicamente al desarrollo de Misskey." _hubTranslators: title: "Traductores de Misskey Hub" description: "Estas son las personas que están ayudando a traducir Misskey Hub." _coreTranslators: title: "Traductores de Misskey" description: "Estas son las personas que están ayudando a traducir Misskey." _i18n: _missing: title: "Ayúdanos a traducir" description: "Este documento está traducido por la comunidad. Puedes contribuir en {link}. Agradecemos tu cooperación 🙏." linkLabel: "Crowdin" _share: title: "Nota para Misskey" chooseServer: "Elija el servidor que deseas publicar la nota" addServer: "Añadir Servidor" domain: "Dominio del servidor" compatibleWith: "Compatible con Misskey y ciertos forks de Misskey." recommendedByWebsite: "Dominio Recomendado" _noteVisibility: public: "Publico" home: "Inicio" followers: "Seguidores" specified: "Directa" localOnly: "Desfederar" _shareLinkGenerator: title: "Compartir generador de botones" description: "Crear botones de compartir para Misskey usando el servicio de retransmisión de URL de Misskey Hub." body: "Cuerpo" bodyWarning: "No puedes utilizar emojis personalizados para hacerlos compatibles con cualquier servidor." url: "URL" urlCaption: "Opcional. (Insertado después del cuerpo)\"" settings: "Configuraciones avanzadas" manualInstance: "Servidor recomendado" manualInstanceDescription: "El servidor especificado aquí puede mostrarse en la parte superior de la página de retransmisión del botón Compartir. Puede utilizarlo para dirigir a los usuarios a su propio servidor, por ejemplo." visibility: "Visibilidad" recipents: "Cuenta de la persona que recibe el mensaje directo (separado por reglones" resultLink: "Resultados generados de enlaces compartidos" resultButton: "Botón de compartir de ejemplo" testLink: "Probar el enlace de compartir" typeSomethingToGetLink: "Ingresa el texto para generar el enlace." typeSomethingToGetButton: "Ingresa el texto para generar el botón de compartir." documentationIs: "Puedes encontrar más información técnica, como referencias de parámetros, en {here}" here: "este enlace" _goToMisskey: title: "Ir a tu web Misskey" heading: "Seleccione el servidor/instancia en el que desea abrir la página y continúe" _avatarDecorationPreview: title: "Previsualización de la decoración del Avatar" description: "Puedes comprobar si la decoración del avatar se ajusta correctamente." preview: "Vista Previa" settings: "Configuración" decoration: "Decoración #{number}" placeholder: "A través del botón «Añadir» puedes añadir y previsualizar las decoraciones del avatar." _options: offsetX: "Desplazamiento horizontal" offsetY: "Desplazamiento vertical" angle: "Ángulo" flip: "Voltear horizontalmente" overlayTemplate: "Superponer plantilla" _placeholder: username: "Ai" noteText: "Acabo de comer una dona glaseada 🍩😋" profileDescription: "Soy Ai, la IA de Misskey. Encantada de conocerte ♪" _customEmojiPreview: title: "Preview de Emojis personalizados" description: "La utilidad de los emojis personalizados puede comprobarse aquí." preview: "Preview" emoji: "Emoji #{number}" placeholder: "En «Añadir», puedes añadir y previsualizar emojis personalizados." limitReactionLength: "Limitar la anchura máxima de las reacciones y mostrarlas en tamaño reducido" _options: text: "Texto de la nota" textDescription: "El emoticono personalizado que has añadido puede ser referenciado por {emoji_id}." _placeholder: noteText: "El emoticono aparecerá así → :emoji_preview_1:\nPuedes reescribir el texto y probar su funcionalidad✨" _identiconGenerator: title: "Generador de Icono de Identidad" description: "Puede generar un icono inicial que se especificará por defecto cuando te registres en Misskey." userName: "Nombre de usuario" includeDomain: "Especifica el nombre de usuario completo, incluyendo el nombre de dominio del servidor." _historicalMaterials: title: "Museo Histórico" description: "Explora algunas fotos antiguas de Misskey" heroSubtitle: "10º Aniversario del Proyecto Misskey" heroDescription: "Misskey fue lanzado en 2014 como un tablón de anuncios. Han pasado diez años desde entonces y ahora se convertido en una plataforma usada por mucha gente.\n¡Descubramos las históricas capturas de pantalla de Misskey!" submissionTitle: "¿Tienes alguna captura de pantalla antigua de Misskey?" submissionDescription: "Si tienes cualquier material relacionado con versiones antiguas de Misskey, por favor mandádnoslas.\nLos usuarios de GitHub pueden enviarlas a {gh_issue}, y aquellos que no puedan utilizar GitHub pueden mandarlas a {'@'}syuilo{'@'}misskey.io." _miHubServerListPreview: title: "Vista previa en la lista de servidores de Misskey Hub" description: "Puedes comprobar como se ve tu servidor aplicando tus imágenes a la lista de servidores en Misskey Hub." name: "Nombre del servidor" serverDescription: "Descripción" icon: "Icono del servidor" bannerOrBg: "Imagen del Banner o imagen de fondo" bannerOrBgDescription: "Si se especifican una imagen de banner y una imagen de fondo, se mostrará la imagen de fondo. Solo se mostrará el área más grande de la imagen que quepa en el marco central de 16:9." _api: _permissions: title: "Permisos" description: "Descripción" _types: "read:account": "Ver información de la cuenta" "write:account": "Editar información de la cuenta" "read:blocks": "Ver usuarios bloqueados" "write:blocks": "Administrar usuarios bloqueados" "read:drive": "Accede a tus archivos y carpetas de Drive" "write:drive": "Edita o elimina tus archivos y carpetas del Drive" "read:favorites": "Ver tu lista de favoritos" "write:favorites": "Editar tu lista de favoritos" "read:following": "Ver información sobre a quién sigues" "write:following": "Sigue o deja de seguir a otras cuentas" "read:messaging": "Ver tus chats" "write:messaging": "Redacta o elimina mensajes de chat" "read:mutes": "Ver tu lista de usuarios silenciados" "write:mutes": "Editar tu lista de usuarios silenciados" "write:notes": "Redactar o eliminar mensajes de chat" "read:notifications": "Ver tus notificaciones" "write:notifications": "Gestionar tus notificaciones" "read:reactions": "Ver tus reacciones" "write:reactions": "Editar tus reacciones" "write:votes": "Añadir Voto" "read:pages": "Ver tus páginas" "write:pages": "Editar o borrar tus páginas" "read:page-likes": "Ver los «Me gusta» de la página" "write:page-likes": "Administrar páginas que te gustan" "read:user-groups": "View your user groups" "write:user-groups": "Edit or delete your user groups" "read:channels": "View your channels" "write:channels": "Edit your channels" "read:gallery": "View your gallery" "write:gallery": "Edit your gallery" "read:gallery-likes": "View your list of liked gallery posts" "write:gallery-likes": "Edit your list of liked gallery posts" "read:flash": "View Play" "write:flash": "Edit Plays" "read:flash-likes": "View list of liked Plays" "write:flash-likes": "Edit list of liked Plays" "read:admin:abuse-user-reports": "View user reports" "write:admin:delete-account": "Delete user account" "write:admin:delete-all-files-of-a-user": "Delete all files of a user" "read:admin:index-stats": "View database index stats" "read:admin:table-stats": "View database table stats" "read:admin:user-ips": "View user IP addresses" "read:admin:meta": "View instance metadata" "write:admin:reset-password": "Reset user password" "write:admin:resolve-abuse-user-report": "Resolve user report" "write:admin:send-email": "Send email" "read:admin:server-info": "View server info" "read:admin:show-moderation-log": "View moderation log" "read:admin:show-user": "View private user info" "write:admin:suspend-user": "Suspend user" "write:admin:unset-user-avatar": "Remove user avatar" "write:admin:unset-user-banner": "Remove user banner" "write:admin:unsuspend-user": "Unsuspend user" "write:admin:meta": "Manage instance metadata" "write:admin:user-note": "Manage moderation note" "write:admin:roles": "Manage roles" "read:admin:roles": "View roles" "write:admin:relays": "Manage relays" "read:admin:relays": "View relays" "write:admin:invite-codes": "Manage invite codes" "read:admin:invite-codes": "View invite codes" "write:admin:announcements": "Manage announcements" "read:admin:announcements": "View announcements" "write:admin:avatar-decorations": "Manage avatar decorations" "read:admin:avatar-decorations": "View avatar decorations" "write:admin:federation": "Manage federation" "write:admin:account": "Manage user account" "read:admin:account": "View user account" "write:admin:emoji": "Manage emoji" "read:admin:emoji": "View emoji" "write:admin:queue": "Manage job queue" "read:admin:queue": "View job queue info" "write:admin:promo": "Manage promoted notes" "write:admin:drive": "Manage user drive" "read:admin:drive": "View user drive info" "read:admin:stream": "Use admin WebSocket API" "write:admin:ad": "Manage ads" "read:admin:ad": "View ads" "write:invite-codes": "Create invite codes" "read:invite-codes": "Get invite codes" "write:clip-favorite": "Manage favorited clips" "read:clip-favorite": "View favorited clips" "read:federation": "Get federation info" "write:report-abuse": "Report violation" "write:chat": "Administrar chat" "read:chat": "Ver chat" ================================================ FILE: locales/fr-FR.yml ================================================ noScript: "JavaScript est actuellement désactivé. Veuillez l'activer puisque les fonctionnalités du site en dépendent." learnMore: "En savoir plus" loading: "Chargement en cours…" clickToExpand: "(Cliquer pour développer)" copy: "Copier" share: "Partager" note: "Note" other: "Autres" add: "Ajouter" generate: "Générer" download: "Télécharger" browse: "Naviguer" settings: "Paramètres" goToLegacyHub: "L'ancien Misskey Hub" contactUs: "Nous contacter" detail: "Détails" lastUpdate: "Dernière mise à jour" empty: "Pas de contenu" threeDimensionModel: "3Dモデル" clickToShow: "クリックして表示" preview: "Aperçu" scrollable: "スクロールできます" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "La page demandée est introuvable !" notFoundDesc: "La page que vous cherchiez n'a pas pu être trouvée. Veuillez vérifier l'URL." generalError: "Une erreur s'est produite" generalErrorDesc: "Si ce n'est pas ce que vous avez voulu faire, veuillez signaler le problème ci-dessous." reportProblem: "Signaler un problème" goToTop: "Retourner à la page d'accueil" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Site web officiel du projet Misskey" defaultTitleTagline: "Un réseau étendu par des notes" defaultDescription: "Le site officiel de Misskey, un réseau social décentralisé. Découvrez le tutoriel, la liste d'instances et plus d'information sur Misskey !" _nav: servers: "Instances" docs: "Documentation" news: "ニュース" other: "Plus !" switchLang: "Paramètres de langue" _landing: _hero: description: "Misskey est une plateforme de réseautage social décentralisée à code source ouvert." gettingStarted: "Commencer" _keyFeatures: _open: title: "Ouvert" description: "Misskey est un logiciel à code source ouvert que n'importe qui peut utiliser librement." _federated: title: "Décentralisé" description: "Misskey implémente un protocole décentralisé de sorte que les communautés de différentes instances peuvent se connecter les unes aux autres." _powerful: title: "パワフル" description: "Misskeyはカスタマイズ可能なプロダクションレベルの様々な機能を備えています。多人数でも少人数でも、最適なソリューションに。" _introduction: title: "Misskeyで作ろう" description: "Misskeyを使えば、面倒な実装を行うことなく、簡単に独自のプラットフォームを構築可能です。あなたがMisskeyを使って作ったサービスはあなただけのものなので、情報発信における既存プラットフォームへの依存リスクもありません。" tip: "Misskeyは「Webサービスそのもの」ではなく、マイクロブログサービスを作るための「基盤となるソフトウェア」です。Webサイトを作るのにWordPressといったソフトウェアを使うのと同じです。" _decenterized: title: "Misskey est une {0}" description: "Misskey est un projet libre et ouvert, ce qui signifie que n'importe qui est libre de créer une instance de Misskey. Ainsi, une grande variété d'instances sont déjà disponibles sur l'Internet. Une autre caractéristique importante est que Misskey implémente un protocole de communication décentralisé appelé {0}, ce qui signifie que quelle que soit l'instance que vous choisissez, vous pouvez interagir avec des utilisateurs sur d'autres instances. C'est pour cette raison qu'il est qualifié de décentralisé et qu'il est fondamentalement différent d'autres services tels que Twitter, qui n'ont qu'un serveur centralisé contrôlé par un seul opérateur. Les thèmes principaux, le groupe d'utilisateurs et les langues varient d'une instance à l'autre, et trouver l'instance qui vous convient fait partie du plaisir. (Bien sûr, créer votre propre instance est également amusant !)" activityPub: "ActivityPub" _useCases: title: "こんな使い方ができます" single: "情報収集・情報発信のための自分専用のサーバー" official: "会社の広報アカウントを設置する専用のサーバー" community: "同じ関心をもつユーザー向けのコミュニティサーバー" inHouse: "社内SNSとしてのプライベートサーバー" _free: title: "Misskeyはずっと無料でオープン" description: "Misskeyは2014年の開発当初から、そしてこれから未来も、プログラムのソースコードが公開されているオープンソースソフトウェア(OSS)です。また、誰でも無料で・自由にソースコードを利用可能です。MisskeyがOSSであり続けられるのは皆様からの支援のおかげです。" _features: _root: title: "Fonctionnalités principales" description: "Misskey offre une large variété de fonctionnalités uniques ! En voici une partie." _note: title: "Notes" description: "Sur Misskey, les messages des utilisateurs sont appelés des « notes ». Vous pouvez citer les notes et joindre plusieurs images, vidéos, clips audio ou quoi que ce soit d'autre." _federation: title: "Fédération" description: "Grâce à l'implémentation d'ActivityPub, un protocole ouvert et décentralisé, Misskey peut interagir avec d'autres plateformes qui prennent en charge ActivityPub en plus d'autres instances de Misskey." _reaction: title: "Réactions" description: "Vous pouvez ajouter des réactions aux notes, ce qui vous permet d'exprimer et de communiquer vos sentiments facilement." _customEmojis: title: "カスタム絵文字" description: "Misskeyの様々な場所で使用できる、サーバーオリジナルの絵文字を作成可能です。" _channel: title: "チャンネル" description: "チャンネルを作成すれば、共通のテーマでサーバー内コミュニティを作成することが可能です。" _antenna: title: "アンテナ" description: "特定のワードが含まれるノートだけを収集するタイムラインを作成可能です。" _drive: title: "Disque" description: "L'interface Disque vous permet de gérer les fichiers téléversés. Ainsi, il est facile d'organiser vos images préférées dans des dossiers et de les partager à nouveau." _2fa: title: "多要素認証" description: "ワンタイムパスワードを使用した多要素認証や、物理的なキーを使用したパスキー認証で、アカウントのセキュリティを高める各種技術をサポート。" _charts: title: "Graphiques" description: "Misskey dispose d'un moteur graphique intégré qui permet de visualiser facilement l'utilisation du serveur et d'autres informations." _branding: title: "ブランディング" description: "サーバーのロゴ、アイコン、テーマなどをカスタマイズして、簡単にSNSのブランディングを行えます。" _roles: title: "ロール" description: "ロールを使用すると、ユーザーごとに権限を細かくカスタマイズできます。また、コンディショナルロールを使えば、条件に一致するユーザーに自動でロールをアサインすることも可能です。ロールにバッジを設定して、サーバーのマネタイズに役立てることもできます。" _moderation: title: "モデレーション" description: "サーバー運営を助ける、充実のモデレーション機能が標準搭載。WebUIに統合されているため、シームレスに操作可能です。" _privacy: title: "プライバシー" description: "豊富なプライバシー設定で、コンテンツの公開範囲を柔軟にコントロール。" _multiPurpose: title: "ひとりでも、みんなでも" description: "多数の利用者を受け入れるSNSとしての運用はもちろん、個人用サーバーとしての利用もサポート。Fediverseと繋がるための、あなただけの強力な拠点になります。" _monetization: title: "収益化" description: "広告の表示など、サーバーのマネタイズを助ける機能も用意されていて、持続可能な運用を目指せます。" _oss: title: "Mi ❤️ OSS" description: "Misskeyはこれまでもこれからもオープンソースで、誰でも自由に、無料でソースコードを利用可能です。またMisskey Projectは、他のOSSに対して積極的に支援活動を行っています。" _battleTested: title: "信頼性" description: "Misskeyは10年以上にわたって実際の環境で使われており(battle-tested)、高い信頼性があると自負しています。" _featuresServer: _root: title: "サーバーの機能" description: "Misskeyを支えるバックエンド実装の特徴。" _easyInstall: title: "簡単インストール" description: "簡単なコマンドでインストールできるほか、各社提供のホスティングサービスを利用すれば、管理の手間も省けます。" _easySetup: title: "セットアップもカンタン" description: "Misskeyサーバーのセットアップに複雑な設定は不要。ウィザードに従うだけで最適な設定が行われ、すぐに運用を始められます。一方、ニーズに合わせて高度な設定を行うことも可能です。" _api: title: "API" description: "Misskeyの全ての機能はHTTP APIを通じて操作でき、他のアプリケーションとの連携も容易です。さらに、WebhookやWebSocket接続もサポートしているので、リアルタイムにMisskeyからのイベントを受け取ることも可能です。" _relay: title: "リレー対応" description: "Fediverse内のアクティビティを中継するリレーサーバーへの接続をサポートしているので、手動で多数のサーバーと繋げることなく情報収集が可能です。" _nodejs: title: "Node.jsバックエンド" description: "MisskeyはバックエンドにNode.jsを採用しており、高速・軽量に動作します。" _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを採用し、堅牢なデータ管理を実現しています。" _fullTextSearch: title: "全文検索" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにBullMQを採用し、タスクを複数のサーバーで効率的に処理。また、Misskeyネイティブで実装されたインスペクタはコントロールパネルに統合され、外部ツールに頼ることなく管理が可能です。" _cdn: title: "CDN対応" description: "外部CDNによるリソースのキャッシュに対応しています。サーバーへのリクエストを減らすことで、負荷低減・コスト削減が可能です。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)により、タイムラインをRedis上に構築しパフォーマンスを向上させることができます。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)により、リアクション情報をRedis上にキャッシュしパフォーマンスを向上させることができます。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応しており、ユーザーの増加にも対応できます。" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "機械学習" description: "組み込みの機械学習機能を利用して、自動的にセンシティブなメディアのフィルタリングを行うなど、運用の負担を軽減することも可能です。" _sentry: title: "Sentryサポート" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "多言語対応" description: "クライアントを様々な言語で利用可能です。" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を用いたステートレス認証を実装し、よりセキュア・より高速なリクエストの検証を実現します。" _newBackend: title: "より軽量なバックエンド" description: "より高速・軽量に動作可能にするための全く新しいバックエンド実装の開発を進めています。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートし、より軽量なWeb UIを実現します。" _getStarted: title: "Commencer à utiliser Misskey" _find: title: "Trouver une instance" list: "Liste d'instances" _create: title: "Créer une instance" guide: "Guide d'installation" _docs: title: "En savoir plus" docs: "Consulter la documentation" _dev: title: "開発に参加する" _donation: title: "Demande de don" description: "Misskey est une organisation à but non lucratif, nous dépendons de vos dons pour financer le développement. Si vous aimez Misskey, veuillez considérer de nous soutenir." _sponsors: title: "Parrains" becomeASponsor: "Devenir paraîneur·euse" _servers: title: "Liste d'instances" description: "Misskey n'est pas un seul service, mais un réseau décentralisé où le service est fourni par des individus. Pour utiliser Misskey, vous devez créer un compte sur une instance qui fournit le service." addYourServer: "Votre instance n'apparaît pas dans la liste ? Veuillez l'enregistrer {0} !" addYourServerLink: "ici" disclaimerTitle: "[Important] Clause de non-responsabilité" disclaimer: "Cette liste d'instances est une liste automatique des instances Misskey trouvées sur Fediverse et n'est généralement pas vérifiée manuellement. Les instances énumérées ici n'ont pas été contrôlées, vérifiées ou approuvées par le projet Misskey. Le projet Misskey décline toute responsabilité pour les dommages causés aux utilisateurs sur ces instances." _system: fetchError: "Le chargement de données a échoué. Veuillez réessayer plus tard." _statistics: title: "Statistiques de l'instance" description: "Présentation graphique des données statistiques des instances Misskey." viewFullStats: "Voir des statistiques détaillées" lang: "Langue principale" registerAcceptance: "Politique d'inscription" version: "Version" notes: "Nombre de notes" users: "Nombre d’utilisateurs" servers: "Nombre d'instances" _search: title: "Recherche avancée" all: "Tout" query: "Recherche par mots clés" lang: "Langue" orderBy: "Trier par" recomendded: "Par défaut" notesCount: "Nombre de notes" notesPer15Days: "Nombre de notes par jour (moyenne des 15 derniers jours)" usersCount: "Nombre d’utilisateurs" _registerAcceptance: title: "Politique d'Inscription" public: "Publique" inviteOnly: "Sur invitation seulement" _list: notFound: "Aucune instance qui correspond aux critères spécifiés a été trouvée." showMore: "Afficher plus" _view: title: "Format d'affichage" list: "Liste" grid: "Grille" _docs: title: "Documentation" description: "Misskey est une plateforme de réseautage social décentralisée à code source ouvert. La documentation couvre tous les aspects, de la bonne utilisation de Misskey aux informations destinées aux opérateurs d'instances et aux développeurs." indexTitle: "Sommaire" _contribute: editThis: "Éditer cette page" translateThis: "Traduire cette page" _aboutMisskey: title: "À propos de Misskey" description: "Un guide complet pour ceux qui découvrent Misskey ou qui considèrent l'utiliser ! Explorons les mécanismes et les fonctionnalités de base." _changelog: title: "Journal des modifications" description: "Voir l'historique des mises à jour de Misskey. Découvrez les nouveautés de la dernière version !" _donate: title: "Dons au projet" description: "Misskey est un logiciel gratuit à code source ouvert. Si vous l'appréciez, veuillez faire un don pour que nous puissions continuer à le développer." _forUsers: title: "Pour les utilisateurs de Misskey" _forAdmin: title: "Pour les administrateurs" _forDevelopers: title: "Pour les développeurs" _prevNext: prev: "Précédent" next: "Suivant" _toc: title: "Table des matières" toPageTop: "Retourner en haut de la page" _steppedGuide: selectCourse: "Choisir un guide" noImageInThisStep: "Il n'y a pas d'image pour cette étape" aiWellDone: "La procédure est maintenant terminée. Bravo ♪" _blog: title: "Blogue" description: "Les dernières nouvelles, conseils et astuces sur Misskey de la part de l'équipe de développement ! (uniquement en japonais)" back: "Retourner" _content: tip: "Astuces" warning: "Attention" danger: "Avertissement" preview: "Aperçu" _other: title: "Plus !" description: "D'autres ressources pour vous aider à mieux apprécier Misskey." _brandAssets: title: "Collection de ressources" description: "Une collection de logos, d'icônes et d'autres actifs de Misskey. Vous êtes libre de les utiliser sous certaines licences." license: "Les ressources sont libres d'être utilisées sous la licence CC BY-SA 🎉" assetsDirectory: "Toutes les ressources sont gérées sur {0}." logo: "Logo" icon: "Icône" banner: "Bannière" avatarDecorationTemplate: "Modèle de décoration d'avatar" fullColorPng: "フルカラー (PNG)" monoChromeSvg: "単色 (SVG)" _contact: title: "Nous contacter" description: "Contactez le projet Misskey ici" form: "Veuillez remplir ce formulaire." formGoogleAccountRequired: "Actuellement, en raison des mesures anti-spam, un compte Google est nécessaire pour soumettre une requête.\nNous nous excusons pour cet inconvénient et vous remercions de votre compréhension." formLink: "Passer au formulaire" faqTitle: "FAQ" faqDescription: "Avant de soumettre votre demande, assurez-vous que ce que vous voulez savoir ne se trouve pas ici." ifNothingIsFound: "Si aucun d'en haut ne s'applique à vous…" _links: title: "Liens" _github: title: "GitHub" description: "Misskey est développé sur GitHub. Les demandes de fonctionnalités et les rapports de bogues peuvent y être faits." _crowdin: title: "Crowdin" description: "Les traductions de Misskey lui-même et de la documentation sont gérées ici. Vos contributions sont appréciées." _discord: title: "Serveur Discord" description: "Vous pouvez y poser des questions et participer aux conversations par rapport à Misskey." _aiChan: title: "Ai-Chan" description: "Le site web de la mascotte de Misskey, Ai-Chan." _tools: title: "Collection d'outils" index: "Collection d'outils / Page d'accueil" description: "Des outils pratiques pour Misskey sont disponibles !" menuToggle: "Menu" _forUsers: title: "Pour les utilisateurs de Misskey" _forAdmin: title: "サーバー運営者向け" _mfmPlayground: title: "Terrain de jeu de MFM" description: "Pratiquez librement le MFM ici ! Les prévisualisations du formulaire de publication et de la note sont incluses !" preview: "Prévisualisation" disclaimer: "Il n'est pas toujours rendu comme indiqué ici. La mise en évidence syntaxique du code n'est pas prise en charge." mfm: "MFM" character: "{0} caractères" domain: "Instance à recréer l'apparence (p. ex. émojis personnalisés)" noteIt: "Noter" clearEmojiCacheDescription: "Si les émojis ne s'affichent pas :" clearEmojiCache: "Effacer le cache d'émojis" _aidConverter: title: "Convertisseur d'aid/aidx" description: "Convertir et créer les « aid » et « aidx », les algorithmes de génération d'identifiants aléatoires utilisés à l'intérieur de Misskey." aidToDate: "aid/aidx → Date et heure" dateToAid: "Date et heure → aid/aidx" mode: "Identifiant à créer" date: "Date et heure" inputByLine: "改行区切りで複数のaid/aidxを変換できます。" _aboutUs: title: "À propos de la division du Développement de Misskey" description: "Information sur l'équipe de développement de Misskey." _team: title: "Membres du développement" description: "Rencontrez les participants au développement de Misskey !" _core: title: "Membres de l'équipe centrale" description: "Ces membres de l'équipe centrale maintiennent activement les projets liés à Misskey." _coreEmeriti: title: "Membres honoraires de l'équipe centrale" description: "Ces anciens membres de l'équipe centrale ont fait d'importantes contributions dans le passé." _contributors: title: "Contributeurs" description: "Chacune de ces personnes a apporté une contribution particulière à Misskey." seeMore: "Tous les contributeurs" _orgPartner: title: "Compagnies et organisations collaboratrices" description: "Ces compagnies et organisations ont contribué financièrement ou techniquement au développement de Misskey." _hubTranslators: title: "Traducteurs de Misskey Hub" description: "Ces personnes ont contribué à la traduction de Misskey Hub." _coreTranslators: title: "Traducteurs de Misskey" description: "Ces personnes ont contribué à la traduction de Misskey." _i18n: _missing: title: "Aidez-nous à traduire" description: "Ce document est traduit par la communauté. Vous pouvez traduire le document à {link}. Nous apprécions votre contribution 🙏." linkLabel: "Crowdin" _share: title: "Noter à Misskey" chooseServer: "Choisissez l'instance sur laquelle noter" addServer: "Ajouter une instance" domain: "Domaine de l'instance" compatibleWith: "Compatible avec Misskey et certaines de ses fourches." recommendedByWebsite: "Recommandé par le site web partageant" _noteVisibility: public: "Public" home: "Principal" followers: "Abonnés" specified: "Direct" localOnly: "Défédérer" _shareLinkGenerator: title: "Générateur de boutons de partage" description: "Vous pouvez créer des boutons de partage pour Misskey en utilisant le service de relais de bouton de partage de Misskey Hub." body: "Corps" bodyWarning: "Les émojis personnalisés ne peuvent pas être utilisés pour être compatible avec toutes les instances." url: "URL" urlCaption: "Optionnelle. Insérée après le corps." settings: "Paramètres avancés" manualInstance: "Domaine de l'instance recommandée" manualInstanceDescription: "L'instance spécifiée ici est affichée en haut de la page de relais du bouton de partage. Vous pouvez l'utiliser pour diriger les internautes vers votre propre instance, par exemple." visibility: "Visibilité" recipents: "Comptes qui reçoivent la note directe (séparées par des sauts de ligne)" resultLink: "Résultats générés" resultButton: "Exemple du bouton de partage" testLink: "Tester le lien de partage" typeSomethingToGetLink: "Entrez le corps pour générer le lien." typeSomethingToGetButton: "Entrez le corps pour générer le bouton." documentationIs: "パラメータの詳細情報など、技術仕様は{here}" here: "ici" _goToMisskey: title: "Aller à Misskey Web" heading: "Sélectionnez l'instance sur laquelle vous souhaitez ouvrir cette page" _avatarDecorationPreview: title: "Prévisualisateur des décorations d'avatar" description: "Vous pouvez vérifier si les décorations d'avatar reflètent bien la réalité." preview: "Prévisualisation" settings: "Paramètres" decoration: "Décoration #{number}" placeholder: "Vous pouvez mettre et prévisualiser des décorations d'avatar avec le bouton « Ajouter »." _options: offsetX: "Position x" offsetY: "Position y" angle: "Angle" flip: "Réflexion horizontale" overlayTemplate: "Superposer le modèle" _placeholder: username: "Ai-Chan" noteText: "J'ai mangé un beignet enrobé de chocolat 🍩😋" profileDescription: "Je suis Ai-Chan, l'IA qui réside sur Misskey ! Enchantée de vous rencontrer ♪" _customEmojiPreview: title: "Prévisualisation d'émojis personnalisés" description: "Vous pouvez vérifier l'affichage des émojis personnalisés." preview: "Prévisualisation" emoji: "Émoji #{number}" placeholder: "Sous « Ajouter », vous pouvez ajouter et prévisualiser des émojis personnalisés." limitReactionLength: "リアクションの最大横幅を制限し、縮小して表示する" _options: text: "Texte de la note" textDescription: "L'émoji personnalisé ajouté peut être référé par {emoji_id}." _placeholder: noteText: "L'émoji personnalisé apparaîtra comme ceci → :emoji_preview_1:\nVous pouvez réécrire le texte et tester son affichage ✨" _identiconGenerator: title: "Générateur d'icône initiale" description: "Vous pouvez générer l'icône utilisée par défaut lorsque vous vous inscrivez sur Misskey." userName: "Nom d'utilisateur·rice" includeDomain: "Veuillez spécifier le nom d'utilisateur·rice complet, incluant le domaine de l'instance." _historicalMaterials: title: "歴史資料館" description: "Misskeyに関する歴史的資料を一挙公開" heroSubtitle: "Misskey 10周年記念企画" heroDescription: "Misskeyは2014年に掲示板サービスとして生まれました。それから10年経ち、今ではたくさんの方々に利用していただけるプラットフォームになりました。\nここではMisskeyに関する歴史的資料を一挙公開します!" submissionTitle: "古いMisskeyの写真をお持ちですか?" submissionDescription: "昔のMisskeyにまつわる資料をお持ちの方は、ぜひ当館にお寄せください。\nGitHubを利用できる方は{gh_issue}に、利用できない方は {'@'}syuilo{'@'}misskey.io にお送りください。" _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にお手持ちの画像を当てはめて見栄えをチェックできます。" name: "サーバー名" serverDescription: "Description" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されている場合は、背景画像の方を優先して表示します。画像は中心基準で16:9に収まる最大領域のみが表示されます。" _api: _permissions: title: "Permissions" description: "Description" _types: "read:account": "Lire les informations de votre compte" "write:account": "Modifier les informations de votre compte" "read:blocks": "Lire votre liste d'utilisateurs bloqués" "write:blocks": "Modifier votre liste d'utilisateurs bloqués" "read:drive": "Lire les fichiers et les dossiers de votre Disque" "write:drive": "Modifier les fichiers et les dossiers de votre Disque" "read:favorites": "Lire vos favoris" "write:favorites": "Modifier vos favoris" "read:following": "Lire vos abonnements" "write:following": "Modifier vos abonnements" "read:messaging": "Lire les messages de vos conversations" "write:messaging": "Créer ou supprimer des messages de vos conversations" "read:mutes": "Lire votre liste d'utilisateurs masqués" "write:mutes": "Modifier votre liste d'utilisateurs masqués" "write:notes": "Créer ou supprimer vos notes" "read:notifications": "Lire vos notifications" "write:notifications": "Modifier vos notifications" "read:reactions": "Lire vos réactions" "write:reactions": "Modifier vos réactions" "write:votes": "Voter" "read:pages": "Lire vos Pages" "write:pages": "Modifier vos Pages" "read:page-likes": "Lire vos mentions j'aime des Pages" "write:page-likes": "Modifier vos mentions j'aime des Pages" "read:user-groups": "Lire vos groupes d'utilisateurs" "write:user-groups": "Modifier vos groupes d'utilisateurs" "read:channels": "Lire vos canaux" "write:channels": "Modifier vos canaux" "read:gallery": "Lire la galerie" "write:gallery": "Modifier la galerie" "read:gallery-likes": "Lire vos mentions j'aime des postes de la galerie" "write:gallery-likes": "Modifier vos mentions j'aime des postes de la galerie" "read:flash": "Lire vos Play" "write:flash": "Modifier vos Play" "read:flash-likes": "Lire vos mentions j'aime des Play" "write:flash-likes": "Modifier vos mentions j'aime des Play" "read:admin:abuse-user-reports": "Voir les rapports des utilisateurs" "write:admin:delete-account": "Supprimer des comptes d'utilisateur·rice" "write:admin:delete-all-files-of-a-user": "Supprimer tous les fichiers d'un·e utilisateur·rice" "read:admin:index-stats": "Voir les statistiques sur les index de base de données" "read:admin:table-stats": "データベーステーブルに関する情報を見る" "read:admin:user-ips": "Voir l'adresse IP des utilisateurs" "read:admin:meta": "Voir les métadonnées de l'instance" "write:admin:reset-password": "ユーザーのパスワードをリセットする" "write:admin:resolve-abuse-user-report": "ユーザーからの通報を解決する" "write:admin:send-email": "メールを送る" "read:admin:server-info": "サーバーの情報を見る" "read:admin:show-moderation-log": "モデレーションログを見る" "read:admin:show-user": "ユーザーのプライベートな情報を見る" "write:admin:suspend-user": "ユーザーを凍結する" "write:admin:unset-user-avatar": "ユーザーのアバターを削除する" "write:admin:unset-user-banner": "ユーザーのバーナーを削除する" "write:admin:unsuspend-user": "ユーザーの凍結を解除する" "write:admin:meta": "インスタンスのメタデータを操作する" "write:admin:user-note": "モデレーションノートを操作する" "write:admin:roles": "ロールを操作する" "read:admin:roles": "ロールを見る" "write:admin:relays": "リレーを操作する" "read:admin:relays": "リレーを見る" "write:admin:invite-codes": "招待コードを操作する" "read:admin:invite-codes": "招待コードを見る" "write:admin:announcements": "お知らせを操作する" "read:admin:announcements": "お知らせを見る" "write:admin:avatar-decorations": "アバターデコレーションを操作する" "read:admin:avatar-decorations": "アバターデコレーションを見る" "write:admin:federation": "連合に関する情報を操作する" "write:admin:account": "ユーザーアカウントを操作する" "read:admin:account": "ユーザーに関する情報を見る" "write:admin:emoji": "絵文字を操作する" "read:admin:emoji": "絵文字を見る" "write:admin:queue": "ジョブキューを操作する" "read:admin:queue": "ジョブキューに関する情報を見る" "write:admin:promo": "プロモーションノートを操作する" "write:admin:drive": "ユーザーのドライブを操作する" "read:admin:drive": "ユーザーのドライブの関する情報を見る" "read:admin:stream": "管理者用のWebsocket APIを使う" "write:admin:ad": "広告を操作する" "read:admin:ad": "広告を見る" "write:invite-codes": "招待コードを作成する" "read:invite-codes": "招待コードを取得する" "write:clip-favorite": "クリップのいいねを操作する" "read:clip-favorite": "クリップのいいねを見る" "read:federation": "連合に関する情報を取得する" "write:report-abuse": "違反を報告する" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/id-ID.yml ================================================ noScript: "JavaScript dinonaktifkan. Mohon aktifkan JavaScript karena dibutuhkan untuk situs agar dapat berjalan dengan normal." learnMore: "Pelajari lebih lanjut" loading: "Memuat..." clickToExpand: "(Klik untuk perluas)" copy: "Salin" share: "Bagikan" note: "Catatan" other: "Lainnya" add: "Tambahkan" generate: "Hasilkan" download: "Unduh" browse: "Jelajahi" settings: "Pengaturan" goToLegacyHub: "Misskey Hub Jadul" contactUs: "Hubungi kami" detail: "Selengkapnya" lastUpdate: "Pembaruan terakhir" empty: "Tidak ada konten" threeDimensionModel: "Model 3D" clickToShow: "Klik untuk melihat" preview: "プレビュー" scrollable: "スクロールできます" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "Halaman Tidak Ditemukan" notFoundDesc: "Halaman yang kamu cari tidak dapat ditemukan. Mohon cek kembali URL yang kamu tuju." generalError: "Terjadi kesalahan" generalErrorDesc: "Jika ini bukan yang kamu maksud, mohon klik tombol di bawah ini untuk melaporkan masalah." reportProblem: "Laporkan Masalah" goToTop: "Kembali ke halaman atas" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Situs web resmi Proyek Misskey" defaultTitleTagline: "Jaringan membentang melalui catatan" defaultDescription: "Situs web resmi Misskey, sebuah perangkat lunak jejaring sosial yang terdesentralisasi. Temukan cara untuk memulai, daftar peladen, dan informasi lebih lanjut tentang Misskey!" _nav: servers: "Peladen" docs: "Dokumen" news: "ニュース" other: "Lainnya" switchLang: "Pengaturan Bahasa" _landing: _hero: description: "Misskey merupakan platform media sosial terdesentralisasi bersumber terbuka." gettingStarted: "Memulai" _keyFeatures: _open: title: "Terbuka" description: "Misskey merupakan perangkat lunak bersumber terbuka dan semua orang dapat menggunakanya secara bebas." _federated: title: "Federasi" description: "Misskey merupakan platform terdesentralisasi, sehingga komunitas dari peladen lain dapat terhubung dengan satu sama lain." _powerful: title: "パワフル" description: "Misskeyはカスタマイズ可能なプロダクションレベルの様々な機能を備えています。多人数でも少人数でも、最適なソリューションに。" _introduction: title: "Misskeyで作ろう" description: "Misskeyを使えば、面倒な実装を行うことなく、簡単に独自のプラットフォームを構築可能です。あなたがMisskeyを使って作ったサービスはあなただけのものなので、情報発信における既存プラットフォームへの依存リスクもありません。" tip: "Misskeyは「Webサービスそのもの」ではなく、マイクロブログサービスを作るための「基盤となるソフトウェア」です。Webサイトを作るのにWordPressといったソフトウェアを使うのと同じです。" _decenterized: title: "Misskey merupakan platform {0}." description: "Misskey adalah proyek bebas dan terbuka. Semua orang dapat membuat instansi peladen Misskey secara bebas dan bermacam peladen Misskey di Internet telah tersedia. Salah satu fitur penting dari Misskey adalah implementasi protokol komunikasi terdesentralisasi bernama {0}. Dengan {0}, pengguna dapat berinteraksi dengan pengguna lain yang berbeda peladen dimana pun mereka terdaftar. Inilah kenapa disebut terdesentralisasi dan secara fundamental berbeda dengan layanan lain seperti Twitter yang mana disediakan dalam URL dan operator tunggal. Setiap peladen memiliki topik, grup pengguna, dan bahasa yang berbeda-beda dari satu peladen dengan peladen lain. Menemukan peladen yang tepat bagimu tersebut juga bagian dari hal yang menyenangkan (tidak lupa juga membuat peladenmu sendiri juga menyenangkan lho)." activityPub: "ActivityPub" _useCases: title: "こんな使い方ができます" single: "情報収集・情報発信のための自分専用のサーバー" official: "会社の広報アカウントを設置する専用のサーバー" community: "同じ関心をもつユーザー向けのコミュニティサーバー" inHouse: "社内SNSとしてのプライベートサーバー" _free: title: "Misskeyはずっと無料でオープン" description: "Misskeyは2014年の開発当初から、そしてこれから未来も、プログラムのソースコードが公開されているオープンソースソフトウェア(OSS)です。また、誰でも無料で・自由にソースコードを利用可能です。MisskeyがOSSであり続けられるのは皆様からの支援のおかげです。" _features: _root: title: "Fitur" description: "Misskey memiliki banyak fitur yang diunggulkan. Temukan mulai dari yang umum hingga khusus." _note: title: "Catatan" description: "Di Misskey, postingan dari pengguna disebut sebagai \"catatan\". Kamu juga memberi balasan, kutipan, menambahkan emoji kustom, teks beranimasi, gambar, video, klip audio, dan masih banyak lagi!" _federation: title: "Federasi" description: "Misskey menggunakan protokol ActivityPub untuk berkomunikasi dengan peladen lain. Tidak hanya terbatas untuk peladen Misskey saja, Misskey juga dapat berkomunikasi dengan perangkat lunak yang mendukung protokol ActivityPub seperti Pleroma, Mastodon, dan Pixelfed." _reaction: title: "Reaksi" description: "Kamu juga dapat menambahkan reaksi emoji ke postingan apapun! Dengan begitu kamu tidak terbatas hanya pada tombol suka dan sekarang kamu bisa menunjukkan perasaanmu kepada semua orang." _customEmojis: title: "カスタム絵文字" description: "Misskeyの様々な場所で使用できる、サーバーオリジナルの絵文字を作成可能です。" _channel: title: "チャンネル" description: "チャンネルを作成すれば、共通のテーマでサーバー内コミュニティを作成することが可能です。" _antenna: title: "アンテナ" description: "特定のワードが含まれるノートだけを収集するタイムラインを作成可能です。" _drive: title: "Drive" description: "Kesulitan untuk menemukan hal yang sudah kamu unggah sebelumnya? Adanya Drive membantumu untuk menyelesaikan masalah tersebut. Kamu dapat mengelola gambar atau video favoritmu yang telah kamu unggah dan membagikannya kembali." _2fa: title: "多要素認証" description: "ワンタイムパスワードを使用した多要素認証や、物理的なキーを使用したパスキー認証で、アカウントのセキュリティを高める各種技術をサポート。" _charts: title: "Bagan" description: "Bagi kalian yang ingin melihat segalanya, Misskey memiliki mesin penggambar Bagan bawaan yang dapat dilihat oleh admin maupun pengguna untuk memvisualisasikan beban penggunaan peladen dan lain-lain secara realtime" _branding: title: "ブランディング" description: "サーバーのロゴ、アイコン、テーマなどをカスタマイズして、簡単にSNSのブランディングを行えます。" _roles: title: "ロール" description: "ロールを使用すると、ユーザーごとに権限を細かくカスタマイズできます。また、コンディショナルロールを使えば、条件に一致するユーザーに自動でロールをアサインすることも可能です。ロールにバッジを設定して、サーバーのマネタイズに役立てることもできます。" _moderation: title: "モデレーション" description: "サーバー運営を助ける、充実のモデレーション機能が標準搭載。WebUIに統合されているため、シームレスに操作可能です。" _privacy: title: "プライバシー" description: "豊富なプライバシー設定で、コンテンツの公開範囲を柔軟にコントロール。" _multiPurpose: title: "ひとりでも、みんなでも" description: "多数の利用者を受け入れるSNSとしての運用はもちろん、個人用サーバーとしての利用もサポート。Fediverseと繋がるための、あなただけの強力な拠点になります。" _monetization: title: "収益化" description: "広告の表示など、サーバーのマネタイズを助ける機能も用意されていて、持続可能な運用を目指せます。" _oss: title: "Mi ❤️ OSS" description: "Misskeyはこれまでもこれからもオープンソースで、誰でも自由に、無料でソースコードを利用可能です。またMisskey Projectは、他のOSSに対して積極的に支援活動を行っています。" _battleTested: title: "信頼性" description: "Misskeyは10年以上にわたって実際の環境で使われており(battle-tested)、高い信頼性があると自負しています。" _featuresServer: _root: title: "サーバーの機能" description: "Misskeyを支えるバックエンド実装の特徴。" _easyInstall: title: "簡単インストール" description: "簡単なコマンドでインストールできるほか、各社提供のホスティングサービスを利用すれば、管理の手間も省けます。" _easySetup: title: "セットアップもカンタン" description: "Misskeyサーバーのセットアップに複雑な設定は不要。ウィザードに従うだけで最適な設定が行われ、すぐに運用を始められます。一方、ニーズに合わせて高度な設定を行うことも可能です。" _api: title: "API" description: "Misskeyの全ての機能はHTTP APIを通じて操作でき、他のアプリケーションとの連携も容易です。さらに、WebhookやWebSocket接続もサポートしているので、リアルタイムにMisskeyからのイベントを受け取ることも可能です。" _relay: title: "リレー対応" description: "Fediverse内のアクティビティを中継するリレーサーバーへの接続をサポートしているので、手動で多数のサーバーと繋げることなく情報収集が可能です。" _nodejs: title: "Node.jsバックエンド" description: "MisskeyはバックエンドにNode.jsを採用しており、高速・軽量に動作します。" _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを採用し、堅牢なデータ管理を実現しています。" _fullTextSearch: title: "全文検索" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにBullMQを採用し、タスクを複数のサーバーで効率的に処理。また、Misskeyネイティブで実装されたインスペクタはコントロールパネルに統合され、外部ツールに頼ることなく管理が可能です。" _cdn: title: "CDN対応" description: "外部CDNによるリソースのキャッシュに対応しています。サーバーへのリクエストを減らすことで、負荷低減・コスト削減が可能です。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)により、タイムラインをRedis上に構築しパフォーマンスを向上させることができます。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)により、リアクション情報をRedis上にキャッシュしパフォーマンスを向上させることができます。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応しており、ユーザーの増加にも対応できます。" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "機械学習" description: "組み込みの機械学習機能を利用して、自動的にセンシティブなメディアのフィルタリングを行うなど、運用の負担を軽減することも可能です。" _sentry: title: "Sentryサポート" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "多言語対応" description: "クライアントを様々な言語で利用可能です。" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を用いたステートレス認証を実装し、よりセキュア・より高速なリクエストの検証を実現します。" _newBackend: title: "より軽量なバックエンド" description: "より高速・軽量に動作可能にするための全く新しいバックエンド実装の開発を進めています。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートし、より軽量なWeb UIを実現します。" _getStarted: title: "Memulai dengan Misskey" _find: title: "Temukan Peladen" list: "Daftar Peladen" _create: title: "Buat Peladen" guide: "Panduan Pemasangan" _docs: title: "Pelajari Lebih Lanjut" docs: "Lihat Dokumentasi" _dev: title: "開発に参加する" _donation: title: "Permohonan Donasi" description: "Misskey merupakan produk nirlaba, kami bergantung pada donasi kamu untuk mendanai pengembangan perangkat lunak ini. Apabila kamu menyukai Misskey, mohon pertimbangkan untuk berdonasi agar kami dapat terus melanjutkan pengembangan Misskey dan membuatnya semakin menarik untuk kedepannya." _sponsors: title: "Sponsor" becomeASponsor: "Menjadi Sponsor" _servers: title: "Daftar Peladen" description: "Misskey bukanlah layanan satuan namun jejaring terdesentralisasi dimana para individu menyediakan banyak layanan. Untuk menggunakan Misskey, kamu perlu membuat akun di peladen yang menawarkan layanan tersebut." addYourServer: "Apakah peladenmu tidak terdaftar? Daftarkan segera {0}!" addYourServerLink: "di sini" disclaimerTitle: "[PENTING] Penafian" disclaimer: "Daftar peladen ini adalah daftar otomatis dari peladen Misskey yang ditemukan pada Fediverse dan umumnya tidak diverifikasi secara manual. Peladen yang didaftarkan di sini BELUM dicek, diverifikasi, ataupun diterima oleh Proyek Misskey. Proyek Misskey tidak bertanggung jawab untuk kerusakan apapun yang disebabkan oleh pengguna pada peladen yang diakses." _system: fetchError: "Gagal untuk mengambil data. Mohon coba lagi nanti." _statistics: title: "Statistik Peladen" description: "Presentasikan statistik peladen Misskey ke dalam Bagan." viewFullStats: "Lihat statistik lengkap" lang: "Bahasa Utama" registerAcceptance: "Kebijakan pendaftaran" version: "Versi" notes: "Jumlah catatan" users: "Jumlah pengguna" servers: "Jumlah peladen" _search: title: "Pencarian tingkat lanjut" all: "Semua" query: "Pencarian dengan kata kunci" lang: "Bahasa" orderBy: "Urutkan" recomendded: "Bawaan" notesCount: "Catatan" notesPer15Days: "Catatan/hari (rata-rata 15 hari terakhir)" usersCount: "Pengguna" _registerAcceptance: title: "Kebijakan Pendaftaran" public: "Publik" inviteOnly: "Undangan" _list: notFound: "Tidak ada peladen yang cocok ditemukan dengan kriteria yang dimaksud." showMore: "Selebihnya" _view: title: "Gaya Tampilan" list: "Daftar" grid: "Kisi" _docs: title: "Dokumen" description: "Informasi komprehensif dimulai dari cara menggunakan Misskey hingga sumber daya untuk pengembang serta operator peladen." indexTitle: "Daftar Isi" _contribute: editThis: "Sunting Halaman ini" translateThis: "Terjemahkan Halaman Ini" _aboutMisskey: title: "Tentang Misskey" description: "Panduan lengkap bagi para pengguna Misskey baru ataupun yang sedang mempertimbangkan untuk menggunakannya! Mari jelajahi dasar-dasar Misskey beserta fiturnya." _changelog: title: "Catatan Rilis" description: "Lihat riwayat versi Misskey. Cari tahu apa yang terbaru di versi terakhir!" _donate: title: "Berdonasi ke proyek" description: "Misskey merupakan perangkat lunak bebas dan bersumber terbuka. Apabila kamu menyukai Misskey, mohon pertimbangkan untuk berdonasi agak kami dapat terus lanjut mengembangkan perangkat lunak ini." _forUsers: title: "Untuk Pengguna Misskey" _forAdmin: title: "Untuk Operator Peladen" _forDevelopers: title: "Untuk Pengembang" _prevNext: prev: "Sebelumnya" next: "Berikutnya" _toc: title: "Daftar Isi" toPageTop: "Kembali ke Atas" _steppedGuide: selectCourse: "Pilih panduan" noImageInThisStep: "Tidak ada gambar pada langkah ini" aiWellDone: "Semua prosedur telah dilakukan. Selamat!" _blog: title: "Blog" description: "Dapatkan informasi dan tips mengenai Misskey langsung dari Tim Pengembang Misskey! (hanya Bahasa Jepang)" back: "Kembali" _content: tip: "Tips" warning: "Peringatan" danger: "Bahaya" preview: "Pratinjau" _other: title: "Lainnya" description: "Memperkenalkan sumber daya yang menyenangkan untuk Misskey!" _brandAssets: title: "Aset Brand" description: "Koleksi dari logo, ikon serta aset Misskey lainnya. Gunakan secara bebas untuk apapun selama dalam lisensi CC BY-SA!" license: "Aset tersedia dalam lisensi CC BY-SA🎉." assetsDirectory: "Semua aset dikelola di {0}." logo: "Logo" icon: "Ikon" banner: "Banner" avatarDecorationTemplate: "Templat Dekorasi Avatar" fullColorPng: "フルカラー (PNG)" monoChromeSvg: "単色 (SVG)" _contact: title: "Hubungi kami" description: "Berhubung dengan Proyek Misskey" form: "Apabila kamu ingin mengirimkan kami sebuah pertanyaan, kamu dapat mengirimkannya dengan mengisi form ini." formGoogleAccountRequired: "Untuk saat ini, kami meminta kamu untuk memiliki akun Google ketika mengirimkan pesan kepada kami. Hal ini dikarenakan untuk pencegahan spam yang serius. Kami mohon maaf atas ketidak nyamanan ini dan berterima kasih banyak atas pengertiannya." formLink: "Pergi ke form" faqTitle: "FAQ" faqDescription: "Sebelum mengisi pertanyaan, mohon pastikan bahwa apa yang kamu ingin tanyakan tidak ada di sini." ifNothingIsFound: "Apabila poin di atas tidak ada yang cocok denganmu..." _links: title: "Tautan" _github: title: "Github" description: "Pengembangan Misskey berada di Github. Kamu dapat memberikan permintaan fitur dan pelaporan bug di sini." _crowdin: title: "Crowdin" description: "Penerjemahan untuk Misskey dan dokumentasinya dikelola di sini. Kami sangat mengapresiasi kontribusimu." _discord: title: "Peladen Discord" description: "Berpartisipasi dalam diskusi dan mengajukan pertanyaan tentang Misskey ada di sini." _aiChan: title: "Ai-chan" description: "Kunjungi situs web Ai-chan, maskot dari Misskey." _tools: title: "Koleksi Alat" index: "Beranda Koleksi Alat" description: "Temukan alat yang berguna untuk Misskey!" menuToggle: "Menu" _forUsers: title: "Untuk Pengguna Misskey" _forAdmin: title: "Untuk Pengelola Peladen" _mfmPlayground: title: "Taman bermain MFM" description: "Berlatih MFM sebebasnya!" preview: "Pratinjau" disclaimer: "Terdapat kemungkinan tidak dapat ditampilkan secara tepat di sini. Hal ini dikarenakan penyorotan sintaks untuk kode tidak didukung karena alasan performa." mfm: "MFM" character: "{0} karakter" domain: "Peladen yang ingin ditiru penampilannya (contoh: emoji kustom)" noteIt: "Catatan" clearEmojiCacheDescription: "Ketika emoji tidak ditampilkan:" clearEmojiCache: "Hapus Tembolok Emoji" _aidConverter: title: "alat aid/aidx" description: "Alat ini dapat mengubah dan membuat aid serta aidx, yang merupakan algoritma generator ID random digunakan dalam Misskey." aidToDate: "aid/aidx ke Tanggal" dateToAid: "Tanggal ke aid/aidx" mode: "Tipe id" date: "Tanggal/Waktu" inputByLine: "Kamu dapat mengubah aid/adx lebih dari satu dengan memisahkannya menggunakan baris baru." _aboutUs: title: "Tentang Divisi Pengembangan Misskey" description: "Informasi mengenai tim pengembangan Misskey." _team: title: "Anggota Pengembang" description: "Memperkenalkan orang-orang yang terlibat dalam pengembangan Misskey!" _core: title: "Anggota Tim Inti" description: "Anggota tim inti berikut ini merupakan orang yang aktif dalam mengembangkan proyek terkait dengan Misskey." _coreEmeriti: title: "Anggota Tim Inti Purna" description: "Berikut merupakan anggota tim inti sebelumnya yang telah membuat kontribusi yang bernilai di masa lalu." _contributors: title: "Kontributor" description: "Berikut ini merupakan beberapa dari kontributor Misskey yang paling aktif." seeMore: "Semua kontributor" _orgPartner: title: "Rekan Korporasi & Organisasi" description: "Perusahaan serta organisasi berikut telah berkontribusi secara teknis dan finansial terhadap pengembangan Misskey." _hubTranslators: title: "Penerjemah Misskey Hub" description: "Berikut orang-orang yang telah membantu menerjemahkan Misskey Hub." _coreTranslators: title: "Penerjemah Misskey" description: "Berikut orang-orang yang telah membantu menerjemahkan Misskey." _i18n: _missing: title: "Bantu kami menerjemahkan" description: "Dokumen ini diterjemahkan oleh komunitas. Kamu dapat ikut berkontribusi menyempurnakan terjemahan ini melalui {link}. Kami sangat mengapresiasi atas kerjasama yang telah kamu berikan dengan ikut berkontribusi dalam proyek ini 🙏." linkLabel: "Crowdin" _share: title: "Catat ke Misskey" chooseServer: "Pilih peladen dimana kamu ingin mencatat" addServer: "Tambahkan Peladen" domain: "Domain Peladen" compatibleWith: "Kompatibel dengan Misskey dan beberapa fork Misskey." recommendedByWebsite: "Domain Peladen yang direkomendasikan" _noteVisibility: public: "Publik" home: "Beranda" followers: "Pengikut" specified: "Catatan langsung" localOnly: "Matikan federasi" _shareLinkGenerator: title: "Generator Tombol Bagikan" description: "Buat tombol bagikan untuk Misskey menggunakan layanan relai tautan berbagi Misskey Hub." body: "Badan Pesan" bodyWarning: "Kamu tidak dapa menggunakan emoji kustom untuk membuatnya kompatibel dengan peladen apapun." url: "URL" urlCaption: "Opsional. Akan dimasukkan setelah badan teks." settings: "Pengaturan Lanjutan" manualInstance: "Domain Peladen yang direkomendasikan" manualInstanceDescription: "Salah satu peladen yang disebutkan di sini dapat ditampilkan di atas tombol bagikan perantara. Hal ini membantu untuk mengarahkan pengguna ke peladen milikmu." visibility: "Visibilitas" recipents: "Acct dari orang yang menerima pesan langsung (masukkan pada baris baru sebagai pemisah)" resultLink: "Hasil dari tautan yang dibagikan" resultButton: "Contoh tombol bagikan" testLink: "Tes tautan yang dibagikan" typeSomethingToGetLink: "Masukkan teks untuk membuat tautan berbagi." typeSomethingToGetButton: "Masukkan teks untuk membuat kode tombol berbagi." documentationIs: "Spesifikasi teknis yang detil seperti referensi parameter dapat ditemukan {here}" here: "di sini" _goToMisskey: title: "Pergi ke Situs Misskey" heading: "Pilih peladen yang kamu ingin buka halamannya dan lanjutkan" _avatarDecorationPreview: title: "Penampil Dekorasi Avatar" description: "Kamu dapat mengecek apakah dekorasi avatar dapat ditampilkan dengan baik." preview: "Pratinjau" settings: "Pengaturan" decoration: "Dekorasi #{number}" placeholder: "Kamu dapat menambahkan serta mempratinjau dekorasi avatar dari menu \"Tambahkan\"." _options: offsetX: "Posisi x" offsetY: "Posisi y" angle: "Sudut" flip: "Balikkan Horizontal" overlayTemplate: "Templat lapisan" _placeholder: username: "Ai" noteText: "Baru aja makan donat berlapis coklat 🍩😋" profileDescription: "Aku Ai bertugas sebagai AI Misskey! Senang berkenalan denganmu♪" _customEmojiPreview: title: "Pratinjau Emoji Kustom" description: "Kamu dapat mengecek untuk melihat pratinjau kustom emoji." preview: "Pratinjau" emoji: "Emoji #{number}" placeholder: "Kamu dapat menambahkan dan melihat emoji kustom melalui menu \"Tambahkan\"." limitReactionLength: "リアクションの最大横幅を制限し、縮小して表示する" _options: text: "Teks catatan" textDescription: "Kustom emoji yang ditambahkan dapat direferensikan dengan {emoji_id}" _placeholder: noteText: "Emoji kustom akan muncul seperti ini → :emoji_preview_1:\nKamu dapat menulis ulang teks dan mencoba kegunaannya ✨." _identiconGenerator: title: "Penghasil Identicon" description: "Kamu dapat menghasilkan ikon inisial yang dapat ditentukan secara bawaan ketika kamu mendaftar dengan Misskey." userName: "Nama Pengguna" includeDomain: "Tentukan nama lengkap pengguna, termasuk dengan nama domain peladen." _historicalMaterials: title: "Museum Sejarah" description: "Kunjungi beberapa foto lama dari Misskey" heroSubtitle: "Proyek Perayaan 10 Tahun Misskey" heroDescription: "Misskey diluncurkan pada tahun 2014 sebagai layanan papan buletin. Sepuluh tahun telah berlalu dan sekarang telah menjadi platform yang digunakan oelh banyak orang.\nMari kita jelajahi tangkapan layar bersejarah yang ada di Misskey!" submissionTitle: "Punya tangkapan layar klasik dari Misskey?" submissionDescription: "Apabila kamu memiliki materi yang terkait dengan Misskey versi lama, mohon kirimkan materi tersebut kepada kami.\nPengguna GitHub dapat mengumpulkannya ke {gh_issue}, dan bagi yang tidak dapat menggunakan GitHub dapat mengirimkannya ke {'@'}syuilo{'@'}misskey.io." _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にお手持ちの画像を当てはめて見栄えをチェックできます。" name: "サーバー名" serverDescription: "説明文" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されている場合は、背景画像の方を優先して表示します。画像は中心基準で16:9に収まる最大領域のみが表示されます。" _api: _permissions: title: "Hak akses" description: "Deskripsi" _types: "read:account": "Melihat informasi akun kamu" "write:account": "Menyunting informasi akun kamu" "read:blocks": "Melihat daftar pengguna yang kamu blokir" "write:blocks": "Menyunting daftar pengguna yang kamu blokir" "read:drive": "Mengakses berkas dan folder Drive kamu" "write:drive": "Menyunting atau menghapus berkas dan folder Drive kamu" "read:favorites": "Melihat daftar favorit kamu" "write:favorites": "Menyunting daftar favorit kamu" "read:following": "Melihat informasi orang yang kamu ikuti" "write:following": "Mengikuti atau membatalkan ikuti akun pengguna lain" "read:messaging": "Melihat pesan percakapan akun kamu" "write:messaging": "Menulis atau menghapus pesan percakapan akun kamu" "read:mutes": "Melihat daftar pengguna yang kamu bisukan" "write:mutes": "Menyunting daftar pengguna yang kamu bisukan" "write:notes": "Menulis atau menghapus catatan" "read:notifications": "Lihat notifikasi" "write:notifications": "Mengelola notifikasi akun kamu" "read:reactions": "Melihat reaksi akun kamu" "write:reactions": "Menyunting reaksi akun kamu" "write:votes": "Memberikan suara dalam angket" "read:pages": "Melihat Halaman akun kamu" "write:pages": "Menyunting atau menghapus Halaman akun kamu" "read:page-likes": "Melihat daftar Halaman yang kamu sukai" "write:page-likes": "Menyunting daftar Halaman yang kamu sukai" "read:user-groups": "Melihat grup pengguna akun kamu" "write:user-groups": "Menyunting atau menghapus grup pengguna akun kamu" "read:channels": "Melihat Kanal akun kamu" "write:channels": "Menyunting Kanal akun kamu" "read:gallery": "Melihat Galeri akun kamu" "write:gallery": "Menyunting Galeri akun kamu" "read:gallery-likes": "Melihat daftar postingan galeri yang disukai" "write:gallery-likes": "Menyunting daftar postingan galeri yang disukai" "read:flash": "Melihat Play" "write:flash": "Menyunting Play" "read:flash-likes": "Melihat daftar Play yang disukai" "write:flash-likes": "Menyunting daftar Play yang disukai" "read:admin:abuse-user-reports": "Lihat laporan pengguna" "write:admin:delete-account": "Hapus akun pengguna" "write:admin:delete-all-files-of-a-user": "Hapus semua berkas dari seorang pengguna" "read:admin:index-stats": "Lihat statistik indeks basis data" "read:admin:table-stats": "Lihat statistik tabel basis data" "read:admin:user-ips": "Lihat alamat IP pengguna" "read:admin:meta": "Lihat metadata instansi" "write:admin:reset-password": "Atur ulang kata sandi pengguna" "write:admin:resolve-abuse-user-report": "Selesaikan laporan pengguna" "write:admin:send-email": "Mengirim surel" "read:admin:server-info": "Lihat informasi peladen" "read:admin:show-moderation-log": "Lihat log moderasi" "read:admin:show-user": "Lihat informasi privat milik pengguna" "write:admin:suspend-user": "Tangguhkan pengguna" "write:admin:unset-user-avatar": "Hapus avatar pengguna" "write:admin:unset-user-banner": "Hapus banner pengguna" "write:admin:unsuspend-user": "Batalkan penangguhan pengguna" "write:admin:meta": "Kelola metadata instansi" "write:admin:user-note": "Kelola moderasi catatan" "write:admin:roles": "Kelola peran" "read:admin:roles": "Lihat peran" "write:admin:relays": "Kelola relay" "read:admin:relays": "Lihat relay" "write:admin:invite-codes": "Kelola kode undangan" "read:admin:invite-codes": "Lihat kode undangan" "write:admin:announcements": "Kelola pengumuman" "read:admin:announcements": "Lihat Pengumuman" "write:admin:avatar-decorations": "Kelola dekorasi avatar" "read:admin:avatar-decorations": "Lihat dekorasi avatar" "write:admin:federation": "Kelola federasi" "write:admin:account": "Kelola akun pengguna" "read:admin:account": "Lihat akun pengguna" "write:admin:emoji": "Kelola emoji" "read:admin:emoji": "Lihat emoji" "write:admin:queue": "Kelola antrian kerja" "read:admin:queue": "Lihat informasi antrian kerja" "write:admin:promo": "Kelola catatan yang dipromosikan" "write:admin:drive": "Kelola drive pengguna" "read:admin:drive": "Kelola informasi drive pengguna" "read:admin:stream": "Gunakan API WebSocket untuk Admin" "write:admin:ad": "Kelola iklan" "read:admin:ad": "Lihat iklan" "write:invite-codes": "Membuat kode undangan" "read:invite-codes": "Mendapatkan kode undangan" "write:clip-favorite": "Kelola klip yang difavoritkan" "read:clip-favorite": "Lihat klip yang difavoritkan" "read:federation": "Mendapatkan informasi federasi" "write:report-abuse": "Melaporkan pelanggaran" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/it-IT.yml ================================================ noScript: "Javascript sembra essere disabilitato. Per visualizzare il sito è necessario Javascript, per favore attivalo." learnMore: "Per saperne di più" loading: "Caricamento" clickToExpand: "Clicca per espandere" copy: "Copia" share: "Condividi" note: "Nota" other: "Altri" add: "Aggiungi" generate: "Genera" download: "Scarica" browse: "Sfoglia" settings: "Impostazioni" goToLegacyHub: "Versione precedente" contactUs: "Contattaci" detail: "Dettagli" lastUpdate: "Ultimo aggiornamento" empty: "Vuoto" threeDimensionModel: "Modello 3D" clickToShow: "Clicca per vedere" preview: "Anteprima" scrollable: "Puoi scorrere" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "Pagina non trovata" notFoundDesc: "La pagina che hai richiesto non è stata trovata. Per favore controlla l'indirizzo URL." generalError: "Si è verificato un errore" generalErrorDesc: "Se questo non è ciò che volevi, segnala un bug di seguito." reportProblem: "Segnala un problema" goToTop: "Torna in cima alla pagina" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Sito ufficiale del progetto Misskey" defaultTitleTagline: "Rete in espansione per mezzo di Note" defaultDescription: "Misskey è una piattaforma decentralizzata, open source, per il social networking." _nav: servers: "Server" docs: "Documentazione" news: "Novità" other: "Di più!" switchLang: "Cambia lingua" _landing: _hero: description: "Misskey è una piattaforma decentralizzata, open source, per il social networking." gettingStarted: "Iniziamo!" _keyFeatures: _open: title: "Open source" description: "Misskey è software open source, chiunque può usarlo liberamente." _federated: title: "Decentralizzazione" description: "Misskey sfrutta un protocollo di comunicazione decentralizzato che collega tante comunità su server diversi." _powerful: title: "Potente" description: "Misskey è la soluzione adatta sia a grandi numeri di persone, che piccoli numeri. Dispone di un'ampia varietà di caratteristiche personalizzabili che ne fanno una piattaforma versatile." _introduction: title: "Facciamolo con Misskey" description: "Con Misskey puoi facilmente costruire la tua piattaforma senza problemi di implementazione. I servizi che crei con Misskey sono tuoi, quindi non si corre il rischio di affidarsi a piattaforme per la diffusione delle informazioni già esistenti." tip: "Misskey non è \"un servizio web\" ma è un \"software di base\" per creare servizi di microblogging. Esattamente come WordPress è la base per creare un sito web." _decenterized: title: "Misskey è {0}" description: "Misskey è un progetto opensource di software libero, chiunque può creare un social network utilizzando Misskey. \nPer questo motivo se ne trovano tanti, già pubblicati su Internet. \nTra le caratteristiche più importanti, Misskey implementa un protocollo di comunicazione decentralizzato chiamato {0}. \nQuindi, indipendentemente dal server che scegli, puoi interagire con altre persone iscritte su altri server che sfruttano lo stesso protocollo. \nQuesto lo rende completamente diverso da altri servizi come Twitter, che appartengono ad un unica azienda commerciale. \nGli argomenti, le comunità, il linguaggio, ecc. cambiano a seconda del server. \nTrovarne uno adatto a sé, fa parte del divertimento! (Ovviamente, anche creare il proprio server è divertente)." activityPub: "ActivityPub" _useCases: title: "Esempi di utilizzo" single: "Servizio personale per raccogliere informazioni dal web e diffondere le tue informazioni" official: "Servizio dedicato a promuovere pubblicamente le attività di una organizzazione" community: "Servizio di condivisione per persone con interessi in comune" inHouse: "Social network privato per la intranet di una organizzazione" _free: title: "Misskey sarà sempre una piattaforma libera e open" description: "Misskey è un Open Source Software (OSS), il cui codice sorgente è sempre stato pubblicato apertamente fin dall'inizio e tanto lo sarà in futuro. Per questo motivo, chiunque può utilizzare il codice sorgente liberamente e gratuitamente. Grazie al supporto delle persone utilizzatrici, Misskey può rimanere libero." _features: _root: title: "Caratteristiche principali" description: "Misskey ha una grande varietà di funzioni, alcune simili ad altri software, altre esclusive. Te ne presentiamo qualcuna..." _note: title: "Note" description: "Su Misskey, i contributi delle persone sono chiamati “Note”. Puoi citare altre Note e allegare files o multimedia." _federation: title: "Federazione" description: "Il protocollo di comunicazione ActivityPub, è distribuito e aperto, quindi ogni profilo su un server Misskey può interagire con gli altri del Fediverso." _reaction: title: "Reazioni" description: "Puoi aggiungere “reazioni” alle Note, ti consente di esprimere i tuoi sentimenti in modo semplice e immediato." _customEmojis: title: "Emoji personalizzate" description: "Puoi creare emoji personalizzate da usare ovunque su Misskey." _channel: title: "Canali" description: "All'interno del tuo server, puoi creare canali per arricchirlo di comunità che gravitano attorno ad argomenti particolari." _antenna: title: "Antenne" description: "Crea Timeline personalizzate che collezionano Note su parole chiave specifiche." _drive: title: "Drive" description: "Puoi gestire i file caricati tramite una comoda interfaccia. In questo modo è facile organizzare le immagini preferite in cartelle e ricondividerle senza sprecare spazio." _2fa: title: "Autenticazione a più fattori" description: "Puoi migliorare la sicurezza dei profili registrati, grazie al sistema di autenticazione multi fattore, che sfrutta password usa-e-getta e passkey fornite da chiavi fisiche di sicurezza." _charts: title: "Statistiche" description: "Misskey ti consente di visualizzare facilmente le statistiche sull'uso del server, sullo stato della federazione e sulle attività pubbliche dei profili." _branding: title: "Branding" description: "Puoi rendere il tuo server unico, personalizzando il logo, le icone, i colori ed altro ancora." _roles: title: "Ruoli" description: "Puoi usare i Ruoli e personalizzare i livelli di autorizzazione per ogni persona. Possono essere condizionali, applicandosi automaticamente ai profili che soddisfano determinati criteri. Puoi anche corredarli di badge, per meglio monetizzare con il tuo server." _moderation: title: "Moderazione" description: "Una gamma completa di funzionalità di moderazione, aiutano la gestione del serever. Si tratta di caratteristiche integrate nella interfaccia web, utilizzabili in qualsiasi momento." _privacy: title: "Privacy" description: "Prendi il controllo della visibilità dei tuoi contenuti, grazie ad una quantità di impostazioni dei livelli di privacy." _multiPurpose: title: "Uno per tutti, tutti per uno" description: "Grazie alla connessione nel Fediverso, è possibile sia costruire un social network per tante persone, sia una potente base d'appoggio per divulgare i propri contenuti." _monetization: title: "Monetizzare" description: "Ci sono anche funzionalità che aiutano a monetizzare tramite il server. Ad esempio, la visualizzazione di annunci per una crescita sostenibile." _oss: title: "Mi ❤️ OSS" description: "Misskey è da sempre e sempre sarà software libero open source. Chiunque può utilizzare il codice sorgente liberamente e gratuitamente. Il progetto Misskey supporta attivamente anche altri software open source." _battleTested: title: "Affidabile" description: "Essendo in pista da più di una decade, Misskey è testato sul campo e l'alta affidabilità è una certezza." _featuresServer: _root: title: "Caratteristiche del server" description: "Caratteristiche dell'implementazione backend che supporta Misskey." _easyInstall: title: "Facile da installare" description: "Oltre ad essere semplice da installare con semplici comandi, è anche possibile accelerare i tempi di gestione utilizzando servizi di hosting forniti da molte aziende." _easySetup: title: "Facile da configurare" description: "Non è richiesta alcuna configurazione complicata per avviare il server Misskey. Le impostazioni ottimali vengono effettuate semplicemente seguendo la procedura guidata e puoi immediatamente avviare il servizio. D'altro canto, è anche possibile personalizzare impostazioni avanzate in base alle proprie esigenze tecniche." _api: title: "API" description: "Tutte le funzionalità di Misskey possono essere gestite tramite API HTTP. Sono facili da integrare con altre applicazioni web. Inoltre, supporta anche Webhook e connessioni WebSocket, per garantire alle altre applicazioni la fruizione degli eventi in tempo reale." _relay: title: "Compatibile coi ripetitori" description: "Supporta la connessione ai server Relay che trasmettono le attività nel Fediverso. Questo permette di automatizzare la raccolta di informazioni provenienti da molti server." _nodejs: title: "NodeJS nel backend" description: "Misskey usa un backend in NodeJS, che assicura performance leggere e veloci." _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを採用し、堅牢なデータ管理を実現しています。" _fullTextSearch: title: "全文検索" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにBullMQを採用し、タスクを複数のサーバーで効率的に処理。また、Misskeyネイティブで実装されたインスペクタはコントロールパネルに統合され、外部ツールに頼ることなく管理が可能です。" _cdn: title: "CDN対応" description: "外部CDNによるリソースのキャッシュに対応しています。サーバーへのリクエストを減らすことで、負荷低減・コスト削減が可能です。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)により、タイムラインをRedis上に構築しパフォーマンスを向上させることができます。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)により、リアクション情報をRedis上にキャッシュしパフォーマンスを向上させることができます。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応しており、ユーザーの増加にも対応できます。" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "機械学習" description: "組み込みの機械学習機能を利用して、自動的にセンシティブなメディアのフィルタリングを行うなど、運用の負担を軽減することも可能です。" _sentry: title: "Sentryサポート" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "Multilingua" description: "L'interfaccia web è disponibile in tantissime lingue." _featuresUpcoming: _root: title: "Presto in arrivo" description: "Funzionalità previste nel prossimo futuro." _jwt: title: "Autenticazione JWT" description: "Implementare l'autenticazione utilizzando JSON Web Token (JWT) serve per ottenere una verifica dell'identità più sicura e più rapida." _newBackend: title: "Un backend più leggero" description: "Stiamo sviluppando un'implementazione completamente nuova del backend. Questo per semplificarne il funzionamento, affinché sia più veloce e leggero." _vueVapor: title: "Compatibilità con Vue Vapor" description: "Supporto per Vapor, la nuova strategia di compilazione del framework Vue. Per una interfaccia web più leggera." _getStarted: title: "Iniziamo con Misskey" _find: title: "Trova il tuo server" list: "Elenco dei server" _create: title: "Crea un server" guide: "Guida per l'installazione" _docs: title: "Per saperne di più" docs: "Sfoglia la documentazione" _dev: title: "Partecipare allo sviluppo" _donation: title: "Donazioni" description: "Misskey è un'organizzazione no-profit, il progetto conta sulle donazioni per finanziare lo sviluppo. \nSe ti piace Misskey, sostienici, così potremo continuare a svilupparlo anche in futuro." _sponsors: title: "Sponsor principali" becomeASponsor: "Sponsorizzaci" _servers: title: "Elenco dei server" description: "Misskey non è un social network unico, ma una rete decentralizzata in cui ogni server fornisce servizi federati. Per utilizzare Misskey occorre creare un profilo su uno dei server federati." addYourServer: "Il tuo server non compare? {0}!" addYourServerLink: "aggiungilo" disclaimerTitle: "(Importante) Responsabilità limitata" disclaimer: "Questo è un elenco automatico di server Misskey scoperti sul Fediverso. Non sono stati verificati o approvati manualmente dagli sviluppatori del Misskey Project. I membri del Misskey Project non sono responsabile per eventuali danni causati durante l'accesso ai siti elencati." _system: fetchError: "Impossibile caricare i dati. Per favore riprova più tardi." _statistics: title: "Statistiche server" description: "Presentazione grafica delle statistiche del server Misskey." viewFullStats: "Vedi statistiche dettagliate" lang: "Lingua principale" registerAcceptance: "Modalità di iscrizione" version: "Versione" notes: "Note" users: "Profili" servers: "Server" _search: title: "Ricerca ulteriore" all: "Tutto" query: "Cerca con parola chiave" lang: "Lingua" orderBy: "Ordina per" recomendded: "Predefinito" notesCount: "Conteggio Note pubblicate" notesPer15Days: "Note giornaliere (ultimi 15gg)" usersCount: "Conteggio iscrizioni" _registerAcceptance: title: "Modalità di iscrizione" public: "Iscrizioni aperte" inviteOnly: "Solo su Invito" _list: notFound: "Non ci sono server corrispondenti ai criteri specificati." showMore: "Espandi" _view: title: "Visualizza" list: "Lista" grid: "Griglia" _docs: title: "Documentazione" description: "Misskey è una piattaforma social network, decentralizzata e open source. La documentazione copre tutto: da aiuti su come utilizzare Misskey, alle informazioni per amministrare il server e sviluppare la programmazione." indexTitle: "Indice dei contenuti" _contribute: editThis: "Modifica questa pagina" translateThis: "Traduci" _aboutMisskey: title: "Altro su Misskey" description: "Per chi ha appena iniziato con Misskey e per chi sta già utilizzando. Diamo un'occhiata al funzionamento di base." _changelog: title: "Informazioni sugli aggiornamenti" description: "Leggi la cronologia degli aggiornamenti di versione Misskey. Scopri cosa è cambiato dall'ultima versione!" _donate: title: "Donazioni al progetto" description: "Misskey è un progetto di software libero, open source e gratuito. Se ti piace quello che facciamo, considera la possibilità di fare una donazione. In questo modo gli sviluppatori potranno continuare a svilupparlo." _forUsers: title: "Per utilizzare" _forAdmin: title: "Per amministrare" _forDevelopers: title: "Per sviluppare" _prevNext: prev: "Precedente" next: "Successivo" _toc: title: "Sommario" toPageTop: "Torna su" _steppedGuide: selectCourse: "Scegli una guida" noImageInThisStep: "Questo passaggio non ha immagini" aiWellDone: "Attività completata con successo. Grazie per il tuo impegno! ♪" _blog: title: "Blog" description: "Contiene informazioni e suggerimenti recenti su Misskey, direttamente dal quartier generale dello sviluppo di Misskey! (solo in Giapponese)" back: "Indietro" _content: tip: "Suggerimento" warning: "Avvertimento" danger: "Pericolo" preview: "Anteprima" _other: title: "Di più!" description: "Ecco altre risorse informative che aiutano a goderti Misskey sempre di più." _brandAssets: title: "Il marchio" description: "Una raccolta di loghi, icone e altre risorse grafiche Misskey. Puoi usare tutto liberamente rispettando i termini di licenza." license: "La grafica è liberamente disponibile per l'uso nei termini della licenza Creative Commons, Attribuzione, Condividi allo stesso modo (CC BY-SA) 🎉" assetsDirectory: "Tutte le risorse sono gestite da {0}." logo: "Logo" icon: "Icona" banner: "Banner" avatarDecorationTemplate: "Maschera per decorazioni avatar" fullColorPng: "A colori (PNG)" monoChromeSvg: "Monocromatico (SVG)" _contact: title: "Contattaci" description: "Contatta i membri del Progetto Misskey" form: "Si prega di compilare questo modulo." formGoogleAccountRequired: "In questo momento, per prevenire lo spam, è necessario avere un account Google per inviare richieste.\nCi scusiamo per l'inconveniente, apprezziamo la vostra comprensione." formLink: "Apri il modulo" faqTitle: "Domande frequenti" faqDescription: "Prima di inviare una nuova richiesta, controlla se quello che vuoi sapere è già stato elencato qui." ifNothingIsFound: "Se non hai trovato nulla..." _links: title: "Collegamento" _github: title: "GitHub" description: "Lo sviluppo di Misskey si svolge su GitHub. Puoi richiedere funzionalità e segnalare malfunzionamenti." _crowdin: title: "Crowdin" description: "La traduzione di Misskey avviene qui. Apprezziamo la tua collaborazione, seguendo le indicazioni del progetto." _discord: title: "Server Discord" description: "Qui puoi goderti domande e conversazioni su Misskey." _aiChan: title: "Mascotte Ai" description: "Il sito di Ai-Chan, la \"ragazza copertina\" di Misskey." _tools: title: "Strumenti utili" index: "Schermata iniziale della raccolta strumenti" description: "Abbiamo a disposizione vari strumenti utili per interagire con Misskey!" menuToggle: "Menu" _forUsers: title: "Per chi utilizza Misskey" _forAdmin: title: "Per chi amministra i server" _mfmPlayground: title: "Angolo prove MFM" description: "Puoi provare MFM liberamente! Funziona esattamente come la schermata di pubblicazione delle Note. Misskey Format Markup ti permette di alterare e animare il testo nelle tue Note." preview: "Anteprima" disclaimer: "Attenzione, il risultato finale potrebbe non essere disegnato esattamente come lo vedi qui. L'evidenziazione della sintassi del codice non è supportata." mfm: "MFM" character: "{0} caratteri" domain: "Server in cui riprodurre il risultato" noteIt: "Pubblica la Nota" clearEmojiCacheDescription: "Se le emoji non vengono visualizzate correttamente" clearEmojiCache: "Svuota la cache emoji" _aidConverter: title: "Strumento aid/aidx" description: "Questo strumento permette di convertire e generare codici aid e aidx. Si tratta del codice ID casuale usato all'interno di Misskey." aidToDate: "da aid/aidx a data temporale" dateToAid: "da data temporale a aid/aidx" mode: "ID da creare" date: "Data temporale" inputByLine: "Puoi convertire più valori aid/aidx posizionandoli su ogni riga." _aboutUs: title: "Informazioni sul progetto Misskey" description: "Ottieni tutte le informazioni sul progetto Misskey." _team: title: "Membri sviluppatori" description: "Presentazione delle persone coinvolte nello sviluppo di Misskey." _core: title: "Membri del team principale" description: "I membri del team principale svolgono attivamente la manutenzione dei progetti correlati a Misskey." _coreEmeriti: title: "Membri onorari del team principale" description: "Si tratta di persone non più attive nel team principale, che hanno dato un contributo prezioso in passato." _contributors: title: "Contributori" description: "Queste persone indipendenti stanno dando un contributo speciale a Misskey." seeMore: "Ulteriori contributori" _orgPartner: title: "Aziende e organizzazioni partner" description: "Queste aziende e organizzazioni collaborano allo sviluppo di Misskey sia dal punto di vista finanziario che tecnico." _hubTranslators: title: "Traduttori del sito Misskey-Hub" description: "Grazie a tutte le persone che ci stanno aiutando a tradurre Misskey-Hub." _coreTranslators: title: "Traduttori Misskey" description: "Grazie a tutte le persone che ci stanno aiutando a tradurre Misskey." _i18n: _missing: title: "Aiutaci a tradurre" description: "Questo documento è stato tradotto dalla comunità. Potresti contribuire anche tu {link}. Grazie per la collaborazione🙏" linkLabel: "Crowdin" _share: title: "Aggiungi Nota su Misskey" chooseServer: "Seleziona il server in cui scrivere la Nota" addServer: "Aggiungi server" domain: "Dominio del server" compatibleWith: "Compatibile con Misskey e derivati." recommendedByWebsite: "Raccomandazioni dal sito Web di condivisione" _noteVisibility: public: "Pubblica" home: "Home" followers: "Follower" specified: "Nota diretta" localOnly: "Senza federazione" _shareLinkGenerator: title: "Generatore di bottoni per condivisione" description: "Puoi creare un bototne per condivisione su Misskey utilizzando lo strumento di generazione bottoni per condivisione di Misskey-Hub." body: "Corpo" bodyWarning: "Gli emoji personalizzati non sono disponibili poiché vogliamo garantire la condivisione su qualsiasi server nel fediverso." url: "URL" urlCaption: "Facoltativo, verrà accodato al corpo." settings: "Impostazioni avanzate" manualInstance: "Domini di server consigliati" manualInstanceDescription: "Il server specificato qui, può essere visualizzato nella parte superiore della pagina di inoltro pulsante di condivisione. Potresti usarlo per indirizzare le persone al tuo server." visibility: "Visibilità" recipents: "Destinatari (uno per linea)" resultLink: "Collegamento risultante" resultButton: "Esempio del bottone di condivisione" testLink: "Prova il link di condivisione" typeSomethingToGetLink: "Digita il testo per generare il collegamento." typeSomethingToGetButton: "Digita il testo per generare il bottone." documentationIs: "Ecco le {here}, comprese le informazioni dettagliate sui parametri" here: "specifiche tecniche" _goToMisskey: title: "Vai a Misskey Web" heading: "Per favore, seleziona il server che desideri aprire questa pagina" _avatarDecorationPreview: title: "Anteprima per decorazioni degli avatar" description: "Puoi verificare se le decorazioni dell'avatar combaciano correttamente." preview: "Anteprima" settings: "Impostazioni" decoration: "Decorazione N° {number}" placeholder: "Premere il bottone \"Aggiungi\" per caricare e visualizzare in anteprima la decorazione" _options: offsetX: "Spostamento orizzontale" offsetY: "Spostamento verticale" angle: "Angolo di rotazione" flip: "Rifletti" overlayTemplate: "Modello di sovrapposizione" _placeholder: username: "Ai" noteText: "Ho mangiato una ciambella ricoperta di cioccolato 🍩😋" profileDescription: "Sono Ai, la IA di Misskey! Piacere di conoscerti ♪" _customEmojiPreview: title: "Anteprima emoji personalizzate" description: "カスタム絵文字の視認性をチェックできます。" preview: "プレビュー" emoji: "絵文字 #{number}" placeholder: "「追加」から、カスタム絵文字を追加してプレビューできます。" limitReactionLength: "リアクションの最大横幅を制限し、縮小して表示する" _options: text: "ノート文面" textDescription: "追加したカスタム絵文字は{emoji_id}で参照できます。" _placeholder: noteText: "カスタム絵文字はこんな感じで表示されます→ :emoji_preview_1:\n文章を書き換えて、使い勝手を試してみてくださいね✨" _identiconGenerator: title: "初期アイコンジェネレーター" description: "Misskeyに登録した際にデフォルトで指定される初期アイコンを生成できます。" userName: "ユーザー名" includeDomain: "サーバーのドメイン名を含む完全なユーザー名を指定してください。" _historicalMaterials: title: "Museo storico" description: "Tutta la documentazione storica su Misskey in un posto unico" heroSubtitle: "Anniversario dei 10 anni di Misskey" heroDescription: "Misskey nacque nel 2014 come servizio di bacheca. Sono passati 10 anni da allora e oggi è una piattaforma in uso da tantissime persone.\nIn questa pagina troverai il materiale storico relativo a Misskey, raccolto in un unico posto!" submissionTitle: "Hai una vecchia foto di Misskey?" submissionDescription: "Se hai materiale relativo alla vecchia Misskey, non esitare a contattarci.\nDisponendo di un account GitHub, puoi inviarlo a {gh_issue}. In alternativa, puoi inviarlo a {'@'}syuilo{'@'}misskey.io." _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にお手持ちの画像を当てはめて見栄えをチェックできます。" name: "サーバー名" serverDescription: "説明文" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されている場合は、背景画像の方を優先して表示します。画像は中心基準で16:9に収まる最大領域のみが表示されます。" _api: _permissions: title: "権限" description: "説明" _types: "read:account": "アカウントの情報を見る" "write:account": "アカウントの情報を変更する" "read:blocks": "ブロックを見る" "write:blocks": "ブロックを操作する" "read:drive": "ドライブを見る" "write:drive": "ドライブを操作する" "read:favorites": "お気に入りを見る" "write:favorites": "お気に入りを操作する" "read:following": "フォローの情報を見る" "write:following": "フォロー・フォロー解除する" "read:messaging": "チャットを見る" "write:messaging": "チャットを操作する" "read:mutes": "ミュートを見る" "write:mutes": "ミュートを操作する" "write:notes": "ノートを作成・削除する" "read:notifications": "通知を見る" "write:notifications": "通知を操作する" "read:reactions": "リアクションを見る" "write:reactions": "リアクションを操作する" "write:votes": "投票する" "read:pages": "ページを見る" "write:pages": "ページを操作する" "read:page-likes": "ページのいいねを見る" "write:page-likes": "ページのいいねを操作する" "read:user-groups": "ユーザーグループを見る" "write:user-groups": "ユーザーグループを操作する" "read:channels": "チャンネルを見る" "write:channels": "チャンネルを操作する" "read:gallery": "ギャラリーを見る" "write:gallery": "ギャラリーを操作する" "read:gallery-likes": "ギャラリーのいいねを見る" "write:gallery-likes": "ギャラリーのいいねを操作する" "read:flash": "Playを見る" "write:flash": "Playを操作する" "read:flash-likes": "Playのいいねを見る" "write:flash-likes": "Playのいいねを操作する" "read:admin:abuse-user-reports": "ユーザーからの通報を見る" "write:admin:delete-account": "ユーザーアカウントを削除する" "write:admin:delete-all-files-of-a-user": "ユーザーのすべてのファイルを削除する" "read:admin:index-stats": "データベースインデックスに関する情報を見る" "read:admin:table-stats": "データベーステーブルに関する情報を見る" "read:admin:user-ips": "ユーザーのIPアドレスを見る" "read:admin:meta": "インスタンスのメタデータを見る" "write:admin:reset-password": "ユーザーのパスワードをリセットする" "write:admin:resolve-abuse-user-report": "ユーザーからの通報を解決する" "write:admin:send-email": "メールを送る" "read:admin:server-info": "サーバーの情報を見る" "read:admin:show-moderation-log": "モデレーションログを見る" "read:admin:show-user": "ユーザーのプライベートな情報を見る" "write:admin:suspend-user": "ユーザーを凍結する" "write:admin:unset-user-avatar": "ユーザーのアバターを削除する" "write:admin:unset-user-banner": "ユーザーのバーナーを削除する" "write:admin:unsuspend-user": "ユーザーの凍結を解除する" "write:admin:meta": "インスタンスのメタデータを操作する" "write:admin:user-note": "モデレーションノートを操作する" "write:admin:roles": "ロールを操作する" "read:admin:roles": "ロールを見る" "write:admin:relays": "リレーを操作する" "read:admin:relays": "リレーを見る" "write:admin:invite-codes": "招待コードを操作する" "read:admin:invite-codes": "招待コードを見る" "write:admin:announcements": "お知らせを操作する" "read:admin:announcements": "お知らせを見る" "write:admin:avatar-decorations": "アバターデコレーションを操作する" "read:admin:avatar-decorations": "アバターデコレーションを見る" "write:admin:federation": "連合に関する情報を操作する" "write:admin:account": "ユーザーアカウントを操作する" "read:admin:account": "ユーザーに関する情報を見る" "write:admin:emoji": "絵文字を操作する" "read:admin:emoji": "絵文字を見る" "write:admin:queue": "ジョブキューを操作する" "read:admin:queue": "ジョブキューに関する情報を見る" "write:admin:promo": "プロモーションノートを操作する" "write:admin:drive": "ユーザーのドライブを操作する" "read:admin:drive": "ユーザーのドライブの関する情報を見る" "read:admin:stream": "管理者用のWebsocket APIを使う" "write:admin:ad": "広告を操作する" "read:admin:ad": "広告を見る" "write:invite-codes": "招待コードを作成する" "read:invite-codes": "招待コードを取得する" "write:clip-favorite": "クリップのいいねを操作する" "read:clip-favorite": "クリップのいいねを見る" "read:federation": "連合に関する情報を取得する" "write:report-abuse": "違反を報告する" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/ja-JP.yml ================================================ noScript: "現在Javascriptが無効になっています。サイトの表示にはJavascriptが必須となりますので有効にしてください。" learnMore: "詳しく知る" loading: "読み込み中…" clickToExpand: "(クリックして展開)" copy: "コピー" share: "共有する" note: "ノート" other: "その他" add: "追加" generate: "生成" download: "ダウンロード" browse: "参照" settings: "設定" goToLegacyHub: "従来のMisskey Hub" contactUs: "お問い合わせ" detail: "詳細" lastUpdate: "最終更新" empty: "内容がありません" threeDimensionModel: "3Dモデル" clickToShow: "クリックして表示" preview: "プレビュー" scrollable: "スクロールできます" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "ページが見つかりませんでした" notFoundDesc: "お探しのページは見つかりませんでした。URLをお確かめください。" generalError: "エラーが発生しました" generalErrorDesc: "ブラウザのキャッシュを削除して再度お試しください。それでも改善しない場合は、以下から不具合報告をお願いします。" reportProblem: "問題を報告する" goToTop: "トップページにもどる" _seo: siteName: "Misskey" siteNameLong: "Misskeyオフィシャルサイト Misskey Hub" defaultTitleTagline: "フリーでオープンソースの分散型SNS作成ソフトウェア" defaultDescription: "分散型SNS作成ソフトウェア Misskeyの公式サイト。Misskeyサーバーの作り方やサーバー一覧など、Misskeyに関する情報が満載!" _nav: servers: "サーバー" docs: "ドキュメント" news: "ニュース" other: "もっと!" switchLang: "言語の設定" _landing: _hero: description: "Misskey(ミスキー)はフリーでオープンソースのSNS作成ソフトウェアです。" gettingStarted: "はじめる" _keyFeatures: _open: title: "オープン" description: "Misskeyはソースコードが公開されており、誰でも自由に、無料でMisskeyを使ったサービス(Misskeyサーバー)を作成・運営できます。" _federated: title: "分散" description: "Misskeyは分散型プロトコルを実装しているため、分散型SNSのネットワーク(Fediverse)に繋がるゲートウェイになります。" _powerful: title: "パワフル" description: "Misskeyはカスタマイズ可能なプロダクションレベルの様々な機能を備えています。多人数でも少人数でも、最適なソリューションに。" _introduction: title: "Misskeyで作ろう" description: "Misskeyを使えば、面倒な実装を行うことなく、簡単に独自のプラットフォームを構築可能です。あなたがMisskeyを使って作ったサービスはあなただけのものなので、情報発信における既存プラットフォームへの依存リスクもありません。" tip: "Misskeyは「Webサービスそのもの」ではなく、マイクロブログサービスを作るための「基盤となるソフトウェア」です。Webサイトを作るのにWordPressといったソフトウェアを使うのと同じです。" _decenterized: title: "Fediverseに繋がるための、強力なプラットフォーム" description: "Misskeyは分散サービス用プロトコルである{0}を実装しているため、Misskeyを使えば、分散型SNS同士のネットワーク=Fediverseと繋がるサービスを簡単に構築可能です。不特定多数の利用者を受け入れるSNSを作ることも、「お一人様」として他のサーバーの投稿を購読する拠点を作ることも、あなたがFediverseへの情報発信を行うための専用サーバーを作ることも可能です。" activityPub: "ActivityPub" _useCases: title: "こんな使い方ができます" single: "情報収集・情報発信のための自分専用のサーバー" official: "会社の広報アカウントを設置する専用のサーバー" community: "同じ関心をもつユーザー向けのコミュニティサーバー" inHouse: "社内SNSとしてのプライベートサーバー" _free: title: "Misskeyはずっと無料でオープン" description: "Misskeyは2014年の開発当初から、そしてこれから未来も、プログラムのソースコードが公開されているオープンソースソフトウェア(OSS)です。また、誰でも無料で・自由にソースコードを利用可能です。MisskeyがOSSであり続けられるのは皆様からの支援のおかげです。" _features: _root: title: "特徴" description: "Misskeyの特徴や機能を紹介。" _note: title: "ノート" description: "ユーザーの投稿は「ノート」と呼ばれます。他のノートを引用したり、画像、動画、音声、その他の任意のファイルを添付できるほか、アンケートも追加可能。" _federation: title: "連合" description: "オープンな分散プロトコルであるActivityPubを実装しているため、他のMisskeyサーバーだけでなく、ActivityPubをサポートする他のソフトウェアともやりとりできます。" _reaction: title: "リアクション" description: "ノートに「リアクション」を付けることで、簡単・気軽に自分のフィーリングを表現して伝えることが出来ます。" _customEmojis: title: "カスタム絵文字" description: "Misskeyの様々な場所で使用できる、サーバーオリジナルの絵文字を作成可能です。" _channel: title: "チャンネル" description: "チャンネルを作成すれば、共通のテーマでサーバー内コミュニティを作成することが可能です。" _antenna: title: "アンテナ" description: "特定のワードが含まれるノートだけを収集するタイムラインを作成可能です。" _drive: title: "ドライブ" description: "アップロードしたファイルを管理するインターフェイスがあります。そのため、お気に入りの画像をフォルダにまとめたり、再度共有することも簡単に行えます。" _2fa: title: "多要素認証" description: "ワンタイムパスワードを使用した多要素認証や、物理的なキーを使用したパスキー認証で、アカウントのセキュリティを高める各種技術をサポート。" _charts: title: "可視化" description: "Misskeyは組み込みのチャートエンジンを備えていて、サーバーの利用状況などが簡単に可視化できます。" _branding: title: "ブランディング" description: "サーバーのロゴ、アイコン、テーマなどをカスタマイズして、簡単にSNSのブランディングを行えます。" _roles: title: "ロール" description: "ロールを使用すると、ユーザーごとに権限を細かくカスタマイズできます。また、コンディショナルロールを使えば、条件に一致するユーザーに自動でロールをアサインすることも可能です。ロールにバッジを設定して、サーバーのマネタイズに役立てることもできます。" _moderation: title: "モデレーション" description: "サーバー運営を助ける、充実のモデレーション機能が標準搭載。WebUIに統合されているため、シームレスに操作可能です。" _privacy: title: "プライバシー" description: "豊富なプライバシー設定で、コンテンツの公開範囲を柔軟にコントロール。" _multiPurpose: title: "ひとりでも、みんなでも" description: "多数の利用者を受け入れるSNSとしての運用はもちろん、個人用サーバーとしての利用もサポート。Fediverseと繋がるための、あなただけの強力な拠点になります。" _monetization: title: "収益化" description: "広告の表示など、サーバーのマネタイズを助ける機能も用意されていて、持続可能な運用を目指せます。" _oss: title: "Mi ❤️ OSS" description: "Misskeyはこれまでもこれからもオープンソースで、誰でも自由に、無料でソースコードを利用可能です。またMisskey Projectは、他のOSSに対して積極的に支援活動を行っています。" _battleTested: title: "信頼性" description: "Misskeyは10年以上にわたって実際の環境で使われており(battle-tested)、高い信頼性があると自負しています。" _featuresServer: _root: title: "サーバーの機能" description: "Misskeyを支えるバックエンド実装の特徴。" _easyInstall: title: "簡単インストール" description: "簡単なコマンドでインストールできるほか、各社提供のホスティングサービスを利用すれば、管理の手間も省けます。" _easySetup: title: "セットアップもカンタン" description: "Misskeyサーバーのセットアップに複雑な設定は不要。ウィザードに従うだけで最適な設定が行われ、すぐに運用を始められます。一方、ニーズに合わせて高度な設定を行うことも可能です。" _api: title: "API" description: "Misskeyの全ての機能はHTTP APIを通じて操作でき、他のアプリケーションとの連携も容易です。さらに、WebhookやWebSocket接続もサポートしているので、リアルタイムにMisskeyからのイベントを受け取ることも可能です。" _relay: title: "リレー対応" description: "Fediverse内のアクティビティを中継するリレーサーバーへの接続をサポートしているので、手動で多数のサーバーと繋げることなく情報収集が可能です。" _nodejs: title: "Node.jsバックエンド" description: "MisskeyはバックエンドにNode.jsを採用しており、高速・軽量に動作します。" _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを採用し、堅牢なデータ管理を実現しています。" _fullTextSearch: title: "全文検索" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにBullMQを採用し、タスクを複数のサーバーで効率的に処理。また、Misskeyネイティブで実装されたインスペクタはコントロールパネルに統合され、外部ツールに頼ることなく管理が可能です。" _cdn: title: "CDN対応" description: "外部CDNによるリソースのキャッシュに対応しています。サーバーへのリクエストを減らすことで、負荷低減・コスト削減が可能です。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)により、タイムラインをRedis上に構築しパフォーマンスを向上させることができます。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)により、リアクション情報をRedis上にキャッシュしパフォーマンスを向上させることができます。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応しており、ユーザーの増加にも対応できます。" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "機械学習" description: "組み込みの機械学習機能を利用して、自動的にセンシティブなメディアのフィルタリングを行うなど、運用の負担を軽減することも可能です。" _sentry: title: "Sentryサポート" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "多言語対応" description: "クライアントを様々な言語で利用可能です。" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を用いたステートレス認証を実装し、よりセキュア・より高速なリクエストの検証を実現します。" _newBackend: title: "より軽量なバックエンド" description: "より高速・軽量に動作可能にするための全く新しいバックエンド実装の開発を進めています。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートし、より軽量なWeb UIを実現します。" _getStarted: title: "Misskeyをはじめる" _find: title: "サーバーを見つける" list: "サーバーリスト" _create: title: "サーバーを作成" guide: "セットアップガイド" _docs: title: "学ぶ" docs: "ドキュメント" _dev: title: "開発に参加する" _donation: title: "ご支援のお願い" description: "Misskeyは非営利なプロジェクトで、少数の有志による開発のため、開発資金は皆様からの寄付に頼っています。Misskeyを気に入ってくださいましたら、今後も開発を続けられるようにぜひ支援をお願いします!" _sponsors: title: "スポンサー" becomeASponsor: "スポンサーになる" _servers: title: "サーバー一覧" description: "Misskeyは単一のサービスではなく、各々がサービスを提供する分散型ネットワークとなっています。Misskeyを利用するには、サービスを提供しているサーバーでアカウントを作成する必要があります。" addYourServer: "あなたのサーバーが表示されませんか?{0}から登録してください!" addYourServerLink: "こちら" disclaimerTitle: "【重要】免責事項" disclaimer: "このサーバー一覧は、Fediverse上で発見されたMisskeyサーバーを自動で掲載するものであり、原則として手動での確認は行っておりません。ここに掲載されているサーバーは、Misskey Projectが確認・検証・承認したものではありません。アクセス先でユーザーに生じたあらゆる損害について、Misskey Projectは一切責任を負いません。" _system: fetchError: "データの読み込みに失敗しました。後でもう一度お試しください。" _statistics: title: "サーバー統計" description: "Misskeyサーバーの統計データをグラフでご紹介。" viewFullStats: "詳しい統計を見る" lang: "プライマリ言語" registerAcceptance: "新規登録受付方式" version: "バージョン" notes: "ノート数" users: "ユーザー数" servers: "サーバー数" _search: title: "絞り込み検索" all: "すべて" query: "キーワードで検索" lang: "言語" orderBy: "並び替え" recomendded: "デフォルト" notesCount: "ノート数" notesPer15Days: "1日あたりのノート数(15日平均)" usersCount: "ユーザー数" _registerAcceptance: title: "新規登録" public: "開放" inviteOnly: "招待のみ" _list: notFound: "指定された条件に合致するサーバーは見つかりませんでした。" showMore: "もっと見る" _view: title: "表示形式" list: "リスト" grid: "グリッド" _docs: title: "ドキュメント" description: "Misskeyはオープンソースの分散型ソーシャルネットワーキングプラットフォームです。Misskeyの上手な使い方から、サーバーの運営者・プログラムの開発者向けの情報まで網羅しています。" indexTitle: "目次ページ" _contribute: editThis: "このページを編集" translateThis: "このページを翻訳" _aboutMisskey: title: "Misskeyについて" description: "Misskeyをはじめて知ったかたや、これから使うかた向け!基本的なしくみや機能を見ていきましょう。" _changelog: title: "リリースノート" description: "Misskeyのバージョンアップ履歴をご覧いただけます。最新のバージョンで何が変わったのかを確認しましょう!" _donate: title: "プロジェクトへの寄付" description: "Misskeyは無料で使えるオープンソースのソフトウェアです。気に入っていただけたら、今後も開発を続けられるようにぜひ寄付をご検討ください。" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _forDevelopers: title: "開発者向け" _prevNext: prev: "前へ" next: "次へ" _toc: title: "このページの内容" toPageTop: "ページ上部に戻る" _steppedGuide: selectCourse: "ガイドを選ぶ" noImageInThisStep: "このステップには画像がありません" aiWellDone: "操作はこれで完了です。お疲れ様でした♪" _blog: title: "ブログ" description: "Misskeyの最新情報を発信しています!(日本語のみ)" back: "戻る" _content: tip: "ヒント" warning: "注意" danger: "警告" preview: "プレビュー" _mk: searchByGoogle: "検索" _ago: future: "未来" justNow: "たった今" secondsAgo: "{n}秒前" minutesAgo: "{n}分前" hoursAgo: "{n}時間前" daysAgo: "{n}日前" weeksAgo: "{n}週間前" monthsAgo: "{n}ヶ月前" yearsAgo: "{n}年前" invalid: "日時の解析に失敗" _timeIn: seconds: "{n}秒後" minutes: "{n}分後" hours: "{n}時間後" days: "{n}日後" weeks: "{n}週間後" months: "{n}ヶ月後" years: "{n}年後" _other: title: "もっと!" description: "Misskeyをもっと楽しめるその他のリソースをご紹介しています。" _brandAssets: title: "アセット集" description: "Misskeyのロゴ、アイコンなどのアセットのコレクションです。一定のライセンスのもとでご自由にお使いいただけます。" license: "アセットは、CC BY-SAのライセンスの下で自由にお使いいただけます🎉" assetsDirectory: "全てのアセットは、{0}で管理されています。" logo: "ロゴ" icon: "アイコン" banner: "バナー" avatarDecorationTemplate: "アバターデコレーション テンプレート" fullColorPng: "フルカラー (PNG)" monoChromeSvg: "単色 (SVG)" _contact: title: "お問い合わせ" description: "Misskey Projectへのお問い合わせはこちらから" form: "こちらのフォームからご回答ください。" formGoogleAccountRequired: "現在、スパム対策のため、お問い合わせの送信にはGoogleアカウントが必要となっております。\nお手数をおかけしますが、ご理解のほどよろしくお願い致します。" formLink: "フォームへ進む" faqTitle: "よくあるお問い合わせ" faqDescription: "お問い合わせを送信する前に、あなたの知りたいことがここにないか確認してください。" ifNothingIsFound: "もしあてはまるものがなかったら…" _links: title: "リンク" _github: title: "GitHub" description: "Misskeyの開発はGitHub上で行われています。機能リクエストやバグ報告などはこちらから行えます。" _crowdin: title: "Crowdin" description: "Misskey本体、およびドキュメントの翻訳はこちらで管理されています。皆さんのご協力をお願いします。" _discord: title: "Discordサーバー" description: "Misskeyに関する質問や会話などをお楽しみいただけます。" _aiChan: title: "藍" description: "Misskeyの看板娘、藍のウェブサイトです。" _tools: title: "ツール集" index: "ツール集 ホーム画面" description: "Misskey向けの便利ツールを公開中!" menuToggle: "メニュー" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _mfmPlayground: title: "MFMお試しコーナー" description: "MFMを自由に練習できます!Misskeyの投稿画面・ノートの画面を再現!" preview: "プレビュー" disclaimer: "ここに表示される通りに描画されるとは限りません。コードのシンタックスハイライトには対応していません。" mfm: "MFM" character: "{0} 文字" domain: "表示を再現するサーバー" noteIt: "ノート" clearEmojiCacheDescription: "絵文字が表示されないとき" clearEmojiCache: "絵文字のキャッシュを削除" _aidConverter: title: "aid/aidxツール" description: "Misskeyの内部で使用されているランダムID生成アルゴリズム「aid」と「aidx」の変換・生成ができます。" aidToDate: "aid/aidx→日付時刻" dateToAid: "日付時刻→aid/aidx" mode: "作成するid" date: "日付時刻" inputByLine: "改行区切りで複数のaid/aidxを変換できます。" _aboutUs: title: "Misskey Projectについて" description: "Misskey Projectについての情報を掲載しています。" _team: title: "開発メンバー" description: "Misskeyの開発に関わっている方を紹介しています。" _core: title: "コア チームメンバー" description: "こちらのコアチームメンバーは、Misskey関連のプロジェクトを積極的にメンテナンスしています。" _coreEmeriti: title: "名誉コアチームメンバー" description: "過去に価値のある貢献をしてくださっていた、元コアチームメンバーの皆さんです。" _contributors: title: "コントリビューター" description: "こちらの皆さんは、Misskeyに特に貢献してくださっています。" seeMore: "すべてのコントリビューター" _orgPartner: title: "企業・団体パートナー" description: "こちらの企業・団体から、金銭的・技術的な観点でMisskeyの開発へご協力いただいております。" _hubTranslators: title: "Misskey Hub ローカライザー" description: "Misskey Hubの翻訳に協力いただいている皆さんです。" _coreTranslators: title: "Misskey ローカライザー" description: "Misskeyの翻訳に協力いただいている皆さんです。" _i18n: _missing: title: "翻訳にご協力ください" description: "このドキュメントはコミュニティによる翻訳です。ドキュメントの翻訳は{link}から行えます。ご協力をお願いします🙏" linkLabel: "Crowdin" _share: title: "Misskeyへノート" chooseServer: "ノートするサーバーを選択してください" addServer: "サーバーを追加" domain: "サーバーのドメイン" compatibleWith: "Misskeyと、一部のMisskeyフォークに対応しています。" recommendedByWebsite: "シェア元Webサイトからのおすすめ" _noteVisibility: public: "パブリック" home: "ホーム" followers: "フォロワー" specified: "指名" localOnly: "連合なし" _shareLinkGenerator: title: "共有ボタンジェネレーター" description: "Misskey Hubの共有ボタン中継サービスを利用して、Misskey用の共有ボタンを作成できます。" body: "本文" bodyWarning: "どのサーバーでも共有できるようにするため、カスタム絵文字は使用できません。" url: "URL" urlCaption: "任意。本文の後ろに挿入されます。" settings: "詳細設定" manualInstance: "おすすめサーバー ドメイン" manualInstanceDescription: "ここに指定したサーバー(ひとつ)をシェアボタン中継ページのトップに表示できます。ご自身のサーバーに誘導する際などにお使いいただけます。" visibility: "公開範囲" recipents: "指名ノートを受け取る人のacct(改行区切り)" resultLink: "リンク生成結果" resultButton: "共有ボタンのサンプル" testLink: "共有リンクを試す" typeSomethingToGetLink: "本文を入力するとリンクが生成されます。" typeSomethingToGetButton: "本文を入力するとボタンが生成されます。" documentationIs: "パラメータの詳細情報など、技術仕様は{here}" here: "こちら" _goToMisskey: title: "Misskey Webに移動" heading: "このページを開きたいサーバーを選択してください" _avatarDecorationPreview: title: "アバターデコレーション プレビュー" description: "アバターデコレーションがきれいに反映できるかをチェックできます。" preview: "プレビュー" settings: "設定" decoration: "デコ #{number}" placeholder: "「追加」から、アバターデコレーションを追加してプレビューできます。" _options: offsetX: "横位置調整" offsetY: "縦位置調整" angle: "角度" flip: "左右反転" overlayTemplate: "テンプレートを重ねる" _placeholder: username: "藍" noteText: "チョコのかかったドーナツを食べました🍩😋" profileDescription: "Misskey常駐AIの藍です!よろしくお願いします♪" _customEmojiPreview: title: "カスタム絵文字 プレビュー" description: "カスタム絵文字の視認性をチェックできます。" preview: "プレビュー" emoji: "絵文字 #{number}" placeholder: "「追加」から、カスタム絵文字を追加してプレビューできます。" limitReactionLength: "リアクションの最大横幅を制限し、縮小して表示する" _options: text: "ノート文面" textDescription: "追加したカスタム絵文字は{emoji_id}で参照できます。" _placeholder: noteText: "カスタム絵文字はこんな感じで表示されます→ :emoji_preview_1:\n文章を書き換えて、使い勝手を試してみてくださいね✨" _identiconGenerator: title: "初期アイコンジェネレーター" description: "Misskeyに登録した際にデフォルトで指定される初期アイコンを生成できます。" userName: "ユーザー名" includeDomain: "サーバーのドメイン名を含む完全なユーザー名を指定してください。" _historicalMaterials: title: "歴史資料館" description: "Misskeyに関する歴史的資料を一挙公開" heroSubtitle: "Misskey 10周年記念企画" heroDescription: "Misskeyは2014年に掲示板サービスとして生まれました。それから10年経ち、今ではたくさんの方々に利用していただけるプラットフォームになりました。\nここではMisskeyに関する歴史的資料を一挙公開します!" submissionTitle: "古いMisskeyの写真をお持ちですか?" submissionDescription: "昔のMisskeyにまつわる資料をお持ちの方は、ぜひ当館にお寄せください。\nGitHubを利用できる方は{gh_issue}に、利用できない方は {'@'}syuilo{'@'}misskey.io にお送りください。" _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にお手持ちの画像を当てはめて見栄えをチェックできます。" name: "サーバー名" serverDescription: "説明文" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されている場合は、背景画像の方を優先して表示します。画像は中心基準で16:9に収まる最大領域のみが表示されます。" _api: _permissions: title: "権限" description: "説明" _types: "read:account": "アカウントの情報を見る" "write:account": "アカウントの情報を変更する" "read:blocks": "ブロックを見る" "write:blocks": "ブロックを操作する" "read:drive": "ドライブを見る" "write:drive": "ドライブを操作する" "read:favorites": "お気に入りを見る" "write:favorites": "お気に入りを操作する" "read:following": "フォローの情報を見る" "write:following": "フォロー・フォロー解除する" "read:messaging": "チャットを見る" "write:messaging": "チャットを操作する" "read:mutes": "ミュートを見る" "write:mutes": "ミュートを操作する" "write:notes": "ノートを作成・削除する" "read:notifications": "通知を見る" "write:notifications": "通知を操作する" "read:reactions": "リアクションを見る" "write:reactions": "リアクションを操作する" "write:votes": "投票する" "read:pages": "ページを見る" "write:pages": "ページを操作する" "read:page-likes": "ページのいいねを見る" "write:page-likes": "ページのいいねを操作する" "read:user-groups": "ユーザーグループを見る" "write:user-groups": "ユーザーグループを操作する" "read:channels": "チャンネルを見る" "write:channels": "チャンネルを操作する" "read:gallery": "ギャラリーを見る" "write:gallery": "ギャラリーを操作する" "read:gallery-likes": "ギャラリーのいいねを見る" "write:gallery-likes": "ギャラリーのいいねを操作する" "read:flash": "Playを見る" "write:flash": "Playを操作する" "read:flash-likes": "Playのいいねを見る" "write:flash-likes": "Playのいいねを操作する" "read:admin:abuse-user-reports": "ユーザーからの通報を見る" "write:admin:delete-account": "ユーザーアカウントを削除する" "write:admin:delete-all-files-of-a-user": "ユーザーのすべてのファイルを削除する" "read:admin:index-stats": "データベースインデックスに関する情報を見る" "read:admin:table-stats": "データベーステーブルに関する情報を見る" "read:admin:user-ips": "ユーザーのIPアドレスを見る" "read:admin:meta": "インスタンスのメタデータを見る" "write:admin:reset-password": "ユーザーのパスワードをリセットする" "write:admin:resolve-abuse-user-report": "ユーザーからの通報を解決する" "write:admin:send-email": "メールを送る" "read:admin:server-info": "サーバーの情報を見る" "read:admin:show-moderation-log": "モデレーションログを見る" "read:admin:show-user": "ユーザーのプライベートな情報を見る" "write:admin:suspend-user": "ユーザーを凍結する" "write:admin:unset-user-avatar": "ユーザーのアバターを削除する" "write:admin:unset-user-banner": "ユーザーのバーナーを削除する" "write:admin:unsuspend-user": "ユーザーの凍結を解除する" "write:admin:meta": "インスタンスのメタデータを操作する" "write:admin:user-note": "モデレーションノートを操作する" "write:admin:roles": "ロールを操作する" "read:admin:roles": "ロールを見る" "write:admin:relays": "リレーを操作する" "read:admin:relays": "リレーを見る" "write:admin:invite-codes": "招待コードを操作する" "read:admin:invite-codes": "招待コードを見る" "write:admin:announcements": "お知らせを操作する" "read:admin:announcements": "お知らせを見る" "write:admin:avatar-decorations": "アバターデコレーションを操作する" "read:admin:avatar-decorations": "アバターデコレーションを見る" "write:admin:federation": "連合に関する情報を操作する" "write:admin:account": "ユーザーアカウントを操作する" "read:admin:account": "ユーザーに関する情報を見る" "write:admin:emoji": "絵文字を操作する" "read:admin:emoji": "絵文字を見る" "write:admin:queue": "ジョブキューを操作する" "read:admin:queue": "ジョブキューに関する情報を見る" "write:admin:promo": "プロモーションノートを操作する" "write:admin:drive": "ユーザーのドライブを操作する" "read:admin:drive": "ユーザーのドライブの関する情報を見る" "read:admin:stream": "管理者用のWebsocket APIを使う" "write:admin:ad": "広告を操作する" "read:admin:ad": "広告を見る" "write:invite-codes": "招待コードを作成する" "read:invite-codes": "招待コードを取得する" "write:clip-favorite": "クリップのいいねを操作する" "read:clip-favorite": "クリップのいいねを見る" "read:federation": "連合に関する情報を取得する" "write:report-abuse": "違反を報告する" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/ja-KS.yml ================================================ noScript: "いまJavascriptが使われへんくなってるみたいやねんけど、このサイト見よう思ったらJavascriptが要るから有効にしてな。" learnMore: "よう見せて" loading: "読み込んどるで…" clickToExpand: "(押して開ける)" copy: "コピー" share: "共有する" note: "ノート" other: "ほか" add: "追加" generate: "つくる" download: "落とす" browse: "参照" settings: "設定" goToLegacyHub: "前のMisskey Hub" contactUs: "お問い合わせ" detail: "よう見せて" lastUpdate: "最終更新" empty: "中身がなんも無いわ" threeDimensionModel: "3Dモデル" clickToShow: "クリックして表示" preview: "プレビュー" scrollable: "スクロールできるで" _error: notFound: "ページ食べた" notFoundDesc: "あんたが探してたページはワテが食べた。嘘やと思うんやったらURL確認してみ。" generalError: "なんかあかんわ" generalErrorDesc: "たまたまこの画面になったんやったら、このことを開発者に教えたげて。おおきに!" reportProblem: "問題を報告する" goToTop: "トップページにもどる" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Misskeyプロジェクト 公式サイト" defaultTitleTagline: "ノートでひろがるネットワーク" defaultDescription: "【ノートでひろがるネットワーク】分散型SNS Misskeyの公式サイトやで。Misskeyのはじめかたとかサーバー一覧とか、あんたがMisskey始めんのにバッチグーなもんばっかり置いてるさかい、見ていってな~" _nav: servers: "サーバー" docs: "ドキュメント" blog: "ブログ" other: "もっと!" switchLang: "言語の設定" _landing: _hero: description: "Misskey(ミスキー)はオープンソースの分散型SNSを作れるソフトやで。なんかすごそうやろ?" gettingStarted: "はじめる" _keyFeatures: _open: title: "あけあけ" description: "Misskeyは中身のコードが公開されてるから、誰でも自由にタダでMisskeyを使ったサービス(Misskeyサーバー)を作って運営できるで。" _federated: title: "分散" description: "Misskeyは分散型のプロトコルがついとるから、よそのサーバーのコミュニティ同士がつながれるんやで。" _powerful: title: "なんでもできる" description: "Misskeyは他のソフトにはないような機能がようさんあるから、こまごましたカスタマイズもお手のもんや。" _decenterized: title: "Fediverseに繋がるための、強力なプラットフォームやで" description: "Misskeyは分散サービスに使われる{0}っていう仕組みがついてるから、Misskeyを使えば分散型SNS同士のネットワークとつながるサービスを簡単に作れるっちゅうわけや。色んな人に来てもらってワイワイするようなSNSを作れるし、「お一人様」としてあんたがほかのサーバーの人らを見るための場所を作ることもできるで。あんたが作ったサービスやから、他のプラットフォームに依存して情報発信しなくても良くなるっていうのがウリや。" activityPub: "ActivityPub" _features: _root: title: "自慢の機能" description: "Misskeyには、いろんな機能がついとるで。例えばこんなん!" _note: title: "ノート" description: "Misskeyでは、ユーザーの投稿は「ノート」って言うねん。他のノートを引用したり、画像、動画、オーディオ、なんでも添付できるで。" _federation: title: "連合" description: "オープンな分散プロトコルのActivityPubがついてるから、他のMisskeyサーバーとだけじゃなくて、ActivityPubをサポートする他のソフトともやりとりできるようになっとんねん。" _reaction: title: "リアクション" description: "ノートには「リアクション」を付けれて、思ってることをパパっと伝えられるんやで。" _customEmojis: title: "カスタム絵文字" description: "Misskeyの色んな場所で使える、サーバーオリジナルの絵文字を作れるで。" _channel: title: "チャンネル" description: "チャンネルを作ると、何かしらのテーマでサーバー内にコミュニティを作ることができるで。" _antenna: title: "アンテナ" description: "キャッチしたい言葉を設定しとけば、Misskeyがその言葉が含まれるノートをかってに集めてくれる機能もあるで。" _drive: title: "ドライブ" description: "アップロードしたファイルがバーッって並ぶ画面があるから、好きな写真をフォルダにガー入れたり、もっかいノートしたいときもシュッってできるようになってるで。" _2fa: title: "多要素認証" description: "ワンタイムパスワードを使った多要素認証とか、物理的なキーを使用したパスキー認証にも対応してるから、アカウントのセキュリティを上げれるっちゅうわけや。" _charts: title: "可視化" description: "Misskeyにはチャートエンジンが入ってて、サーバーがどう使われとるかとかがパッとわかるようになっとるで。" _branding: title: "ブランディング" description: "サーバーのロゴ、アイコン、テーマとかはいじれるようになってるから、ブランディングもバッチリや。" _roles: title: "ロール" description: "ロールを使うと、ユーザーごとの権限を細かくいじれるで。あとは、コンディショナルロールっていう機能を使えば、条件に合うユーザーに自動でロールをつけるなんてこともできるんや。例えば、ロールにバッジを設定して、サーバーのマネタイズに使うなんてこともできるなあ。" _moderation: title: "モデレーション" description: "サーバー運営を助けてくれる、モデレーション機能がついてくるで。" _privacy: title: "プライバシー" description: "プライバシー設定もバッチリやから、コンテンツの公開範囲をしっかり決めれるで。" _multiPurpose: title: "ひとりでも、みんなでも" description: "色んな人が来るようなSNSとしての使うこともできるし、個人用サーバーとしても使えるようになってるんやで。いわばFediverseと繋がるための、あんただけの拠点やな。" _monetization: title: "収益化" description: "広告の表示とかのサーバーのマネタイズを助けてくれる機能もあるから、持続可能な運用を目指せるで。" _oss: title: "Mi ❤️ OSS" description: "Misskeyはこれまでもこれからもオープンソースや。誰でも自由に無料でソースコードを使えるで。Misskey Projectは、他のOSSに対しても支援してるんやで。" _battleTested: title: "信頼性" description: "Misskeyは10年以上実際の運用で使われた実績があるから、信頼性もバッチリや。" _featuresServer: _root: title: "サーバーの機能" description: "Misskeyを支えるバックエンド実装の特徴。" _easyInstall: title: "簡単インストール" description: "コマンド一つでインストールできるし、会社さんが出してるホスティングサービスを使えば、管理の手間も省けるで。" _easySetup: title: "セットアップもカンタン" description: "Misskeyサーバーのを立てるのに複雑な設定は要らんで。でも、ニーズに合わせて高度な設定もできるようになってるで。" _api: title: "API" description: "Misskeyの機能はHTTP APIを通じて操作できて、他のアプリとの連携も簡単やで。あと、WebhookとかWebSocket接続もサポートしてるから、リアルタイムにMisskeyからのイベントを受け取ることもできるようになってるで。" _relay: title: "リレー対応" description: "Fediverse内のアクティビティを中継するリレーサーバーにもつなげられるようになってるから、自分でいろんなサーバーに繋がりに行かんくても良くなってるで。" _nodejs: title: "Node.jsバックエンド" description: "MisskeyのバックエンドはNode.jsを使ってるから、高速・軽量に動くで。" _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを使ってるから、ガチガチにデータ管理できるんやで。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにはBullMQを採用しとって、重いタスクもたくさんのサーバーで効率的にできるで。ジョブキューの管理ツールもMisskeyに内蔵してるから、他のツールに頼らなくても良くなってるんやで。" _cdn: title: "CDN対応" description: "外部のCDNでリソースをキャッシュするのにも対応してるから、サーバーへのリクエストを減らして、負荷を低減してコストも抑えられるんやで。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)がついてるから、タイムラインをRedisで作るようにしてパフォーマンスを上げられるようになってるで。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)を使えば、リアクション情報をRedis上に置いておいてパフォーマンスを上げられるようになってるんやで。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応してるから、ユーザーの増加でも大丈夫や。" _ml: title: "機械学習" description: "内蔵してある機械学習機能を使って、自動的にセンシティブなメディアのフィルタリングをしたりできるから、運営の手間も省けるで。" _sentry: title: "Sentryサポート" description: "Sentryでサーバーのメトリクスを収集できるから、サーバーリソースの監視、ヘルスチェック、メンテナンスの役に立つで。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIはキレイな独自のデザインシステムで作られてるから、どんなデバイスで見てもキレイに見えるようになってるで。" _theme: title: "テーマ" description: "好きな見た目でMisskeyを使えるで。もちろんダークモードもあるし、頑張ればヒョウ柄っぽいのも作れんで(あんまヒョウ柄見たころないけどなぁ)。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使えるで。太字にする・リンクを挿入する・動きを付けるとかのテキストの装飾がシンプルな構文で表現できるようになってるで。" _widgets: title: "ウィジェット" description: "いろんなウィジェットを画面上において、好きにカスタマイズできるで。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをもっと自分好みにできるで。" _embed: title: "他サイトへの埋め込み" description: "ノート、チャンネルなどを外部のサイトに埋め込んで表示できるようになってるで。" _realtimeMode: title: "リアルタイムモード" description: "" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応してるから、リアルタイムでサーバーからの通知を受け取れるようになってるで。" _multiAccounts: title: "マルチアカウント対応" description: "何個もアカウント持ってても簡単に切り替えられるで。" _plugin: title: "プラグイン" description: "セキュアなAiScriptで書かれたプラグインをインストールして、クライアントの機能を拡張できるようになってるで。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとにクライアント設定を上書きしたり、デバイス間で設定を共有・同期できるようになってるで。設定情報は自動バックアップできるで。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠しとるから、デバイス上でネイティブアプリみたいに使えるで。" _i18n: title: "多言語対応" description: "クライアントをいろんな言語で使えるで。もちろん関西弁も!" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を使ったステートレスな認証を作って、もっとセキュアで高速なリクエストの検証ができるようにする予定やで。" _newBackend: title: "より軽量なバックエンド" description: "もっと高速・軽量に動かせるようにするための新しいバックエンド実装を作ってるで。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートして、軽量なクライアントにできるようにする予定やで。" _getStarted: title: "Misskey、やってみーひん?" _find: title: "サーバー見つける" list: "サーバー一覧" _create: title: "サーバーをつくる" guide: "セットアップガイド" _docs: title: "もっとよう知る" docs: "ドキュメントを見る" _donation: title: "寄付してちょうだい" description: "Misskeyは非営利やから、開発資金はみんなからの寄付で成り立っとんねん。もしMisskeyええやんってなったら、今後も開発を続けられるように支援してくれると嬉しいなあ。" _sponsors: title: "スポンサー" becomeASponsor: "スポンサーになる" _servers: title: "サーバー一覧" description: "Misskeyは単一のサービスじゃなくて、みんながそれぞれサービスを提供する分散型ネットワークになってるから、Misskeyを使いたかったら、サービスを提供してるサーバーでアカウントを作らなあかんねん。" addYourServer: "あんたのサーバーがここに出てこんなら、{0}から登録してな。" addYourServerLink: "ここ" disclaimerTitle: "免責事項" disclaimer: "このサーバー一覧は、Fediverseで見つけたMisskeyサーバーを自動で乗っけてるだけで、普段からどんなサーバーがあるかとかの確認はやってないねん。ここに載ってるサーバーは、Misskey Projectがたしかめたり、承認したりしたものじゃないから気ぃつけてな。アクセス先であんたになんかあっても、責任は取らへんで。" _system: fetchError: "ごめん、今データほかしてもうたからちょっと後でもっかい見に来て。" _statistics: title: "サーバー統計" description: "Misskeyサーバーの統計データをグラフで見せたるわ。" viewFullStats: "詳しい統計を見る" lang: "プライマリ言語" registerAcceptance: "新規登録受付方式" version: "バージョン" notes: "ノート数" users: "ユーザー数" servers: "サーバー数" _search: title: "絞り込み検索" all: "ぜんぶ" query: "言葉で検索" lang: "言語" orderBy: "並び替え" recomendded: "デフォルト" notesCount: "ノート数" notesPer15Days: "1日あたりのノート数(15日平均)" usersCount: "ユーザー数" _registerAcceptance: title: "新規登録" public: "開放" inviteOnly: "招待のみ" _list: notFound: "言われた条件に合うサーバーは見つからんかったわ。ごめんな…" showMore: "もっと見る" _view: title: "表示形式" list: "リスト" grid: "グリッド" _docs: title: "ドキュメント" description: "Misskeyはオープンソースの分散型ソーシャルネットワーキングプラットフォームやで。Misskeyの上手な使い方から、サーバーの運営者・プログラムの開発者向けの情報まで何でも載ってるで!" indexTitle: "目次ページ" _contribute: editThis: "このページを編集" translateThis: "このページを翻訳" _aboutMisskey: title: "Misskeyについて" description: "Misskey知らんかった人とか、今から使いたいな思うてる人はここ!基本的な知識とか使い方はバッチリ教えんで。" _changelog: title: "リリースノート" description: "Misskeyのバージョンアップ履歴を見れるようになってるから、アプデ入ったら確認しに来てな!" _donate: title: "プロジェクトへの寄付" description: "Misskeyは無料で使えるオープンソースソフトやから、開発資金はみんなからの寄付で成り立っとんねん。Misskeyええやんってなったら、今後も開発を続けられるように支援してな。" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _forDevelopers: title: "開発者向け" _prevNext: prev: "前へ" next: "次へ" _toc: title: "このページの中身" toPageTop: "ページの上まで戻る" _steppedGuide: selectCourse: "ガイドを選ぶ" noImageInThisStep: "このステップに画像はないで" aiWellDone: "操作はこれで完了です。お疲れ様でした♪お好み焼きでも食べて休憩しましょう😋" _blog: title: "ブログ" description: "Misskey開発本部から、Misskeyに関する最新情報とかうんちくとかをたまーに流すで!(関西弁では提供してないで)" back: "戻る" _content: tip: "ヒント" warning: "注意" danger: "警告" preview: "プレビュー" _other: title: "もっと!" description: "Misskeyをもっと楽しめるいろんなもんが置いてあるで。" _brandAssets: title: "アセット集" description: "Misskeyのロゴ、アイコンとかのアセットっちゅうやつを置いてあるで。ライセンスさえ守ってくれたらなんにでも使ってええよ!" license: "アセットは、CC BY-SAのライセンスの下でなんにでも使ってええことになってるで🎉" assetsDirectory: "アセットは、ぜんぶ{0}で管理してあんで。" logo: "ロゴ" icon: "アイコン" banner: "バナー" avatarDecorationTemplate: "アバターデコレーション テンプレート" fullColorPng: "フルカラー (PNG)" monoChromeSvg: "単色 (SVG)" _contact: title: "お問い合わせ" description: "Misskey Projectになんか言いたいときはここから" form: "このフォームから回答してな" formGoogleAccountRequired: "今、スパムっちゅう厄介なのがおって、問い合わせを送ってもらうためにGoogleアカウントが要ることになっとんねん。\nめんどくさいかもしれんけど、よろしゅうおねがいします~" formLink: "フォームへ進む" faqTitle: "よくあるお問い合わせ" faqDescription: "なんか送る前に、ここに知りたいことがないか確認してみてな。" ifNothingIsFound: "見つからんかったら…" _links: title: "リンク" _github: title: "GitHub" description: "Misskeyの開発はGitHub上でやってんで。機能リクエストとかバグ報告はここに投げてや。" _crowdin: title: "Crowdin" description: "Misskey本体とドキュメントの翻訳はここでやってもらってるで。あんたも興味あったらやってみてな。" _discord: title: "Discordサーバー" description: "Misskeyに関する色んな話はここでやってるで。" _aiChan: title: "藍" description: "Misskeyの看板娘、藍ちゃんのサイトはこっち。" _tools: title: "ツール集" index: "ツール集 ホーム画面" description: "Misskey向けの便利ツールをようさん公開中!" menuToggle: "メニュー" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _mfmPlayground: title: "MFMお試しコーナー" description: "MFMを自由に練習できるで!Misskeyの投稿画面・ノートの画面を再現!" preview: "プレビュー" disclaimer: "なるべく近づけてあるけど、この通りになるとは限らんから注意してな。コードのシンタックスハイライトには対応してないで。" mfm: "MFM" character: "{0} 文字" domain: "表示を再現するサーバー" noteIt: "ノート" clearEmojiCacheDescription: "絵文字が表示されないとき" clearEmojiCache: "絵文字のキャッシュを削除" _aidConverter: title: "aid/aidxツール" description: "Misskeyの内部で使用されているランダムID生成アルゴリズム「aid」と「aidx」の変換・生成ができるで。" aidToDate: "aid/aidx→日付時刻" dateToAid: "日付時刻→aid/aidx" mode: "作成するid" date: "日付時刻" inputByLine: "改行区切りでaid/aidxをたくさん変換できるで。" _aboutUs: title: "Misskey Projectについて" description: "Misskey Projectについての色々書いてあるで。" _team: title: "開発メンバー" description: "Misskeyの開発に関わっている人を紹介してるで。" _core: title: "コア チームメンバー" description: "ここにいるコアチームメンバーはんらは、Misskey関連のプロジェクトを積極的に見てくれてんで。" _coreEmeriti: title: "名誉コアチームメンバー" description: "前までコアチームメンバーやってくれてたすごい人らやで。今もちょくちょく顔出してくれてる人もおるで!" _contributors: title: "コントリビューター" description: "ここにのってる人らは、Misskeyに特に貢献してくれてはるで。ありがとう!" seeMore: "すべてのコントリビューター" _orgPartner: title: "企業・団体パートナー" description: "こちらの企業・団体から、金銭的・技術的な観点でMisskeyの開発へご協力いただいております。" _hubTranslators: title: "Misskey Hub ローカライザー" description: "Misskey Hubの翻訳をやってくれてる人らやで。" _coreTranslators: title: "Misskey ローカライザー" description: "Misskeyの翻訳をやってくれてる人らやで。" _i18n: _missing: title: "関西弁のドキュメントは作ってないで" description: "さすがに関西弁のドキュメントを用意するのは大変やから、標準語の内容と同じにしてあんで。ごめんな。" linkLabel: "Crowdin" _share: title: "Misskeyへノート" chooseServer: "ノートするサーバーを選んでな" addServer: "サーバーをふやす" domain: "サーバーのドメイン" compatibleWith: "Misskeyと、Misskeyのそっくりさんで使えるで。" recommendedByWebsite: "シェア元Webサイトからのおすすめ" _noteVisibility: public: "パブリック" home: "ホーム" followers: "フォロワー" specified: "指名" localOnly: "連合なし" _shareLinkGenerator: title: "共有ボタンジェネレーター" description: "Misskey Hubの共有ボタン中継サービスを使って、Misskey用の共有ボタンを作れるで。" body: "本文" bodyWarning: "どのサーバーでもちゃんと見れるようにせんとあかんから、カスタム絵文字は使えんようにしてあんで。" url: "URL" urlCaption: "欲しかったらつけて。本文の後ろに入るようになってるわ。" settings: "詳細設定" manualInstance: "おすすめサーバー ドメイン" manualInstanceDescription: "ここに指定したサーバー(ひとつ)をシェアボタン中継ページのいっちゃん上に置けるようになってんで。あんたのサーバーに誘導するときとかに使ってや。" visibility: "公開範囲" recipents: "指名ノートを受け取る人のacct(改行区切り)" resultLink: "リンク生成結果" resultButton: "共有ボタンのサンプル" testLink: "共有リンクを試す" typeSomethingToGetLink: "本文を打ったらリンクが出てくんで。" typeSomethingToGetButton: "本文を入力するとボタンが生成されます。" documentationIs: "パラメータとか、詳しい技術的な話は{here}見てな!" here: "ここ" _goToMisskey: title: "Misskey Webに移動" heading: "このページを開きたいサーバーを選んでな" _avatarDecorationPreview: title: "アバターデコレーション プレビュー" description: "アバターデコレーションがきれいに使えるかチェックできるで。" preview: "プレビュー" settings: "設定" decoration: "デコ #{number}" placeholder: "「追加」から、アバターデコレーションを追加してプレビューしてな。" _options: offsetX: "横位置調整" offsetY: "縦位置調整" angle: "角度" flip: "左右反転" overlayTemplate: "テンプレートを重ねる" _placeholder: username: "藍" noteText: "お好み焼きとたこ焼きを食べました🐙😋" profileDescription: "Misskey常駐AIの藍です!よろしくお願いします♪" _customEmojiPreview: title: "カスタム絵文字 プレビュー" description: "カスタム絵文字がちゃんとつかえるかチェックできるで。" preview: "プレビュー" emoji: "絵文字 #{number}" placeholder: "「追加」から、カスタム絵文字を追加してプレビューしてな。" _options: text: "ノート文面" textDescription: "追加したカスタム絵文字は{emoji_id}で使えるで。" _placeholder: noteText: "カスタム絵文字はこんな感じで表示されます→ :emoji_preview_1:\n文章を書き換えて、使い勝手を試してみてくださいね✨" _identiconGenerator: title: "初期アイコンジェネレーター" description: "Misskeyに登録したときにはじめっからついてある初期アイコンを作れるで。" userName: "ユーザー名" includeDomain: "サーバーのドメイン名を含む完全なユーザー名を入れてな。" _historicalMaterials: title: "歴史資料館" description: "Misskeyの昔の写真を見せたるわ" heroSubtitle: "Misskey 10周年記念企画" heroDescription: "Misskeyってな、実は2014年に掲示板サービスとして生まれたんや。それから10年経って、今ではめっちゃ色んな人がMisskeyを使ってくれてるんやで。\n今日は特別にMisskeyに関する歴史的資料を見せたげるわ!" submissionTitle: "あんた、古いMisskeyの写真持ってんの?" submissionDescription: "昔のMisskeyの資料を持ってるんやったら、ぜひうちに寄贈してな。\nGitHubあるなら{gh_issue}に、ないなら {'@'}syuilo{'@'}misskey.io に送ってな。" _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にあんたの持ってる画像を当てはめて見栄えをチェックできるで。" name: "サーバー名" serverDescription: "説明文" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されているときは、背景画像の方を優先して表示するようになってるで。画像は真ん中が基準で16:9に収まる最大領域のみが見えるようになってるで。" _api: _permissions: title: "権限" description: "説明" _types: "read:account": "アカウントの情報を見る" "write:account": "アカウントの情報を変更する" "read:blocks": "ブロックを見る" "write:blocks": "ブロックを操作する" "read:drive": "ドライブを見る" "write:drive": "ドライブを操作する" "read:favorites": "お気に入りを見る" "write:favorites": "お気に入りを操作する" "read:following": "フォローの情報を見る" "write:following": "フォロー・フォロー解除する" "read:messaging": "チャットを見る" "write:messaging": "チャットを操作する" "read:mutes": "ミュートを見る" "write:mutes": "ミュートを操作する" "write:notes": "ノートを作成・削除する" "read:notifications": "通知を見る" "write:notifications": "通知を操作する" "read:reactions": "リアクションを見る" "write:reactions": "リアクションを操作する" "write:votes": "投票する" "read:pages": "ページを見る" "write:pages": "ページを操作する" "read:page-likes": "ページのいいねを見る" "write:page-likes": "ページのいいねを操作する" "read:user-groups": "ユーザーグループを見る" "write:user-groups": "ユーザーグループを操作する" "read:channels": "チャンネルを見る" "write:channels": "チャンネルを操作する" "read:gallery": "ギャラリーを見る" "write:gallery": "ギャラリーを操作する" "read:gallery-likes": "ギャラリーのいいねを見る" "write:gallery-likes": "ギャラリーのいいねを操作する" "read:flash": "Playを見る" "write:flash": "Playを操作する" "read:flash-likes": "Playのいいねを見る" "write:flash-likes": "Playのいいねを操作する" "read:admin:abuse-user-reports": "ユーザーからの通報を見る" "write:admin:delete-account": "ユーザーアカウントを削除する" "write:admin:delete-all-files-of-a-user": "ユーザーのすべてのファイルを削除する" "read:admin:index-stats": "データベースインデックスに関する情報を見る" "read:admin:table-stats": "データベーステーブルに関する情報を見る" "read:admin:user-ips": "ユーザーのIPアドレスを見る" "read:admin:meta": "インスタンスのメタデータを見る" "write:admin:reset-password": "ユーザーのパスワードをリセットする" "write:admin:resolve-abuse-user-report": "ユーザーからの通報を解決する" "write:admin:send-email": "メールを送る" "read:admin:server-info": "サーバーの情報を見る" "read:admin:show-moderation-log": "モデレーションログを見る" "read:admin:show-user": "ユーザーのプライベートな情報を見る" "read:admin:show-users": "ユーザーのプライベートな情報を見る" "write:admin:suspend-user": "ユーザーを凍結する" "write:admin:unset-user-avatar": "ユーザーのアバターを削除する" "write:admin:unset-user-banner": "ユーザーのバーナーを削除する" "write:admin:unsuspend-user": "ユーザーの凍結を解除する" "write:admin:meta": "インスタンスのメタデータを操作する" "write:admin:user-note": "モデレーションノートを操作する" "write:admin:roles": "ロールを操作する" "read:admin:roles": "ロールを見る" "write:admin:relays": "リレーを操作する" "read:admin:relays": "リレーを見る" "write:admin:invite-codes": "招待コードを操作する" "read:admin:invite-codes": "招待コードを見る" "write:admin:announcements": "お知らせを操作する" "read:admin:announcements": "お知らせを見る" "write:admin:avatar-decorations": "アバターデコレーションを操作する" "read:admin:avatar-decorations": "アバターデコレーションを見る" "write:admin:federation": "連合に関する情報を操作する" "write:admin:account": "ユーザーアカウントを操作する" "read:admin:account": "ユーザーに関する情報を見る" "write:admin:emoji": "絵文字を操作する" "read:admin:emoji": "絵文字を見る" "write:admin:queue": "ジョブキューを操作する" "read:admin:queue": "ジョブキューに関する情報を見る" "write:admin:promo": "プロモーションノートを操作する" "write:admin:drive": "ユーザーのドライブを操作する" "read:admin:drive": "ユーザーのドライブの関する情報を見る" "read:admin:stream": "管理者用のWebsocket APIを使う" "write:admin:ad": "広告を操作する" "read:admin:ad": "広告を見る" "write:invite-codes": "招待コードを作成する" "read:invite-codes": "招待コードを取得する" "write:clip-favorite": "クリップのいいねを操作する" "read:clip-favorite": "クリップのいいねを見る" "read:federation": "連合に関する情報を取得する" "write:report-abuse": "違反を報告する" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/ko-KR.yml ================================================ noScript: "JavaScript가 비활성화 상태입니다. 페이지를 표시하시려면 JavaScript를 활성화해야 합니다." learnMore: "자세히 보기" loading: "불러오는 중..." clickToExpand: "(클릭하여 펼치기)" copy: "복사하기" share: "공유" note: "노트" other: "기타" add: "추가" generate: "생성" download: "다운로드" browse: "참고자료" settings: "설정" goToLegacyHub: "이전 Misskey Hub" contactUs: "문의" detail: "자세히" lastUpdate: "마지막 수정" empty: "내용이 없습니다" threeDimensionModel: "3D 모델" clickToShow: "클릭하여 표시" preview: "미리보기" scrollable: "스크롤 할 수 있습니다." serverListUnderMaintenance: "서버 목록은 현재 점검 중입니다." _error: notFound: "페이지를 찾을 수 없습니다" notFoundDesc: "요청하신 페이지를 찾을 수 없습니다. URL을 확인하여 주십시오." generalError: "오류가 발생했습니다" generalErrorDesc: "의도한 동작이 아니라면 아래 버튼을 눌러 오류를 제보해주세요." reportProblem: "오류 제보하기" goToTop: "상위 페이지로 이동" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Misskey 프로젝트 공식 홈페이지" defaultTitleTagline: "노트로 펼쳐지는 네트워크" defaultDescription: "[노트로 펼쳐지는 네트워크] 분산형 소셜 네트워크 Misskey 공식 사이트. Misskey를 시작하는 방법이나 서버 목록 등, Misskey에 대한 정보가 한 곳에!" _nav: servers: "서버" docs: "문서" news: "뉴스" other: "더보기" switchLang: "언어 설정" _landing: _hero: description: "Misskey는 오픈 소스 분산형 소셜 네트워크 플랫폼 입니다." gettingStarted: "시작하기" _keyFeatures: _open: title: "열기" description: "Misskey는 오픈소스 소프트웨어로 누구나 자유롭게 Misskey를 사용할 수 있습니다." _federated: title: "분산" description: "Misskey는 분산형 프로토콜을 채용하고 있으므로, 다른 서버의 커뮤니티에 연결할 수 있습니다." _powerful: title: "파워풀" description: "Misskey는 프로덕션 레벨의 여러 기능을 갖춰 세세한 커스터마이징도 가능합니다. 인원이 많거나 적어도 최적의 솔루션으로 됩니다." _introduction: title: "Misskey로 만들기" description: "Misskey를 사용하면 번거로운 실장을 할 필요 없이 간단하게 독자의 플랫폼을 구축할 수 있습니다. 당신이 Misskey를 사용해 만든 서비스는 당신만의 것이므로, 정보 발신의 기존 플랫폼으로의 의존 위험도 없습니다." tip: "Misskey는 'Web 서비스 그 자체'가 아닌 마이크로 블로그 서비스를 만들기 위한 '기반이 되는 소프트웨어'입니다. Web 사이트를 만드려는데 WordPress와 같은 소프트웨어를 사용하는 것과 같습니다." _decenterized: title: "Misskey는 {0}" description: "Misskey는 오픈 소스 프로젝트로 누구나 자유롭게 Misskey를 사용한 서버를 만들 수 있고, 이미 다양한 서버에서 Misskey를 사용하고 있어요. 특히, Misskey는 {0}이라고 불리는 분산형 통신 프로토콜을 사용하고 있어서 어떤 서버를 골라도 다른 서버에 있는 유저와 소통을 할 수 있어요. 이것이 분산형이라고 불리는 이유이며, 다른 플랫폼과는 통신할 수 없는 Twitter 등의 서비스와는 근본적으로 다르답니다. 그렇기 때문에 서버에 따라 주제나 테마, 유저 층, 언어 등이 다르니 당신에게 딱 맞는 서버를 찾아보는 것이 좋아요. (물론, 본인이 직접 서버를 만드는 것도 괜찮아요.)" activityPub: "ActivityPub" _useCases: title: "이렇게 사용할 수 있습니다" single: "정보 수집·정보 발신을 위한 자신의 전용 서버" official: "회사의 광고 계정을 설치하는 전용 서버" community: "같은 흥미를 가진 유저 대상 커뮤니티 서버" inHouse: "사내 SNS로의 비공개 서버" _free: title: "Misskey는 계속 무료로 오픈" description: "Misskey는 2014년의 개발 초창기부터, 그리고 지금부터 미래에도, 프로그램의 소스 코드가 공개된 오픈 소스 소프트웨어(OSS)입니다. 또 누구나 무료로 자유롭게 소스 코드를 이용할 수 있습니다. Misskey가 OSS이고 계속할 수 있는 것은 여러분으로부터의 지원 덕분입니다." _features: _root: title: "주요 기능" description: "Misskey는 일반적인 것들부터 특별한 것들까지 다양한 기능을 가지고 있습니다. 그 중 일부를 소개합니다." _note: title: "노트" description: "Misskey에서는 유저의 글을 \"노트\"라고 부릅니다. 다른 노트를 인용하거나 사진, 동영상, 오디오 등과 같은 파일을 첨부할 수도 있습니다." _federation: title: "연합" description: "오픈형 분산 프로토콜인 ActivityPub을 탑재하고 있기 때문에, Misskey 서버 뿐만 아니라 ActivityPub를 지원하는 다른 소프트웨어와도 소통이 가능합니다." _reaction: title: "리액션" description: "노트에 \"리액션\"을 달아서 간단하게 본인의 느낌을 표현, 전달할 수 있습니다." _customEmojis: title: "커스텀 이모티콘" description: "Misskey는 여러 장소에서 사용할 수 있는 서버 오리지널 이모티콘을 작성할 수 있습니다." _channel: title: "채널" description: "채널을 만들면 공통 테마로 서버 내 커뮤니티를 만들 수 있습니다." _antenna: title: "안테나" description: "특정 단어가 포함된 노트만 수집하는 타임라인을 만들 수 있습니다." _drive: title: "드라이브" description: "업로드한 파일은 '드라이브'에 저장되어, 마음에 드는 사진을 폴더에 모아 두고, 원할 때 쉽게 공유할 수 있습니다." _2fa: title: "다단계 인증" description: "일회용 비밀번호를 사용한 다단계 인증이나 물리적인 키를 사용한 패스키 인증으로 계정의 보안을 높이는 각종 기술을 지원합니다. " _charts: title: "차트" description: "Misskey에 내장된 차트 엔진을 이용하여, 서버의 이용 통계와 같은 정보를 한 눈에 파악할 수 있습니다." _branding: title: "브랜딩" description: "서버의 로고, 아이콘, 테마 등을 커스터마이징해 간단히 SNS 브랜딩을 할 수 있습니다." _roles: title: "역할" description: "역할을 사용하면 유저마다 권한을 세세하게 커스터마이징할 수 있습니다. 또 조건부 역할을 사용하면 조건에 일치하는 유저에 자동으로 역할을 할당할 수 있습니다. 역할에게 배지를 설정해 서버의 수익화에 도움을 줄 수 있습니다." _moderation: title: "조정" description: "서버 운영을 돕는 충실한 조정 기능이 표준 탑재돼있습니다." _privacy: title: "개인 정보 보호" description: "풍부한 개인 정보 보호 설정에서 콘텐츠의 공개 범위를 유연히 조정할 수 있습니다." _multiPurpose: title: "혼자여도, 여러 명이어도" description: "여러 유저를 받아들이는 SNS로의 운영은 물론, 개인용 서버로의 이용도 지원합니다. Fediverse와 연결되기에 당신만의 강력한 거점으로 됩니다." _monetization: title: "수익화" description: "광고의 표시 등 서버의 수익화를 돕는 기능도 준비돼있으며, 지속 가능한 운용을 목표로 합니다." _oss: title: "Mi ❤️ OSS" description: "Misskey는 여태까지 그리고 앞으로도 오픈 소스로, 누구나 자유롭게 무료로 소스 코드를 이용할 수 있습니다. 또 Misskey Project는 다른 OSS에 대해 적극적으로 지원 활동을 하고 있습니다." _battleTested: title: "신뢰성" description: "Misskey는 10년 이상에 걸쳐 실제 환경에서 사용되고 있고(battle-tested), 높은 신뢰성이 있다고 자부합니다." _featuresServer: _root: title: "서버의 기능" description: "Misskey를 지원하는 백엔드 실장의 특징" _easyInstall: title: "쉬운 설치" description: "간단한 커맨드로 설치할 수 있고, 각사 제공 호스팅 서비스를 이용하면 관리의 수고를 덜 수 있습니다." _easySetup: title: "쉬운 설정" description: "Misskey는 서버의 설정에서 복잡한 설정은 불필요하고, 바로 운용을 시작할 수 있습니다. 한편, 요구에 맞춰 고급 설정을 하는 것도 가능합니다." _api: title: "API" description: "Misskey의 모든 기능은 HTTP API를 통해 조작할 수 있고, 다른 애플리케이션과의 연휴도 용이합니다. 더욱이 Webhook이나 WebSocket 접속도 지원하고 있으므로 실시간으로 Misskey에서 이벤트를 받을 수 있습니다." _relay: title: "릴레이 대응" description: "Fediverse 내 액티비티를 중계하는 릴레이 서버로의 접속을 지원하고 있으므로 수동으로 여러 서버와 연결하는 일 없이 정보 수집을 할 수 있습니다." _nodejs: title: "Node.js 백엔드" description: "Misskey는 백엔드로 Node.js를 채용하고 있고, 빠르고 가볍게 작동합니다." _postgresql: title: "PostgreSQL" description: "메인 데이터베이스에는 PostgreSQL을 채용하고, 견고한 데이터 관리를 실현하고 있습니다." _fullTextSearch: title: "전체 텍스트 검색" description: "PostgreSQL 외에, Meilisearch 등의 전체 텍스트 검색 엔진을 사용한 전체 텍스트 검색을 할 수 있습니다." _jobQueue: title: "고효율 작업 대기열" description: "작업 대기열에는 BullMQ를 채용하고, 작업을 여러 서버에서 효율적으로 처리할 수 있습니다. 또 Misskey 네이티브에서 실장된 인스펙터는 제어판으로 통합돼 외부 툴에 의존하는 일 없이 관리할 수 있습니다." _cdn: title: "CDN 대응" description: "외부 CDN의 리소스 캐시에 대응합니다. 서버로의 요청을 줄여 부하 감소, 비용 감소가 가능합니다." _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)로 타임라인을 Redis상에 구축해 성능을 향상시킬 수 있습니다." _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)로 리액션 정보를 Redis상에 캐시해 성능을 향상시킬 수 있습니다." _scalable: title: "확장 가능" description: "프로세스의 클러스터 분석, 여러 서버의 부하분산, 데이터베이스의 복제에 대응하고, 유저의 증가에도 대응합니다." _seo: title: "SEO" description: "일부 콘텐츠의 SSR을 하고, 검색 엔진으로 인덱스시킬 수 있으며, OGP에 대응하고 있으므로 소셜 미디어 상에서 공유됐을 때의 미리보기도 가능합니다. 물론 인덱스되고 싶지 않은 상황에는 크롤러를 거부하는 설정도 가능합니다." _ml: title: "기계 학습" description: "내장 기계 학습 기능을 이용해 자동적으로 민감한 미디어의 필터링을 하는 등 운용의 부담을 줄일 수 있습니다." _sentry: title: "Sentry 지원" description: "Sentry로 서버 통계 수집에 대응하고 있기에 서버 리소스의 감시, 헬스체크, 유지 보수에 도움을 줄 수 있습니다." _featuresClient: _root: title: "WebUI" description: "Misskey에 부속된 높은 기능인 Web 프론트엔드(Misskey Web)의 특징을 소개" _responsive: title: "반응형 UI" description: "UI는 세련된 독자 디자인 시스템을 사용해 설계됐고, 데스크톱, 태블릿, 스마트폰 각각에 최적인 표시, 작동으로 되게끔 정성스럽게 실장돼있습니다." _theme: title: "테마" description: "원하는 디자인으로 Misskey를 사용할 수 있습니다. 물론 다크 모드도 확실하게 지원합니다. 스스로 고급 테마를 만들 수도 있습니다." _mfm: title: "MFM" description: "노트에는 MFM이라 불리는 Misskey 전용 마크업 언어를 사용할 수 있습니다. 볼드체로 하기, 링크를 삽입하기, 움직임을 붙이기 등 텍스트의 장식을 간단한 구문으로 표현할 수 있습니다." _widgets: title: "위젯" description: "여러 종류의 위젯을 자유롭게 배치하고, 필요한 정보에 재빨리 접근할 수 있습니다." _deck: title: "덱 UI" description: "덱 UI를 사용하면 UI를 더욱 깊이 커스터마이징을 할 수 있습니다. 자신만의 클라이언트를 만들 수 있습니다." _embed: title: "다른 사이트로의 임베딩" description: "노트, 타임라인 등을 외부 사이트에 임베딩해 표시할 수 있습니다." _realtimeMode: title: "실시간 모드" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "푸시 알림" description: "푸시 알림에 대응하기에 실시간으로 서버에서 알림을 받을 수 있습니다." _multiAccounts: title: "멀티 계정 대응" description: "여러 계정을 쉽게 교체해 사용할 수 있습니다." _watermark: title: "워터마크 부여 기능" description: "게시하는 이미지에 워터마크를 자동으로 부여해 간단하게 신용 정보를 남길 수 있습니다. 워터마크는 자유롭게 커스터마이징할 수 있습니다." _imageEditing: title: "이미지 가공 기능" description: "이미지에 이펙트를 추가하고, 컬러 그레이딩을 하는 등 다양한 창의적인 표현을 할 수 있습니다." _achievements: title: "도전 과제" description: "Misskey의 기능을 시험하는 동기 부여가 되고, 온보딩에 도움이 됩니다." _plugin: title: "플러그인" description: "안전한 AiScript를 사용한 플러그인을 설치해 클라이언트의 기능을 확장할 수 있습니다." _settingsManagement: title: "유연한 설정 관리" description: "계정마다 임의의 클라이언트 설정을 덮어쓰기할 수 있고, 여러 장치간에 설정을 공유, 동기화할 수 있습니다. 더욱이 설정 정보는 자동 백업이 가능합니다." _pwa: title: "PWA" description: "Misskey Web은 Progressive Web Apps(PWA)에 준거해 장치상에 네이티브 애플리케이션처럼 작동시킬 수 있습니다." _i18n: title: "다국어 지원" description: "클라이언트를 여러 언어로 이용할 수 있습니다." _featuresUpcoming: _root: title: "추후 공개" description: "이후 예정된 기능을 소개" _jwt: title: "JWT 인증" description: "JSON Web Token(JWT)을 사용한 무상태 인증을 실장하고, 더욱 안전하며 더욱 빠른 요청의 검증을 실현합니다." _newBackend: title: "더욱 가벼운 백엔드" description: "더욱 빠르고 가벼운 작동을 할 수 있게 하기 위해 완전히 새로운 백엔드 실장의 개발을 진행하고 있습니다." _vueVapor: title: "Vapor 모드 대응" description: "프론트엔드에서 채용한 프레임워크 Vue의 새로운 컴파일 전략을 지원하고 더욱 가벼운 Web UI를 실현합니다." _getStarted: title: "Misskey 시작하기" _find: title: "서버 찾기" list: "서버 목록" _create: title: "서버 만들기" guide: "설치 가이드" _docs: title: "자세히 보기" docs: "문서 보기" _dev: title: "개발에 참여하기" _donation: title: "기부하기" description: "Misskey는 비영리 프로젝트입니다. 개발 자금은 여러분의 기부를 통해 모아지고 있습니다. Misskey가 마음에 드신다면 개발이 지속될 수 있도록 꼭 지원을 부탁드립니다." _sponsors: title: "스폰서" becomeASponsor: "후원자 되기" _servers: title: "서버 목록" description: "Misskey는 하나의 서비스가 아닌, 각자가 서비스 제공을 하는 분산형 네트워크입니다. Misskey를 이용하시려면, 서비스를 제공하고 있는 서버에 계정을 만드실 필요가 있습니다." addYourServer: "당신의 서버가 표시되지 않나요? {0}에서 등록해주세요!" addYourServerLink: "여기" disclaimerTitle: "[중요] 면책 사항" disclaimer: "이 목록은 연합우주 상에서 발견된 Misskey 서버를 자동으로 표시하는 것이며 Misskey Project에서 검증, 확인 또는 승인한 것이 아닙니다. 사용자가 본 목록에서 접속한 서버 내에서 발생한 피해는 Misskey Project에서 책임지지 않습니다." _system: fetchError: "데이터를 불러오지 못했습니다. 잠시 후에 다시 시도하시기 바랍니다." _statistics: title: "서버 통계" description: "Misskey 서버의 통계 데이터를 그래프로 보여드립니다." viewFullStats: "자세한 통계 보러가기" lang: "주요 언어" registerAcceptance: "가입 개방 여부" version: "버전" notes: "노트 수" users: "유저 수" servers: "서버 수" _search: title: "고급 검색" all: "모두" query: "검색어로 찾기" lang: "언어" orderBy: "정렬" recomendded: "기본" notesCount: "노트 수" notesPer15Days: "일일 노트 수 (15일 평균)" usersCount: "유저 수" _registerAcceptance: title: "회원 가입" public: "개방" inviteOnly: "초대만" _list: notFound: "조건에 맞는 서버를 찾을 수 없습니다." showMore: "더 보기" _view: title: "표시 방식" list: "리스트" grid: "그리드" _docs: title: "문서" description: "Misskey의 고급적인 사용 방법부터, 서버의 운영자, 프로그래머를 위한 정보까지 망라하고 있습니다." indexTitle: "목차" _contribute: editThis: "이 페이지를 편집" translateThis: "이 페이지를 번역" _aboutMisskey: title: "Misskey에 대하여" description: "Misskey를 처음 알게되신 분이나, 앞으로 쓰실 분을 위해 기본적인 기능을 확인 해봅시다." _changelog: title: "릴리즈 노트" description: "Misskey의 업데이트 이력을 확인하실 수 있습니다. 최신 버전에서 무엇이 바뀌었는지 확인하세요." _donate: title: "프로젝트 기부" description: "Misskey는 무료로 사용할 수 있는 오픈소스 소프트웨어입니다. 마음에 드신다면, 앞으로도 계속 개발할 수 있도록 기부를 고려해 주시기 바랍니다." _forUsers: title: "Misskey 유저용" _forAdmin: title: "서버 운영자용" _forDevelopers: title: "개발자용" _prevNext: prev: "앞으로" next: "다음으로" _toc: title: "이 페이지의 내용" toPageTop: "맨 위로" _steppedGuide: selectCourse: "가이드 선택" noImageInThisStep: "이 단계에는 이미지가 없습니다." aiWellDone: "과정은 여기서 끝이에요. 수고하셨어요♪" _blog: title: "블로그" description: "Misskey 개발 본부로부터 Misskey에 관한 최신 정보나 Tip 등을 전해드립니다. (일본어만)" back: "뒤로 가기" _content: tip: "도움말" warning: "주의" danger: "경고" preview: "미리보기" _other: title: "더 보기!" description: "Misskey를 좀 더 즐기실 수 있는 다른 리소스도 소개합니다." _brandAssets: title: "자료집" description: "Misskey의 로고, 아이콘 등의 자료들입니다. 일정한 라이센스를 따르시면 자유롭게 이용하실 수 있습니다." license: "자료는 CC BY-SA 라이센스로 자유롭게 사용하실 수 있습니다🎉" assetsDirectory: "모든 자료는 {0}를 통해 관리되고 있습니다." logo: "로고" icon: "아이콘" banner: "배너" avatarDecorationTemplate: "아바타 장식 도구" fullColorPng: "풀 컬러 (PNG)" monoChromeSvg: "단색 (SVG)" _contact: title: "문의" description: "Misskey Project로의 문의는 여기로부터" form: "이 양식으로 답변해주세요." formGoogleAccountRequired: "현재 스팸에 대처하기 위해 문의 전송 시 Google 계정이 필요합니다.\n번거로우시겠지만 양해 부탁드립니다." formLink: "폼 열기" faqTitle: "자주 묻는 질문" faqDescription: "문의하시기 전에 당신이 알고 싶으신 것이 여기에 있지 않은지 확인해 주세요." ifNothingIsFound: "만약 해당되는 것이 없으시면…" _links: title: "링크" _github: title: "Github" description: "Misskey의 개발은 GitHub을 통해하고 있습니다. 신기능 요청이나 버그 리포트는 여기서 하실 수 있습니다." _crowdin: title: "Crowdin" description: "Misskey의 본체 및 문서 번역은 여기서 관리되고 있습니다. 여러분의 협력을 부탁드립니다." _discord: title: "Discord 서버" description: "Misskey에 관한 질문이나 대화 등을 즐기실 수 있습니다." _aiChan: title: "아이" description: "Misskey의 마스코트, 아이의 웹 사이트입니다." _tools: title: "도구집" index: "도구집 홈 화면" description: "Misskey용 편리 도구를 공개 중!" menuToggle: "메뉴" _forUsers: title: "Misskey 유저용" _forAdmin: title: "서버 운영자용" _mfmPlayground: title: "MFM 테스트 코너" description: "MFM를 자유롭게 연습하실 수 있습니다! Misskey의 글쓰기 화면, 노트 화면을 재현!" preview: "미리보기" disclaimer: "여기에 표시되는대로 확실히 적혀진다고 할 순 없습니다. 코드의 구문 강조는 대응하지 않고 있습니다." mfm: "MFM" character: "{0} 문자" domain: "표시를 재현하는 서버" noteIt: "노트" clearEmojiCacheDescription: "이모지가 표시되지 않는 경우" clearEmojiCache: "이모지 캐시 삭제" _aidConverter: title: "aid/aidx 도구" description: "Misskey 내부에서 사용되는 랜덤 ID 생성 알고리즘 \"aid\"와 \"aidx\"의 변환, 생성이 가능합니다." aidToDate: "aid/aidx → 날짜 및 시각" dateToAid: "날짜 및 시각 → aid/aidx" mode: "작성할 id" date: "날짜 및 시각" inputByLine: "줄바꿈을 통해 여러 개의 aid 또는 aidx를 변환할 수 있습니다." _aboutUs: title: "Misskey Development Division에 대해서" description: "Misskey 개발 팀에 대한 정보를 포스트하고 있습니다." _team: title: "개발 멤버" description: "Misskey의 개발을 도와주시는 분을 소개하고 있습니다." _core: title: "코어 팀 멤버" description: "이 코어 팀 멤버는 Misskey 관련 프로젝트를 적극적으로 관리 및 점검하고 있습니다." _coreEmeriti: title: "명예 코어 팀 멤버" description: "과거에 가치있는 공헌을 해주셨던, 전 코어 팀 멤버 여러분 입니다." _contributors: title: "기여자" description: "여기에 계신 분은, 특히 Misskey에 많이 공헌해주시고 계신 분입니다." seeMore: "모든 기여자" _orgPartner: title: "기업 및 단체 파트너" description: "여기에 있는 기업 및 단체로부터 금전 및 기술에 관한 Misskey의 개발 협력을 받고 있습니다." _hubTranslators: title: "Misskey Hub 번역자" description: "Misskey Hub의 번역을 도와주시는 분들입니다." _coreTranslators: title: "Misskey Hub 번역자" description: "Misskey Hub의 번역을 도와주시는 분들입니다." _i18n: _missing: title: "번역을 도와주세요" description: "이 문서는 커뮤니티에 의해 번역되었어요. 번역 제출은 {link}에서 할 수 있어요. 많은 도움 부탁드려요 🙏" linkLabel: "Crowdin" _share: title: "Misskey에 노트하기" chooseServer: "노트 할 서버를 선택하세요" addServer: "서버 추가하기" domain: "서버 도메인" compatibleWith: "Misskey 및 일부 Misskey 포크를 지원합니다" recommendedByWebsite: "공유 웹사이트 추천" _noteVisibility: public: "공개" home: "홈" followers: "팔로워" specified: "다이렉트" localOnly: "연합에 보내지 않기" _shareLinkGenerator: title: "공유 버튼 만들기" description: "Misskey Hub의 공유 버튼 중계 서비스를 이용하여, Misskey를 위한 공유 버튼을 만들 수 있습니다." body: "내용" bodyWarning: "서버 간 호환성 문제로 인해 커스텀 이모지는 사용하실 수 없습니다." url: "주소" urlCaption: "옵션. 본문 뒤에 삽입됩니다." settings: "고급 설정" manualInstance: "추천 서버 도메인" manualInstanceDescription: "여기에 지정한 서버(하나)를 공유 버튼의 중계 페이지 상단에 표시할 수 있습니다. 자신의 서버로 유도할 때 사용할 수 있습니다." visibility: "공개 범위" recipents: "다이렉트 노트를 받을 사람 (한 줄에 하나씩)" resultLink: "링크 생성 결과" resultButton: "공유 버튼 샘플" testLink: "공유 링크 테스트" typeSomethingToGetLink: "본문을 입력하면 링크가 생성됩니다." typeSomethingToGetButton: "본문을 입력하면 버튼이 생성됩니다." documentationIs: "함수 인수의 상세 정보 등 기술 사양은 {here}" here: "이곳으로" _goToMisskey: title: "Misskey Web으로" heading: "이 페이지를 열 서버를 선택하여 주십시오" _avatarDecorationPreview: title: "아바타 장식 미리보기" description: "아바타 장식이 예쁘게 반영되는지 확인할 수 있습니다." preview: "미리보기" settings: "설정" decoration: "데코레이션 #{number}" placeholder: "'추가'에서 아바타 장식을 추가하고 미리 볼 수 있습니다." _options: offsetX: "수평 위치 조정" offsetY: "세로 위치 조정" angle: "각도" flip: "좌우 반전" overlayTemplate: "템플릿 중첩하기" _placeholder: username: "아이(Ai)" noteText: "방금 초코도넛을 먹었어요 🍩😋" profileDescription: "Misskey 상주 AI인 아이입니다! 잘 부탁드려요♪。" _customEmojiPreview: title: "커스텀 이모티콘 미리보기" description: "커스텀 이모티콘의 가시성을 확인할 수 있습니다." preview: "미리보기" emoji: "이모티콘 #{number}" placeholder: "'추가'에서 사용자 지정 이모티콘을 추가하고 미리 볼 수 있습니다." limitReactionLength: "반응의 최대 가로 폭을 제한하고 축소하여 표시" _options: text: "노트 본문" textDescription: "추가한 사용자 지정 이모티콘은 {emoji_id}로 참조할 수 있습니다." _placeholder: noteText: "커스텀 이모티콘은 다음과 같이 표시됩니다 → :emoji_preview_1:.\n문장을 다시 써서 사용성을 시험해 보세요✨." _identiconGenerator: title: "초기 아이콘 생성기" description: "Misskey에 가입했을 때 기본적으로 지정되는 초기 아이콘을 생성할 수 있습니다." userName: "유저명" includeDomain: "서버의 도메인 이름을 포함한 전체 사용자 이름을 입력해주세요." _historicalMaterials: title: "역사관" description: "Misskey의 역사적 자료를 여기에 공개" heroSubtitle: "Misskey 10주년 기념 기획" heroDescription: "Misskey는 2014년에 게시판 서비스로 태어났습니다. 그로부터 10년이 지났고, 지금은 많은 분들이 이용할 수 있는 플랫폼이 되었습니다.\n여기서는 Misskey에 대한 역사적 자료를 한 번에 공개합니다!" submissionTitle: "오래된 Misskey의 스크린샷을 보유하고 계신가요?" submissionDescription: "옛 Misskey에 대한 자료를 가지고 계신 분이 있다면, 꼭 저희에게 보내주세요.\nGitHub를 이용할 수 있는 분은 {gh_issue}로, 이용할 수 없는 분은 {'@'}syuilo{'@'}misskey.io 쪽으로 보내주시기 바랍니다." _miHubServerListPreview: title: "Misskey Hub 서버 목록 미리보기" description: "Misskey Hub의 서버 목록에서 표시되는 사진을 확인해보고 알맞게 조절되어 있는지 확인할 수 있습니다." name: "서버 이름" serverDescription: "서버 설명" icon: "서버 아이콘" bannerOrBg: "서버 배너 또는 배경 이미지" bannerOrBgDescription: "배너 및 배경 이미지가 모두 설정된 경우, 배경 이미지를 우선적으로 표시합니다. 이미지는 가운데를 기준으로 16:9 비율의 최대 사이즈로 표시됩니다." _api: _permissions: title: "권한" description: "설명" _types: "read:account": "계정의 정보를 봅니다" "write:account": "계정의 정보를 변경합니다" "read:blocks": "차단 여부를 확인합니다" "write:blocks": "차단을 하거나 해제합니다" "read:drive": "드라이브를 조회합니다" "write:drive": "드라이브에 파일을 올리거나, 이름을 변경하거나, 삭제합니다" "read:favorites": "즐겨찾기를 조회합니다" "write:favorites": "즐겨찾기에 추가하거나 삭제합니다" "read:following": "팔로우 상태를 봅니다" "write:following": "팔로우하거나 팔로우를 해제합니다" "read:messaging": "대화를 읽습니다" "write:messaging": "대화를 시작하거나 메시지를 보냅니다" "read:mutes": "뮤트 여부를 확인합니다" "write:mutes": "뮤트를 하거나 해제합니다" "write:notes": "노트를 작성하거나 삭제합니다" "read:notifications": "알림을 확인합니다" "write:notifications": "알림을 읽거나 삭제합니다" "read:reactions": "리액션을 확인합니다" "write:reactions": "리액션을 추가하거나 취소합니다" "write:votes": "투표를 합니다" "read:pages": "페이지를 봅니다" "write:pages": "페이지를 수정합니다" "read:page-likes": "페이지의 좋아요를 확인합니다" "write:page-likes": "페이지에 좋아요를 추가하거나 취소합니다" "read:user-groups": "유저 그룹 보기" "write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다" "read:channels": "채널을 보기" "write:channels": "채널을 추가하거나 삭제합니다" "read:gallery": "갤러리를 봅니다" "write:gallery": "갤러리를 추가하거나 삭제합니다" "read:gallery-likes": "갤러리의 좋아요를 확인합니다" "write:gallery-likes": "갤러리에 좋아요를 추가하거나 취소합니다" "read:flash": "Play를 봅니다" "write:flash": "Play를 조작합니다" "read:flash-likes": "Play의 좋아요를 봅니다" "write:flash-likes": "Play의 좋아요를 조작합니다" "read:admin:abuse-user-reports": "사용자 신고 보기" "write:admin:delete-account": "사용자 계정 삭제하기" "write:admin:delete-all-files-of-a-user": "사용자의 모든 파일 삭제하기" "read:admin:index-stats": "데이터베이스 인덱스 정보 보기" "read:admin:table-stats": "데이터베이스 테이블 정보 보기" "read:admin:user-ips": "사용자 IP 주소 보기" "read:admin:meta": "인스턴스 메타데이터 보기" "write:admin:reset-password": "사용자 비밀번호 재설정하기" "write:admin:resolve-abuse-user-report": "사용자 신고 해결하기" "write:admin:send-email": "이메일 보내기" "read:admin:server-info": "서버 정보 보기" "read:admin:show-moderation-log": "조정 기록 보기" "read:admin:show-user": "사용자 개인정보 보기" "write:admin:suspend-user": "사용자 정지하기" "write:admin:unset-user-avatar": "사용자 아바타 삭제하기" "write:admin:unset-user-banner": "사용자 배너 삭제하기" "write:admin:unsuspend-user": "사용자 정지 해제하기" "write:admin:meta": "인스턴스 메타데이터 수정하기" "write:admin:user-note": "조정 기록 수정하기" "write:admin:roles": "역할 수정하기" "read:admin:roles": "역할 보기" "write:admin:relays": "릴레이 수정하기" "read:admin:relays": "릴레이 보기" "write:admin:invite-codes": "초대 코드 수정하기" "read:admin:invite-codes": "초대 코드 보기" "write:admin:announcements": "공지사항 수정하기" "read:admin:announcements": "공지사항 보기" "write:admin:avatar-decorations": "아바타 꾸미기 수정하기" "read:admin:avatar-decorations": "아바타 꾸미기 보기" "write:admin:federation": "연합 정보 수정하기" "write:admin:account": "사용자 계정 수정하기" "read:admin:account": "사용자 정보 보기" "write:admin:emoji": "이모지 수정하기" "read:admin:emoji": "이모지 보기" "write:admin:queue": "작업 대기열 수정하기" "read:admin:queue": "작업 대기열 정보 보기" "write:admin:promo": "프로모션 기록 수정하기" "write:admin:drive": "사용자 드라이브 수정하기" "read:admin:drive": "사용자 드라이브 정보 보기" "read:admin:stream": "관리자용 Websocket API 사용하기" "write:admin:ad": "광고 수정하기" "read:admin:ad": "광고 보기" "write:invite-codes": "초대 코드 만들기" "read:invite-codes": "초대 코드 받기" "write:clip-favorite": "클립의 좋아요 수정하기" "read:clip-favorite": "클립의 좋아요 보기" "read:federation": "연합 정보 불러오기" "write:report-abuse": "위반 내용 신고하기" "write:chat": "채팅 조작하기" "read:chat": "채팅 열람하기" ================================================ FILE: locales/pl-PL.yml ================================================ noScript: "現在Javascriptが無効になっています。サイトの表示にはJavascriptが必須となりますので有効にしてください。" learnMore: "詳しく知る" loading: "読み込み中…" clickToExpand: "(クリックして展開)" copy: "Kopiuj" share: "共有する" note: "Notka" other: "その他" add: "追加" generate: "生成" download: "ダウンロード" browse: "参照" settings: "設定" goToLegacyHub: "従来のMisskey Hub" contactUs: "お問い合わせ" detail: "詳細" lastUpdate: "最終更新" empty: "内容がありません" threeDimensionModel: "3Dモデル" clickToShow: "クリックして表示" preview: "プレビュー" scrollable: "スクロールできます" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "ページが見つかりませんでした" notFoundDesc: "お探しのページは見つかりませんでした。URLをお確かめください。" generalError: "エラーが発生しました" generalErrorDesc: "ブラウザのキャッシュを削除して再度お試しください。それでも改善しない場合は、以下から不具合報告をお願いします。" reportProblem: "問題を報告する" goToTop: "トップページにもどる" _seo: siteName: "Misskey Hub" siteNameLong: "Misskeyオフィシャルサイト Misskey Hub" defaultTitleTagline: "フリーでオープンソースの分散型SNS作成ソフトウェア" defaultDescription: "分散型SNS作成ソフトウェア Misskeyの公式サイト。Misskeyサーバーの作り方やサーバー一覧など、Misskeyに関する情報が満載!" _nav: servers: "Serwery" docs: "Dokumentacja" news: "ニュース" other: "もっと!" switchLang: "言語の設定" _landing: _hero: description: "Misskey jest otwarto-źródłową i zdecentralizowaną siecią społecznościową" gettingStarted: "Zaczynamy" _keyFeatures: _open: title: "Otwarte" description: "Misskeyはソースコードが公開されており、誰でも自由に、無料でMisskeyを使ったサービス(Misskeyサーバー)を作成・運営できます。" _federated: title: "分散" description: "Misskeyは分散型プロトコルを実装しているため、分散型SNSのネットワーク(Fediverse)に繋がるゲートウェイになります。" _powerful: title: "パワフル" description: "Misskeyはカスタマイズ可能なプロダクションレベルの様々な機能を備えています。多人数でも少人数でも、最適なソリューションに。" _introduction: title: "Misskeyで作ろう" description: "Misskeyを使えば、面倒な実装を行うことなく、簡単に独自のプラットフォームを構築可能です。あなたがMisskeyを使って作ったサービスはあなただけのものなので、情報発信における既存プラットフォームへの依存リスクもありません。" tip: "Misskeyは「Webサービスそのもの」ではなく、マイクロブログサービスを作るための「基盤となるソフトウェア」です。Webサイトを作るのにWordPressといったソフトウェアを使うのと同じです。" _decenterized: title: "Fediverseに繋がるための、強力なプラットフォーム" description: "Misskeyは分散サービス用プロトコルである{0}を実装しているため、Misskeyを使えば、分散型SNS同士のネットワーク=Fediverseと繋がるサービスを簡単に構築可能です。不特定多数の利用者を受け入れるSNSを作ることも、「お一人様」として他のサーバーの投稿を購読する拠点を作ることも、あなたがFediverseへの情報発信を行うための専用サーバーを作ることも可能です。" activityPub: "ActivityPub" _useCases: title: "こんな使い方ができます" single: "情報収集・情報発信のための自分専用のサーバー" official: "会社の広報アカウントを設置する専用のサーバー" community: "同じ関心をもつユーザー向けのコミュニティサーバー" inHouse: "社内SNSとしてのプライベートサーバー" _free: title: "Misskeyはずっと無料でオープン" description: "Misskeyは2014年の開発当初から、そしてこれから未来も、プログラムのソースコードが公開されているオープンソースソフトウェア(OSS)です。また、誰でも無料で・自由にソースコードを利用可能です。MisskeyがOSSであり続けられるのは皆様からの支援のおかげです。" _features: _root: title: "特徴" description: "Misskeyの特徴や機能を紹介。" _note: title: "ノート" description: "ユーザーの投稿は「ノート」と呼ばれます。他のノートを引用したり、画像、動画、音声、その他の任意のファイルを添付できるほか、アンケートも追加可能。" _federation: title: "連合" description: "オープンな分散プロトコルであるActivityPubを実装しているため、他のMisskeyサーバーだけでなく、ActivityPubをサポートする他のソフトウェアともやりとりできます。" _reaction: title: "リアクション" description: "ノートに「リアクション」を付けることで、簡単・気軽に自分のフィーリングを表現して伝えることが出来ます。" _customEmojis: title: "カスタム絵文字" description: "Misskeyの様々な場所で使用できる、サーバーオリジナルの絵文字を作成可能です。" _channel: title: "チャンネル" description: "チャンネルを作成すれば、共通のテーマでサーバー内コミュニティを作成することが可能です。" _antenna: title: "アンテナ" description: "特定のワードが含まれるノートだけを収集するタイムラインを作成可能です。" _drive: title: "ドライブ" description: "アップロードしたファイルを管理するインターフェイスがあります。そのため、お気に入りの画像をフォルダにまとめたり、再度共有することも簡単に行えます。" _2fa: title: "多要素認証" description: "ワンタイムパスワードを使用した多要素認証や、物理的なキーを使用したパスキー認証で、アカウントのセキュリティを高める各種技術をサポート。" _charts: title: "可視化" description: "Misskeyは組み込みのチャートエンジンを備えていて、サーバーの利用状況などが簡単に可視化できます。" _branding: title: "ブランディング" description: "サーバーのロゴ、アイコン、テーマなどをカスタマイズして、簡単にSNSのブランディングを行えます。" _roles: title: "ロール" description: "ロールを使用すると、ユーザーごとに権限を細かくカスタマイズできます。また、コンディショナルロールを使えば、条件に一致するユーザーに自動でロールをアサインすることも可能です。ロールにバッジを設定して、サーバーのマネタイズに役立てることもできます。" _moderation: title: "モデレーション" description: "サーバー運営を助ける、充実のモデレーション機能が標準搭載。WebUIに統合されているため、シームレスに操作可能です。" _privacy: title: "プライバシー" description: "豊富なプライバシー設定で、コンテンツの公開範囲を柔軟にコントロール。" _multiPurpose: title: "ひとりでも、みんなでも" description: "多数の利用者を受け入れるSNSとしての運用はもちろん、個人用サーバーとしての利用もサポート。Fediverseと繋がるための、あなただけの強力な拠点になります。" _monetization: title: "収益化" description: "広告の表示など、サーバーのマネタイズを助ける機能も用意されていて、持続可能な運用を目指せます。" _oss: title: "Mi ❤️ OSS" description: "Misskeyはこれまでもこれからもオープンソースで、誰でも自由に、無料でソースコードを利用可能です。またMisskey Projectは、他のOSSに対して積極的に支援活動を行っています。" _battleTested: title: "信頼性" description: "Misskeyは10年以上にわたって実際の環境で使われており(battle-tested)、高い信頼性があると自負しています。" _featuresServer: _root: title: "サーバーの機能" description: "Misskeyを支えるバックエンド実装の特徴。" _easyInstall: title: "簡単インストール" description: "簡単なコマンドでインストールできるほか、各社提供のホスティングサービスを利用すれば、管理の手間も省けます。" _easySetup: title: "セットアップもカンタン" description: "Misskeyサーバーのセットアップに複雑な設定は不要。ウィザードに従うだけで最適な設定が行われ、すぐに運用を始められます。一方、ニーズに合わせて高度な設定を行うことも可能です。" _api: title: "API" description: "Misskeyの全ての機能はHTTP APIを通じて操作でき、他のアプリケーションとの連携も容易です。さらに、WebhookやWebSocket接続もサポートしているので、リアルタイムにMisskeyからのイベントを受け取ることも可能です。" _relay: title: "リレー対応" description: "Fediverse内のアクティビティを中継するリレーサーバーへの接続をサポートしているので、手動で多数のサーバーと繋げることなく情報収集が可能です。" _nodejs: title: "Node.jsバックエンド" description: "MisskeyはバックエンドにNode.jsを採用しており、高速・軽量に動作します。" _postgresql: title: "PostgreSQL" description: "メインのデータベースにはPostgreSQLを採用し、堅牢なデータ管理を実現しています。" _fullTextSearch: title: "全文検索" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "高効率ジョブキュー" description: "ジョブキューにBullMQを採用し、タスクを複数のサーバーで効率的に処理。また、Misskeyネイティブで実装されたインスペクタはコントロールパネルに統合され、外部ツールに頼ることなく管理が可能です。" _cdn: title: "CDN対応" description: "外部CDNによるリソースのキャッシュに対応しています。サーバーへのリクエストを減らすことで、負荷低減・コスト削減が可能です。" _ftt: title: "FTT" description: "Fan-out Timeline Technology(FTT)により、タイムラインをRedis上に構築しパフォーマンスを向上させることができます。" _rbt: title: "RBT" description: "Reactions Buffering Technology(RBT)により、リアクション情報をRedis上にキャッシュしパフォーマンスを向上させることができます。" _scalable: title: "スケーラブル" description: "プロセスのクラスタリング、複数サーバーによるロードバランス、データベースのレプリケーションに対応しており、ユーザーの増加にも対応できます。" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "機械学習" description: "組み込みの機械学習機能を利用して、自動的にセンシティブなメディアのフィルタリングを行うなど、運用の負担を軽減することも可能です。" _sentry: title: "Sentryサポート" description: "Sentryによるサーバーのメトリクス収集に対応しているため、サーバーリソースの監視、ヘルスチェック、メンテナンスに役立てることができます。" _featuresClient: _root: title: "WebUI" description: "Misskeyに付属する高機能なWebフロントエンド(Misskey Web)の特徴を紹介。" _responsive: title: "レスポンシブUI" description: "UIは洗練された独自のデザインシステムを使用して設計され、デスクトップ・タブレット・スマートフォンそれぞれに最適な表示・動作となるように丁寧に実装されています。" _theme: title: "テーマ" description: "自分の好きな見た目でMisskeyを使えます。もちろんダークモードも完全サポート。自分で高度にテーマを作ることも可能です。" _mfm: title: "MFM" description: "ノートにはMFMと呼ばれるMisskey専用のマークアップ言語が使用できます。太字にする・リンクを挿入する・動きを付けるといった、テキストの装飾がシンプルな構文で表現できます。" _widgets: title: "ウィジェット" description: "様々な種類のウィジェットを自由に配置し、必要な情報に素早くアクセス。" _deck: title: "デッキUI" description: "デッキUIを使うと、UIをさらに深くカスタマイズ可能。自分だけのクライアントを作ることができます。" _embed: title: "他サイトへの埋め込み" description: "ノート、タイムラインなどを外部のサイトに埋め込んで表示可能です。" _realtimeMode: title: "リアルタイムモード" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "プッシュ通知" description: "プッシュ通知に対応しているため、リアルタイムでサーバーからの通知を受け取ることができます。" _multiAccounts: title: "マルチアカウント対応" description: "複数のアカウントを簡単に切り替えて使用可能です。" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "画像加工機能" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "実績" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "プラグイン" description: "セキュアなAiScriptを用いたプラグインをインストールして、クライアントの機能を拡張可能です。" _settingsManagement: title: "柔軟な設定管理" description: "アカウントごとに任意のクライアント設定を上書きできるほか、複数のデバイス間で設定を共有・同期することができます。さらに、設定情報は自動バックアップ可能です。" _pwa: title: "PWA" description: "Misskey WebはProgressive Web Apps(PWA)に準拠していて、デバイス上でネイティブアプリのように動作させることが可能です。" _i18n: title: "多言語対応" description: "クライアントを様々な言語で利用可能です。" _featuresUpcoming: _root: title: "近日公開" description: "今後予定されている機能を紹介。" _jwt: title: "JWT認証" description: "JSON Web Token(JWT)を用いたステートレス認証を実装し、よりセキュア・より高速なリクエストの検証を実現します。" _newBackend: title: "より軽量なバックエンド" description: "より高速・軽量に動作可能にするための全く新しいバックエンド実装の開発を進めています。" _vueVapor: title: "Vaporモード対応" description: "フロントエンドで採用しているフレームワーク Vue の新しいコンパイルストラテジーをサポートし、より軽量なWeb UIを実現します。" _getStarted: title: "Misskeyをはじめる" _find: title: "サーバーを見つける" list: "サーバーリスト" _create: title: "サーバーを作成" guide: "セットアップガイド" _docs: title: "学ぶ" docs: "ドキュメント" _dev: title: "開発に参加する" _donation: title: "ご支援のお願い" description: "Misskeyは非営利なプロジェクトで、少数の有志による開発のため、開発資金は皆様からの寄付に頼っています。Misskeyを気に入ってくださいましたら、今後も開発を続けられるようにぜひ支援をお願いします!" _sponsors: title: "スポンサー" becomeASponsor: "スポンサーになる" _servers: title: "サーバー一覧" description: "Misskeyは単一のサービスではなく、各々がサービスを提供する分散型ネットワークとなっています。Misskeyを利用するには、サービスを提供しているサーバーでアカウントを作成する必要があります。" addYourServer: "あなたのサーバーが表示されませんか?{0}から登録してください!" addYourServerLink: "こちら" disclaimerTitle: "【重要】免責事項" disclaimer: "このサーバー一覧は、Fediverse上で発見されたMisskeyサーバーを自動で掲載するものであり、原則として手動での確認は行っておりません。ここに掲載されているサーバーは、Misskey Projectが確認・検証・承認したものではありません。アクセス先でユーザーに生じたあらゆる損害について、Misskey Projectは一切責任を負いません。" _system: fetchError: "データの読み込みに失敗しました。後でもう一度お試しください。" _statistics: title: "サーバー統計" description: "Misskeyサーバーの統計データをグラフでご紹介。" viewFullStats: "詳しい統計を見る" lang: "プライマリ言語" registerAcceptance: "新規登録受付方式" version: "バージョン" notes: "ノート数" users: "ユーザー数" servers: "サーバー数" _search: title: "絞り込み検索" all: "すべて" query: "キーワードで検索" lang: "言語" orderBy: "並び替え" recomendded: "デフォルト" notesCount: "ノート数" notesPer15Days: "1日あたりのノート数(15日平均)" usersCount: "ユーザー数" _registerAcceptance: title: "新規登録" public: "開放" inviteOnly: "招待のみ" _list: notFound: "指定された条件に合致するサーバーは見つかりませんでした。" showMore: "もっと見る" _view: title: "表示形式" list: "リスト" grid: "グリッド" _docs: title: "ドキュメント" description: "Misskeyはオープンソースの分散型ソーシャルネットワーキングプラットフォームです。Misskeyの上手な使い方から、サーバーの運営者・プログラムの開発者向けの情報まで網羅しています。" indexTitle: "目次ページ" _contribute: editThis: "このページを編集" translateThis: "このページを翻訳" _aboutMisskey: title: "Misskeyについて" description: "Misskeyをはじめて知ったかたや、これから使うかた向け!基本的なしくみや機能を見ていきましょう。" _changelog: title: "リリースノート" description: "Misskeyのバージョンアップ履歴をご覧いただけます。最新のバージョンで何が変わったのかを確認しましょう!" _donate: title: "プロジェクトへの寄付" description: "Misskeyは無料で使えるオープンソースのソフトウェアです。気に入っていただけたら、今後も開発を続けられるようにぜひ寄付をご検討ください。" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _forDevelopers: title: "開発者向け" _prevNext: prev: "前へ" next: "次へ" _toc: title: "このページの内容" toPageTop: "ページ上部に戻る" _steppedGuide: selectCourse: "ガイドを選ぶ" noImageInThisStep: "このステップには画像がありません" aiWellDone: "操作はこれで完了です。お疲れ様でした♪" _blog: title: "ブログ" description: "Misskeyの最新情報を発信しています!(日本語のみ)" back: "戻る" _content: tip: "ヒント" warning: "注意" danger: "警告" preview: "プレビュー" _other: title: "もっと!" description: "Misskeyをもっと楽しめるその他のリソースをご紹介しています。" _brandAssets: title: "アセット集" description: "Misskeyのロゴ、アイコンなどのアセットのコレクションです。一定のライセンスのもとでご自由にお使いいただけます。" license: "アセットは、CC BY-SAのライセンスの下で自由にお使いいただけます🎉" assetsDirectory: "全てのアセットは、{0}で管理されています。" logo: "ロゴ" icon: "アイコン" banner: "バナー" avatarDecorationTemplate: "アバターデコレーション テンプレート" fullColorPng: "フルカラー (PNG)" monoChromeSvg: "単色 (SVG)" _contact: title: "お問い合わせ" description: "Misskey Projectへのお問い合わせはこちらから" form: "こちらのフォームからご回答ください。" formGoogleAccountRequired: "現在、スパム対策のため、お問い合わせの送信にはGoogleアカウントが必要となっております。\nお手数をおかけしますが、ご理解のほどよろしくお願い致します。" formLink: "フォームへ進む" faqTitle: "よくあるお問い合わせ" faqDescription: "お問い合わせを送信する前に、あなたの知りたいことがここにないか確認してください。" ifNothingIsFound: "もしあてはまるものがなかったら…" _links: title: "リンク" _github: title: "GitHub" description: "Misskeyの開発はGitHub上で行われています。機能リクエストやバグ報告などはこちらから行えます。" _crowdin: title: "Crowdin" description: "Misskey本体、およびドキュメントの翻訳はこちらで管理されています。皆さんのご協力をお願いします。" _discord: title: "Discordサーバー" description: "Misskeyに関する質問や会話などをお楽しみいただけます。" _aiChan: title: "藍" description: "Misskeyの看板娘、藍のウェブサイトです。" _tools: title: "ツール集" index: "ツール集 ホーム画面" description: "Misskey向けの便利ツールを公開中!" menuToggle: "メニュー" _forUsers: title: "Misskeyユーザー向け" _forAdmin: title: "サーバー運営者向け" _mfmPlayground: title: "MFMお試しコーナー" description: "MFMを自由に練習できます!Misskeyの投稿画面・ノートの画面を再現!" preview: "プレビュー" disclaimer: "ここに表示される通りに描画されるとは限りません。コードのシンタックスハイライトには対応していません。" mfm: "MFM" character: "{0} 文字" domain: "表示を再現するサーバー" noteIt: "ノート" clearEmojiCacheDescription: "絵文字が表示されないとき" clearEmojiCache: "絵文字のキャッシュを削除" _aidConverter: title: "aid/aidxツール" description: "Misskeyの内部で使用されているランダムID生成アルゴリズム「aid」と「aidx」の変換・生成ができます。" aidToDate: "aid/aidx→日付時刻" dateToAid: "日付時刻→aid/aidx" mode: "作成するid" date: "日付時刻" inputByLine: "改行区切りで複数のaid/aidxを変換できます。" _aboutUs: title: "Misskey Projectについて" description: "Misskey Projectについての情報を掲載しています。" _team: title: "開発メンバー" description: "Misskeyの開発に関わっている方を紹介しています。" _core: title: "コア チームメンバー" description: "こちらのコアチームメンバーは、Misskey関連のプロジェクトを積極的にメンテナンスしています。" _coreEmeriti: title: "名誉コアチームメンバー" description: "過去に価値のある貢献をしてくださっていた、元コアチームメンバーの皆さんです。" _contributors: title: "コントリビューター" description: "こちらの皆さんは、Misskeyに特に貢献してくださっています。" seeMore: "すべてのコントリビューター" _orgPartner: title: "企業・団体パートナー" description: "こちらの企業・団体から、金銭的・技術的な観点でMisskeyの開発へご協力いただいております。" _hubTranslators: title: "Misskey Hub ローカライザー" description: "Misskey Hubの翻訳に協力いただいている皆さんです。" _coreTranslators: title: "Misskey ローカライザー" description: "Misskeyの翻訳に協力いただいている皆さんです。" _i18n: _missing: title: "翻訳にご協力ください" description: "このドキュメントはコミュニティによる翻訳です。ドキュメントの翻訳は{link}から行えます。ご協力をお願いします🙏" linkLabel: "Crowdin" _share: title: "Misskeyへノート" chooseServer: "ノートするサーバーを選択してください" addServer: "サーバーを追加" domain: "サーバーのドメイン" compatibleWith: "Misskeyと、一部のMisskeyフォークに対応しています。" recommendedByWebsite: "シェア元Webサイトからのおすすめ" _noteVisibility: public: "パブリック" home: "ホーム" followers: "フォロワー" specified: "指名" localOnly: "連合なし" _shareLinkGenerator: title: "共有ボタンジェネレーター" description: "Misskey Hubの共有ボタン中継サービスを利用して、Misskey用の共有ボタンを作成できます。" body: "本文" bodyWarning: "どのサーバーでも共有できるようにするため、カスタム絵文字は使用できません。" url: "URL" urlCaption: "任意。本文の後ろに挿入されます。" settings: "詳細設定" manualInstance: "おすすめサーバー ドメイン" manualInstanceDescription: "ここに指定したサーバー(ひとつ)をシェアボタン中継ページのトップに表示できます。ご自身のサーバーに誘導する際などにお使いいただけます。" visibility: "公開範囲" recipents: "指名ノートを受け取る人のacct(改行区切り)" resultLink: "リンク生成結果" resultButton: "共有ボタンのサンプル" testLink: "共有リンクを試す" typeSomethingToGetLink: "本文を入力するとリンクが生成されます。" typeSomethingToGetButton: "本文を入力するとボタンが生成されます。" documentationIs: "パラメータの詳細情報など、技術仕様は{here}" here: "こちら" _goToMisskey: title: "Misskey Webに移動" heading: "このページを開きたいサーバーを選択してください" _avatarDecorationPreview: title: "アバターデコレーション プレビュー" description: "アバターデコレーションがきれいに反映できるかをチェックできます。" preview: "プレビュー" settings: "設定" decoration: "デコ #{number}" placeholder: "「追加」から、アバターデコレーションを追加してプレビューできます。" _options: offsetX: "横位置調整" offsetY: "縦位置調整" angle: "角度" flip: "左右反転" overlayTemplate: "テンプレートを重ねる" _placeholder: username: "藍" noteText: "チョコのかかったドーナツを食べました🍩😋" profileDescription: "Misskey常駐AIの藍です!よろしくお願いします♪" _customEmojiPreview: title: "カスタム絵文字 プレビュー" description: "カスタム絵文字の視認性をチェックできます。" preview: "プレビュー" emoji: "絵文字 #{number}" placeholder: "「追加」から、カスタム絵文字を追加してプレビューできます。" limitReactionLength: "リアクションの最大横幅を制限し、縮小して表示する" _options: text: "ノート文面" textDescription: "追加したカスタム絵文字は{emoji_id}で参照できます。" _placeholder: noteText: "カスタム絵文字はこんな感じで表示されます→ :emoji_preview_1:\n文章を書き換えて、使い勝手を試してみてくださいね✨" _identiconGenerator: title: "初期アイコンジェネレーター" description: "Misskeyに登録した際にデフォルトで指定される初期アイコンを生成できます。" userName: "ユーザー名" includeDomain: "サーバーのドメイン名を含む完全なユーザー名を指定してください。" _historicalMaterials: title: "歴史資料館" description: "Misskeyに関する歴史的資料を一挙公開" heroSubtitle: "Misskey 10周年記念企画" heroDescription: "Misskeyは2014年に掲示板サービスとして生まれました。それから10年経ち、今ではたくさんの方々に利用していただけるプラットフォームになりました。\nここではMisskeyに関する歴史的資料を一挙公開します!" submissionTitle: "古いMisskeyの写真をお持ちですか?" submissionDescription: "昔のMisskeyにまつわる資料をお持ちの方は、ぜひ当館にお寄せください。\nGitHubを利用できる方は{gh_issue}に、利用できない方は {'@'}syuilo{'@'}misskey.io にお送りください。" _miHubServerListPreview: title: "Misskey Hub サーバー一覧 プレビュー" description: "Misskey Hubのサーバー一覧にお手持ちの画像を当てはめて見栄えをチェックできます。" name: "サーバー名" serverDescription: "説明文" icon: "アイコン画像" bannerOrBg: "バナー画像 or 背景画像" bannerOrBgDescription: "バナー画像と背景画像が両方指定されている場合は、背景画像の方を優先して表示します。画像は中心基準で16:9に収まる最大領域のみが表示されます。" _api: _permissions: title: "権限" description: "説明" _types: "read:account": "アカウントの情報を見る" "write:account": "アカウントの情報を変更する" "read:blocks": "ブロックを見る" "write:blocks": "ブロックを操作する" "read:drive": "ドライブを見る" "write:drive": "ドライブを操作する" "read:favorites": "お気に入りを見る" "write:favorites": "お気に入りを操作する" "read:following": "フォローの情報を見る" "write:following": "フォロー・フォロー解除する" "read:messaging": "チャットを見る" "write:messaging": "チャットを操作する" "read:mutes": "ミュートを見る" "write:mutes": "ミュートを操作する" "write:notes": "ノートを作成・削除する" "read:notifications": "通知を見る" "write:notifications": "通知を操作する" "read:reactions": "リアクションを見る" "write:reactions": "リアクションを操作する" "write:votes": "投票する" "read:pages": "ページを見る" "write:pages": "ページを操作する" "read:page-likes": "ページのいいねを見る" "write:page-likes": "ページのいいねを操作する" "read:user-groups": "ユーザーグループを見る" "write:user-groups": "ユーザーグループを操作する" "read:channels": "チャンネルを見る" "write:channels": "チャンネルを操作する" "read:gallery": "ギャラリーを見る" "write:gallery": "ギャラリーを操作する" "read:gallery-likes": "ギャラリーのいいねを見る" "write:gallery-likes": "ギャラリーのいいねを操作する" "read:flash": "Playを見る" "write:flash": "Playを操作する" "read:flash-likes": "Playのいいねを見る" "write:flash-likes": "Playのいいねを操作する" "read:admin:abuse-user-reports": "ユーザーからの通報を見る" "write:admin:delete-account": "ユーザーアカウントを削除する" "write:admin:delete-all-files-of-a-user": "ユーザーのすべてのファイルを削除する" "read:admin:index-stats": "データベースインデックスに関する情報を見る" "read:admin:table-stats": "データベーステーブルに関する情報を見る" "read:admin:user-ips": "ユーザーのIPアドレスを見る" "read:admin:meta": "インスタンスのメタデータを見る" "write:admin:reset-password": "ユーザーのパスワードをリセットする" "write:admin:resolve-abuse-user-report": "ユーザーからの通報を解決する" "write:admin:send-email": "メールを送る" "read:admin:server-info": "サーバーの情報を見る" "read:admin:show-moderation-log": "モデレーションログを見る" "read:admin:show-user": "ユーザーのプライベートな情報を見る" "write:admin:suspend-user": "ユーザーを凍結する" "write:admin:unset-user-avatar": "ユーザーのアバターを削除する" "write:admin:unset-user-banner": "ユーザーのバーナーを削除する" "write:admin:unsuspend-user": "ユーザーの凍結を解除する" "write:admin:meta": "インスタンスのメタデータを操作する" "write:admin:user-note": "モデレーションノートを操作する" "write:admin:roles": "ロールを操作する" "read:admin:roles": "ロールを見る" "write:admin:relays": "リレーを操作する" "read:admin:relays": "リレーを見る" "write:admin:invite-codes": "招待コードを操作する" "read:admin:invite-codes": "招待コードを見る" "write:admin:announcements": "お知らせを操作する" "read:admin:announcements": "お知らせを見る" "write:admin:avatar-decorations": "アバターデコレーションを操作する" "read:admin:avatar-decorations": "アバターデコレーションを見る" "write:admin:federation": "連合に関する情報を操作する" "write:admin:account": "ユーザーアカウントを操作する" "read:admin:account": "ユーザーに関する情報を見る" "write:admin:emoji": "絵文字を操作する" "read:admin:emoji": "絵文字を見る" "write:admin:queue": "ジョブキューを操作する" "read:admin:queue": "ジョブキューに関する情報を見る" "write:admin:promo": "プロモーションノートを操作する" "write:admin:drive": "ユーザーのドライブを操作する" "read:admin:drive": "ユーザーのドライブの関する情報を見る" "read:admin:stream": "管理者用のWebsocket APIを使う" "write:admin:ad": "広告を操作する" "read:admin:ad": "広告を見る" "write:invite-codes": "招待コードを作成する" "read:invite-codes": "招待コードを取得する" "write:clip-favorite": "クリップのいいねを操作する" "read:clip-favorite": "クリップのいいねを見る" "read:federation": "連合に関する情報を取得する" "write:report-abuse": "違反を報告する" "write:chat": "チャットを操作する" "read:chat": "チャットを閲覧する" ================================================ FILE: locales/th-TH.yml ================================================ noScript: "JavaScript ถูกปิดใช้งานอยู่ กรุณาเปิดใช้งาน JavaScript เนื่องจากมันจำเป็นต่อการทำงานของเว็บไซต์" learnMore: "เรียนรู้เพิ่มเติม" loading: "กำลังโหลด…" clickToExpand: "(คลิกเพื่อขยาย)" copy: "คัดลอก" share: "แบ่งปัน" note: "โน้ต" other: "อื่นๆ" add: "เพิ่ม" generate: "สร้าง" download: "ดาวน์โหลด" browse: "ดู" settings: "ตั้งค่า" goToLegacyHub: "Misskey Hub รุ่นเก่า (Legacy)" contactUs: "ติดต่อเรา" detail: "รายละเอียด" lastUpdate: "อัปเดตล่าสุด" empty: "ไม่มีเนื้อหา" threeDimensionModel: "โมเดล 3 มิติ" clickToShow: "คลิกเพื่อแสดง" preview: "แสดงตัวอย่าง" scrollable: "สิ่งนี้สามารถเลื่อนขึ้นเลื่อนลงได้" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "ไม่พบหน้า" notFoundDesc: "ไม่พบหน้าที่ค้นหา กรุณาตรวจสอบ URL อีกครั้ง" generalError: "เกิดข้อผิดพลาด" generalErrorDesc: "หากนี่ไม่ใช่สิ่งที่ตั้งใจไว้ให้เกิด กรุณารายงานข้อผิดพลาดที่ด้านล่างนี้" reportProblem: "รายงานปัญหา" goToTop: "กลับไปหน้าหลัก" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – เว็บไซต์ทางการของโครงการ Misskey" defaultTitleTagline: "เครือข่ายที่ขยายด้วยโน้ต" defaultDescription: "“เครือข่ายที่ขยายด้วยโน้ต” เว็บไซต์ทางการของ ‘บริการเครือข่ายสังคมแบบกระจายศูนย์ Misskey’ ที่ซึ่งรวบรวมวิธีเริ่มต้นใช้งาน, รายชื่อเซิร์ฟเวอร์ และข้อมูลที่ครบถ้วนเกี่ยวกับ Misskey!" _nav: servers: "เซิร์ฟเวอร์" docs: "เอกสาร" news: "ข่าว" other: "เพิ่มเติม!" switchLang: "ตั้งค่าภาษา" _landing: _hero: description: "Misskey (มิสคีย์) เป็นแพลตฟอร์มเครือข่ายสังคมแบบกระจายศูนย์ที่เป็นโอเพนซอร์ส" gettingStarted: "เริ่มกันเลย" _keyFeatures: _open: title: "โอเพนซอร์ส" description: "Misskey เป็นซอฟต์แวร์แบบโอเพนซอร์สที่ใครก็สามารถใช้ได้อย่างอิสระ" _federated: title: "กระจายศูนย์" description: "Misskey ใช้โปรโตคอลแบบกระจายศูนย์ ทำให้ชุมชนจากเซิร์ฟเวอร์ที่แตกต่างกันสามารถเชื่อมต่อกันได้" _powerful: title: "ทรงพลัง" description: "Misskey มีฟังก์ชันหลากหลายในระดับโปรดักชัน และสามารถปรับแต่งได้อย่างละเอียด ไม่ว่าจะเป็นผู้ใช้จำนวนมากหรือจำนวนน้อย ก็สามารถเป็นโซลูชันที่เหมาะสมได้" _introduction: title: "มาสร้างด้วย Misskey กันเถอะ" description: "Misskey ช่วยให้คุณสามารถสร้างแพลตฟอร์มเฉพาะของตัวเองได้อย่างง่ายดาย โดยไม่ต้องใช้การติดตั้งที่ซับซ้อนใด ๆ เนื่องจากบริการที่คุณสร้างขึ้นนั้นเป็นของคุณเองทั้งหมด จึงไม่มีความเสี่ยงที่จะต้องพึ่งพาแพลตฟอร์มที่มีอยู่แล้วสำหรับตัวตนออนไลน์ของคุณได้เลย" tip: "Misskey นั้นไม่ใช่เว็บสำเร็จรูป แต่เป็นซอฟต์แวร์พื้นฐานที่จะให้คุณสร้างแพลตฟอร์มของตัวเอง เหมือนกับคล้ายๆที่ WordPress นั้นใช้สร้างเว็บ " _decenterized: title: "Misskey คือ{0}" description: "Misskey เป็นโครงการฟรีและโอเพนซอร์ส ที่เปิดให้ใครก็สามารถสร้างเซิร์ฟเวอร์ Misskey ได้อย่างอิสระ ก่อเกิดเซิร์ฟเวอร์หลากหลายแพร่กระจายทั่วอินเทอร์เน็ต อีกฟีเจอร์ที่สำคัญคือ Misskey ได้นำโปรโตคอลการสื่อสารแบบกระจายศูนย์ที่เรียกว่า {0} มาใช้ ดังนั้นไม่ว่าจะเลือกเซิร์ฟเวอร์ใดก็สามารถติดต่อกับผู้ใช้จากเซิร์ฟเวอร์อื่นได้ นี่คือสาเหตุที่ Misskey ถูกเรียกว่าเป็นแพลตฟอร์มแบบกระจายศูนย์ ซึ่งแตกต่างจากบริการอื่นๆ เช่น Twitter ที่เผยแพร่โดยผู้ควบคุมดูแลกลุ่มเดียว ภายใต้ URL เดียว | เซิร์ฟเวอร์ต่างๆ จะมีหัวข้อหลัก กลุ่มผู้ใช้ และภาษาที่แตกต่างกันไป การค้นหาเซิร์ฟเวอร์ที่เหมาะกับตัวเองจึงเป็นหนึ่งในความสนุก (และแน่นอน! การตั้งเซิร์ฟเวอร์เองก็สนุกเช่นกัน)" activityPub: "ActivityPub" _useCases: title: "วิธีการใช้งาน" single: "เซิร์ฟเวอร์ส่วนตัวที่ใช้เก็บและแชร์ข้อมูล" official: "เซิร์ฟเวอร์เฉพาะสำหรับบัญชีโปรโมทของบริษัท" community: "เซิร์ฟเวอร์ชุมชนสำหรับคนที่สนใจเรื่องเดียวกัน" inHouse: "เครือข่ายโซเชียลภายในบริษัทบนเซิร์ฟเวอร์ส่วนตัว" _free: title: "Misskey เป็น.....และจะเป็นตลอดไป.....ทั้งฟรีและเปิดกว้าง" description: "Misskey นั้นเริ่มต้นขึ้นตั้งแต่ปี 2014 และจะยังคงเป็น โอเพนซอร์ส(OSS) ต่อไปในอนาคต ทุกคนสามารถเข้าถึงซอร์สโค้ด เพื่อนำไปใช้ แก้ไข หรือแบ่งปันได้อย่างเสรีที่ Misskey นั้นสามารถเป็น โอเพนซอร์ส OSS ได้จนถึงทุกวันนี้ นั้นก็เพราะพลังการสนับสนุนจากชุมชนล้วนๆ" _features: _root: title: "ฟีเจอร์หลัก" description: "Misskey มีฟีเจอร์ให้เลือกใช้ตั้งแต่แบบพื้นๆ จนถึงแบบเจ๋งๆ นี่คือบางฟีเจอร์ที่เราอยากแนะนำ" _note: title: "โน้ต" description: "ใน Misskey การโพสต์ของผู้ใช้จะเรียกว่า “โน้ต” ซึ่งสามารถตอบกลับ อ้างอิง แนบภาพ วิดีโอ เสียง ไม่ก็ไฟล์ ฯลฯ ได้ตามต้องการ" _federation: title: "สหพันธ์" description: "ใช้โปรโตคอลกระจายศูนย์ที่เป็นโอเพนซอร์สที่เรียกว่า ActivityPub จึงสามารถติดต่อกับเซิร์ฟเวอร์ Misskey อื่นๆ รวมถึงซอฟต์แวร์อื่นๆ ที่รองรับ ActivityPub ได้อีกด้วย" _reaction: title: "รีแอคชั่น" description: "“รีแอคชั่น” ให้กับโน้ตเพื่อสื่อสารความรู้สึกได้อย่างง่ายดายสะดวกสะบาย" _customEmojis: title: "อีโมจิที่กำหนดเอง" description: "สามารถสร้างเอโมจิแบบเฉพาะของเซิร์ฟเวอร์ ที่สามารถนำไปใช้ในสถานที่ต่างๆ ของ Misskey ได้" _channel: title: "ช่อง" description: "หากสร้างช่อง จะสามารถสร้างคอมมูนิตี้ภายในเซิร์ฟเวอร์ที่มีธีมร่วมกันได้" _antenna: title: "เสาอากาศ" description: "สามารถสร้างไทม์ไลน์ที่รวบรวมเฉพาะโน้ตที่มีคำเฉพาะเจาะจงได้" _drive: title: "ไดรฟ์" description: "มีหน้าจัดการไฟล์ที่อัปโหลดไว้ ทำให้จัดระเบียบภาพสุดโปรดในโฟลเดอร์หรือนำไปแบ่งปันอีกครั้งได้อย่างง่ายดาย" _2fa: title: "การยืนยันตัวตนหลายชั้น" description: "รองรับเทคโนโลยีต่างๆ เพื่อเพิ่มความปลอดภัยให้บัญชี เช่น การยืนยันตัวตนหลายชั้นโดยใช้รหัสผ่านแบบใช้ครั้งเดียว หรือการยืนยันแบบ Passkey โดยใช้กุญแจทางกายภาพ" _charts: title: "แผนภูมิ" description: "Misskey มาพร้อมกับเครื่องมือสร้างแผนภูมิในตัว ซึ่งช่วยให้มองเห็นการใช้งานของเซิร์ฟเวอร์และข้อมูลอื่นๆ ได้อย่างง่ายดาย" _branding: title: "สร้างแบรนด์" description: "สามารถปรับแต่งโลโก้ ไอคอน ธีมของเซิร์ฟเวอร์ เพื่อทำแบรนดิ้งของ SNS ได้อย่างง่ายดาย" _roles: title: "บทบาท" description: "เมื่อใช้บทบาท สามารถปรับแต่งสิทธิ์ของผู้ใช้แต่ละคนได้อย่างละเอียด นอกจากนี้ หากใช้บทบาทตามเงื่อนไข ก็สามารถมอบบทบาทให้ผู้ใช้ที่ตรงกับเงื่อนไขโดยอัตโนมัติได้ สามารถตั้งตราบทบาทเพื่อช่วยสร้างรายได้ให้กับเซิร์ฟเวอร์ได้ด้วย" _moderation: title: "ดูแลจัดการ" description: "มาพร้อมฟังก์ชันดูแลจัดการที่ครบครัน เพื่อช่วยในการบริหารเซิร์ฟเวอร์" _privacy: title: "ความเป็นส่วนตัว" description: "สามารถควบคุมขอบเขตการเผยแพร่เนื้อหาได้อย่างยืดหยุ่น ด้วยการตั้งค่าความเป็นส่วนตัวที่หลากหลาย" _multiPurpose: title: "ไม่ว่าคนเดียว หรือทุกคน" description: "แน่นอนว่าใช้งานในฐานะ SNS ที่รองรับผู้ใช้จำนวนมากได้ และยังรองรับการใช้งานเป็นเซิร์ฟเวอร์ส่วนบุคคลด้วย จะกลายเป็นฐานที่มั่นอันทรงพลังของคุณ เพื่อเชื่อมต่อกับ Fediverse" _monetization: title: "สร้างรายได้" description: "มีฟีเจอร์ช่วยสร้างรายได้ให้เซิร์ฟเวอร์ เช่น การแสดงโฆษณา เพื่อมุ่งสู่การดำเนินงานอย่างยั่งยืน" _oss: title: "Mi ❤️ OSS" description: "Misskey เป็นโอเพนซอร์สมาตั้งแต่อดีต และจะยังคงเป็นโอเพนซอร์สต่อไป ใครก็สามารถใช้งานซอร์สโค้ดได้ฟรีและเสรี นอกจากนี้ Misskey Project ยังมีการสนับสนุนกิจกรรมช่วยเหลือ OSS อื่นๆ อย่างแข็งขัน" _battleTested: title: "เชื่อถือได้" description: "Misskey ได้ถูกใช้งานจริงในสภาพแวดล้อมจริงมากว่า 10 ปี (battle-tested) และภูมิใจในความน่าเชื่อถือที่สูงนี้" _featuresServer: _root: title: "ฟังก์ชันของเซิร์ฟเวอร์" description: "คุณสมบัติของแบ็กเอนด์ที่ขับเคลื่อน Misskey" _easyInstall: title: "ติดตั้งง่าย" description: "นอกจากติดตั้งได้ด้วยคำสั่งง่ายๆ แล้วหากใช้บริการโฮสติ้งจากผู้บริการต่างๆ ยังช่วยลดภาระการดูแลได้ด้วย" _easySetup: title: "ตั้งค่าก็ง่าย" description: "การตั้งค่าเซิร์ฟเวอร์ Misskey ไม่ต้องการการตั้งค่าที่ซับซ้อน เริ่มใช้งานได้ทันที และยังสามารถตั้งค่าขั้นสูงตามความต้องการได้" _api: title: "API" description: "ฟังก์ชันทั้งหมดของ Misskey สามารถใช้งานผ่าน HTTP API ได้ จึงเชื่อมต่อกับแอปอื่นๆ ได้สะดวก ยิ่งไปกว่านั้น ยังรองรับ Webhook และการเชื่อมต่อ WebSocket ทำให้สามารถรับเหตุการณ์จาก Misskey แบบเรียลไทม์ได้" _relay: title: "รองรับรีเลย์" description: "รองรับการเชื่อมต่อกับเซิร์ฟเวอร์รีเลย์ที่เป็นตัวกลางส่งต่อกิจกรรมใน Fediverse ทำให้สามารถรวบรวมข้อมูลได้โดยไม่ต้องเชื่อมต่อกับเซิร์ฟเวอร์จำนวนมากด้วยตนเอง" _nodejs: title: "แบ็กเอนด์ Node.js" description: "Misskey ใช้ Node.js เป็นแบ็กเอนด์ ทำงานได้เร็วและเบา" _postgresql: title: "PostgreSQL" description: "ใช้ PostgreSQL เป็นฐานข้อมูลหลัก เพื่อการจัดการข้อมูลที่แข็งแกร่ง" _fullTextSearch: title: "ค้นหาทั้งข้อความ" description: "PostgreSQLのほか、Meilisearchなどの全文検索エンジンを使用した全文検索を行うことができます。" _jobQueue: title: "คิวงานประสิทธิภาพสูง" description: "ใช้ BullMQ สำหรับคิวงาน ทำให้สามารถประมวลผลงานหลายๆ งานได้อย่างมีประสิทธิภาพบนหลายเซิร์ฟเวอร์ อีกทั้งอินสเปกเตอร์ที่พัฒนาโดย Misskey ถูกผนวกรวมในแผงควบคุม จึงจัดการได้โดยไม่ต้องพึ่งเครื่องมือภายนอก" _cdn: title: "รองรับ CDN" description: "รองรับการแคชทรัพยากรผ่าน CDN ภายนอก การลดคำขอไปยังเซิร์ฟเวอร์ช่วยลดภาระและลดต้นทุนได้" _ftt: title: "FTT" description: "ด้วย Fan-out Timeline Technology (FTT) สามารถสร้างไทม์ไลน์บน Redis เพื่อเพิ่มประสิทธิภาพได้" _rbt: title: "RBT" description: "ด้วย Reactions Buffering Technology (RBT) สามารถแคชข้อมูลรีแอคชั่นบน Redis เพื่อเพิ่มประสิทธิภาพได้" _scalable: title: "ขยายระบบได้" description: "รองรับการทำคลัสเตอร์โปรเซส การโหลดบาลานซ์ด้วยหลายเซิร์ฟเวอร์ และการจำลองฐานข้อมูล จึงรองรับการเพิ่มจำนวนผู้ใช้ได้" _seo: title: "SEO" description: "一部のコンテンツのSSRを行い、検索エンジンへインデックスさせることができるほか、OGPに対応しているのでソーシャルメディア上で共有された際のプレビューも可能です。もちろん、インデックスされたくないシチュエーションではクローラーを拒否する設定も可能です。" _ml: title: "การเรียนรู้ของเครื่อง" description: "ใช้ฟีเจอร์การเรียนรู้ของเครื่องในตัว เพื่อกรองสื่อที่มีเนื้อหาละเอียดอ่อนโดยอัตโนมัติ ช่วยลดภาระการบริหารจัดการ" _sentry: title: "รองรับ Sentry" description: "รองรับการเก็บเมตริกซ์ของเซิร์ฟเวอร์ด้วย Sentry ช่วยในการตรวจสอบทรัพยากรเซิร์ฟเวอร์ ตรวจสุขภาพ และบำรุงรักษา" _featuresClient: _root: title: "WebUI" description: "แนะนำคุณสมบัติของเว็บฟรอนต์เอนด์ความสามารถสูง (Misskey Web) ที่มาพร้อมกับ Misskey" _responsive: title: "Responsive UI" description: "UI ถูกออกแบบโดยใช้ระบบการออกแบบเฉพาะที่ล้ำสมัย และถูกพัฒนาอย่างประณีตเพื่อให้แสดงผลและทำงานได้อย่างเหมาะสมที่สุดในแต่ละอุปกรณ์ ไม่ว่าจะเป็นเดสก์ท็อป แท็บเล็ต หรือสมาร์ตโฟน" _theme: title: "ธีม" description: "ใช้งาน Misskey ด้วยรูปลักษณ์ที่โปรดปราน รวมถึงรองรับโหมดมืดอย่างสมบูรณ์ อีกทั้งยังปรับแต่งธีมเองได้ละเอียดยิบตามต้องการ" _mfm: title: "MFM" description: "ในโน้ตสามารถใช้ภาษามาร์กอัปเฉพาะของ Misskey ที่เรียกว่า MFM เพื่อทำการตกแต่งข้อความ เช่น ทำตัวหนา แทรกลิงก์ หรือใส่การเคลื่อนไหวต่าง ๆ ด้วยไวยากรณ์ที่เรียบง่าย" _widgets: title: "วิดเจ็ต" description: "สามารถจัดวางวิดเจ็ตประเภทต่างๆ ได้อย่างอิสระ เข้าถึงข้อมูลที่ต้องการได้อย่างรวดเร็ว" _deck: title: "UI แบบเด็ค" description: "ด้วยการใช้ UI แบบเด็ค ก็สามารถปรับแต่ง UI ได้ลึกขึ้น และสร้างไคลเอนต์แบบเฉพาะของตัวเองได้" _embed: title: "ฝังบนเว็บไซต์อื่น" description: "สามารถฝังโน้ต ไทม์ไลน์ ฯลฯ ลงในเว็บไซต์ภายนอกเพื่อแสดงผลได้" _realtimeMode: title: "โหมดเรียลไทม์" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "แจ้งเตือนแบบพุช" description: "รองรับการแจ้งเตือนแบบพุช จึงสามารถรับการแจ้งเตือนจากเซิร์ฟเวอร์ได้แบบเรียลไทม์" _multiAccounts: title: "รองรับหลายบัญชี" description: "สามารถสลับใช้งานหลายบัญชีได้อย่างง่ายดาย" _watermark: title: "ウォーターマーク付与機能" description: "投稿する画像にウォーターマークを自動で付与して、簡単にクレジット情報を残すことができます。ウォーターマークは自由にカスタマイズ可能です。" _imageEditing: title: "แก้ไขภาพ" description: "画像にエフェクトを追加し、カラーグレーディングを行ったり、様々なクリエイティブな表現を行うことが可能です。" _achievements: title: "ความสำเร็จ" description: "Misskeyの機能を体験するモチベーションになり、オンボーディングに役立ちます。" _plugin: title: "ปลั๊กอิน" description: "สามารถติดตั้งปลั๊กอินที่ใช้ AiScript ที่ปลอดภัย เพื่อขยายความสามารถของไคลเอนต์" _settingsManagement: title: "จัดการการตั้งค่าที่ยืดหยุ่น" description: "สามารถเขียนทับการตั้งค่าไคลเอนต์ได้ตามใจเฉพาะแต่ละบัญชีได้ แบ่งปัน/ซิงค์การตั้งค่าข้ามอุปกรณ์หลายเครื่องได้ นอกจากนี้ ยังสามารถสำรองข้อมูลการตั้งค่าโดยอัตโนมัติได้อีกด้วย" _pwa: title: "PWA" description: "Misskey Web ปฏิบัติตามมาตรฐาน Progressive Web Apps (PWA) จึงสามารถทำงานบนอุปกรณ์เหมือนแอปเนทีฟได้" _i18n: title: "รองรับหลายภาษา" description: "สามารถใช้งานไคลเอนต์ในหลายภาษาได้" _featuresUpcoming: _root: title: "เตรียมเปิดให้ใช้เร็วๆ นี้" description: "แนะนำฟีเจอร์ที่จะมีในอนาคต" _jwt: title: "ยืนยันตัวตนด้วย JWT" description: "ใช้งานการยืนยันตัวตนแบบ Stateless โดยใช้ JSON Web Token (JWT) เพื่อให้การตรวจสอบคำขอมีความปลอดภัยและรวดเร็วยิ่งขึ้น" _newBackend: title: "แบ็กเอนด์ที่เบากว่าเดิม" description: "กำลังพัฒนาแบ็กเอนด์รูปแบบใหม่ทั้งหมด เพื่อให้ทำงานได้เร็วขึ้นและเบาขึ้น" _vueVapor: title: "รองรับโหมด Vapor" description: "รองรับกลยุทธ์การคอมไพล์แบบใหม่ของ Vue ซึ่งเป็นเฟรมเวิร์กที่ใช้ในฟรอนต์เอนด์ เพื่อให้ได้ Web UI ที่เบากว่าเดิม" _getStarted: title: "เริ่มใช้ Misskey กันเต๊อะ" _find: title: "ค้นหาเซิร์ฟเวอร์" list: "รายการเซิร์ฟเวอร์" _create: title: "สร้างเซิร์ฟเวอร์" guide: "คู่มือการจัดเตรียม" _docs: title: "เรียนรู้เพิ่มเติม" docs: "ดูเอกสาร" _dev: title: "ร่วมพัฒนา" _donation: title: "บริจาค" description: "เนื่องจาก Misskey เป็นโครงการที่ไม่แสวงหาผลกำไร การพัฒนาจึงต้องพึ่งพาการบริจาคจากทุกท่าน หากชื่นชอบ Misskey และต้องการให้พัฒนาต่อไปได้ โปรดพิจารณาให้การสนับสนุน" _sponsors: title: "ผู้อุปถัมภ์" becomeASponsor: "ร่วมเป็นผู้อุปถัมภ์" _servers: title: "รายการเซิร์ฟเวอร์" description: "Misskey ไม่ใช่บริการโดดเดี่ยวแต่เป็นเครือข่ายแบบกระจายศูนย์ที่มีแต่ละเซิร์ฟเวอร์ให้บริการ ต้องสร้างบัญชีในเซิร์ฟเวอร์ที่เปิดให้บริการเพื่อใช้งาน Misskey" addYourServer: "เซิร์ฟเวอร์ที่คุณตั้งเองไม่มีในรายการใช่ไหม? เชิญลงทะเบียนที่ {0}!" addYourServerLink: "ตรงนี้" disclaimerTitle: "【สำคัญ】ข้อจำกัดความรับผิดชอบ" disclaimer: "รายการเซิร์ฟเวอร์นี้เป็นการแสดงเซิร์ฟเวอร์ Misskey ที่ค้นพบใน Fediverse โดยอัตโนมัติ และโดยหลักการแล้วจะไม่ได้รับการตรวจสอบด้วยมือคน เซิร์ฟเวอร์ที่แสดงที่นี่ไม่ได้รับการตรวจสอบหรือรับรองโดย Misskey Project ดังนั้นความเสียหายใดๆ ที่เกิดขึ้นกับผู้ใช้จากการเข้าถึงเซิร์ฟเวอร์เหล่านี้ Misskey Project จะไม่รับผิดชอบใดๆ ทั้งสิน" _system: fetchError: "ไม่สามารถดึงข้อมูลได้ กรุณาลองใหม่อีกครั้งในภายหลัง" _statistics: title: "สถิติเซิร์ฟเวอร์" description: "นำเสนอข้อมูลสถิติของเซิร์ฟเวอร์ Misskey ผ่านกราฟ" viewFullStats: "ดูสถิติแบบละเอียด" lang: "ภาษาหลัก" registerAcceptance: "วิธีการลงทะเบียนสมาชิกใหม่" version: "เวอร์ชั่น" notes: "จำนวนโน้ต" users: "จำนวนผู้ใช้" servers: "จำนวนเซิร์ฟเวอร์" _search: title: "ค้นหาขั้นสูง" all: "ทั้งหมด" query: "ค้นหาจากคีย์เวิร์ด" lang: "ภาษา" orderBy: "เรียงตาม" recomendded: "ค่าเริ่มต้น" notesCount: "จำนวนโน้ต" notesPer15Days: "จำนวนโน้ตต่อวัน (ฉลี่ย 15 วันล่าสุด)" usersCount: "จำนวนผู้ใช้" _registerAcceptance: title: "การรับลงทะเบียน" public: "เปิด" inviteOnly: "รับเชิญ" _list: notFound: "ไม่พบเซิร์ฟเวอร์ตรงกับเงื่อนไขที่ระบุไว้" showMore: "แสดงเพิ่มเติม" _view: title: "รูปแบบการแสดง" list: "รายการ" grid: "กริด" _docs: title: "เอกสาร" description: "ที่นี่เป็นแหล่งข้อมูลเกี่ยวกับ Misskey ซึ่งเป็นแพลตฟอร์มเครือข่ายสังคมแบบกระจายศูนย์ที่เป็นโอเพนซอร์ส ครอบคลุมตั้งแต่การใช้ Misskey อย่างไรให้มีประสิทธิภาพไปจนถึงข้อมูลสำหรับผู้ดูแลเซิร์ฟเวอร์และนักพัฒนาซอฟต์แวร์" indexTitle: "สารบาญ" _contribute: editThis: "แก้ไขหน้านี้" translateThis: "แปลภาษาหน้านี้" _aboutMisskey: title: "เกี่ยวกับ Misskey" description: "สำหรับผู้ที่เพิ่งรู้จัก Misskey หรือกำลังจะเริ่มใช้งาน! มาสำรวจการทำงานพื้นฐานและฟีเจอร์ต่างๆ ของ Misskey กันเถอะ" _changelog: title: "รายงานการแก้ไขปรับปรุง" description: "สามารถดูประวัติการอัปเดตเวอร์ชันของ Misskey ได้ มาตรวจสอบกันว่าในเวอร์ชันล่าสุดมีการเปลี่ยนแปลงอะไรบ้าง!" _donate: title: "บริจาคให้กับโครงการ" description: "Misskey เป็นซอฟต์แวร์โอเพนซอร์สที่ใช้งานได้ฟรี หากชื่นชอบมัน โปรดพิจารณาบริจาคเพื่อสนับสนุนให้มีการพัฒนาต่อไปได้" _forUsers: title: "สำหรับผู้ใช้ Misskey" _forAdmin: title: "สำหรับผู้ดูแลระบบเซิร์ฟเวอร์" _forDevelopers: title: "สำหรับนักพัฒนา" _prevNext: prev: "ก่อนหน้า" next: "ถัดไป" _toc: title: "เนื้อหาในหน้านี้" toPageTop: "กลับไปบนสุด" _steppedGuide: selectCourse: "เลือกคู่มือ" noImageInThisStep: "ขั้นตอนนี้ไม่มีภาพ" aiWellDone: "การดำเนินการเสร็จสิ้นแล้ว ขอบคุณที่ทำงานหนักนะคะ ♪" _blog: title: "บล็อก" description: "อัปเดตข้อมูลล่าสุดเกี่ยวกับ Misskey! (มีเฉพาะภาษาญี่ปุ่น)" back: "ย้อนกลับ" _content: tip: "เคล็ดลับ" warning: "ข้อควรระวัง" danger: "คำเตือน" preview: "แสดงตัวอย่าง" _other: title: "เพิ่มเติม!" description: "แนะนำทรัพยากรอื่นๆ ที่จะทำให้สนุกกับ Misskey มากขึ้น" _brandAssets: title: "ชุดสะสมทรัพย์สิน" description: "คอลเลกชันทรัพย์สินต่างๆ ของ Misskey เช่น โลโก้และไอคอน สามารถใช้งานได้ตามเงื่อนไขที่ใบสัญญาอนุญาตกำหนด" license: "ทรัพย์สินเหล่านี้สามารถใช้งานได้อย่างอิสระภายใต้ใบสัญญาอนุญาต CC BY-SA 🎉" assetsDirectory: "ทรัพย์สินทั้งหมดถูกจัดการบน {0}" logo: "โลโก้" icon: "ไอคอน" banner: "แบนเนอร์" avatarDecorationTemplate: "แม่แบบการตกแต่งอวตาร" fullColorPng: "ภาพ PNG สีสันสดใส" monoChromeSvg: "SVG ขาวดำ" _contact: title: "ติดต่อเรา" description: "ติดต่อ Misskey Project ได้ที่นี่" form: "โปรดตอบกลับผ่านฟอร์มนี้" formGoogleAccountRequired: "ขณะนี้ เพื่อป้องกันสแปม การส่งคำถามคำติดต่อต้องใช้บัญชี Google ขออภัยในความไม่สะดวกและขอบคุณที่เข้าใจ" formLink: "ไปยังฟอร์ม" faqTitle: "คำถามที่พบบ่อย" faqDescription: "ก่อนส่งคำถาม โปรดตรวจสอบว่าคำตอบที่คุณต้องการไม่มีอยู่ที่นี่" ifNothingIsFound: "หากไม่มีอะไรที่เกี่ยวข้องเลย…" _links: title: "ลิงก์" _github: title: "GitHub" description: "การพัฒนา Misskey ดำเนินการบน GitHub ส่งคำขอฟีเจอร์หรือรายงานข้อผิดพลาดได้จากที่นี่" _crowdin: title: "Crowdin" description: "การแปล Misskey ส่วนหลักและเอกสารจะได้รับการจัดการที่นี่ ขอบคุณสำหรับความร่วมมือจากทุกท่าน" _discord: title: "เซิร์ฟเวอร์ Discord" description: "สนุกกับการถามคำถามและพูดคุยเกี่ยวกับ Misskey ได้ที่นี่" _aiChan: title: "ไอ" description: "เว็บไซต์ของ “ไอ” สาวเรียกแขกหน้าตาสะสวยน่ารักประจำ Misskey" _tools: title: "ชุดสะสมเครื่องมือ" index: "หน้าหลักชุดสะสมเครื่องมือ" description: "เผยแพร่เครื่องมือมากประโยชนแก่ Misskey!" menuToggle: "เมนู" _forUsers: title: "สำหรับผู้ใช้ Misskey" _forAdmin: title: "สำหรับผู้ดูแลระบบเซิร์ฟเวอร์" _mfmPlayground: title: "มุมลองเล่น MFM" description: "ลองฝึกฝน MFM ได้อย่างอิสระ! จำลองหน้าจอการโพสต์ของ Misskey และหน้าจอโน้ต" preview: "แสดงตัวอย่าง" disclaimer: "การแสดงผลที่นี่อาจไม่ตรงตามที่ปรากฏในเว็บจริง การไฮไลต์ syntax โค้ดก็ไม่ได้รองรับเช่นกัน" mfm: "MFM" character: "{0} อักขระ" domain: "เซิร์ฟเวอร์ที่ใช้สำหรับจำลองการแสดงผล" noteIt: "โน้ต" clearEmojiCacheDescription: "เมื่อไม่สามารถแสดงเอโมจิได้" clearEmojiCache: "ล้างแคชเอโมจิ" _aidConverter: title: "เครื่องมือ aid/aidx" description: "สามารถแปลงและสร้างอัลกอริธึมการสร้าง ID แบบสุ่ม “aid” และ “aidx” ที่ใช้ภายใน Misskey ได้" aidToDate: "aid/aidx→วันเวลา" dateToAid: "วันเวลา→aid/aidx" mode: "id ที่จะสร้าง" date: "วันเวลา" inputByLine: "แปลง aid/aidx หลายอัน คั่นด้วยการขึ้นบรรทัดใหม่" _aboutUs: title: "เกี่ยวกับ Misskey Project" description: "ข้อมูลและสารสนเทศเกี่ยวกับ Misskey Project" _team: title: "สมาชิกนักพัฒนา" description: "แนะนำบุคคลที่มีส่วนร่วมในการพัฒนา Misskey" _core: title: "สมาชิกทีมหลัก" description: "สมาชิกทีมหลักเหล่านี้เป็นผู้ที่ดูแลโครงการที่เกี่ยวข้องกับ Misskey อย่างแข็งขัน" _coreEmeriti: title: "สมาชิกกิตติมศักดิ์ของทีมหลัก" description: "อดีตสมาชิกทีมหลักเหล่านี้เคยทำคุณูปการอันมีค่าล้ำยิ่ง" _contributors: title: "ผู้ร่วมสมทบ" description: "ทุกท่านเหล่านี้ได้มีส่วนร่วมอย่างสำคัญต่อ Misskey" seeMore: "ผู้มีส่วนร่วมทั้งหมด" _orgPartner: title: "พันธมิตรทางธุรกิจและองค์กร" description: "องค์กรและบริษัทเหล่าสนับสนุนด้านการเงินและเทคนิคสำหรับการพัฒนา Misskey" _hubTranslators: title: "นักท้องถิ่นภิวัตน์ของ Misskey Hub" description: "ทุกคนที่ช่วยสนับสนุนการแปลภาษาให้กับ Misskey Hub" _coreTranslators: title: "นักท้องถิ่นภิวัตน์ของ Misskey" description: "ทุกคนที่ช่วยสนับสนุนการแปลภาษาให้กับ Misskey" _i18n: _missing: title: "ร่วมด้วยช่วยแปล" description: "เอกสารนี้เป็นการแปลโดยชุมชน การแปลเอกสารสามารถทำได้ที่ {link} ขอบคุณสำหรับความร่วมมือนะคะ 🙏" linkLabel: "Crowdin" _share: title: "โน้ตไปยัง Misskey" chooseServer: "โปรดเลือกเซิร์ฟเวอร์ที่จะโน้ตไป" addServer: "เพิ่มเซิร์ฟเวอร์" domain: "โดเมนของเซิร์ฟเวอร์" compatibleWith: "รองรับ Misskey และบางส่วนของ Misskey รุ่นฟอร์ก" recommendedByWebsite: "คำแนะนำจากเว็บไซต์ที่แชร์" _noteVisibility: public: "สาธารณะ" home: "หน้าหลัก" followers: "ผู้ติดตาม" specified: "ไดเร็กต์" localOnly: "ไม่มีสหพันธ์" _shareLinkGenerator: title: "เครื่องสร้างปุ่มแบ่งปัน" description: "สร้างปุ่มแบ่งปันไปยัง Misskey โดยใช้บริการรีเลย์ปุ่มแบ่งปันของ Misskey Hub" body: "เนื้อความ" bodyWarning: "เพื่อให้สามารถแบ่งปันได้ทุกเซิร์ฟเวอร์ จึงไม่สามารถใช้เอโมจิที่กำหนดเองได้" url: "URL" urlCaption: "แทรกหลังเนื้อความหลัก (ของเสริม)" settings: "ตั้งค่าขั้นสูง" manualInstance: "เซิร์ฟเวอร์ที่แนะนำ" manualInstanceDescription: "เซิร์ฟเวอร์ที่ระบุที่นี่จะแสดงด้านบนสุดของหน้ารีเรย์ปุ่มแบ่งปัน ใช้เพื่อแนะนำผู้คนไปยังเซิร์ฟเวอร์ของคุณเองเป็นต้น" visibility: "การมองเห็น" recipents: "บัญชีของผู้รับข้อความแบบไดเร็กต์ (คั่นโดยขึ้นบรรทัดใหม่)" resultLink: "ผลลัพธ์การสร้างลิงก์" resultButton: "ตัวอย่างปุ่มแบ่งปัน" testLink: "ทดสอบลิงก์แบ่งปัน" typeSomethingToGetLink: "กรอกเนื้อความเพื่อสร้างลิงก์" typeSomethingToGetButton: "กรอกเนื้อความเพื่อสร้างปุ่ม" documentationIs: "ข้อมูลรายละเอียดของพารามิเตอร์และสเปกทางเทคนิคอื่นๆ สามารถดูได้ที่ {here}" here: "ตรงนี้" _goToMisskey: title: "ไปยัง Misskey Web" heading: "โปรดเลือกเซิร์ฟเวอร์ที่ต้องการเปิดหน้านี้" _avatarDecorationPreview: title: "เครื่องดูตัวอย่างการตกแต่งอวตาร" description: "สามารถตรวจสอบได้ว่าการตกแต่งอวตารจะแสดงผลได้อย่างสวยงามหรือไม่" preview: "ตัวอย่าง" settings: "ตั้งค่า" decoration: "ตัวตกแต่งที่ #{number}" placeholder: "โดยปุ่ม “เพิ่ม” สามารถเพิ่มการตกแต่งอวตารและดูตัวอย่างได้" _options: offsetX: "ปรับตำแหน่งแนวระนาบ (นอน)" offsetY: "ปรับตำแหน่งแนวระแนง (ตั้ง)" angle: "องศา" flip: "พลิกด้านซ้ายขวา" overlayTemplate: "ซ้อนทับแม่แบบ" _placeholder: username: "ไอ" noteText: "เพิ่งไปกินโดนัทเคลือบช็อคโกแลตมา 🍩😋" profileDescription: "ไอ เป็น AI ประจำ Misskey เองค่ะ! ยินดีที่ได้รู้จักนะคะ♪" _customEmojiPreview: title: "แสดงตัวอย่างเอโมจิที่กำหนดเอง" description: "ตรวจสอบความสามารถในการมองเห็นของเอโมจิแบบกำหนดเอง" preview: "แสดงตัวอย่าง" emoji: "เอโมจิที่ #{number}" placeholder: "โดยปุ่ม “เพิ่ม” สามารถเพิ่มเอโมจิแบบกำหนดเองและดูตัวอย่างได้" limitReactionLength: "จำกัดความกว้างสูงสุดของปฏิกิริยาและแสดงให้เล็กลง" _options: text: "เนื้อความโน้ต" textDescription: "อ้างเอโมจิฯ ที่เพิ่มเข้ามาด้วย {emoji_id}" _placeholder: noteText: "เอโมจิแบบกำหนดเองจะแสดงผลแบบนี้ → :emoji_preview_1:\nลองแก้ไขข้อความและทดสอบการใช้งานดูนะคะ ✨" _identiconGenerator: title: "เครื่องสร้างไอคอนเริ่มต้น" description: "สร้างไอคอนเริ่มต้นที่จะถูกตั้งเป็นรูปไอคอนเมื่อสมัครใช้งาน Misskey" userName: "ชื่อผู้ใช้" includeDomain: "กรุณาระบุชื่อผู้ใช้ที่ครบถ้วน ซึ่งรวมถึงชื่อโดเมนของเซิร์ฟเวอร์ด้วย" _historicalMaterials: title: "พิพิธภัณฑ์ประวัติศาสตร์" description: "เผยแพร่ข้อมูลทางประวัติศาสตร์เกี่ยวกับ Misskey ทั้งหมด" heroSubtitle: "โครงการฉลองครบรอบ 10 ปีของ Misskey" heroDescription: "Misskey เกิดขึ้นในปี 2014 เป็นบริการกระดานสนทนา ต่อมาอีก 10 ปี Misskey ได้กลายเป็นแพลตฟอร์มที่มีผู้ใช้จำนวนมาก\nที่นี่เราจะเผยแพร่ข้อมูลทางประวัติศาสตร์เกี่ยวกับ Misskey ทั้งหมด!" submissionTitle: "มีภาพเก่าๆ ของ Misskey ไหม?" submissionDescription: "หากมีเอกสารเกี่ยวกับ Misskey ในอดีต โปรดส่งมายังพิพิธภัณฑ์ของเรา\nหากสามารถใช้ GitHub ได้ กรุณาส่งเอกสารมาที่ {gh_issue} หรือหากไม่ ก็ส่งเอกสารมาที่ {'@'}syuilo{'@'}misskey.io" _miHubServerListPreview: title: "ตัวอย่างรายการเซิร์ฟเวอร์ Misskey Hub" description: "ตรวจสอบว่าเซิร์ฟเวอร์คุณจะปรากฏอย่างไรในรายการเซิร์ฟเวอร์ของ Misskey Hub ได้โดยการนำภาพมาใช้" name: "ชื่อเซิร์ฟเวอร์" serverDescription: "คำอธิบาย" icon: "ภาพไอคอน" bannerOrBg: "ภาพแบนเนอร์ หรือ ภาพพื้นหลัง" bannerOrBgDescription: "หากระบุทั้งภาพแบนเนอร์และภาพพื้นหลัง ภาพพื้นหลังจะได้รับความสำคัญและแสดงผลก่อน แล้วจะแสดงเฉพาะเนื้อหาภาพที่พอดีกับอัตราส่วน 16:9 โดยอิงจากจุดกลาง" _api: _permissions: title: "สิทธิ์" description: "คำอธิบาย" _types: "read:account": "ดูข้อมูลบัญชี" "write:account": "แก้ไขข้อมูลบัญชี" "read:blocks": "ดูรายชื่อผู้ใช้ที่ถูกบล็อก" "write:blocks": "แก้ไขรายชื่อผู้ใช้ที่ถูกบล็อก" "read:drive": "เข้าถึงไดรฟ์" "write:drive": "จัดการไดรฟ์" "read:favorites": "ดูรายการโปรด" "write:favorites": "แก้ไขรายการโปรด" "read:following": "ดูข้อมูลว่าใครที่คุณติดตาม" "write:following": "ติดตามหรือเลิกติดตามบัญชีอื่น" "read:messaging": "ดูแชท" "write:messaging": "เขียนหรือลบข้อความแชท" "read:mutes": "ดูรายชื่อผู้ใช้ที่ถูกปิดเสียง" "write:mutes": "แก้ไขรายชื่อผู้ใช้ที่ถูกปิดเสียง" "write:notes": "เขียนหรือลบโน้ต" "read:notifications": "ดูการแจ้งเตือน" "write:notifications": "จัดการแจ้งเตือน" "read:reactions": "ดูรีแอคชั่น" "write:reactions": "แก้ไขรีแอคชั่น" "write:votes": "โพล" "read:pages": "ดูหน้า" "write:pages": "แก้ไขหน้า" "read:page-likes": "ดูหน้าที่ถูกใจ" "write:page-likes": "แก้ไขหน้าที่ถูกใจ" "read:user-groups": "ดูกลุ่มผู้ใช้" "write:user-groups": "แก้ไขกลุ่มผู้ใช้" "read:channels": "ดูช่อง" "write:channels": "แก้ไขช่อง" "read:gallery": "ดูแกลเลอรี" "write:gallery": "แก้ไขแกลเลอรี" "read:gallery-likes": "ดูแกลเลอรีที่ถูกใจ" "write:gallery-likes": "แก้ไขแกลเลอรีที่ถูกใจ" "read:flash": "ดู Play" "write:flash": "แก้ไข Play" "read:flash-likes": "ดู Play ที่ถูกใจ" "write:flash-likes": "แก้ไข Play ที่ถูกใจ" "read:admin:abuse-user-reports": "ดูรายงานจากผู้ใช้" "write:admin:delete-account": "ลบบัญชีผู้ใช้" "write:admin:delete-all-files-of-a-user": "ลบไฟล์ทั้งหมดของผู้ใช้" "read:admin:index-stats": "ดูข้อมูลเกี่ยวกับดัชนีฐานข้อมูล" "read:admin:table-stats": "ดูข้อมูลเกี่ยวกับตารางในฐานข้อมูล" "read:admin:user-ips": "ดูที่อยู่ IP ของผู้ใช้" "read:admin:meta": "ดูข้อมูลอภิพันธุ์ของอินสแตนซ์" "write:admin:reset-password": "รีเซ็ตรหัสผ่านของผู้ใช้" "write:admin:resolve-abuse-user-report": "แก้ไขปัญหารายงานจากผู้ใช้" "write:admin:send-email": "ส่งอีเมล" "read:admin:server-info": "ดูสารสนเทศของเซิร์ฟเวอร์" "read:admin:show-moderation-log": "ดูปูมการควบคุมดูแล" "read:admin:show-user": "ดูข้อมูลส่วนตัวของผู้ใช้" "write:admin:suspend-user": "ระงับผู้ใช้" "write:admin:unset-user-avatar": "ลบอวตารผู้ใช้" "write:admin:unset-user-banner": "ลบแบนเนอร์ผู้ใช้" "write:admin:unsuspend-user": "ยกเลิกการระงับผู้ใช้" "write:admin:meta": "จัดการข้อมูลอภิพันธุ์ของอินสแตนซ์" "write:admin:user-note": "จัดการโน้ตการกลั่นกรอง" "write:admin:roles": "จัดการบทบาท" "read:admin:roles": "ดูบทบาท" "write:admin:relays": "จัดการรีเลย์" "read:admin:relays": "ดูรีเลย์" "write:admin:invite-codes": "จัดการรหัสเชิญ" "read:admin:invite-codes": "ดูรหัสเชิญ" "write:admin:announcements": "จัดการประกาศ" "read:admin:announcements": "ดูประกาศ" "write:admin:avatar-decorations": "จัดการการตกแต่งอวตาร" "read:admin:avatar-decorations": "ดูการตกแต่งอวตาร" "write:admin:federation": "จัดการข้อมูลเกี่ยวกับสหพันธ์" "write:admin:account": "จัดการบัญชีผู้ใช้" "read:admin:account": "ดูข้อมูลเกี่ยวกับผู้ใช้" "write:admin:emoji": "จัดการเอโมจิ" "read:admin:emoji": "ดูเอโมจิ" "write:admin:queue": "จัดการคิวงาน" "read:admin:queue": "ดูข้อมูลเกี่ยวกับคิวงาน" "write:admin:promo": "จัดการโน้ตโปรโมชั่น" "write:admin:drive": "จัดการไดรฟ์ของผู้ใช้" "read:admin:drive": "ดูข้อมูลเกี่ยวกับไดรฟ์ของผู้ใช้" "read:admin:stream": "ใช้ Websocket API สำหรับผู้ดูแลระบบ" "write:admin:ad": "จัดการโฆษณา" "read:admin:ad": "ดูโฆษณา" "write:invite-codes": "สร้างรหัสเชิญ" "read:invite-codes": "รับรหัสเชิญ" "write:clip-favorite": "จัดการคลิปที่ถูกใจ" "read:clip-favorite": "ดูคลิปที่ถูกใจ" "read:federation": "รับข้อมูลเกี่ยวกับสหพันธ์" "write:report-abuse": "รายงานการละเมิด" "write:chat": "ควบคุมการแชท" "read:chat": "เปิดอ่านแชท" ================================================ FILE: locales/zh-CN.yml ================================================ noScript: "JavaScript 目前处于禁用状态。必须启用 JavaScript 才能浏览网站。" learnMore: "了解更多" loading: "加载中…" clickToExpand: "(点击以展开)" copy: "复制" share: "分享" note: "帖子" other: "其他" add: "添加" generate: "生成" download: "下载" browse: "查看" settings: "设置" goToLegacyHub: "旧 Misskey Hub" contactUs: "联系我们" detail: "详情" lastUpdate: "最近更新" empty: "暂无内容" threeDimensionModel: "3D模型" clickToShow: "点击以显示" preview: "预览" scrollable: "可以滚动" serverListUnderMaintenance: "服务器列表当前正在维护中。" _error: notFound: "找不到页面" notFoundDesc: "找不到您要查找的页面,请检查 URL。" generalError: "发生错误" generalErrorDesc: "如果此操作并非出于您本意,请根据指引将问题报告给我们。" reportProblem: "报告问题" goToTop: "返回主页" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Misskey项目官方网站" defaultTitleTagline: "通过帖子联系在一起的网络" defaultDescription: "Misskey 是一个去中心化社交网络服务的官方网站,提供大量有关 Misskey 的信息,包括如何启动 Misskey 和服务器列表!" _nav: servers: "服务器" docs: "文档" news: "新闻" other: "更多!" switchLang: "语言设置" _landing: _hero: description: "Misskey是一个去中心化开源社交平台。" gettingStarted: "开始" _keyFeatures: _open: title: "开放" description: "Misskey是一款开源的软件,任何人都可以自由地使用Misskey。" _federated: title: "去中心化" description: "Misskey 采用去中心化协议,将不同服务器上的社区连接起来。" _powerful: title: "功能强大" description: "Misskey具备着多种多样的产品级功能,可依照需求进行精细化定制。无论人数多少,都是最合适您的解决方案。" _introduction: title: "用 Misskey 创作吧" description: "使用 Misskey,您无需进行繁琐的开发,即可轻松构建自己的专属平台。通过 Misskey 创建的服务完全归您所有,因此也无需承担在信息发布方面对现有平台的依赖风险。" tip: "Misskey 并非“一项网络服务本身”,而是用于构建微型博客服务的“基础软件”。这就好比您使用 WordPress 这类软件来创建网站一样。" _decenterized: title: "Misskey 是{0}" description: "Misskey 是一个自由开放的项目,任何人都可以自由地使用 Misskey 创建服务器,因此互联网上已经诞生了各种各样的服务器。 此外,Misskey 实现了一个名叫{0}的分布式通信协议。因此,无论您选择哪台服务器,都可以与其他服务器上的用户交互。 这就是它被称为去中心化的原因,也是它与 Twitter 等其他服务的根本不同之处。 不同服务器的主要话题、用户群和语言各不相同,找到适合自己的服务器也是乐趣之一(当然,创建自己的服务器也很有趣哦)。" activityPub: "ActivityPub" _useCases: title: "可以这样使用" single: "用于信息收集与发布的个人专属服务器" official: "用于开设公司宣传账号的专属服务器" community: "面向有相同兴趣用户的社区服务器" inHouse: "用作内部社交网络的私有服务器" _free: title: "Misskey 永久免费且开放" description: "自2014年开发之初,直至未来,Misskey始终是一款公开程序源代码的开源软件(OSS)。此外,任何人都可以免费、自由地使用其源代码。Misskey能够持续作为开源软件,离不开大家的支持。" _features: _root: title: "主要功能" description: "Misskey 有丰富的功能,从各家都有的功能到 Misskey 独有的功能。这里来介绍一些。" _note: title: "帖子" description: "在 Misskey 中,您可以引用其他帖子并附加图片、视频、音频或任何其他文件。" _federation: title: "联邦" description: "Misskey 实现了 ActivityPub 这一分布式协议,因此可以与其他支持 ActivityPub 的软件以及其他 Misskey 服务器交互。" _reaction: title: "回应" description: "您可以在帖子中添加 \"回应\",轻松传达和交流您的感受。" _customEmojis: title: "自定义表情" description: "可制作服务器专属的的自定义表情,并在Misskey内的各处使用。" _channel: title: "频道" description: "创建频道后,即可围绕共同主题在实例内建立专属社区。" _antenna: title: "天线功能" description: "创建仅收集包含特定词汇的帖子的时间线。" _drive: title: "网盘" description: "Misskey 的网盘功能可以让你轻松地将收藏收藏的图片上传到网盘、整理到文件夹中,以供分享。" _2fa: title: "多要素验证" description: "支持通过一次性密码多因素认证及物理密钥通行密钥认证等多种技术增强账户安全性。" _charts: title: "图表" description: "Misskey 内置图表引擎,可轻松实现服务器的使用情况和其他信息的可视化。" _branding: title: "品牌化" description: "通过定制实例标识、图标及主题,轻松实现社交平台品牌打造。" _roles: title: "角色" description: "通过角色功能可精细化配置用户权限;使用条件角色还能自动为匹配用户分配角色,并设置角色徽章助力实例变现。" _moderation: title: "内容审查" description: "原生内置完备的内容审查功能,助力实例高效运维。" _privacy: title: "隐私" description: "凭借丰富的隐私设置,灵活控制内容的公开范围。" _multiPurpose: title: "独自一人,或与众人同在" description: "既支持作为多用户社交平台的运营,也可用作个人实例。它将成为您在联邦宇宙中专属的枢纽节点。" _monetization: title: "收益化" description: "提供广告展示等实例变现辅助功能,助您实现可持续运营。" _oss: title: "我们❤开源" description: "Misskey始终并将持续开源,允许任何人免费自由使用源代码;同时Misskey项目积极为其他开源软件提供支援。" _battleTested: title: "可靠性" description: "Misskey历经逾十年实战环境检验,自信具备卓越可靠性。" _featuresServer: _root: title: "服务器功能" description: "支撑 Misskey 的后端实现特点。" _easyInstall: title: "轻松安装" description: "支持简单命令行安装,亦可选用托管服务,省去管理维护成本。" _easySetup: title: "设置也同样简单" description: "Misskey实例部署无需复杂配置,即可即刻投入运营;亦支持按需进行高级定制。" _api: title: "API" description: "Misskey所有功能均可通过HTTP API操作,便于第三方应用集成;更支持Webhook与WebSocket连接,实时获取事件推送。" _relay: title: "中继支持" description: "支持连接联邦宇宙中继服务器,自动同步全网活动数据,无需手动关联多个实例。" _nodejs: title: "Node.js 后端" description: "Misskey 后端采用 Node.js,运行高速且轻量。" _postgresql: title: "PostgreSQL" description: "主数据库采用 PostgreSQL,实现了稳健可靠的数据管理。" _fullTextSearch: title: "全文搜索" description: "除了 PostgreSQL,还可以使用 Meilisearch 等全文搜索引擎进行全文搜索。" _jobQueue: title: "高效任务队列" description: "采用 BullMQ 任务队列支持跨实例高效处理任务;深度集成的原生队列检视器可直接在控制台管理,无需第三方工具。" _cdn: title: "支持 CDN" description: "支持通过外部 CDN 缓存资源。通过减少服务器的请求,可以降低负载并削减成本。" _ftt: title: "FTT" description: "通过 Fan-out Timeline Technology (FTT),可在 Redis 上构建时间线,从而提升性能。" _rbt: title: "RBT" description: "通过 Reactions Buffering Technology (RBT),可将反应(Reaction)信息缓存在 Redis 上,从而提升性能。" _scalable: title: "可扩展" description: "支持进程集群、多服务器负载均衡以及数据库复制,能够应对用户增长。" _seo: title: "SEO" description: "可对部分内容进行服务端渲染(SSR),以便被搜索引擎收录。同时,也支持开放图谱协议(OGP),因此能在社交媒体上分享时显示预览。当然,在不想被收录的情况下,也可以设置拒绝爬虫访问。" _ml: title: "机器学习" description: "还可以利用内置的机器学习功能,自动过滤敏感媒体等内容,从而减轻运营负担。" _sentry: title: "支持 Sentry" description: "支持通过 Sentry 收集服务器指标,可用于服务器资源监控、健康检查和维护。" _featuresClient: _root: title: "WebUI" description: "为您介绍 Misskey 附带的高性能 Web 前端(Misskey Web)的特点。" _responsive: title: "响应式 UI" description: "UI 采用精致的原创设计系统,经过精心实现,可在桌面、平板和智能手机上提供最佳的显示效果和操作体验。" _theme: title: "主题" description: "可自由定制界面风格,完整支持深色模式,更能深度创作个性化主题。" _mfm: title: "MFM" description: "笔记可以使用一种名为 MFM 的 Misskey 专用标记语言。加粗、插入链接、添加动态效果等文本装饰,都可以通过简单的语法来实现。" _widgets: title: "小部件" description: "您可以自由地摆放各种类型的小部件,快速访问所需信息。" _deck: title: "Deck UI" description: "启用Deck界面可深度自定义UI,构建专属客户端。" _embed: title: "嵌入其他网站" description: "可以将笔记、时间线等内容嵌入到外部网站中进行显示。" _realtimeMode: title: "实时模式" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "推送通知" description: "支持推送通知,可以实时接收来自服务器的通知。" _multiAccounts: title: "支持多账户" description: "可以轻松切换并使用多个账户。" _watermark: title: "水印添加功能" description: "可为发布的图片自动添加水印,轻松保留版权信息。水印可自由自定义。" _imageEditing: title: "图片编辑功能" description: "可以为图片添加特效、进行色彩分级,或实现各种富有创意的表达。" _achievements: title: "成就" description: "这能激励用户体验 Misskey 的各项功能,并有助于新用户快速上手。" _plugin: title: "插件" description: "可安装使用安全 AiScript 的插件,以扩展客户端功能。" _settingsManagement: title: "灵活的设置管理" description: "除了可以为每个账户单独覆盖任意客户端设置外,还可以在多个设备之间共享和同步设置。此外,设置信息也可以自动备份。" _pwa: title: "PWA" description: "Misskey Web 遵循渐进式网络应用(PWA)标准,可在设备上像原生应用一样运行。" _i18n: title: "多语言支持" description: "客户端支持多种语言。" _featuresUpcoming: _root: title: "即将发布" description: "介绍即将推出的功能。" _jwt: title: "JWT 认证" description: "将采用 JSON Web Token (JWT) 实现无状态认证,以实现更安全、更快速的请求验证。" _newBackend: title: "更轻量的后端" description: "我们将对后端架构进行革新,旨在打造一个更轻量、更具扩展性的系统。" _vueVapor: title: "支持 Vapor 模式" description: "将支持前端框架 Vue 的新编译策略,以实现更轻量的 Web UI。" _getStarted: title: "开始使用 Misskey" _find: title: "寻找服务器" list: "服务器列表" _create: title: "创建服务器" guide: "配置指南" _docs: title: "了解更多信息" docs: "阅读文档" _dev: title: "参与开发" _donation: title: "请求捐助" description: "Misskey 是非营利的,我们依靠您的捐款来资助它的发展。所以如果您喜欢 Misskey,请支持我们,以便我们能够继续开发它!" _sponsors: title: "赞助者" becomeASponsor: "成为赞助商" _servers: title: "服务器列表" description: "Misskey 不是一个单一的服务,而是由一个个服务组成的分布式网络。欲使用 Misskey,您需要在提供服务的服务器上注册一个账户。" addYourServer: "看不到您的服务器? 请从 {0} 注册!" addYourServerLink: "这里" disclaimerTitle: "重要:免责声明" disclaimer: "此服务器列表是在 Fediverse 上自动发现的 Misskey 服务器列表,通常没有经过人工审核。 此处列出的服务器未经 Misskey 项目检查、验证或批准。因此, Misskey 项目不承担用户在此网站上造成的任何损失。" _system: fetchError: "无法加载。请稍后重试。" _statistics: title: "服务器统计数据" description: "下面是 Misskey 服务器的统计数据图表。" viewFullStats: "查看详细数据" lang: "主要语言" registerAcceptance: "注册模式" version: "版本" notes: "帖子数量" users: "用户数量" servers: "服务器数量" _search: title: "精确搜索" all: "全部" query: "按关键词搜索" lang: "语言" orderBy: "排序方式" recomendded: "默认" notesCount: "帖子数量" notesPer15Days: "每日帖子数(15 天平均值)" usersCount: "用户数" _registerAcceptance: title: "注册模式" public: "开放注册" inviteOnly: "邀请制" _list: notFound: "未找到符合指定条件的服务器。" showMore: "浏览更多" _view: title: "展示模式" list: "列表" grid: "网格" _docs: title: "文档" description: "Misskey 是一个开源的去中心化社交网络。本文档涵盖从如何很好地使用 Misskey 到面向服务器管理员和程序员的各种信息。" indexTitle: "目录" _contribute: editThis: "编辑本页面" translateThis: "翻译本页面" _aboutMisskey: title: "关于 Misskey" description: "对于刚接触 Misskey 的人和将来要使用它的人,让我们来了解一下它的基本机制和功能。" _changelog: title: "发布日志" description: "查看 Misskey 的历史版本,了解最新版本有哪些变化!" _donate: title: "为项目捐款" description: "Misskey 是一款免费开源软件。 如果您喜欢,请考虑捐赠,以便我们继续开发。" _forUsers: title: "面向 Misskey 用户" _forAdmin: title: "面向服务器运营者" _forDevelopers: title: "面向开发者" _prevNext: prev: "上一页" next: "下一页" _toc: title: "这页的内容" toPageTop: "回到顶部" _steppedGuide: selectCourse: "选择指南" noImageInThisStep: "在此步骤中没有图像" aiWellDone: "操作就完成了。大家辛苦了♪" _blog: title: "博客" description: "从Misskey开发本部,传达关于Misskey的最新情报和Tips等!(仅限日语)" back: "返回" _content: tip: "提示" warning: "注意" danger: "警告" preview: "预览" _other: title: "更多!" description: "介绍能让Misskey更有趣的其他资源。" _brandAssets: title: "资产集" description: "Misskey的logo,图标等资产的集合。在一定的许可下可以自由使用。" license: "资产在 cc by-sa 的授权下自由使用🎉" assetsDirectory: "所有资产都用{0}来管理。" logo: "Logo" icon: "图标" banner: "横幅" avatarDecorationTemplate: "头像挂件模板" fullColorPng: "全彩(PNG)" monoChromeSvg: "单色(SVG)" _contact: title: "联系我们" description: "在这里联系 Misskey Project" form: "请用这个表单咨询。" formGoogleAccountRequired: "现在为防止垃圾信息,发送询问需要 Google 账户。带来不便敬请谅解。" formLink: "访问表单" faqTitle: "常见问题" faqDescription: "在提交问题前,请确保您提出的问题未在此处列出。" ifNothingIsFound: "如果这些都不适用您..." _links: title: "链接" _github: title: "GitHub" description: "Misskey的开发在GitHub上进行。功能请求和bug报告等都可以在这里进行。" _crowdin: title: "Crowdin" description: "Misskey 本体和文档的翻译都在此处管理。请大家一起协助翻译。" _discord: title: "Discord 服务器" description: "可以讨论和 Misskey 相关的话题。" _aiChan: title: "小蓝" description: "Misskey 的看板娘,小蓝的网站。" _tools: title: "工具集" index: "工具集主页" description: "面向Misskey的便利工具正在公开中!" menuToggle: "菜单" _forUsers: title: "面向 Misskey 的用户" _forAdmin: title: "面向服务器管理员" _mfmPlayground: title: "MFM 试用角" description: "可以自由练习MFM。再现 Misskey 的投稿画面·帖子画面!" preview: "预览" disclaimer: "并非总是如图所示。 不支持代码语法高亮显示。" mfm: "MFM" character: "{0} 个字符" domain: "再现的服务器" noteIt: "帖子" clearEmojiCacheDescription: "不显示Emoji时" clearEmojiCache: "删除Emoji缓存" _aidConverter: title: "aid / aidx 工具" description: "可以转换和生成 Misskey 内部使用的随机 ID 生成算法「aid」和「aidx」" aidToDate: "aid / aidx → 日期时间" dateToAid: "日期时间 → aid / aidx" mode: "要创建的 id" date: "日期和时间" inputByLine: "可以使用换行来转换多个aid / aidx。" _aboutUs: title: "关于 Misskey Project" description: "记载了关于 Misskey Project 的情报。" _team: title: "开发成员" description: "介绍和 Misskey 开发有关的人员。" _core: title: "核心小组成员" description: "这里的核心团队成员积极维护与 Misskey 有关的项目。" _coreEmeriti: title: "名誉核心小组成员" description: "这些都是前核心团队成员,他们在过去做出了宝贵的贡献。" _contributors: title: "贡献者" description: "这里的每个人都为 Misskey 做出了特殊的贡献。" seeMore: "所有贡献者" _orgPartner: title: "机构与组织合作伙伴" description: "这些机构与组织在资金和技术上为 Misskey 的发展作出了贡献。" _hubTranslators: title: "Misskey Hub 翻译者" description: "以下是帮助翻译 Misskey Hub 的人员。" _coreTranslators: title: "Misskey 翻译者" description: "以下是帮助翻译 Misskey 的人员。" _i18n: _missing: title: "请协助我们进行翻译" description: "本文档为社区翻译,您可以通过 {link} 翻译该文档。我们需要您的帮助🙏" linkLabel: "Crowdin" _share: title: "去往 Misskey" chooseServer: "请选择要分享的服务器" addServer: "添加服务器" domain: "服务器域名" compatibleWith: "兼容 Misskey 及其部分 Misskey 的分支。" recommendedByWebsite: "共享源网站的建议" _noteVisibility: public: "公共" home: "首页" followers: "粉丝" specified: "仅提及的人" localOnly: "仅限本地" _shareLinkGenerator: title: "分享按钮生成器" description: "可以使用 Misskey Hub 提供的中继跳转服务 来创建一个 Misskey 分享按钮。" body: "正文" bodyWarning: "为了兼容其他服务器,不允许使用自定义emoji表情。" url: "URL" urlCaption: "可选。插入到正文之后。" settings: "更多设置" manualInstance: "服务器实例的安利" manualInstanceDescription: "选中的单个服务器可以显示在跳转页面分享按钮的顶部。例如,您可以通过这个引诱访客到您自己的服务器上。" visibility: "可见性" recipents: "接收默认消息的账户(一行一个)" resultLink: "链接生成结果" resultButton: "分享按钮的示例" testLink: "测试分享链接" typeSomethingToGetLink: "输入正文将生成一个链接。" typeSomethingToGetButton: "输入正文将生成一个链接。" documentationIs: "技术规格,如参数的详细信息,请参见 {here}" here: "这里" _goToMisskey: title: "Misskey Web" heading: "选择需要打开此页面的服务器" _avatarDecorationPreview: title: "头像挂件预览" description: "你可以检查头像挂件是否正常显示。" preview: "预览" settings: "设置" decoration: "挂件 #{number}" placeholder: "你可以通过“添加”按钮来进行添加和预览头像及其头像框。" _options: offsetX: "水平对齐" offsetY: "垂直对齐" angle: "角度" flip: "左右翻转" overlayTemplate: "叠加模板" _placeholder: username: "小蓝" noteText: "吃了个巧克力甜甜圈捏🍩😋" profileDescription: "我是 Misskey AI 小蓝酱!很高兴见到你♪" _customEmojiPreview: title: "自定义表情预览" description: "可以检查自定义 emoji 的可见性。" preview: "预览" emoji: "Emoji #{number}" placeholder: "你可以通过“添加”按钮来进行添加和预览自定义emoji表情。" limitReactionLength: "限制反应的最大宽度并缩小显示" _options: text: "帖子内容" textDescription: "你可以使用 {emoji_id} 来添加自定义emoji表情" _placeholder: noteText: "自定义emoji表情预览 -> :emoji_preview_1:\n你可以重写这段文字来测试emoji的可用性✨" _identiconGenerator: title: "默认头像生成器" description: "你可以生成一个初始图标 作为 你注册 Misskey 时的默认头像。" userName: "用户名" includeDomain: "请提供完整的用户名及其所在服务器的域名。" _historicalMaterials: title: "历史资料馆" description: "Misskey 的 历史" heroSubtitle: "Misskey 10周年纪念企划" heroDescription: "Misskey 诞生于 2014 年的一个留言板服务。\n经过 10 年的发展,祂摇身一变成为了一个可以让许多人使用的平台。\n在这里,你可以找到 Misskey 目前的可公开情报!" submissionTitle: "有以前 Misskey classic 的老截图吗?" submissionDescription: "如果你有任何与老 Misskey 有关的资料,可以使用GitHub发送到 {gh_issue} ,也可以发送到 {'@'}syuilo{'@'}misskey.io 上。" _miHubServerListPreview: title: "Misskey Hub 服务器列表预览" description: "你能将你自己的图片应用到 Misskey Hub 服务器列表当中,来检查你服务器的外观。" name: "服务器名称" serverDescription: "描述" icon: "服务器图标" bannerOrBg: "横幅 或 背景图片" bannerOrBgDescription: "如果同时指定了横幅图片(Banner)和背景图片,则优先显示背景图片。图片只显示符合16:9中心基准的最大区域。" _api: _permissions: title: "权限" description: "描述" _types: "read:account": "查看账户信息" "write:account": "更改帐户信息" "read:blocks": "查看黑名单" "write:blocks": "编辑黑名单" "read:drive": "查看网盘" "write:drive": "管理网盘文件" "read:favorites": "查看收藏夹" "write:favorites": "编辑收藏夹" "read:following": "查看关注信息" "write:following": "关注/取消关注" "read:messaging": "查看消息" "write:messaging": "编写或删除消息" "read:mutes": "查看屏蔽列表" "write:mutes": "编辑屏蔽列表" "write:notes": "编写或删除帖子" "read:notifications": "查看通知" "write:notifications": "管理通知" "read:reactions": "查看回应" "write:reactions": "编辑回应" "write:votes": "投票" "read:pages": "查看自己" "write:pages": "编辑自己的页面" "read:page-likes": "查看点赞列表" "write:page-likes": "管理点赞列表" "read:user-groups": "查看用户组" "write:user-groups": "管理用户组" "read:channels": "查看频道" "write:channels": "管理频道" "read:gallery": "查看图库" "write:gallery": "编辑图库" "read:gallery-likes": "查看赞过的图片" "write:gallery-likes": "管理赞过的图片" "read:flash": "查看 Play" "write:flash": "编辑 Play" "read:flash-likes": "查看 Play 的点赞" "write:flash-likes": "编辑 Play 的点赞列表" "read:admin:abuse-user-reports": "查看来自其他用户的举报" "write:admin:delete-account": "删除用户账户" "write:admin:delete-all-files-of-a-user": "删除用户所有的文件" "read:admin:index-stats": "查看数据库索引信息" "read:admin:table-stats": "查看数据库表格信息" "read:admin:user-ips": "查看用户 IP" "read:admin:meta": "查看实例资料" "write:admin:reset-password": "重置用户密码" "write:admin:resolve-abuse-user-report": "解决来自用户的举报" "write:admin:send-email": "发送邮件" "read:admin:server-info": "查看服务器信息" "read:admin:show-moderation-log": "查看管理日志" "read:admin:show-user": "查看用户隐私信息" "write:admin:suspend-user": "冻结用户" "write:admin:unset-user-avatar": "删除用户头像" "write:admin:unset-user-banner": "删除用户横幅" "write:admin:unsuspend-user": "解除用户冻结" "write:admin:meta": "编辑实例信息" "write:admin:user-note": "编辑管理笔记" "write:admin:roles": "编辑角色" "read:admin:roles": "查看角色" "write:admin:relays": "编辑中继" "read:admin:relays": "查看中继" "write:admin:invite-codes": "编辑邀请码" "read:admin:invite-codes": "查看邀请码" "write:admin:announcements": "编辑公告" "read:admin:announcements": "查看公告" "write:admin:avatar-decorations": "编辑头像挂件" "read:admin:avatar-decorations": "查看头像挂件" "write:admin:federation": "编辑联邦信息" "write:admin:account": "编辑用户账户" "read:admin:account": "查看用户信息" "write:admin:emoji": "管理表情" "read:admin:emoji": "查看表情" "write:admin:queue": "管理作业队列" "read:admin:queue": "查看作业队列" "write:admin:promo": "管理推广帖子" "write:admin:drive": "编辑用户网盘" "read:admin:drive": "查看用户网盘信息" "read:admin:stream": "使用管理员 Websocket API" "write:admin:ad": "管理广告" "read:admin:ad": "查看广告" "write:invite-codes": "生成邀请码" "read:invite-codes": "获取邀请码" "write:clip-favorite": "管理喜欢的便签" "read:clip-favorite": "查看喜欢的便签" "read:federation": "查看联邦相关信息" "write:report-abuse": "举报用户" "write:chat": "操作聊天" "read:chat": "浏览聊天" ================================================ FILE: locales/zh-TW.yml ================================================ noScript: "Javascript 目前處於停用狀態。必須啟用 Javascript 才能瀏覽網站。" learnMore: "了解更多" loading: "載入中..." clickToExpand: "(點擊展開)" copy: "複製" share: "分享" note: "貼文" other: "其他" add: "新增" generate: "產生" download: "下載" browse: "瀏覽" settings: "設定" goToLegacyHub: "舊版的 Misskey Hub" contactUs: "聯絡我們" detail: "詳細資訊" lastUpdate: "最近更新" empty: "沒有內容。" threeDimensionModel: "3D 模型" clickToShow: "點擊以顯示" preview: "預覽" scrollable: "可以滾動" serverListUnderMaintenance: "サーバー一覧は現在メンテナンス中です。" _error: notFound: "找不到此頁面" notFoundDesc: "找不到此頁面,請確認網址是否正確。" generalError: "發生錯誤" generalErrorDesc: "如果這不是您預期的操作,請在下方回報錯誤。" reportProblem: "回報問題" goToTop: "回到首頁" _seo: siteName: "Misskey Hub" siteNameLong: "Misskey Hub – Misskey 專案官方網站" defaultTitleTagline: "貼文傳播網路" defaultDescription: "Misskey 是一個開源的去中心化社群網路平台。" _nav: servers: "伺服器" docs: "文件" news: "最新消息" other: "更多!" switchLang: "語言設定" _landing: _hero: description: "Misskey 是一個開源的去中心化社群網路平台。" gettingStarted: "入門" _keyFeatures: _open: title: "開放" description: "Misskey 是開放原始碼的軟體,任何人都可以自由使用。" _federated: title: "去中心化" description: "Misskey 採用去中心化協議,將不同伺服器的社群連結起來。" _powerful: title: "功能強大" description: "Misskey 具備了適合正式營運的各種功能,並且支援細部自訂。不論是大型社群還是小型團體,都能提供最適合的解決方案。" _introduction: title: "用 Misskey 來開發吧" description: "只要使用 Misskey,就能輕鬆打造專屬的平台,而不需要繁瑣的實作。你用 Misskey 建立的服務是只屬於你自己的,因此在資訊發佈上,就不需要再依賴現有的平台,也就沒有相關的風險了。" tip: "Misskey 並不是一個「網路服務本身」,而是用來建立微網誌服務的「基礎軟體」。就像製作網站時會使用像 WordPress 這樣的軟體一樣。" _decenterized: title: "Misskey 是{0}" description: "Misskey 是一個自由開放的項目,這意味著任何人都可以自由地使用 Misskey 建立伺服器,因此網路上已經出現了各種各樣的伺服器。另一個重要特點是,Misskey 實作了一種名為 {0} 的分散式通訊協議,這意味著無論您選擇哪台伺服器,都可以與其他伺服器上的使用者進行互動。這就是它被稱為去中心化的原因,也是它與 Twitter 等其他服務的根本不同之處。不同伺服器的主要話題、族群和語言各不相同,找到適合自己的伺服器也是樂趣之一(當然,建立自己的伺服器也很有趣)。" activityPub: "ActivityPub" _useCases: title: "有以下這些使用方式" single: "用來蒐集與發佈資訊的個人專用伺服器" official: "用來設置公司公關帳號的專用伺服器" community: "面向擁有相同興趣用戶的社群伺服器" inHouse: "作為公司內部社群使用的私人伺服器" _free: title: "Misskey 永遠都是免費且開放的" description: "Misskey 自 2014 年開發初期開始,到未來都會持續公開程式原始碼,是一套開放原始碼軟體(OSS)。而且,任何人都可以免費且自由地使用這些原始碼。Misskey 能持續成為 OSS,都是仰賴大家的支持與協助。" _features: _root: title: "主要功能" description: "Misskey 具有多種功能,既有一般功能,也有特殊功能。以下會介紹其中一部份。" _note: title: "貼文" description: "在 Misskey 上,使用者發表的內容被稱為「貼文」。您也可以引用其他貼文或附加圖片、影片、音訊和任何其他檔案。" _federation: title: "聯邦宇宙" description: "因為實做了 ActivityPub,一個開放的分散式協議,因此不僅可以連線至其他 Misskey 伺服器,還可以與其他支援 ActivityPub 的軟體平台相互連線。" _reaction: title: "反應" description: "您可以在貼文中加入「反應」,輕鬆表達和交流您的感受。" _customEmojis: title: "自訂表情符號" description: "可以製作伺服器專屬的原創表情符號,並可在 Misskey 的各個地方使用。" _channel: title: "頻道" description: "只要建立頻道,就可以在伺服器內打造以共同主題為中心的社群。" _antenna: title: "天線" description: "可以建立只收集包含特定關鍵字貼文的時間軸。" _drive: title: "雲端硬碟" description: "它有一個管理上傳檔案的介面。因此,您可以輕鬆地將您喜愛的圖片整理到資料夾中並再次分享。" _2fa: title: "多因素認證" description: "支援各種技術來提升帳號安全性,包括使用一次性密碼的多因素驗證以及使用實體金鑰的 Passkey 認證。" _charts: title: "圖表" description: "Misskey 內建圖表引擎,可輕鬆實現伺服器使用情況和其他資訊的視覺化。" _branding: title: "品牌宣傳" description: "可以自訂伺服器的標誌、圖示、主題等,輕鬆打造屬於自己的社群媒體品牌形象。" _roles: title: "角色" description: "透過使用角色,可以針對每位使用者細部調整權限。也可以利用條件式角色,自動將角色指派給符合特定條件的使用者。除此之外,還能為角色設定徽章,協助伺服器進行變現或贊助相關的運用。" _moderation: title: "審查" description: "內建完善的管理功能,協助伺服器營運更加順利。" _privacy: title: "隱私" description: "透過豐富的隱私設定,可以靈活控制內容的公開範圍。" _multiPurpose: title: "無論是一個人,還是大家一起" description: "它可作為大量使用者的社交網站,也可作為個人伺服器,成為您與聯邦宇宙聯繫的強大樞紐。" _monetization: title: "貨幣化" description: "提供了廣告顯示等幫助伺服器變現的功能,讓你能夠實現可持續的運營。" _oss: title: "Mi ❤️ OSS" description: "Misskey 一直以來都秉持開源精神,未來也將繼續如此,任何人都可以自由且免費地使用其原始碼。此外,Misskey Project 也積極支援其他開源軟體的發展。" _battleTested: title: "可靠性" description: "Misskey 已經在實際環境中運行超過 10 年,並且自信地擁有高度的可靠性(battle-tested,經過實戰測試)。" _featuresServer: _root: title: "伺服器功能" description: "支撐 Misskey 的後端實現特點。" _easyInstall: title: "安裝簡易" description: "除了可以使用簡單的命令進行安裝外,還可以利用各家公司提供的託管服務,從而省去管理上的麻煩。" _easySetup: title: "設定也很簡單" description: "Misskey 伺服器的設置不需要複雜的設定,可以立即開始運營。另一方面,根據需求也可以進行進階設定。" _api: title: "應用程式介面(API)" description: "Misskey 的所有功能都可以通過 HTTP API 進行操作,與其他應用程式的整合也十分容易。此外,Misskey 還支援 Webhook 和 WebSocket 連線,讓你可以即時接收來自 Misskey 的事件通知。" _relay: title: "支援中繼" description: "支援連線至中繼伺服器,這些伺服器會中繼聯邦宇宙中的活動,因此無需手動連線至大量伺服器即可收集資訊。" _nodejs: title: "Node.js 後端" description: "Misskey 在後端採用了 Node.js,執行速度快且輕巧。" _postgresql: title: "PostgreSQL" description: "主要資料庫為 PostgreSQL,可提供強大的資料管理功能。" _fullTextSearch: title: "全文檢索" description: "除了 PostgreSQL 之外,還可以使用 Meilisearch 等全文搜尋引擎來進行全文搜尋。" _jobQueue: title: "高效率的工作佇列" description: "Misskey 採用了 BullMQ 作為工作佇列,能夠在多個伺服器間高效處理任務。此外,Misskey 原生實現的檢查工具已經整合在控制面板中,無需依賴外部工具即可進行管理。" _cdn: title: "CDN 支援" description: "支援外部 CDN 的資源快取。透過減少對伺服器的請求次數,可以降低負載和成本。" _ftt: title: "FTT" description: "透過 Fan-out Timeline Technology (FTT),Misskey 能夠將時間軸構建在 Redis 上,從而提升效能。" _rbt: title: "RBT" description: "透過 Reactions Buffering Technology (RBT),Misskey 能夠將反應資訊快取在 Redis 上,從而提升性能。" _scalable: title: "可擴展" description: "Misskey 支援叢集、透過多伺服器進行負載平衡,以及資料庫複製技術,能夠應對使用者數量的增長。" _seo: title: "搜尋引擎優化" description: "除了可以對部分內容進行 SSR(伺服器端渲染),讓搜尋引擎能夠索引之外,還支援 OGP,因此在社群媒體上分享時,也能顯示預覽畫面。當然,在不希望被索引的情況下,也可以設定拒絕爬蟲。" _ml: title: "機器學習" description: "內建機器學習功能,可以自動過濾敏感媒體等內容,有效減輕運營負擔。" _sentry: title: "支援 Sentry" description: "支援透過 Sentry 收集伺服器的指標數據,幫助進行伺服器資源監控、健康檢查以及維護。" _featuresClient: _root: title: "網頁介面" description: "介紹附屬於 Misskey 的多功能網頁前端(Misskey Web)特色。" _responsive: title: "響應式介面" description: "介面採用了精緻的獨特設計系統,並經過精心實現,確保在桌面、平板和智慧型手機等裝置上都能提供最佳的顯示和互動體驗。" _theme: title: "佈景主題" description: "你可以根據自己的喜好來設定 Misskey 的外觀,當然,暗黑模式也完全支援。並且,你還可以自訂和建立高度個性化的主題。" _mfm: title: "MFM" description: "在 Misskey 中,貼文可以使用名為 MFM 的專用標記語言。你可以使用簡單的語法來表達文字的裝飾,如加粗、插入連結、增加動畫等效果。" _widgets: title: "小工具" description: "可以自由配置各種種類的小工具,快速存取所需的資訊。" _deck: title: "多欄介面" description: "使用多欄介面,可以更深入地自訂介面,打造屬於自己的專屬客戶端。" _embed: title: "嵌入到其他網站" description: "可以將貼文、時間軸等內容嵌入到外部網站中顯示。" _realtimeMode: title: "即時模式" description: "サーバーとWebsocket接続することで、タイムラインなどのコンテンツをリアルタイムで受信することができます。" _pushNotification: title: "推播通知" description: "支援推播通知,讓你可以即時接收來自伺服器的通知。" _multiAccounts: title: "支援多帳戶功能" description: "可以輕鬆切換並使用多個帳戶。" _watermark: title: "浮水印添加功能" description: "可以自動在投稿的圖片上加上浮水印,輕鬆留下版權或授權資訊。浮水印也可以自由客製化。" _imageEditing: title: "影像編輯功能" description: "可以在圖片上添加特效、進行色彩調整,並實現各種創意表現。" _achievements: title: "成就" description: "能成為體驗 Misskey 功能的動力,有助於新手上手。" _plugin: title: "外掛" description: "可以安裝使用安全的 AiScript 插件,從而擴展客戶端的功能。" _settingsManagement: title: "靈活的設定管理" description: "可以針對每個帳戶覆蓋自訂的客戶端設定,並且可以在多個設備間共享和同步設定。此外,設定資訊還可以自動備份。" _pwa: title: "PWA" description: "Misskey Web 遵循漸進式網路應用程式(PWA)標準,可以像原生應用程式一樣在裝置上執行。" _i18n: title: "支援多語言" description: "客戶端提供多種語言版本。" _featuresUpcoming: _root: title: "即將公開" description: "介紹未來預定推出的功能。" _jwt: title: "JWT 認證" description: "將實現使用 JSON Web Token (JWT) 的無狀態認證,從而實現更安全、更快速的請求驗證。" _newBackend: title: "更輕量的後端系統" description: "正在開發全新的後端實現,以實現更高速、輕量的運行效果。" _vueVapor: title: "支援 Vapor 模式" description: "支援前端框架 Vue 的全新編譯策略,實現更輕量的網頁介面。" _getStarted: title: "開始使用 Misskey" _find: title: "尋找伺服器" list: "伺服器列表" _create: title: "建立伺服器" guide: "安裝指南" _docs: title: "進一步瞭解" docs: "檢視文件" _dev: title: "參與開發" _donation: title: "請求捐款" description: "Misskey 是一家非營利組織,因此我們依靠您的捐款來資助我們的發展。如果你喜歡 Misskey,請支持我們,以便我們繼續開發它。" _sponsors: title: "贊助者" becomeASponsor: "成為贊助者" _servers: title: "伺服器一覽" description: "Misskey 不是單一的服務,而是由各服務提供者組成的分散式網路。要使用 Misskey,您需要在提供服務的伺服器上建立帳戶。" addYourServer: "看不到您的伺服器?請 {0} 註冊!" addYourServerLink: "按這裡" disclaimerTitle: "【重要】免責事項" disclaimer: "這個伺服器清單會自動列出在聯邦宇宙上發現的 Misskey 伺服器,原則上不會手動確認。這裡列出的伺服器並非由 Misskey 專案審查、驗證或批准。 Misskey 專案對使用者存取這些伺服器所遭受的任何損失概不負責" _system: fetchError: "資料載入失敗。請稍後再試。" _statistics: title: "伺服器統計資料" description: "以圖形方式顯示 Misskey 伺服器統計資料。" viewFullStats: "查看詳細統計數據" lang: "主要語言" registerAcceptance: "是否開放註冊" version: "伺服器版本" notes: "貼文數" users: "使用者數" servers: "伺服器數量" _search: title: "篩選搜尋" all: "顯示全部" query: "以關鍵字搜尋" lang: "語言" orderBy: "排序方式" recomendded: "預設" notesCount: "貼文數" notesPer15Days: "每日貼文數(15日平均)" usersCount: "使用者數" _registerAcceptance: title: "是否開放註冊" public: "開放註冊" inviteOnly: "僅限邀請" _list: notFound: "未找到符合指定條件的伺服器。" showMore: "查看更多" _view: title: "顯示樣式" list: "精簡" grid: "完整" _docs: title: "文件" description: "Misskey 是一個開源去中心化社群網路平台。它涵蓋了從如何正確使用 Misskey 到為伺服器營運者和程式開發人員提供的資訊的所有內容。" indexTitle: "目錄頁" _contribute: editThis: "編輯此頁面" translateThis: "翻譯此頁面" _aboutMisskey: title: "關於 Misskey" description: "對於那些剛接觸 Misskey 以及從現在開始使用它的人,讓我們來看看基本機制和功能。" _changelog: title: "版本資訊" description: "您可以查看 Misskey 的版本更新歷史。看看最新版本有哪些變化!" _donate: title: "為此專案捐款" description: "Misskey 是一款免費使用的開源軟體。如果您喜歡它,請考慮捐贈,以便我們能夠持續開發下去。" _forUsers: title: "針對 Misskey 的使用者" _forAdmin: title: "針對伺服器營運者" _forDevelopers: title: "針對開發者" _prevNext: prev: "上一頁" next: "下一頁" _toc: title: "本頁內容" toPageTop: "回到頁首" _steppedGuide: selectCourse: "選擇課程" noImageInThisStep: "這個步驟沒有圖片" aiWellDone: "操作到此結束。辛苦了♪" _blog: title: "網誌" description: "來自 Misskey 開發部的有關 Misskey 的最新消息、技巧和竅門! (僅限日文)" back: "返回" _content: tip: "提示" warning: "注意" danger: "警告" preview: "預覽" _other: title: "更多!" description: "其他可以幫助您更好地享受 Misskey 的資源。" _brandAssets: title: "資源集" description: "Misskey 標誌、圖標和其他資產的集合。您可以在一定的許可下自由使用它。" license: "資產可在 CC BY-SA 授權下免費使用🎉" assetsDirectory: "所有資產均由 {0} 管理。" logo: "標誌" icon: "圖標" banner: "橫幅" avatarDecorationTemplate: "頭像裝飾模板" fullColorPng: "全彩 (PNG)" monoChromeSvg: "單色 (SVG)" _contact: title: "聯絡我們" description: "點擊此處聯絡 Misskey 專案" form: "請從這個表格回覆。" formGoogleAccountRequired: "目前,為了防止垃圾郵件,需要 Google 帳戶才能發送聯繫。\n對於造成您的不便,我們深表歉意,並感謝您的理解。" formLink: "前往表單" faqTitle: "常見問題" faqDescription: "在發送您的詢問之前,請檢查此處是否列出了您想了解的內容。" ifNothingIsFound: "如果沒有符合的內容的話…" _links: title: "連結" _github: title: "Github" description: "Misskey 是在 Github 上開發的。您可以在這裡提交功能請求和錯誤報告。" _crowdin: title: "Crowdin" description: "Misskey 本身和文件翻譯都在這裡管理。感謝大家的合作。" _discord: title: "Discord 伺服器" description: "您可以提出與 Misskey 有關的問題並進行交流。" _aiChan: title: "小藍" description: "Misskey 的代表人物小藍的網站。" _tools: title: "工具集" index: "工具級 首頁畫面" description: "Misskey 的實用工具現已推出!" menuToggle: "選單" _forUsers: title: "針對 Misskey 的使用者" _forAdmin: title: "針對伺服器營運者" _mfmPlayground: title: "MFM 試用區" description: "您可以自由練習MFM!下面重現了 Misskey 的發文畫面/貼文畫面!" preview: "預覽" disclaimer: "不一定會按照這裡顯示的方式繪製。不支援程式碼的的語法突顯。" mfm: "MFM" character: "{0} 文字" domain: "再現顯示的伺服器。" noteIt: "貼文" clearEmojiCacheDescription: "當表情符號無法顯示時" clearEmojiCache: "清除表情符號的快取" _aidConverter: title: "aid/aidx工具" description: "可以轉換和產生 Misskey 內部使用的隨機 ID 產生演算法「aid」和「aidx」。" aidToDate: "aid/aidx→日期時間" dateToAid: "日期時間→aid/aidx" mode: "要建立的 id" date: "日期時間" inputByLine: "可以用換行符號分隔多個 aid/aidx 來轉換它們。" _aboutUs: title: "關於 Misskey 開發部" description: "有關 Misskey 開發團隊的資訊。" _team: title: "開發成員" description: "介紹參與 Misskey 開發的人員。" _core: title: "核心團隊成員" description: "這些核心團隊成員積極維護 Misskey 相關專案。" _coreEmeriti: title: "名譽核心團隊成員" description: "這些都是過去曾做出寶貴貢獻的前核心團隊成員。" _contributors: title: "貢獻者" description: "這些人為 Misskey 做出了特殊的貢獻。" seeMore: "所有貢獻者" _orgPartner: title: "企業和組織合作夥伴" description: "這些公司和組織在資金和技術上為 Misskey 的發展做出了貢獻。" _hubTranslators: title: "Misskey Hub 翻譯者" description: "感謝所有幫助我們翻譯 Misskey Hub 的人。" _coreTranslators: title: "Misskey 翻譯者" description: "感謝所有幫助我們翻譯 Misskey 的人。" _i18n: _missing: title: "請協助翻譯" description: "這份文件是由社群協作翻譯的。您可以從{link}進行文件翻譯。感謝您的協助🙏" linkLabel: "Crowdin" _share: title: "發布到 Misskey" chooseServer: "請選擇要發布貼文的伺服器" addServer: "新增伺服器" domain: "伺服器的網域" compatibleWith: "相容 Misskey 與部份 Misskey 分支。" recommendedByWebsite: "來自分享網站的推薦" _noteVisibility: public: "公開" home: "首頁" followers: "追隨者" specified: "指定使用者" localOnly: "停用聯邦" _shareLinkGenerator: title: "分享按鈕產生器" description: "您可以使用 Misskey Hub 的分享按鈕中繼服務為 Misskey 建立分享按鈕。" body: "正文" bodyWarning: "為了讓任何伺服器都能共用,無法使用自定義表情符號。" url: "網址" urlCaption: "可選。將插入在正文之後。" settings: "進階設定" manualInstance: "推薦的伺服器網域" manualInstanceDescription: "此處指定的伺服器(一個)可以顯示在共用按鈕中繼頁面的頂部。例如,您可以用它將人們引導到自己的伺服器。" visibility: "公開範圍" recipents: "指定接收訊息的帳號(以換行符號區分)" resultLink: "連結生成結果" resultButton: "分享按鈕的範例" testLink: "測試分享連結" typeSomethingToGetLink: "輸入本文後將生成連結。" typeSomethingToGetButton: "輸入本文後將生成按鈕。" documentationIs: "技術規格,包括參數的詳細資訊,可以在 {here} 找到" here: "這裡" _goToMisskey: title: "前往 Misskey Web" heading: "請選擇要開啟此頁面的伺服器" _avatarDecorationPreview: title: "頭像裝飾預覽" description: "您可以檢查頭像裝飾是否正確反映。" preview: "預覽" settings: "設定" decoration: "裝飾 #{number}" placeholder: "您可以透過「新增」按鈕來新增和預覽頭像裝飾。" _options: offsetX: "水平對齊" offsetY: "垂直對齊" angle: "角度" flip: "左右翻轉" overlayTemplate: "疊加模板" _placeholder: username: "小藍" noteText: "我吃了一個巧克力甜甜圈🍩😋" profileDescription: "我是 Misskey 的常駐人工智慧小藍!很高興見到你♪" _customEmojiPreview: title: "預覽自訂表情符號" description: "可以檢查自訂表情符號的可見性。" preview: "預覽" emoji: "表情符號 #{number}" placeholder: "從「新增」中,您可以新增和預覽自訂表情符號。" limitReactionLength: "限制反應的最大寬度,並縮小顯示尺寸。" _options: text: "貼文內容" textDescription: "您可以透過 {emoji_id} 引用新增的自訂表情符號。" _placeholder: noteText: "自訂表情符號將顯示如下 → :emoji_preview_1:\n請重寫句子並嘗試可用性✨" _identiconGenerator: title: "初始圖示產生器" description: "您可以產生註冊Miskey時預設指定的初始圖示。" userName: "使用者名稱" includeDomain: "請指定完整的使用者名,包括伺服器的網域名稱。" _historicalMaterials: title: "歷史資料館" description: "Misskey 相關歷史一次公開" heroSubtitle: "Misskey 10周年企劃" heroDescription: "Misskey 誕生於 2014 年,最早是一項留言板服務。在這之後過了十年,現在他已經變成了可以被許多人利用的平台了。\n這邊將 Misskey 有關的歷史資料一次公開!" submissionTitle: "有以前的 Misskey 照片嗎?" submissionDescription: "如果你有以前的 Misskey 相關的資料,請務必與我們聯繫。\n如果您可以使用 GitHub 的話請將他送到 {gh_issue},如果無法使用的話請送到 {'@'}syuilo{'@'}misskey.io 。" _miHubServerListPreview: title: "Misskey Hub 伺服器清單預覽" description: "您可以透過將自己的圖像套用到 Misskey Hub 伺服器清單來檢查它的外觀。" name: "伺服器名稱" serverDescription: "說明" icon: "伺服器圖示" bannerOrBg: "橫幅圖片或背景圖片" bannerOrBgDescription: "如果同時指定了橫幅圖片和背景圖片,則優先顯示背景圖片。僅顯示影像中相對於中心為 16:9 的最大區域。" _api: _permissions: title: "權限" description: "說明" _types: "read:account": "瀏覽我的帳戶資訊" "write:account": "更改我的帳戶資訊" "read:blocks": "瀏覽封鎖名單" "write:blocks": "編輯封鎖名單" "read:drive": "瀏覽雲端硬碟" "write:drive": "存取雲端硬碟" "read:favorites": "瀏覽我的最愛" "write:favorites": "編輯我的最愛列表" "read:following": "查看追隨中的使用者資訊" "write:following": "追隨/解除追隨" "read:messaging": "顯示訊息" "write:messaging": "撰寫或刪除訊息" "read:mutes": "顯示已靜音列表" "write:mutes": "編輯已靜音列表" "write:notes": "撰寫或刪除貼文" "read:notifications": "查看通知" "write:notifications": "編輯通知" "read:reactions": "查看反應" "write:reactions": "編輯反應" "write:votes": "投票" "read:pages": "顯示頁面" "write:pages": "編輯頁面" "read:page-likes": "顯示已按讚的頁面" "write:page-likes": "編輯頁面上的讚" "read:user-groups": "顯示使用者群組" "write:user-groups": "編輯使用者群組" "read:channels": "瀏覽頻道" "write:channels": "編輯頻道" "read:gallery": "瀏覽相簿" "write:gallery": "操作相簿" "read:gallery-likes": "瀏覽相簿的讚" "write:gallery-likes": "編輯相簿的讚" "read:flash": "檢視 Play" "write:flash": "編輯 Play" "read:flash-likes": "檢視 Play 的讚" "write:flash-likes": "編輯 Play 的讚" "read:admin:abuse-user-reports": "查看來自使用者的檢舉" "write:admin:delete-account": "刪除使用者帳戶" "write:admin:delete-all-files-of-a-user": "刪除使用者的所有檔案" "read:admin:index-stats": "查看資料庫索引的相關資訊" "read:admin:table-stats": "查看資料庫表格的相關資訊" "read:admin:user-ips": "查看使用者的 IP 位址" "read:admin:meta": "查看實例的詮釋資料" "write:admin:reset-password": "重設使用者的密碼" "write:admin:resolve-abuse-user-report": "解決來自使用者的檢舉" "write:admin:send-email": "發送郵件" "read:admin:server-info": "查看伺服器的資訊" "read:admin:show-moderation-log": "查看審查紀錄" "read:admin:show-user": "查看使用者的私人資訊" "write:admin:suspend-user": "凍結使用者" "write:admin:unset-user-avatar": "刪除使用者的頭像" "write:admin:unset-user-banner": "刪除使用者的橫幅" "write:admin:unsuspend-user": "解除凍結使用者" "write:admin:meta": "編輯實例的詮釋資料" "write:admin:user-note": "編輯審查筆記" "write:admin:roles": "編輯角色" "read:admin:roles": "查看角色" "write:admin:relays": "編輯中繼器" "read:admin:relays": "查看中繼器" "write:admin:invite-codes": "編輯邀請碼" "read:admin:invite-codes": "查看邀請碼" "write:admin:announcements": "編輯公告" "read:admin:announcements": "查看公告" "write:admin:avatar-decorations": "編輯頭像裝飾" "read:admin:avatar-decorations": "查看頭像裝飾" "write:admin:federation": "編輯站台聯邦的相關資訊" "write:admin:account": "編輯使用者帳戶" "read:admin:account": "查看使用者的相關資訊" "write:admin:emoji": "編輯表情符號" "read:admin:emoji": "查看表情符號" "write:admin:queue": "編輯工作佇列" "read:admin:queue": "查看工作佇列的相關資訊" "write:admin:promo": "編輯推廣貼文" "write:admin:drive": "編輯使用者的雲端硬碟" "read:admin:drive": "查看使用者雲端硬碟的相關資訊" "read:admin:stream": "使用管理員的 Websocket API" "write:admin:ad": "編輯廣告" "read:admin:ad": "查看廣告" "write:invite-codes": "建立邀請碼" "read:invite-codes": "取得邀請碼" "write:clip-favorite": "編輯摘錄的讚" "read:clip-favorite": "查看摘錄的讚" "read:federation": "查看站台聯邦的相關資訊" "write:report-abuse": "檢舉違規行為" "write:chat": "撰寫或刪除聊天訊息" "read:chat": "查看聊天訊息" ================================================ FILE: mdc.config.ts ================================================ import { defineConfig } from '@nuxtjs/mdc/config'; import type { LanguageRegistration } from 'shiki'; export default defineConfig({ shiki: { async setup(shiki) { await shiki.loadLanguage( (await import('aiscript-vscode/aiscript/syntaxes/aiscript.tmLanguage.json')).default as unknown as LanguageRegistration, ); } } }); ================================================ FILE: nuxt.config.ts ================================================ // https://nuxt.com/docs/api/configuration/nuxt-config import svgLoader from 'vite-svg-loader'; import unocss from 'unocss/vite'; import { readFileSync, watch as fsWatch } from 'fs'; import { getOldHubRedirects } from './scripts/get-old-hub-redirects'; import { genLocalesJson } from './scripts/gen-locales'; import { getStaticEndpoints } from './scripts/get-static-endpoints'; import { locales } from './assets/data/locales'; import type { NuxtConfig } from 'nuxt/schema'; import { fetchCrowdinMembers } from './scripts/fetch-crowdin'; import { genSpaLoadingTemplate } from './scripts/gen-spa-loading-template'; // 公開時のドメイン(末尾スラッシュなし) const baseUrl = process.env.NODE_ENV == 'development' ? 'http://localhost:3000' : 'https://misskey-hub.net'; // リポジトリURL(末尾スラッシュなし) const repositoryUrl = 'https://github.com/misskey-dev/misskey-hub-next'; // サーバーリストAPIのベースURL const serverListApiBaseUrl = process.env.SERVER_LIST_API_BASE_URL ?? 'https://instanceapp.misskey.page'; // 言語定義は /assets/data/locales.ts に移動しました function getRouteRules(): NuxtConfig['routeRules'] | undefined { if (process.env.NODE_ENV === 'development' || process.prerender) return undefined; // 言語ごとに割り当てる必要のないRouteRules const staticRules: NuxtConfig['routeRules'] = { '/ja/blog/**': { isr: true }, '/ns/': { prerender: true }, }; // それぞれの言語について割り当てる必要のあるRouteRules const localeBasedRules: NuxtConfig['routeRules'] = { // リリースページはどうせアクセス集中するので先に作っておく '/docs/releases/': { prerender: true }, '/docs/**': { isr: true }, }; // 静的ページをすべて追加 getStaticEndpoints().forEach((route) => { if (!route.includes('ns')) { localeBasedRules[route] = { prerender: true }; staticRules[route] = { prerender: true }; } }); // 言語ごとにすべて割り当てていく const _localeBasedRules: NuxtConfig['routeRules'] = {}; const localeCodes = locales.map((v) => v.code); Object.keys(localeBasedRules).forEach((route) => { localeCodes.forEach((code) => { _localeBasedRules[`/${code}${route}`] = localeBasedRules[route]; }); }) return { ...staticRules, ..._localeBasedRules, ...((process.env.VERCEL !== '1') ? getOldHubRedirects('nitroFs') : {}), }; } const packageJson = JSON.parse(readFileSync('./package.json', 'utf-8')); export default defineNuxtConfig({ compatibilityDate: '2024-09-07', runtimeConfig: { public: { baseUrl, serverListApiBaseUrl, repositoryUrl, locales, misskeyJsVersion: packageJson.devDependencies['misskey-js'] as string, }, CROWDIN_INTG_API: process.env.CROWDIN_INTG_API, }, css: [ "@unocss/reset/tailwind.css", "@/assets/css/global.css", "github-markdown-css/github-markdown.css", "@/assets/css/nprogress.css", "@/assets/css/mfm.scss", "@/assets/css/bootstrap-forms.scss", ], modules: [ '@nuxt/content', '@nuxtjs/i18n', '@nuxtjs/color-mode', ], app: { head: { link: [ { rel: 'stylesheet', href: '/fonts/fonts.css' }, { rel: 'apple-touch-icon', href: '/img/icons/apple-touch-icon.png' }, { rel: 'shortcut icon', type: 'image/vnd.microsoft.icon', href: '/favicon.ico' }, { rel: 'icon', type: 'image/vnd.microsoft.icon', href: '/favicon.ico' }, { rel: 'me', href: 'https://misskey.io/@misskey_hub_deploy' }, { rel: 'me', href: 'https://mastodon.social/@misskey' }, ], meta: [ { name: 'theme-color', content: '#9ad11b' }, { name: 'twitter:card', content: 'summary_large_image' }, ] }, }, content: { markdown: { remarkPlugins: ['misskey-hub-markdown-fixer'], }, navigation: { fields: [ 'date', 'description', ] }, highlight: { theme: { // Default theme (same as single string) default: 'catppuccin-latte', // Theme used if `html.dark` dark: 'one-dark-pro', }, langs: [ 'json', 'js', 'ts', 'html', 'css', 'vue', 'shell', 'mdc', 'md', 'yaml', 'jsx', 'ini', 'sql', 'yml', 'nginx', 'bash', ], }, }, i18n: { baseUrl, vueI18n: 'i18n.config.ts', locales, langDir: '../locales_dist', defaultLocale: 'ja', // ▼ Defaultルートは、nitroプラグインでオーバーライドする //   リンクはuseGLocalePath(ラッパー)を使う strategy: 'prefix_and_default', trailingSlash: true, }, postcss: { plugins: { autoprefixer: {}, }, }, devtools: { enabled: false }, alias: { 'bi': 'bootstrap-icons/icons', }, vite: { plugins: [ unocss(), svgLoader({ defaultImport: 'component', svgoConfig: { plugins: [ { name: 'preset-default', params: { overrides: { removeViewBox: false, } } } ] } }), ], }, vue: { compilerOptions: { isCustomElement: (tag) => tag.startsWith('model-viewer'), }, }, nitro: { // リダイレクトが多すぎてCloudflare Pagesのネイティブリダイレクトが使えないので静的モードに強制 preset: (process.env.CF_PAGES ? 'static' : undefined), vercel: { config: { routes: [ ...getOldHubRedirects('vercel'), ], } }, plugins: [ '@/server/plugins/appendComment.ts', '@/server/plugins/i18nRedirector.ts', ], prerender: { failOnError: false, } }, typescript: { tsConfig: { compilerOptions: { baseUrl: './', }, }, }, hooks: { 'build:before': async () => { await Promise.all([ genLocalesJson().then(() => { if (process.env.NODE_ENV === 'development' && process.argv[2] !== 'prepare') { fsWatch('./locales/', (ev, filename) => { if (filename && filename.endsWith('.yml')) { genLocalesJson(); } }); } }), genSpaLoadingTemplate(), fetchCrowdinMembers(), ]); }, }, features: { inlineStyles: false, }, experimental: { componentIslands: true, }, routeRules: getRouteRules(), }); ================================================ FILE: package.json ================================================ { "name": "nuxt-app", "private": true, "scripts": { "build": "nuxt build", "dev": "nuxt dev", "generate:nuxt": "nuxt generate", "generate": "pnpm generate:nuxt && pnpm gen-old-hub-redirects", "preview": "nuxt preview", "postinstall": "nuxt prepare", "gen-old-hub-redirects": "vite-node ./scripts/gen-old-hub-redirects.ts" }, "devDependencies": { "@google/model-viewer": "^4.1.0", "@nuxt/content": "^2.13.4", "@nuxtjs/color-mode": "^4.0.0", "@nuxtjs/i18n": "^10.2.1", "@types/js-yaml": "^4.0.9", "@types/node": "^24.10.4", "@types/nprogress": "^0.2.3", "@types/random-seed": "^0.3.5", "@types/three": "^0.182.0", "@types/ua-parser-js": "^0.7.39", "@unocss/reset": "^66.5.12", "aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.16", "bootstrap": "^5.3.8", "bootstrap-icons": "^1.13.1", "github-markdown-css": "^5.8.1", "js-yaml": "^4.1.1", "mfm-js": "^0.25.0", "misskey-hub-markdown-fixer": "file:scripts\\markdown-fixer", "misskey-js": "2025.12.2", "nprogress": "^0.2.0", "nuxt": "^3.20.2", "random-seed": "^0.3.0", "sass-embedded": "^1.97.2", "schema-dts": "^1.1.5", "scroll-hint": "^1.2.9", "three": "0.182.0", "ua-parser-js": "^2.0.7", "ufo": "^1.6.2", "unocss": "^66.5.12", "vite-node": "^5.2.0", "vite-svg-loader": "^5.1.0" }, "packageManager": "pnpm@10.27.0", "dependencies": { "TagCloud": "^2.5.0", "nanoid": "^5.1.6", "swiper": "^12.0.3", "tinycolor2": "^1.6.0" }, "pnpm": { "overrides": { "@aiscript-dev/aiscript-languageserver": "-" }, "onlyBuiltDependencies": [ "@parcel/watcher", "better-sqlite3", "esbuild", "vue-demi" ] } } ================================================ FILE: pages/about-us/history.vue ================================================ ================================================ FILE: pages/about-us/index.vue ================================================ ================================================ FILE: pages/about-us/team.vue ================================================ ================================================ FILE: pages/blog/[slug].vue ================================================ ================================================ FILE: pages/blog/index.vue ================================================ ================================================ FILE: pages/brand-assets.vue ================================================ ================================================ FILE: pages/contact.vue ================================================ ================================================ FILE: pages/docs/[...slug].vue ================================================ ================================================ FILE: pages/docs/index.vue ================================================ ================================================ FILE: pages/index.vue ================================================ ================================================ FILE: pages/learn-more.vue ================================================ ================================================ FILE: pages/mi-web.client.vue ================================================ ================================================ FILE: pages/ns.vue ================================================ ================================================ FILE: pages/servers/index.vue ================================================ ================================================ FILE: pages/servers/stats.vue ================================================ ================================================ FILE: pages/share.client.vue ================================================ ================================================ FILE: pages/test.vue ================================================ ================================================ FILE: pages/tools/aid-converter.vue ================================================ ================================================ FILE: pages/tools/avatar-decoration-preview.vue ================================================ ================================================ FILE: pages/tools/custom-emoji-preview.vue ================================================ ================================================ FILE: pages/tools/hub-servers-preview.vue ================================================ ================================================ FILE: pages/tools/identicon-generator.vue ================================================ ================================================ FILE: pages/tools/index.vue ================================================ ================================================ FILE: pages/tools/mfm-playground.vue ================================================ ================================================ FILE: pages/tools/share-link-generator.vue ================================================ ================================================ FILE: pages/tools/tools-template-ignore.vue ================================================ ================================================ FILE: public/_headers ================================================ # (For preview purposes until it's released) https://misskey-hub.pages.dev/* X-Robots-Tag: noindex ================================================ FILE: public/_redirects_template ================================================ ================================================ FILE: public/fonts/GenJyuuGothicX-Bold/GenJyuuGothicX-Bold.css ================================================ @charset "UTF-8"; /* copyright 2021 Ichinose Shogo (@shogo82148) https://github.com/shogo82148/genjyuugothic-subsets copyright 2014 自家製フォント工房 by MM. http://jikasei.me/font/genjyuu/ M+ OUTLINE FONTS is under the M+ FONTS LICENSE. */ /* [0] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-0.woff2) format('woff2'); unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; } /* [1] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-1.woff2) format('woff2'); unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; } /* [2] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-2.woff2) format('woff2'); unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; } /* [3] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-3.woff2) format('woff2'); unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; } /* [4] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-4.woff2) format('woff2'); unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f; } /* [5] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-5.woff2) format('woff2'); unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c; } /* [6] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-6.woff2) format('woff2'); unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; } /* [7] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-7.woff2) format('woff2'); unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; } /* [8] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-8.woff2) format('woff2'); unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; } /* [9] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-9.woff2) format('woff2'); unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; } /* [10] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-10.woff2) format('woff2'); unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; } /* [11] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-11.woff2) format('woff2'); unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; } /* [12] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-12.woff2) format('woff2'); unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb; } /* [13] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-13.woff2) format('woff2'); unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; } /* [14] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-14.woff2) format('woff2'); unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; } /* [15] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-15.woff2) format('woff2'); unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; } /* [16] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-16.woff2) format('woff2'); unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c; } /* [17] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-17.woff2) format('woff2'); unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970; } /* [18] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-18.woff2) format('woff2'); unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0; } /* [19] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-19.woff2) format('woff2'); unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; } /* [20] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-20.woff2) format('woff2'); unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; } /* [21] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-21.woff2) format('woff2'); unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; } /* [22] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-22.woff2) format('woff2'); unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147; } /* [23] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-23.woff2) format('woff2'); unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; } /* [24] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-24.woff2) format('woff2'); unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56; } /* [25] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-25.woff2) format('woff2'); unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; } /* [26] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-26.woff2) format('woff2'); unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; } /* [27] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-27.woff2) format('woff2'); unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; } /* [28] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-28.woff2) format('woff2'); unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; } /* [29] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-29.woff2) format('woff2'); unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; } /* [30] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-30.woff2) format('woff2'); unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; } /* [31] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-31.woff2) format('woff2'); unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; } /* [32] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-32.woff2) format('woff2'); unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; } /* [33] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-33.woff2) format('woff2'); unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; } /* [34] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-34.woff2) format('woff2'); unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; } /* [35] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-35.woff2) format('woff2'); unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9; } /* [36] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-36.woff2) format('woff2'); unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; } /* [37] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-37.woff2) format('woff2'); unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; } /* [38] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-38.woff2) format('woff2'); unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; } /* [39] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-39.woff2) format('woff2'); unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; } /* [40] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-40.woff2) format('woff2'); unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; } /* [41] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-41.woff2) format('woff2'); unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; } /* [42] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-42.woff2) format('woff2'); unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; } /* [43] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-43.woff2) format('woff2'); unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; } /* [44] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-44.woff2) format('woff2'); unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; } /* [45] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-45.woff2) format('woff2'); unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; } /* [46] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-46.woff2) format('woff2'); unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; } /* [47] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-47.woff2) format('woff2'); unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; } /* [48] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-48.woff2) format('woff2'); unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; } /* [49] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-49.woff2) format('woff2'); unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; } /* [50] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-50.woff2) format('woff2'); unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56; } /* [51] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-51.woff2) format('woff2'); unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; } /* [52] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-52.woff2) format('woff2'); unicode-range: U+32b5-332b, U+332d-3394; } /* [53] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-53.woff2) format('woff2'); unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4; } /* [54] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-54.woff2) format('woff2'); unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7; } /* [55] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-55.woff2) format('woff2'); unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027; } /* [56] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-56.woff2) format('woff2'); unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; } /* [57] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-57.woff2) format('woff2'); unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3; } /* [58] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-58.woff2) format('woff2'); unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0; } /* [59] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-59.woff2) format('woff2'); unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; } /* [60] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-60.woff2) format('woff2'); unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; } /* [61] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-61.woff2) format('woff2'); unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; } /* [62] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-62.woff2) format('woff2'); unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; } /* [63] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-63.woff2) format('woff2'); unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; } /* [64] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-64.woff2) format('woff2'); unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; } /* [65] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-65.woff2) format('woff2'); unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; } /* [66] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-66.woff2) format('woff2'); unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; } /* [67] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-67.woff2) format('woff2'); unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; } /* [68] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-68.woff2) format('woff2'); unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; } /* [69] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-69.woff2) format('woff2'); unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; } /* [70] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-70.woff2) format('woff2'); unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; } /* [71] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-71.woff2) format('woff2'); unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; } /* [72] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-72.woff2) format('woff2'); unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; } /* [73] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-73.woff2) format('woff2'); unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; } /* [74] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-74.woff2) format('woff2'); unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; } /* [75] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-75.woff2) format('woff2'); unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; } /* [76] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-76.woff2) format('woff2'); unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; } /* [77] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-77.woff2) format('woff2'); unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; } /* [78] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-78.woff2) format('woff2'); unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; } /* [79] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-79.woff2) format('woff2'); unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; } /* [80] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-80.woff2) format('woff2'); unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; } /* [81] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-81.woff2) format('woff2'); unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; } /* [82] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-82.woff2) format('woff2'); unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; } /* [83] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-83.woff2) format('woff2'); unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; } /* [84] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-84.woff2) format('woff2'); unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; } /* [85] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-85.woff2) format('woff2'); unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; } /* [86] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-86.woff2) format('woff2'); unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; } /* [87] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-87.woff2) format('woff2'); unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; } /* [88] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-88.woff2) format('woff2'); unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; } /* [89] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-89.woff2) format('woff2'); unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; } /* [90] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-90.woff2) format('woff2'); unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; } /* [91] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-91.woff2) format('woff2'); unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; } /* [92] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-92.woff2) format('woff2'); unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; } /* [93] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-93.woff2) format('woff2'); unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; } /* [94] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-94.woff2) format('woff2'); unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; } /* [95] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-95.woff2) format('woff2'); unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; } /* [96] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-96.woff2) format('woff2'); unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; } /* [97] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-97.woff2) format('woff2'); unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; } /* [98] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-98.woff2) format('woff2'); unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; } /* [99] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-99.woff2) format('woff2'); unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; } /* [100] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-100.woff2) format('woff2'); unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; } /* [101] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-101.woff2) format('woff2'); unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; } /* [102] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-102.woff2) format('woff2'); unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; } /* [103] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-103.woff2) format('woff2'); unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; } /* [104] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-104.woff2) format('woff2'); unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; } /* [105] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-105.woff2) format('woff2'); unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; } /* [106] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-106.woff2) format('woff2'); unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; } /* [107] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-107.woff2) format('woff2'); unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; } /* [108] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-108.woff2) format('woff2'); unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; } /* [109] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-109.woff2) format('woff2'); unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; } /* [110] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-110.woff2) format('woff2'); unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; } /* [111] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-111.woff2) format('woff2'); unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; } /* [112] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-112.woff2) format('woff2'); unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; } /* [113] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-113.woff2) format('woff2'); unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; } /* [114] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-114.woff2) format('woff2'); unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; } /* [115] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-115.woff2) format('woff2'); unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; } /* [116] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-116.woff2) format('woff2'); unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; } /* [117] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-117.woff2) format('woff2'); unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; } /* [118] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-118.woff2) format('woff2'); unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; } /* [119] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-Bold-b87a4987e5b2da77bf62ca7da291da5820ca4e7e795eddcbd3052d6c55f3baaf-119.woff2) format('woff2'); unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e; } ================================================ FILE: public/fonts/GenJyuuGothicX-P-Bold/GenJyuuGothicX-P-Bold.css ================================================ @charset "UTF-8"; /* copyright 2021 Ichinose Shogo (@shogo82148) https://github.com/shogo82148/genjyuugothic-subsets copyright 2014 自家製フォント工房 by MM. http://jikasei.me/font/genjyuu/ M+ OUTLINE FONTS is under the M+ FONTS LICENSE. */ /* [0] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-0.woff2) format('woff2'); unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; } /* [1] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-1.woff2) format('woff2'); unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; } /* [2] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-2.woff2) format('woff2'); unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; } /* [3] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-3.woff2) format('woff2'); unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; } /* [4] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-4.woff2) format('woff2'); unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f; } /* [5] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-5.woff2) format('woff2'); unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c; } /* [6] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-6.woff2) format('woff2'); unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; } /* [7] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-7.woff2) format('woff2'); unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; } /* [8] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-8.woff2) format('woff2'); unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; } /* [9] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-9.woff2) format('woff2'); unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; } /* [10] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-10.woff2) format('woff2'); unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; } /* [11] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-11.woff2) format('woff2'); unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; } /* [12] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-12.woff2) format('woff2'); unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb; } /* [13] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-13.woff2) format('woff2'); unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; } /* [14] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-14.woff2) format('woff2'); unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; } /* [15] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-15.woff2) format('woff2'); unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; } /* [16] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-16.woff2) format('woff2'); unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c; } /* [17] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-17.woff2) format('woff2'); unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970; } /* [18] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-18.woff2) format('woff2'); unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0; } /* [19] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-19.woff2) format('woff2'); unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; } /* [20] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-20.woff2) format('woff2'); unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; } /* [21] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-21.woff2) format('woff2'); unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; } /* [22] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-22.woff2) format('woff2'); unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147; } /* [23] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-23.woff2) format('woff2'); unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; } /* [24] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-24.woff2) format('woff2'); unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56; } /* [25] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-25.woff2) format('woff2'); unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; } /* [26] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-26.woff2) format('woff2'); unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; } /* [27] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-27.woff2) format('woff2'); unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; } /* [28] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-28.woff2) format('woff2'); unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; } /* [29] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-29.woff2) format('woff2'); unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; } /* [30] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-30.woff2) format('woff2'); unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; } /* [31] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-31.woff2) format('woff2'); unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; } /* [32] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-32.woff2) format('woff2'); unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; } /* [33] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-33.woff2) format('woff2'); unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; } /* [34] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-34.woff2) format('woff2'); unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; } /* [35] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-35.woff2) format('woff2'); unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9; } /* [36] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-36.woff2) format('woff2'); unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; } /* [37] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-37.woff2) format('woff2'); unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; } /* [38] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-38.woff2) format('woff2'); unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; } /* [39] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-39.woff2) format('woff2'); unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; } /* [40] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-40.woff2) format('woff2'); unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; } /* [41] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-41.woff2) format('woff2'); unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; } /* [42] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-42.woff2) format('woff2'); unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; } /* [43] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-43.woff2) format('woff2'); unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; } /* [44] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-44.woff2) format('woff2'); unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; } /* [45] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-45.woff2) format('woff2'); unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; } /* [46] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-46.woff2) format('woff2'); unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; } /* [47] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-47.woff2) format('woff2'); unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; } /* [48] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-48.woff2) format('woff2'); unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; } /* [49] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-49.woff2) format('woff2'); unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; } /* [50] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-50.woff2) format('woff2'); unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56; } /* [51] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-51.woff2) format('woff2'); unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; } /* [52] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-52.woff2) format('woff2'); unicode-range: U+32b5-332b, U+332d-3394; } /* [53] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-53.woff2) format('woff2'); unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4; } /* [54] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-54.woff2) format('woff2'); unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7; } /* [55] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-55.woff2) format('woff2'); unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027; } /* [56] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-56.woff2) format('woff2'); unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; } /* [57] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-57.woff2) format('woff2'); unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3; } /* [58] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-58.woff2) format('woff2'); unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0; } /* [59] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-59.woff2) format('woff2'); unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; } /* [60] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-60.woff2) format('woff2'); unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; } /* [61] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-61.woff2) format('woff2'); unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; } /* [62] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-62.woff2) format('woff2'); unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; } /* [63] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-63.woff2) format('woff2'); unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; } /* [64] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-64.woff2) format('woff2'); unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; } /* [65] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-65.woff2) format('woff2'); unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; } /* [66] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-66.woff2) format('woff2'); unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; } /* [67] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-67.woff2) format('woff2'); unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; } /* [68] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-68.woff2) format('woff2'); unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; } /* [69] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-69.woff2) format('woff2'); unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; } /* [70] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-70.woff2) format('woff2'); unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; } /* [71] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-71.woff2) format('woff2'); unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; } /* [72] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-72.woff2) format('woff2'); unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; } /* [73] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-73.woff2) format('woff2'); unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; } /* [74] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-74.woff2) format('woff2'); unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; } /* [75] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-75.woff2) format('woff2'); unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; } /* [76] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-76.woff2) format('woff2'); unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; } /* [77] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-77.woff2) format('woff2'); unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; } /* [78] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-78.woff2) format('woff2'); unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; } /* [79] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-79.woff2) format('woff2'); unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; } /* [80] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-80.woff2) format('woff2'); unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; } /* [81] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-81.woff2) format('woff2'); unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; } /* [82] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-82.woff2) format('woff2'); unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; } /* [83] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-83.woff2) format('woff2'); unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; } /* [84] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-84.woff2) format('woff2'); unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; } /* [85] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-85.woff2) format('woff2'); unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; } /* [86] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-86.woff2) format('woff2'); unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; } /* [87] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-87.woff2) format('woff2'); unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; } /* [88] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-88.woff2) format('woff2'); unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; } /* [89] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-89.woff2) format('woff2'); unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; } /* [90] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-90.woff2) format('woff2'); unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; } /* [91] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-91.woff2) format('woff2'); unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; } /* [92] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-92.woff2) format('woff2'); unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; } /* [93] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-93.woff2) format('woff2'); unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; } /* [94] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-94.woff2) format('woff2'); unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; } /* [95] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-95.woff2) format('woff2'); unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; } /* [96] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-96.woff2) format('woff2'); unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; } /* [97] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-97.woff2) format('woff2'); unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; } /* [98] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-98.woff2) format('woff2'); unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; } /* [99] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-99.woff2) format('woff2'); unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; } /* [100] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-100.woff2) format('woff2'); unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; } /* [101] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-101.woff2) format('woff2'); unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; } /* [102] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-102.woff2) format('woff2'); unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; } /* [103] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-103.woff2) format('woff2'); unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; } /* [104] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-104.woff2) format('woff2'); unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; } /* [105] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-105.woff2) format('woff2'); unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; } /* [106] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-106.woff2) format('woff2'); unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; } /* [107] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-107.woff2) format('woff2'); unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; } /* [108] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-108.woff2) format('woff2'); unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; } /* [109] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-109.woff2) format('woff2'); unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; } /* [110] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-110.woff2) format('woff2'); unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; } /* [111] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-111.woff2) format('woff2'); unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; } /* [112] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-112.woff2) format('woff2'); unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; } /* [113] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-113.woff2) format('woff2'); unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; } /* [114] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-114.woff2) format('woff2'); unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; } /* [115] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-115.woff2) format('woff2'); unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; } /* [116] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-116.woff2) format('woff2'); unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; } /* [117] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-117.woff2) format('woff2'); unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; } /* [118] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-118.woff2) format('woff2'); unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; } /* [119] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 700; font-display: swap; src: url(./GenJyuuGothicX-P-Bold-3173c8c85b725024f378f4eceed1a494d0ed511a73207cded02d4264ea7640ae-119.woff2) format('woff2'); unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e; } ================================================ FILE: public/fonts/GenJyuuGothicX-P-Regular/GenJyuuGothicX-P-Regular.css ================================================ @charset "UTF-8"; /* copyright 2021 Ichinose Shogo (@shogo82148) https://github.com/shogo82148/genjyuugothic-subsets copyright 2014 自家製フォント工房 by MM. http://jikasei.me/font/genjyuu/ M+ OUTLINE FONTS is under the M+ FONTS LICENSE. */ /* [0] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-0.woff2) format('woff2'); unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; } /* [1] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-1.woff2) format('woff2'); unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; } /* [2] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-2.woff2) format('woff2'); unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; } /* [3] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-3.woff2) format('woff2'); unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; } /* [4] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-4.woff2) format('woff2'); unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f; } /* [5] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-5.woff2) format('woff2'); unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c; } /* [6] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-6.woff2) format('woff2'); unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; } /* [7] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-7.woff2) format('woff2'); unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; } /* [8] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-8.woff2) format('woff2'); unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; } /* [9] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-9.woff2) format('woff2'); unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; } /* [10] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-10.woff2) format('woff2'); unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; } /* [11] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-11.woff2) format('woff2'); unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; } /* [12] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-12.woff2) format('woff2'); unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb; } /* [13] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-13.woff2) format('woff2'); unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; } /* [14] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-14.woff2) format('woff2'); unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; } /* [15] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-15.woff2) format('woff2'); unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; } /* [16] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-16.woff2) format('woff2'); unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c; } /* [17] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-17.woff2) format('woff2'); unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970; } /* [18] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-18.woff2) format('woff2'); unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0; } /* [19] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-19.woff2) format('woff2'); unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; } /* [20] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-20.woff2) format('woff2'); unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; } /* [21] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-21.woff2) format('woff2'); unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; } /* [22] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-22.woff2) format('woff2'); unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147; } /* [23] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-23.woff2) format('woff2'); unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; } /* [24] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-24.woff2) format('woff2'); unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56; } /* [25] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-25.woff2) format('woff2'); unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; } /* [26] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-26.woff2) format('woff2'); unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; } /* [27] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-27.woff2) format('woff2'); unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; } /* [28] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-28.woff2) format('woff2'); unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; } /* [29] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-29.woff2) format('woff2'); unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; } /* [30] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-30.woff2) format('woff2'); unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; } /* [31] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-31.woff2) format('woff2'); unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; } /* [32] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-32.woff2) format('woff2'); unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; } /* [33] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-33.woff2) format('woff2'); unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; } /* [34] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-34.woff2) format('woff2'); unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; } /* [35] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-35.woff2) format('woff2'); unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9; } /* [36] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-36.woff2) format('woff2'); unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; } /* [37] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-37.woff2) format('woff2'); unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; } /* [38] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-38.woff2) format('woff2'); unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; } /* [39] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-39.woff2) format('woff2'); unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; } /* [40] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-40.woff2) format('woff2'); unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; } /* [41] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-41.woff2) format('woff2'); unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; } /* [42] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-42.woff2) format('woff2'); unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; } /* [43] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-43.woff2) format('woff2'); unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; } /* [44] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-44.woff2) format('woff2'); unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; } /* [45] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-45.woff2) format('woff2'); unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; } /* [46] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-46.woff2) format('woff2'); unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; } /* [47] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-47.woff2) format('woff2'); unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; } /* [48] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-48.woff2) format('woff2'); unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; } /* [49] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-49.woff2) format('woff2'); unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; } /* [50] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-50.woff2) format('woff2'); unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56; } /* [51] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-51.woff2) format('woff2'); unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; } /* [52] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-52.woff2) format('woff2'); unicode-range: U+32b5-332b, U+332d-3394; } /* [53] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-53.woff2) format('woff2'); unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4; } /* [54] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-54.woff2) format('woff2'); unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7; } /* [55] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-55.woff2) format('woff2'); unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027; } /* [56] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-56.woff2) format('woff2'); unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; } /* [57] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-57.woff2) format('woff2'); unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3; } /* [58] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-58.woff2) format('woff2'); unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0; } /* [59] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-59.woff2) format('woff2'); unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; } /* [60] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-60.woff2) format('woff2'); unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; } /* [61] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-61.woff2) format('woff2'); unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; } /* [62] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-62.woff2) format('woff2'); unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; } /* [63] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-63.woff2) format('woff2'); unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; } /* [64] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-64.woff2) format('woff2'); unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; } /* [65] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-65.woff2) format('woff2'); unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; } /* [66] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-66.woff2) format('woff2'); unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; } /* [67] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-67.woff2) format('woff2'); unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; } /* [68] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-68.woff2) format('woff2'); unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; } /* [69] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-69.woff2) format('woff2'); unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; } /* [70] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-70.woff2) format('woff2'); unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; } /* [71] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-71.woff2) format('woff2'); unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; } /* [72] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-72.woff2) format('woff2'); unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; } /* [73] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-73.woff2) format('woff2'); unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; } /* [74] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-74.woff2) format('woff2'); unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; } /* [75] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-75.woff2) format('woff2'); unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; } /* [76] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-76.woff2) format('woff2'); unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; } /* [77] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-77.woff2) format('woff2'); unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; } /* [78] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-78.woff2) format('woff2'); unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; } /* [79] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-79.woff2) format('woff2'); unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; } /* [80] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-80.woff2) format('woff2'); unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; } /* [81] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-81.woff2) format('woff2'); unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; } /* [82] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-82.woff2) format('woff2'); unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; } /* [83] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-83.woff2) format('woff2'); unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; } /* [84] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-84.woff2) format('woff2'); unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; } /* [85] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-85.woff2) format('woff2'); unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; } /* [86] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-86.woff2) format('woff2'); unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; } /* [87] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-87.woff2) format('woff2'); unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; } /* [88] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-88.woff2) format('woff2'); unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; } /* [89] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-89.woff2) format('woff2'); unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; } /* [90] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-90.woff2) format('woff2'); unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; } /* [91] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-91.woff2) format('woff2'); unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; } /* [92] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-92.woff2) format('woff2'); unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; } /* [93] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-93.woff2) format('woff2'); unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; } /* [94] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-94.woff2) format('woff2'); unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; } /* [95] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-95.woff2) format('woff2'); unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; } /* [96] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-96.woff2) format('woff2'); unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; } /* [97] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-97.woff2) format('woff2'); unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; } /* [98] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-98.woff2) format('woff2'); unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; } /* [99] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-99.woff2) format('woff2'); unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; } /* [100] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-100.woff2) format('woff2'); unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; } /* [101] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-101.woff2) format('woff2'); unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; } /* [102] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-102.woff2) format('woff2'); unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; } /* [103] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-103.woff2) format('woff2'); unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; } /* [104] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-104.woff2) format('woff2'); unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; } /* [105] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-105.woff2) format('woff2'); unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; } /* [106] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-106.woff2) format('woff2'); unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; } /* [107] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-107.woff2) format('woff2'); unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; } /* [108] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-108.woff2) format('woff2'); unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; } /* [109] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-109.woff2) format('woff2'); unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; } /* [110] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-110.woff2) format('woff2'); unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; } /* [111] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-111.woff2) format('woff2'); unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; } /* [112] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-112.woff2) format('woff2'); unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; } /* [113] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-113.woff2) format('woff2'); unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; } /* [114] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-114.woff2) format('woff2'); unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; } /* [115] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-115.woff2) format('woff2'); unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; } /* [116] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-116.woff2) format('woff2'); unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; } /* [117] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-117.woff2) format('woff2'); unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; } /* [118] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-118.woff2) format('woff2'); unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; } /* [119] */ @font-face { font-family: 'GenJyuuGothicXP'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-P-Regular-c313c1c15c60f5c4efbaf0f4a51baf2930bd3a159462c93721ce891be6a208ff-119.woff2) format('woff2'); unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e; } ================================================ FILE: public/fonts/GenJyuuGothicX-Regular/GenJyuuGothicX-Regular.css ================================================ @charset "UTF-8"; /* copyright 2021 Ichinose Shogo (@shogo82148) https://github.com/shogo82148/genjyuugothic-subsets copyright 2014 自家製フォント工房 by MM. http://jikasei.me/font/genjyuu/ M+ OUTLINE FONTS is under the M+ FONTS LICENSE. */ /* [0] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-0.woff2) format('woff2'); unicode-range: U+25ee8, U+25f23, U+25f5c, U+25fd4, U+25fe0, U+25ffb, U+2600c, U+26017, U+26060, U+260ed, U+26222, U+2626a, U+26270, U+26286, U+2634c, U+26402, U+2667e, U+266b0, U+2671d, U+268dd, U+268ea, U+26951, U+2696f, U+26999, U+269dd, U+26a1e, U+26a58, U+26a8c, U+26ab7, U+26aff, U+26c29, U+26c73, U+26c9e, U+26cdd, U+26e40, U+26e65, U+26f94, U+26ff6-26ff8, U+270f4, U+2710d, U+27139, U+273da-273db, U+273fe, U+27410, U+27449, U+27614-27615, U+27631, U+27684, U+27693, U+2770e, U+27723, U+27752, U+278b2, U+27985, U+279b4, U+27a84, U+27bb3, U+27bbe, U+27bc7, U+27c3c, U+27cb8, U+27d73, U+27da0, U+27e10, U+27eaf, U+27fb7, U+2808a, U+280bb, U+28277, U+28282, U+282f3, U+283cd, U+2840c, U+28455, U+284dc, U+2856b, U+285c8-285c9, U+286d7, U+286fa, U+28946, U+28949, U+2896b, U+28987-28988, U+289ba-289bb, U+28a1e, U+28a29, U+28a43, U+28a71, U+28a99, U+28acd, U+28add, U+28ae4, U+28bc1, U+28bef, U+28cdd, U+28d10, U+28d71, U+28dfb, U+28e0f, U+28e17, U+28e1f, U+28e36, U+28e89, U+28eeb, U+28ef6, U+28f32, U+28ff8, U+292a0, U+292b1, U+29490, U+295cf, U+2967f, U+296f0, U+29719, U+29750, U+29810, U+298c6, U+29a72, U+29d4b, U+29ddb, U+29e15, U+29e3d, U+29e49, U+29e8a, U+29ec4, U+29edb, U+29ee9, U+29fce, U+29fd7, U+2a01a, U+2a02f, U+2a082, U+2a0f9, U+2a190, U+2a2b2, U+2a38c, U+2a437, U+2a5f1, U+2a602, U+2a61a, U+2a6b2, U+2a9e6, U+2b746, U+2b751, U+2b753, U+2b75a, U+2b75c, U+2b765, U+2b776-2b777, U+2b77c, U+2b782, U+2b789, U+2b78b, U+2b78e, U+2b794, U+2b7ac, U+2b7af, U+2b7bd, U+2b7c9, U+2b7cf, U+2b7d2, U+2b7d8, U+2b7f0, U+2b80d, U+2b817, U+2b81a, U+2d544, U+2e278, U+2e569, U+2e6ea, U+2f804, U+2f80f, U+2f815, U+2f818, U+2f81a, U+2f822, U+2f828, U+2f82c, U+2f833, U+2f83f, U+2f846, U+2f852, U+2f862, U+2f86d, U+2f873, U+2f877, U+2f884, U+2f899-2f89a, U+2f8a6, U+2f8ac, U+2f8b2, U+2f8b6, U+2f8d3, U+2f8db-2f8dc, U+2f8e1, U+2f8e5, U+2f8ea, U+2f8ed, U+2f8fc, U+2f903, U+2f90b, U+2f90f, U+2f91a, U+2f920-2f921, U+2f945, U+2f947, U+2f96c, U+2f995, U+2f9d0, U+2f9de-2f9df, U+2f9f4; } /* [1] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-1.woff2) format('woff2'); unicode-range: U+1f235-1f23b, U+1f240-1f248, U+1f250-1f251, U+2000b, U+20089-2008a, U+200a2, U+200a4, U+200b0, U+200f5, U+20158, U+201a2, U+20213, U+2032b, U+20371, U+20381, U+203f9, U+2044a, U+20509, U+2053f, U+205b1, U+205d6, U+20611, U+20628, U+206ec, U+2074f, U+207c8, U+20807, U+2083a, U+208b9, U+2090e, U+2097c, U+20984, U+2099d, U+20a64, U+20ad3, U+20b1d, U+20b9f, U+20bb7, U+20d45, U+20d58, U+20de1, U+20e64, U+20e6d, U+20e95, U+20f5f, U+21201, U+2123d, U+21255, U+21274, U+2127b, U+212d7, U+212e4, U+212fd, U+2131b, U+21336, U+21344, U+213c4, U+2146d-2146e, U+215d7, U+21647, U+216b4, U+21706, U+21742, U+218bd, U+219c3, U+21a1a, U+21c56, U+21d2d, U+21d45, U+21d62, U+21d78, U+21d92, U+21d9c, U+21da1, U+21db7, U+21de0, U+21e33-21e34, U+21f1e, U+21f76, U+21ffa, U+2217b, U+22218, U+2231e, U+223ad, U+22609, U+226f3, U+2285b, U+228ab, U+2298f, U+22ab8, U+22b46, U+22b4f-22b50, U+22ba6, U+22c1d, U+22c24, U+22de1, U+22e42, U+22feb, U+231b6, U+231c3-231c4, U+231f5, U+23372, U+233cc, U+233d0, U+233d2-233d3, U+233d5, U+233da, U+233df, U+233e4, U+233fe, U+2344a-2344b, U+23451, U+23465, U+234e4, U+2355a, U+23594, U+235c4, U+23638-2363a, U+23647, U+2370c, U+2371c, U+2373f, U+23763-23764, U+237e7, U+237f1, U+237ff, U+23824, U+2383d, U+23a98, U+23c7f, U+23cbe, U+23cfe, U+23d00, U+23d0e, U+23d40, U+23dd3, U+23df9-23dfa, U+23f7e, U+2404b, U+24096, U+24103, U+241c6, U+241fe, U+242ee, U+243bc, U+243d0, U+24629, U+246a5, U+247f1, U+24896, U+248e9, U+24a4d, U+24b56, U+24b6f, U+24c16, U+24d14, U+24e04, U+24e0e, U+24e37, U+24e6a, U+24e8b, U+24ff2, U+2504a, U+25055, U+25122, U+251a9, U+251cd, U+251e5, U+2521e, U+2524c, U+2542e, U+2548e, U+254d9, U+2550e, U+255a7, U+2567f, U+25771, U+257a9, U+257b4, U+25874, U+259c4, U+259cc, U+259d4, U+25ad7, U+25ae3-25ae4, U+25af1, U+25bb2, U+25c4b, U+25c64, U+25da1, U+25e2e, U+25e56, U+25e62, U+25e65, U+25ec2, U+25ed8; } /* [2] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-2.woff2) format('woff2'); unicode-range: U+ffd7, U+ffda-ffdc, U+ffe0-ffe2, U+ffe4, U+ffe6, U+ffe8-ffee, U+1f100-1f10c, U+1f110-1f16c, U+1f170-1f1ac, U+1f200-1f202, U+1f210-1f234; } /* [3] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-3.woff2) format('woff2'); unicode-range: U+fa10, U+fa12-fa6d, U+fb00-fb04, U+fe10-fe19, U+fe30-fe42, U+fe44-fe52, U+fe54-fe66, U+fe68-fe6b, U+ff02, U+ff04, U+ff07, U+ff51, U+ff5b, U+ff5d, U+ff5f-ff60, U+ff66, U+ff69, U+ff87, U+ffa1-ffbe, U+ffc2-ffc7, U+ffca-ffcf, U+ffd2-ffd6; } /* [4] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-4.woff2) format('woff2'); unicode-range: U+f92d-f959, U+f95b-f9f2, U+f9f4-fa0b, U+fa0e-fa0f; } /* [5] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-5.woff2) format('woff2'); unicode-range: U+9e8b-9e8c, U+9e8e-9e8f, U+9e91-9e92, U+9e95-9e96, U+9e98, U+9e9b, U+9e9d-9e9e, U+9ea4-9ea5, U+9ea8-9eaa, U+9eac-9eb0, U+9eb3-9eb5, U+9eb8, U+9ebc-9ebf, U+9ec3, U+9ec6, U+9ec8, U+9ecb-9ecd, U+9ecf-9ed1, U+9ed4-9ed5, U+9ed8, U+9edb-9ee0, U+9ee4-9ee5, U+9ee7-9ee8, U+9eec-9ef2, U+9ef4-9ef9, U+9efb-9eff, U+9f02-9f03, U+9f07-9f09, U+9f0e-9f12, U+9f14-9f17, U+9f19-9f1b, U+9f1f-9f22, U+9f26, U+9f2a-9f2c, U+9f2f, U+9f31-9f32, U+9f34, U+9f37, U+9f39-9f3a, U+9f3c-9f3f, U+9f41, U+9f43-9f47, U+9f4a, U+9f4e-9f50, U+9f52-9f58, U+9f5a, U+9f5d-9f61, U+9f63, U+9f66-9f6a, U+9f6c-9f73, U+9f75-9f77, U+9f7a, U+9f7d, U+9f7f, U+9f8f-9f92, U+9f94-9f97, U+9f99, U+9f9c-9fa3, U+9fa5, U+9fb4, U+9fbc-9fc2, U+9fc4, U+9fc6, U+9fcc, U+f900-f92c; } /* [6] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-6.woff2) format('woff2'); unicode-range: U+9c3e, U+9c41, U+9c43-9c4a, U+9c4e-9c50, U+9c52-9c54, U+9c56, U+9c58, U+9c5a-9c61, U+9c63, U+9c65, U+9c67-9c6b, U+9c6d-9c6e, U+9c70, U+9c72, U+9c75-9c78, U+9c7a-9c7c, U+9ce6-9ce7, U+9ceb-9cec, U+9cf0, U+9cf2, U+9cf6-9cf7, U+9cf9, U+9d02-9d03, U+9d06-9d09, U+9d0b, U+9d0e, U+9d11-9d12, U+9d15, U+9d17-9d18, U+9d1b-9d1f, U+9d23, U+9d26, U+9d2a-9d2c, U+9d2f-9d30, U+9d32-9d34, U+9d3a, U+9d3c-9d3f, U+9d41-9d48, U+9d4a, U+9d50-9d54, U+9d59, U+9d5d-9d65, U+9d69-9d6c, U+9d6f-9d70, U+9d72-9d73, U+9d76-9d77, U+9d7a-9d7c, U+9d7e, U+9d83-9d84, U+9d86-9d87, U+9d89-9d8a, U+9d8d-9d8e, U+9d92-9d93, U+9d95-9d9a, U+9da1, U+9da4, U+9da9-9dac, U+9dae, U+9db1-9db2, U+9db5, U+9db8-9dbd, U+9dbf-9dc4, U+9dc6-9dc7, U+9dc9-9dca, U+9dcf, U+9dd3-9dd7, U+9dd9-9dda, U+9dde-9de0, U+9de3, U+9de5-9de7, U+9de9, U+9deb, U+9ded-9df0, U+9df3-9df4, U+9df8, U+9dfd-9dfe, U+9e02, U+9e07, U+9e0a, U+9e0d-9e0e, U+9e10-9e12, U+9e15-9e16, U+9e19-9e1f, U+9e75, U+9e79-9e7d, U+9e80-9e85, U+9e87-9e88; } /* [7] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-7.woff2) format('woff2'); unicode-range: U+9ae5-9ae7, U+9ae9, U+9aeb-9aec, U+9aee-9aef, U+9af1-9af5, U+9af7, U+9af9-9afb, U+9afd, U+9aff-9b06, U+9b08-9b09, U+9b0b-9b0e, U+9b10, U+9b12, U+9b16, U+9b18-9b1d, U+9b1f-9b20, U+9b22-9b23, U+9b25-9b2f, U+9b32-9b35, U+9b37, U+9b39-9b3b, U+9b3d, U+9b43-9b44, U+9b48, U+9b4b-9b4f, U+9b51, U+9b55-9b58, U+9b5b, U+9b5e, U+9b61, U+9b63, U+9b65-9b66, U+9b68, U+9b6a-9b6f, U+9b72-9b79, U+9b7f-9b80, U+9b83-9b87, U+9b89-9b8b, U+9b8d, U+9b8f-9b94, U+9b96-9b97, U+9b9a, U+9b9d-9ba0, U+9ba6-9ba7, U+9ba9-9baa, U+9bac, U+9bb0-9bb2, U+9bb4, U+9bb7-9bb9, U+9bbb-9bbc, U+9bbe-9bc1, U+9bc6-9bc8, U+9bca, U+9bce-9bd2, U+9bd4, U+9bd7-9bd8, U+9bdd, U+9bdf, U+9be1-9be5, U+9be7, U+9bea-9beb, U+9bee-9bf3, U+9bf5, U+9bf7-9bfa, U+9bfd, U+9bff-9c00, U+9c02, U+9c04, U+9c06, U+9c08-9c0d, U+9c0f-9c16, U+9c18-9c1e, U+9c21-9c2a, U+9c2d-9c32, U+9c35-9c37, U+9c39-9c3a, U+9c3d; } /* [8] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-8.woff2) format('woff2'); unicode-range: U+98eb, U+98ed-98ee, U+98f0-98f1, U+98f3, U+98f6, U+9902, U+9907-9909, U+9911-9912, U+9914-9918, U+991a-9922, U+9924, U+9926-9927, U+992b-992c, U+992e, U+9931-9935, U+9939-993e, U+9940-9942, U+9945-9949, U+994b-994e, U+9950-9952, U+9954-9955, U+9958-9959, U+995b-995c, U+995e-9960, U+9963, U+9997-9998, U+999b, U+999d-999f, U+99a3, U+99a5-99a6, U+99a8, U+99ad-99ae, U+99b0-99b2, U+99b5, U+99b9-99ba, U+99bc-99bd, U+99bf, U+99c1, U+99c3, U+99c8-99c9, U+99d1, U+99d3-99d5, U+99d8-99df, U+99e1-99e2, U+99e7, U+99ea-99ee, U+99f0-99f2, U+99f4-99f5, U+99f8-99f9, U+99fb-99fe, U+9a01-9a05, U+9a08, U+9a0a-9a0c, U+9a0f-9a11, U+9a16, U+9a1a, U+9a1e, U+9a20, U+9a22-9a24, U+9a27, U+9a2b, U+9a2d-9a2e, U+9a31, U+9a33, U+9a35-9a38, U+9a3e, U+9a40-9a45, U+9a47, U+9a4a-9a4e, U+9a51-9a52, U+9a54-9a58, U+9a5b, U+9a5d, U+9a5f, U+9a62, U+9a64-9a65, U+9a69-9a6c, U+9aaa, U+9aac-9ab0, U+9ab2, U+9ab4-9ab7, U+9ab9, U+9abb-9ac1, U+9ac3, U+9ac6, U+9ac8, U+9ace-9ad3, U+9ad5-9ad7, U+9adb-9adc, U+9ade-9ae0, U+9ae2-9ae4; } /* [9] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-9.woff2) format('woff2'); unicode-range: U+971d, U+9721-9724, U+9728, U+972a, U+9730-9731, U+9733, U+9736, U+9738-9739, U+973b, U+973d-973e, U+9741-9744, U+9746-974a, U+974d-974f, U+9751, U+9755, U+9757-9758, U+975a-975c, U+9760-9761, U+9763-9764, U+9766-9768, U+976a-976b, U+976e, U+9771, U+9773, U+9776-977d, U+977f-9781, U+9785-9786, U+9789, U+978b, U+978f-9790, U+9795-9797, U+9799-979a, U+979c, U+979e-97a0, U+97a2-97a3, U+97a6, U+97a8, U+97ab-97ac, U+97ae, U+97b1-97b6, U+97b8-97ba, U+97bc, U+97be-97bf, U+97c1, U+97c3-97ce, U+97d0-97d1, U+97d4, U+97d7-97d9, U+97db-97de, U+97e0-97e1, U+97e4, U+97e6, U+97ed-97ef, U+97f1-97f2, U+97f4-97f8, U+97fa, U+9804, U+9807, U+980a, U+980c-980f, U+9814, U+9816-9817, U+9819-981a, U+981c, U+981e, U+9820-9821, U+9823-9826, U+982b, U+982e-9830, U+9832-9835, U+9837, U+9839, U+983d-983e, U+9844, U+9846-9847, U+984a-984b, U+984f, U+9851-9853, U+9856-9857, U+9859-985b, U+9862-9863, U+9865-9866, U+986a-986c, U+986f-9871, U+9873-9875, U+98aa-98ab, U+98ad-98ae, U+98b0-98b1, U+98b4, U+98b6-98b8, U+98ba-98bc, U+98bf, U+98c2-98c8, U+98cb-98cc, U+98ce, U+98dc, U+98de, U+98e0-98e1, U+98e3, U+98e5-98e7, U+98e9-98ea; } /* [10] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-10.woff2) format('woff2'); unicode-range: U+944a, U+944c, U+9452-9453, U+9455, U+9459-945c, U+945e-9463, U+9468, U+946a-946b, U+946d-9472, U+9475, U+9477, U+947c-947f, U+9481, U+9483-9485, U+9578-9579, U+957e-957f, U+9582, U+9584, U+9586-9588, U+958a, U+958c-958f, U+9592, U+9594, U+9596, U+9598-9599, U+959d-95a1, U+95a4, U+95a6-95a9, U+95ab-95ad, U+95b1, U+95b4, U+95b6, U+95b9-95bf, U+95c3, U+95c6, U+95c8-95cd, U+95d0-95d6, U+95d9-95da, U+95dc-95e2, U+95e4-95e6, U+95e8, U+961d-961e, U+9621-9622, U+9624-9626, U+9628, U+962c, U+962e-962f, U+9631, U+9633-9634, U+9637-963a, U+963c-963d, U+9641-9642, U+964b-964c, U+964f, U+9652, U+9654, U+9656-9658, U+965c-965f, U+9661, U+9666, U+966a, U+966c, U+966e, U+9672, U+9674, U+9677, U+967b-967c, U+967e-967f, U+9681-9684, U+9689, U+968b, U+968d, U+9691, U+9695-9698, U+969a, U+969d, U+969f, U+96a4-96aa, U+96ae-96b4, U+96b6, U+96b8-96bb, U+96bd, U+96c1, U+96c9-96cb, U+96cd-96ce, U+96d2, U+96d5-96d6, U+96d8-96da, U+96dc-96df, U+96e9, U+96ef, U+96f1, U+96f9-96fa, U+9702-9706, U+9708-9709, U+970d-970f, U+9711, U+9713-9714, U+9716, U+9719-971b; } /* [11] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-11.woff2) format('woff2'); unicode-range: U+92bc-92bd, U+92bf-92c3, U+92c5-92c8, U+92cb-92d0, U+92d2-92d3, U+92d5, U+92d7-92d9, U+92dc-92dd, U+92df-92e1, U+92e3-92e5, U+92e7-92ea, U+92ec, U+92ee, U+92f0, U+92f2, U+92f7-92fb, U+92ff-9300, U+9302, U+9304, U+9308, U+930d, U+930f-9311, U+9314-9315, U+9318-931a, U+931c-931f, U+9321-9325, U+9327-932b, U+932e, U+9333-9337, U+933a-933b, U+9344, U+9347-934a, U+934d, U+9350-9352, U+9354-9358, U+935a, U+935c, U+935e, U+9360, U+9364-9365, U+9367, U+9369-936d, U+936f-9371, U+9373-9374, U+9376, U+937a, U+937d-9382, U+9388, U+938a-938b, U+938d, U+938f, U+9392, U+9394-9395, U+9397-9398, U+939a-939b, U+939e, U+93a1, U+93a3-93a4, U+93a6, U+93a8-93a9, U+93ab-93ad, U+93b0, U+93b4-93b6, U+93b9-93bb, U+93c1, U+93c3-93cd, U+93d0-93d1, U+93d3, U+93d6-93d9, U+93dc-93df, U+93e2, U+93e4-93e8, U+93f1, U+93f5, U+93f7-93fb, U+93fd, U+9401-9404, U+9407-9409, U+940d-9410, U+9413-9417, U+9419-941a, U+941f, U+9421, U+942b, U+942e-942f, U+9431-9434, U+9436, U+9438, U+943a-943b, U+943d, U+943f, U+9441, U+9443-9445, U+9448; } /* [12] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-12.woff2) format('woff2'); unicode-range: U+9143, U+9146-914c, U+914f, U+9153, U+9156-915b, U+9161, U+9163-9165, U+9167, U+9169, U+916d, U+9172-9174, U+9179-917b, U+9181-9183, U+9185-9187, U+9189-918b, U+918e, U+9191, U+9193-9195, U+9197-9198, U+919e, U+91a1-91a2, U+91a6, U+91a8, U+91aa-91b6, U+91ba-91bd, U+91bf-91c6, U+91c9, U+91cb, U+91d0, U+91d3-91d4, U+91d6-91d7, U+91d9-91db, U+91de-91df, U+91e1, U+91e4-91e6, U+91e9-91ea, U+91ec-91f1, U+91f5-91f7, U+91f9, U+91fb-91fd, U+91ff-9201, U+9204-9207, U+9209-920a, U+920c, U+920e, U+9210-9218, U+921c-921e, U+9223-9226, U+9228-9229, U+922c, U+922e-9230, U+9233, U+9235-923a, U+923c, U+923e-9240, U+9242-9243, U+9245-924b, U+924d-9251, U+9256-925a, U+925c-925e, U+9260-9261, U+9264-9269, U+926e-9270, U+9275-9279, U+927b-927f, U+9288-928a, U+928d-928e, U+9291-9293, U+9295-9297, U+9299, U+929b-929c, U+929f-92a0, U+92a4-92a5, U+92a7-92a8, U+92ab, U+92af, U+92b2-92b3, U+92b6-92bb; } /* [13] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-13.woff2) format('woff2'); unicode-range: U+8f52-8f55, U+8f57-8f58, U+8f5c-8f5e, U+8f61-8f66, U+8f9c-8f9d, U+8f9f-8fa2, U+8fa4-8fa8, U+8fad-8faf, U+8fb4-8fb8, U+8fbe, U+8fc0-8fc2, U+8fc6, U+8fc8, U+8fca-8fcb, U+8fcd, U+8fd0, U+8fd2-8fd3, U+8fd5, U+8fda, U+8fe0, U+8fe2-8fe5, U+8fe8-8fea, U+8fed-8fef, U+8ff1, U+8ff4-8ff6, U+8ff8-8ffb, U+8ffe, U+9002, U+9004-9005, U+9008, U+900b-900e, U+9011, U+9013, U+9015-9016, U+9018, U+901b, U+901e, U+9021, U+9027-902a, U+902c-902d, U+902f, U+9033-9037, U+9039, U+903c, U+903e-903f, U+9041, U+9043-9044, U+9049, U+904c, U+904f-9052, U+9056, U+9058, U+905b-905e, U+9062, U+9066-9068, U+906c, U+906f-9070, U+9072, U+9074, U+9076, U+9079, U+9080-9083, U+9085, U+9087-9088, U+908b-908c, U+908e-9090, U+9095, U+9097-9099, U+909b, U+90a0-90a2, U+90a5, U+90a8, U+90af-90b6, U+90bd-90be, U+90c3-90c5, U+90c7-90c9, U+90cc, U+90d2, U+90d5, U+90d7-90d9, U+90db-90df, U+90e2, U+90e4-90e5, U+90eb, U+90ef-90f0, U+90f2, U+90f4, U+90f6, U+90fe-9100, U+9102, U+9104-9106, U+9108, U+910d, U+9110, U+9112, U+9114-911a, U+911c, U+911e, U+9120, U+9122-9123, U+9125, U+9127, U+9129, U+912d-9132, U+9134, U+9136-9137, U+9139-913a, U+913c-913d; } /* [14] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-14.woff2) format('woff2'); unicode-range: U+8dc0, U+8dc2, U+8dc5-8dc8, U+8dca-8dcc, U+8dce-8dcf, U+8dd1, U+8dd4-8dd7, U+8dd9-8ddb, U+8ddf, U+8de3-8de5, U+8de7, U+8dea-8dec, U+8df0-8df2, U+8df4, U+8dfc-8dfd, U+8dff, U+8e01, U+8e04-8e06, U+8e08-8e09, U+8e0b-8e0c, U+8e10-8e11, U+8e14, U+8e16, U+8e1d-8e23, U+8e26-8e27, U+8e30-8e31, U+8e33-8e39, U+8e3d, U+8e40-8e42, U+8e44, U+8e47-8e50, U+8e54-8e55, U+8e59, U+8e5b-8e64, U+8e69, U+8e6c-8e6d, U+8e6f-8e72, U+8e75-8e77, U+8e79-8e7c, U+8e81-8e85, U+8e89, U+8e8b, U+8e90-8e95, U+8e98-8e9b, U+8e9d-8e9e, U+8ea1-8ea2, U+8ea7, U+8ea9-8eaa, U+8eac-8eb1, U+8eb3, U+8eb5-8eb6, U+8eba-8ebb, U+8ebe, U+8ec0-8ec1, U+8ec3-8ec8, U+8ecb, U+8ecf, U+8ed1, U+8ed4, U+8edb-8edc, U+8ee3, U+8ee8, U+8eeb, U+8eed-8eee, U+8ef0-8ef1, U+8ef7, U+8ef9-8efc, U+8efe, U+8f00, U+8f02, U+8f05, U+8f07-8f08, U+8f0a, U+8f0f-8f10, U+8f12-8f13, U+8f15-8f19, U+8f1b-8f1c, U+8f1e-8f21, U+8f23, U+8f25-8f28, U+8f2b-8f2f, U+8f33-8f37, U+8f39-8f3b, U+8f3e, U+8f40-8f43, U+8f45-8f47, U+8f49-8f4a, U+8f4c-8f4f, U+8f51; } /* [15] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-15.woff2) format('woff2'); unicode-range: U+8b2d, U+8b30, U+8b37, U+8b3c, U+8b3e, U+8b41-8b46, U+8b48-8b49, U+8b4c-8b4f, U+8b51-8b54, U+8b56, U+8b59, U+8b5b, U+8b5e-8b5f, U+8b63, U+8b69, U+8b6b-8b6d, U+8b6f, U+8b71, U+8b74, U+8b76, U+8b78-8b79, U+8b7c-8b81, U+8b84-8b85, U+8b8a-8b8f, U+8b92-8b96, U+8b99-8b9a, U+8b9c-8ba0, U+8c38-8c3a, U+8c3d-8c3f, U+8c41, U+8c45, U+8c47-8c49, U+8c4b-8c4c, U+8c4e-8c51, U+8c53-8c55, U+8c57-8c59, U+8c5b, U+8c5d, U+8c62-8c64, U+8c66, U+8c68-8c69, U+8c6b-8c6d, U+8c73, U+8c75-8c76, U+8c78, U+8c7a-8c7c, U+8c7e, U+8c82, U+8c85-8c87, U+8c89-8c8b, U+8c8d-8c8e, U+8c90, U+8c92-8c94, U+8c98-8c99, U+8c9b-8c9c, U+8c9f, U+8ca4, U+8cad-8cae, U+8cb2-8cb3, U+8cb6, U+8cb9-8cba, U+8cbd, U+8cc1-8cc2, U+8cc4-8cc6, U+8cc8-8cc9, U+8ccb, U+8ccd-8ccf, U+8cd2, U+8cd5-8cd6, U+8cd9-8cda, U+8cdd, U+8ce1, U+8ce3-8ce4, U+8ce6, U+8ce8, U+8cec, U+8cef-8cf2, U+8cf4-8cf5, U+8cf7-8cf8, U+8cfa-8cfb, U+8cfd-8cff, U+8d01, U+8d03-8d04, U+8d07, U+8d09-8d0b, U+8d0d-8d10, U+8d12-8d14, U+8d16-8d17, U+8d1b-8d1d, U+8d65, U+8d67, U+8d69, U+8d6b-8d6e, U+8d71, U+8d73, U+8d76, U+8d7f, U+8d81-8d82, U+8d84, U+8d88, U+8d8d, U+8d90-8d91, U+8d95, U+8d99, U+8d9e-8da0, U+8da6, U+8da8, U+8dab-8dac, U+8daf, U+8db2, U+8db5, U+8db7, U+8db9-8dbc, U+8dbe; } /* [16] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-16.woff2) format('woff2'); unicode-range: U+8973-8975, U+8977, U+897a-897e, U+8980, U+8983, U+8988-898a, U+898d, U+8990, U+8993-8995, U+8998, U+899b-899c, U+899f-89a1, U+89a5-89a6, U+89a9, U+89ac, U+89af-89b0, U+89b2, U+89b4-89b7, U+89ba, U+89bc-89bd, U+89bf-89c1, U+89d4-89d8, U+89da, U+89dc-89dd, U+89e5, U+89e7, U+89e9, U+89eb, U+89ed, U+89f1, U+89f3-89f4, U+89f6, U+89f8-89f9, U+89fd, U+89ff, U+8a01, U+8a04-8a05, U+8a07, U+8a0c, U+8a0f-8a12, U+8a14-8a16, U+8a1b, U+8a1d-8a1e, U+8a20-8a22, U+8a24-8a26, U+8a2b-8a2c, U+8a2f, U+8a35-8a37, U+8a3b, U+8a3d-8a3e, U+8a40-8a41, U+8a43, U+8a45-8a49, U+8a4d-8a4e, U+8a51-8a54, U+8a56-8a58, U+8a5b-8a5d, U+8a61-8a62, U+8a65, U+8a67, U+8a6c-8a6d, U+8a75-8a77, U+8a79-8a7c, U+8a7e-8a80, U+8a82-8a86, U+8a8b, U+8a8f-8a92, U+8a96-8a97, U+8a99-8a9a, U+8a9f, U+8aa1, U+8aa3, U+8aa5-8aaa, U+8aae-8aaf, U+8ab3, U+8ab6-8ab7, U+8abb-8abc, U+8abe, U+8ac2-8ac4, U+8ac6, U+8ac8-8aca, U+8acc-8acd, U+8ad0-8ad1, U+8ad3-8ad5, U+8ad7, U+8ada-8ae2, U+8ae4, U+8ae7, U+8aeb-8aec, U+8aee, U+8af0-8af1, U+8af3-8af7, U+8afa, U+8afc, U+8aff, U+8b01-8b02, U+8b04-8b07, U+8b0a-8b0d, U+8b0f-8b11, U+8b14, U+8b16, U+8b1a, U+8b1c, U+8b1e-8b20, U+8b26, U+8b28, U+8b2b-8b2c; } /* [17] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-17.woff2) format('woff2'); unicode-range: U+87e2-87e6, U+87ea-87ed, U+87ef, U+87f1, U+87f3, U+87f5-87f8, U+87fa-87fb, U+87fe-87ff, U+8801, U+8803, U+8805-8807, U+8809-880b, U+880d-8816, U+8818-881c, U+881e-881f, U+8821-8822, U+8827-8828, U+882d-882e, U+8830-8832, U+8835-8836, U+8839-883c, U+8841-8845, U+8848-884b, U+884d-884e, U+8851-8852, U+8855-8856, U+8858-885a, U+885c, U+885e-8860, U+8862, U+8864, U+8869, U+886b, U+886e-886f, U+8871-8872, U+8875, U+8877, U+8879, U+887b, U+887d-887e, U+8880-8882, U+8888, U+888d, U+8892, U+8897-889c, U+889e-88a0, U+88a2, U+88a4, U+88a8, U+88aa, U+88ae, U+88b0-88b1, U+88b5, U+88b7, U+88ba, U+88bc-88c0, U+88c3-88c4, U+88c6, U+88ca-88ce, U+88d1-88d4, U+88d8-88d9, U+88db, U+88dd-88e1, U+88e7-88e8, U+88ef-88f2, U+88f4-88f5, U+88f7, U+88f9, U+88fc, U+8901-8902, U+8904, U+8906, U+890a, U+890c-890f, U+8913, U+8915-8916, U+8918-891a, U+891c-891e, U+8920, U+8925-8928, U+892a-892b, U+8930-8932, U+8935-893b, U+893e, U+8940-8946, U+8949, U+894c-894d, U+894f, U+8952, U+8956-8957, U+895a-895c, U+895e, U+8960-8964, U+8966, U+896a-896b, U+896d-8970; } /* [18] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-18.woff2) format('woff2'); unicode-range: U+8655-8659, U+865b, U+865d-8664, U+8667, U+8669, U+866c, U+866f, U+8671, U+8675-8677, U+867a-867b, U+867d, U+8687-8689, U+868b-868d, U+8691, U+8693, U+8695-8696, U+8698, U+869a, U+869c-869d, U+86a1, U+86a3-86a4, U+86a6-86ab, U+86ad, U+86af-86b1, U+86b3-86b9, U+86bf-86c1, U+86c3-86c6, U+86c9, U+86cb, U+86ce, U+86d1-86d2, U+86d4-86d5, U+86d7, U+86da, U+86dc, U+86de-86e0, U+86e3-86e7, U+86e9, U+86ec-86ed, U+86ef, U+86f8-86fe, U+8700, U+8703-870b, U+870d-8714, U+8719-871a, U+871e-871f, U+8721-8723, U+8725, U+8728-8729, U+872e-872f, U+8731-8732, U+8734, U+8737, U+8739-8740, U+8743, U+8745, U+8749, U+874b-874e, U+8751, U+8753, U+8755, U+8757-8759, U+875d, U+875f-8761, U+8763-8766, U+8768, U+876a, U+876e-876f, U+8771-8772, U+8774, U+8778, U+877b-877c, U+877f, U+8782-8789, U+878b-878c, U+878e, U+8790, U+8793, U+8795, U+8797-8799, U+879e-87a0, U+87a2-87a3, U+87a7, U+87ab-87af, U+87b1, U+87b3, U+87b5, U+87bb, U+87bd-87c1, U+87c4, U+87c6-87cb, U+87ce, U+87d0, U+87d2, U+87d5-87d6, U+87d9-87da, U+87dc, U+87df-87e0; } /* [19] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-19.woff2) format('woff2'); unicode-range: U+84b4, U+84b9-84bb, U+84bd-84c2, U+84c6-84ca, U+84cc-84d1, U+84d3, U+84d6, U+84d9-84da, U+84dc, U+84e7, U+84ea, U+84ec, U+84ef-84f2, U+84f4, U+84f7, U+84fa-84fd, U+84ff-8500, U+8502-8503, U+8506-8507, U+850c, U+850e, U+8510, U+8514-8515, U+8517-8518, U+851a-851c, U+851e-851f, U+8521-8525, U+8527, U+852a-852c, U+852f, U+8532-8534, U+8536, U+853e-8541, U+8543, U+8546, U+8548, U+854a-854b, U+854f-8553, U+8555-855a, U+855c-8564, U+8569-856b, U+856d, U+856f, U+8577, U+8579-857b, U+857d-8581, U+8585-8586, U+8588-858c, U+858f-8591, U+8593, U+8597-8598, U+859b-859d, U+859f-85a0, U+85a2, U+85a4-85a5, U+85a7-85a8, U+85ad-85b0, U+85b4, U+85b6-85ba, U+85bc-85bf, U+85c1-85c2, U+85c7, U+85c9-85cb, U+85ce-85d0, U+85d5, U+85d8-85da, U+85dc, U+85df-85e1, U+85e5-85e6, U+85e8, U+85ed, U+85f3-85f4, U+85f6-85f7, U+85f9-85fa, U+85fc, U+85fe-8600, U+8602, U+8604-8606, U+860a-860b, U+860d-860e, U+8610-8613, U+8616-861b, U+861e, U+8621-8622, U+8624, U+8627, U+8629, U+862f-8630, U+8636, U+8638-863a, U+863c-863d, U+863f-8642, U+8646, U+864d, U+8652-8654; } /* [20] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-20.woff2) format('woff2'); unicode-range: U+82e8, U+82ea, U+82ed, U+82ef, U+82f3-82f4, U+82f6-82f7, U+82f9, U+82fb, U+82fd-82fe, U+8300-8301, U+8303, U+8306-8308, U+830a-830c, U+8316-8318, U+831b, U+831d-831f, U+8321-8323, U+832b-8335, U+8337, U+833a, U+833c-833d, U+8340, U+8342-8347, U+834a, U+834d-8351, U+8353-8357, U+835a, U+8362-8363, U+8370, U+8373, U+8375, U+8378, U+837c-837d, U+837f-8380, U+8382, U+8384-8387, U+838a, U+838d-838e, U+8392-8396, U+8398-83a0, U+83a2, U+83a6-83ad, U+83b1, U+83b5, U+83bd-83c1, U+83c7, U+83c9, U+83ce-83d1, U+83d4, U+83d6, U+83d8, U+83dd, U+83df-83e1, U+83e5, U+83e8, U+83ea-83eb, U+83f0, U+83f2, U+83f4, U+83f6-83f9, U+83fb-83fd, U+8401, U+8403-8404, U+8406-8407, U+840a-840b, U+840d, U+840f, U+8411, U+8413, U+8415, U+8417, U+8419, U+8420, U+8422, U+842a, U+842f, U+8431, U+8435, U+8438-8439, U+843c, U+8445-8448, U+844a, U+844d-844f, U+8451-8452, U+8456, U+8458-845a, U+845c, U+845f-8462, U+8464-8467, U+8469-846b, U+846d-8470, U+8473-8474, U+8476-847a, U+847c-847d, U+8481-8482, U+8484-8485, U+848b, U+8490, U+8492-8493, U+8495, U+8497, U+849c, U+849e-849f, U+84a1, U+84a6, U+84a8-84aa, U+84ad, U+84af, U+84b1; } /* [21] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-21.woff2) format('woff2'); unicode-range: U+814a, U+814c, U+8151-8153, U+8157, U+815f-8161, U+8165-8169, U+816d-816f, U+8171, U+8173-8174, U+8177, U+8180-8186, U+8188, U+818a-818b, U+818e, U+8190, U+8193, U+8195-8196, U+8198, U+819b, U+819e, U+81a0, U+81a2, U+81a4, U+81a9, U+81ae, U+81b0, U+81b2, U+81b4-81b5, U+81b8, U+81ba-81bb, U+81bd-81be, U+81c0-81c3, U+81c5-81c6, U+81c8-81cb, U+81cd-81cf, U+81d1, U+81d5-81db, U+81dd-81e1, U+81e4-81e5, U+81e7, U+81eb-81ec, U+81ef-81f2, U+81f5-81f6, U+81f8-81fb, U+81fd-8205, U+8209-820b, U+820d, U+820f, U+8212-8214, U+8216, U+8219-821d, U+8221-8222, U+8228-8229, U+822b, U+822e, U+8232-8235, U+8237-8238, U+823a, U+823c, U+8240, U+8243-8246, U+8249, U+824b, U+824e-824f, U+8251, U+8256-825a, U+825c-825d, U+825f-8260, U+8262-8264, U+8267-8268, U+826a-826b, U+826d-826e, U+8271, U+8274, U+8277, U+8279, U+827b, U+827d-8281, U+8283-8284, U+8287, U+8289-828a, U+828d-828e, U+8291-8294, U+8296, U+8298-829b, U+829f-82a1, U+82a3-82a4, U+82a7-82ac, U+82ae, U+82b0, U+82b2, U+82b4, U+82b7, U+82ba-82bc, U+82be-82bf, U+82c5-82c6, U+82d0, U+82d2-82d3, U+82d5, U+82d9-82da, U+82dc, U+82de-82e4, U+82e7; } /* [22] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-22.woff2) format('woff2'); unicode-range: U+7f77-7f79, U+7f7d-7f80, U+7f82-7f83, U+7f86-7f88, U+7f8b-7f8d, U+7f8f-7f91, U+7f94, U+7f96-7f97, U+7f9a, U+7f9c-7f9d, U+7fa1-7fa3, U+7fa6, U+7faa, U+7fad-7faf, U+7fb2, U+7fb4, U+7fb6, U+7fb8-7fb9, U+7fbc, U+7fbf-7fc0, U+7fc3, U+7fc5-7fc6, U+7fc8, U+7fca, U+7fce-7fcf, U+7fd5, U+7fdb, U+7fdf, U+7fe1, U+7fe3, U+7fe5-7fe6, U+7fe8-7fe9, U+7feb-7fec, U+7fee-7ff0, U+7ff2-7ff3, U+7ff9-7ffa, U+7ffd-7fff, U+8002, U+8004, U+8006-8008, U+800a-800f, U+8011-8014, U+8016, U+8018-8019, U+801c-8021, U+8024, U+8026, U+8028, U+802c, U+802e, U+8030, U+8034-8035, U+8037, U+8039-8040, U+8043-8044, U+8046, U+804a, U+8052, U+8058, U+805a, U+805f-8060, U+8062, U+8064, U+8066, U+8068, U+806d, U+806f-8073, U+8075-8076, U+8079, U+807b, U+807d-8081, U+8084-8088, U+808b, U+808e, U+8093, U+8099-809a, U+809c, U+809e, U+80a4, U+80a6-80a7, U+80ab-80ad, U+80b1, U+80b8-80b9, U+80c4-80c5, U+80c8, U+80ca, U+80cd, U+80cf, U+80d2, U+80d4-80db, U+80dd, U+80e0, U+80e4-80e6, U+80ed-80f3, U+80f5-80f7, U+80f9-80fc, U+80fe, U+8101, U+8103, U+8109, U+810b, U+810d, U+8116-8118, U+811b-811c, U+811e, U+8120, U+8123-8124, U+8127, U+8129, U+812b-812c, U+812f-8130, U+8135, U+8139-813a, U+813c-813e, U+8141, U+8145-8147; } /* [23] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-23.woff2) format('woff2'); unicode-range: U+7d57, U+7d59-7d5d, U+7d63, U+7d65, U+7d67, U+7d6a, U+7d6e, U+7d70, U+7d72-7d73, U+7d78, U+7d7a-7d7b, U+7d7d, U+7d7f, U+7d81-7d83, U+7d85-7d86, U+7d88-7d89, U+7d8b-7d8d, U+7d8f, U+7d91, U+7d93, U+7d96-7d97, U+7d9b-7da0, U+7da2-7da3, U+7da6-7da7, U+7daa-7dac, U+7dae-7db0, U+7db3, U+7db5-7db9, U+7dbd, U+7dc0, U+7dc2-7dc7, U+7dcc-7dce, U+7dd0, U+7dd5-7dd9, U+7ddc-7dde, U+7de1-7de6, U+7dea-7ded, U+7df1-7df2, U+7df5-7df6, U+7df9-7dfa, U+7e00, U+7e05, U+7e08-7e0b, U+7e10-7e12, U+7e15, U+7e17, U+7e1c-7e1d, U+7e1f-7e23, U+7e27-7e28, U+7e2c-7e2d, U+7e2f, U+7e31-7e33, U+7e35-7e37, U+7e39-7e3b, U+7e3d, U+7e3f, U+7e43-7e48, U+7e4e, U+7e50, U+7e52, U+7e56, U+7e58-7e5a, U+7e5d-7e5f, U+7e61-7e62, U+7e65-7e67, U+7e69-7e6b, U+7e6d-7e6f, U+7e73, U+7e75, U+7e78-7e79, U+7e7b-7e7f, U+7e81-7e83, U+7e86-7e8a, U+7e8c-7e8e, U+7e90-7e96, U+7e98, U+7e9a-7e9f, U+7f38, U+7f3a-7f3f, U+7f43-7f45, U+7f47, U+7f4c-7f50, U+7f52-7f55, U+7f58, U+7f5b-7f5d, U+7f5f, U+7f61, U+7f63-7f69, U+7f6b, U+7f6d, U+7f71; } /* [24] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-24.woff2) format('woff2'); unicode-range: U+7bc8, U+7bca-7bcc, U+7bcf, U+7bd4, U+7bd6-7bd7, U+7bd9-7bdb, U+7bdd, U+7be5-7be6, U+7be8-7bea, U+7bf0, U+7bf2-7bfa, U+7bfc, U+7bfe, U+7c00-7c04, U+7c06-7c07, U+7c09, U+7c0b-7c0f, U+7c11-7c14, U+7c17, U+7c19, U+7c1b, U+7c1e-7c20, U+7c23, U+7c25-7c28, U+7c2a-7c2c, U+7c2f, U+7c31, U+7c33-7c34, U+7c36-7c3a, U+7c3d-7c3e, U+7c40, U+7c42-7c43, U+7c45-7c46, U+7c4a, U+7c4c, U+7c4f-7c5f, U+7c61, U+7c63-7c65, U+7c67, U+7c69, U+7c6c-7c70, U+7c72, U+7c75, U+7c79, U+7c7b-7c7e, U+7c81-7c83, U+7c86-7c87, U+7c8d, U+7c8f-7c90, U+7c94, U+7c9e, U+7ca0-7ca2, U+7ca4-7ca6, U+7ca8, U+7cab, U+7cad-7cae, U+7cb0-7cb3, U+7cb6-7cb7, U+7cb9-7cbd, U+7cbf-7cc0, U+7cc2, U+7cc4-7cc5, U+7cc7-7cca, U+7ccd-7ccf, U+7cd2-7cd5, U+7cd7-7cda, U+7cdc-7cdd, U+7cdf-7ce0, U+7ce2, U+7ce6, U+7ce9, U+7ceb, U+7cef, U+7cf2, U+7cf4-7cf6, U+7cf9-7cfa, U+7cfe, U+7d02-7d03, U+7d06-7d0a, U+7d0f, U+7d11-7d13, U+7d15-7d16, U+7d1c-7d1e, U+7d23, U+7d26, U+7d2a, U+7d2c-7d2e, U+7d31-7d32, U+7d35, U+7d3c-7d41, U+7d43, U+7d45, U+7d47-7d48, U+7d4b, U+7d4d-7d4f, U+7d51, U+7d53, U+7d55-7d56; } /* [25] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-25.woff2) format('woff2'); unicode-range: U+7a17-7a19, U+7a1b, U+7a1e-7a21, U+7a27, U+7a2b, U+7a2d, U+7a2f-7a31, U+7a34-7a35, U+7a37-7a3b, U+7a3e, U+7a43-7a49, U+7a4c, U+7a4e, U+7a50, U+7a55-7a57, U+7a59, U+7a5c-7a5d, U+7a5f-7a63, U+7a65, U+7a67, U+7a69-7a6a, U+7a6d, U+7a70, U+7a75, U+7a78-7a79, U+7a7d-7a7e, U+7a80, U+7a82, U+7a84-7a86, U+7a88, U+7a8a-7a8b, U+7a90-7a91, U+7a94-7a98, U+7a9e, U+7aa0, U+7aa3, U+7aa9, U+7aac, U+7ab0, U+7ab3, U+7ab5-7ab6, U+7ab9-7abf, U+7ac3, U+7ac5-7aca, U+7acc-7acf, U+7ad1-7ad3, U+7ad5, U+7ada-7adb, U+7add, U+7adf, U+7ae1-7ae2, U+7ae6-7aed, U+7af0-7af1, U+7af4, U+7af8, U+7afa-7afb, U+7afd-7afe, U+7b02, U+7b04, U+7b06-7b08, U+7b0a-7b0b, U+7b0f, U+7b12, U+7b14, U+7b18-7b19, U+7b1e-7b1f, U+7b23, U+7b25, U+7b27-7b2b, U+7b2d-7b31, U+7b33-7b36, U+7b3b, U+7b3d, U+7b3f-7b41, U+7b45, U+7b47, U+7b4c-7b50, U+7b53, U+7b55, U+7b5d, U+7b60, U+7b64-7b66, U+7b69-7b6a, U+7b6c-7b75, U+7b77, U+7b79-7b7a, U+7b7f, U+7b84, U+7b86, U+7b89, U+7b8d-7b92, U+7b96, U+7b98-7ba0, U+7ba5, U+7bac-7bad, U+7baf-7bb0, U+7bb2, U+7bb4-7bb6, U+7bba-7bbd, U+7bc1-7bc2, U+7bc5-7bc6; } /* [26] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-26.woff2) format('woff2'); unicode-range: U+7851-7852, U+785c, U+785e, U+7860-7861, U+7863-7864, U+7868, U+786a, U+786e-786f, U+7872, U+7874, U+787a, U+787c, U+787e, U+7886-7887, U+788a, U+788c-788f, U+7893-7895, U+7898, U+789a, U+789d-789f, U+78a1, U+78a3-78a4, U+78a8-78aa, U+78ac-78ad, U+78af-78b3, U+78b5, U+78bb-78bf, U+78c5-78cc, U+78ce, U+78d1-78d6, U+78da-78db, U+78df-78e1, U+78e4, U+78e6-78e7, U+78ea, U+78ec, U+78f2-78f4, U+78f6-78f7, U+78f9-78fb, U+78fd-7901, U+7906-7907, U+790c, U+7910-7912, U+7919-791c, U+791e-7920, U+7925-792e, U+7930-7931, U+7934-7935, U+793b, U+793d, U+793f, U+7941-7942, U+7944-7946, U+794a-794b, U+794f, U+7951, U+7954-7955, U+7957-7958, U+795a-795c, U+795f-7960, U+7962, U+7967, U+7969, U+796b, U+7972, U+7977, U+7979-797c, U+797e-7980, U+798a-798e, U+7991, U+7993-7996, U+7998, U+799b-799d, U+79a1, U+79a6-79ab, U+79ae-79b1, U+79b3-79b4, U+79b8-79bb, U+79bd-79be, U+79c2, U+79c4, U+79c7-79ca, U+79cc-79cd, U+79cf, U+79d4-79d6, U+79da, U+79dd-79e3, U+79e5, U+79e7, U+79ea-79ed, U+79f1, U+79f8, U+79fc, U+7a02-7a03, U+7a05, U+7a07-7a0a, U+7a0c-7a0d, U+7a11, U+7a15; } /* [27] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-27.woff2) format('woff2'); unicode-range: U+768c-768e, U+7690, U+7693, U+7695-7696, U+7699-76a8, U+76aa, U+76ad, U+76af-76b0, U+76b4, U+76b6-76ba, U+76bd, U+76c1-76c3, U+76c5, U+76c8-76c9, U+76cb-76ce, U+76d2, U+76d4, U+76d6, U+76d9, U+76dc, U+76de, U+76e0-76e1, U+76e5-76e8, U+76ea-76ec, U+76f0-76f1, U+76f6, U+76f9, U+76fb-76fc, U+7700, U+7704, U+7706-7708, U+770a, U+770e, U+7712, U+7714-7715, U+7717, U+7719-771c, U+7722, U+7724-7726, U+7728, U+772d-772f, U+7734-7739, U+773d-773e, U+7742, U+7745-7747, U+774a, U+774d-774f, U+7752, U+7756-7758, U+775a-775c, U+775e-7760, U+7762, U+7764-7765, U+7767, U+776a-776c, U+7770, U+7772-7774, U+7779-777a, U+777c-7780, U+7784, U+778b-778e, U+7794-7796, U+779a, U+779e-77a0, U+77a2, U+77a4-77a5, U+77a7, U+77a9-77aa, U+77ae-77b1, U+77b5-77b7, U+77b9, U+77bb-77bf, U+77c3, U+77c7, U+77c9, U+77cd, U+77d1-77d2, U+77d5, U+77d7, U+77d9-77da, U+77dc, U+77de-77e0, U+77e3-77e4, U+77e6-77e7, U+77e9-77ea, U+77ec, U+77ee, U+77f0-77f1, U+77f4, U+77f8, U+77fb-77fc, U+7805-7806, U+7809, U+780c-780e, U+7811-7812, U+7819, U+781d, U+7820-7823, U+7826-7827, U+782c-782e, U+7830, U+7835, U+7837, U+783a, U+783f, U+7843-7845, U+7847-7848, U+784c, U+784e-784f; } /* [28] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-28.woff2) format('woff2'); unicode-range: U+7511-7513, U+7515-7517, U+751c, U+751e, U+7520-7522, U+7524, U+7526-7527, U+7529-752c, U+752f, U+7536, U+7538-7539, U+753c-7540, U+7543-7544, U+7546-754b, U+754d-7550, U+7552, U+7557, U+755a-755b, U+755d-755f, U+7561-7562, U+7564, U+7566-7567, U+7569, U+756b-756d, U+756f, U+7571-7572, U+7574-757e, U+7581-7582, U+7585-7587, U+7589-758c, U+758f-7590, U+7592-7595, U+7599-759a, U+759c-759d, U+75a2-75a5, U+75b0-75b1, U+75b3-75b5, U+75b7-75b8, U+75ba, U+75bd, U+75bf-75c4, U+75c6, U+75ca, U+75cc-75cf, U+75d3-75d4, U+75d7-75d8, U+75dc-75e1, U+75e3-75e4, U+75e7, U+75ec, U+75ee-75f3, U+75f9, U+75fc, U+75fe-7604, U+7607-760c, U+760f, U+7612-7613, U+7615-7616, U+7618-7619, U+761b-7629, U+762d, U+7630, U+7632-7635, U+7638-763c, U+7640-7641, U+7643-764b, U+764e, U+7655, U+7658-7659, U+765c, U+765f, U+7661-7662, U+7664-7665, U+7667-766a, U+766c-7672, U+7674, U+7676, U+7678, U+7680-7683, U+7685, U+7688, U+768b; } /* [29] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-29.woff2) format('woff2'); unicode-range: U+736c, U+736e-7371, U+7375, U+7377-737c, U+7380-7381, U+7383, U+7385-7386, U+738a, U+738e, U+7390, U+7393-7398, U+739c, U+739e-73a0, U+73a2, U+73a5-73a6, U+73a8, U+73aa-73ab, U+73ad, U+73b3, U+73b5, U+73b7, U+73b9-73bd, U+73bf, U+73c5-73c6, U+73c9-73cc, U+73ce-73cf, U+73d2-73d3, U+73d6, U+73d9, U+73dd-73de, U+73e1, U+73e3-73e7, U+73e9-73ea, U+73ee, U+73f1, U+73f4-73f5, U+73f7-73fb, U+73fd, U+73ff-7401, U+7404-7405, U+7407, U+740a, U+7411, U+7413, U+741a-741b, U+7421, U+7424, U+7426, U+7428-7431, U+7433, U+7439-743a, U+743f-7441, U+7443-7444, U+7446-7447, U+744b, U+744d, U+7451-7453, U+7455, U+7457, U+7459-745a, U+745c-745d, U+745f, U+7462-7464, U+7466-746b, U+746d-7473, U+7476, U+747e, U+7480-7481, U+7485-7489, U+748b, U+748f-7492, U+7497-749a, U+749c, U+749e-74a3, U+74a5-74a6, U+74a8-74ab, U+74ae-74af, U+74b1-74b2, U+74b5, U+74b9-74bb, U+74bd, U+74bf, U+74c8-74ca, U+74cc, U+74cf-74d0, U+74d3-74d4, U+74d6, U+74d8, U+74da-74db, U+74de-74e0, U+74e3-74e4, U+74e7-74eb, U+74ee-74f2, U+74f4, U+74f7-74f8, U+74fa-74fc, U+74ff, U+7501, U+7503-7506, U+750c-750e; } /* [30] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-30.woff2) format('woff2'); unicode-range: U+7166, U+7168, U+716c, U+7179, U+7180, U+7184-7185, U+7187-7188, U+718c, U+718f, U+7192, U+7194-7196, U+7199-719b, U+71a0, U+71a2, U+71a8, U+71ac, U+71ae-71b0, U+71b2-71b3, U+71b9-71ba, U+71be-71c1, U+71c4, U+71c9, U+71cb-71cc, U+71ce, U+71d0, U+71d2-71d4, U+71d6-71d7, U+71d9-71da, U+71dc, U+71df-71e0, U+71e6-71e7, U+71ec-71ee, U+71f4-71f5, U+71f8-71f9, U+71fc, U+71fe-7200, U+7207-7209, U+720d, U+7210, U+7213, U+7215, U+7217, U+721a, U+721d, U+721f, U+7224, U+7228, U+722b, U+722d, U+722f-7230, U+7232, U+7234, U+7238-7239, U+723b-723c, U+723e-7243, U+7245-7246, U+724b, U+724e-7250, U+7252-7253, U+7255-7258, U+725a, U+725c, U+725e, U+7260, U+7263, U+7268, U+726b, U+726e-726f, U+7271, U+7274, U+7277-7278, U+727b-727c, U+727e-7282, U+7284, U+7287, U+7289, U+728d-728e, U+7292-7293, U+7296, U+729b, U+72a2, U+72a7-72a8, U+72ad-72ae, U+72b0-72b2, U+72b4, U+72b9, U+72be, U+72c0-72c1, U+72c3-72c4, U+72c6-72c7, U+72c9, U+72cc, U+72ce, U+72d2, U+72d5-72d6, U+72d8, U+72df-72e2, U+72e5, U+72f3-72f4, U+72f7, U+72f9-72fb, U+72fd-72fe, U+7302, U+7304-7305, U+7307, U+730a-730b, U+730d, U+7312-7313, U+7316-7319, U+731c-731e, U+7322, U+7324, U+7327-7329, U+732c, U+732f, U+7331-7337, U+7339-733b, U+733d-733e, U+7343, U+734d-7350, U+7352, U+7356-7358, U+735d-7360, U+7366-736b; } /* [31] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-31.woff2) format('woff2'); unicode-range: U+6f58-6f5b, U+6f5d-6f5e, U+6f60-6f62, U+6f66, U+6f68, U+6f6c-6f6d, U+6f6f, U+6f74, U+6f78, U+6f7a, U+6f7c-6f7e, U+6f80, U+6f82-6f83, U+6f86-6f88, U+6f8b-6f8e, U+6f90-6f94, U+6f96-6f98, U+6f9a, U+6f9d, U+6f9f-6fa1, U+6fa3, U+6fa5-6fa8, U+6fae-6fb1, U+6fb3, U+6fb5-6fb7, U+6fb9, U+6fbc, U+6fbe, U+6fc2, U+6fc5-6fca, U+6fd4-6fd5, U+6fd8, U+6fda-6fdb, U+6fde-6fe0, U+6fe4, U+6fe8-6fe9, U+6feb-6fec, U+6fee, U+6ff0, U+6ff3, U+6ff5-6ff6, U+6ff9-6ffa, U+6ffc-6ffe, U+7000-7001, U+7005-7007, U+7009-700b, U+700d, U+700f, U+7011, U+7015, U+7017-7018, U+701a-701b, U+701d-7020, U+7023, U+7026, U+7028, U+702f-7030, U+7032, U+7034, U+7037, U+7039-703a, U+703c, U+703e, U+7043-7044, U+7047-704c, U+704e, U+7051, U+7054-7055, U+705d-705e, U+7064-7065, U+7069, U+706c, U+706e, U+7075-7076, U+707e, U+7081, U+7085-7086, U+7094-7098, U+709b, U+709f, U+70a4, U+70ab-70ac, U+70ae-70b1, U+70b3-70b4, U+70b7, U+70bb, U+70ca-70cb, U+70d1, U+70d3-70d6, U+70d8-70d9, U+70dc-70dd, U+70df, U+70e4, U+70ec, U+70f1, U+70fa, U+70fd, U+7103-7108, U+710b-710c, U+710f, U+7114, U+7119, U+711c, U+711e, U+7120, U+712b, U+712d-7131, U+7138, U+7141, U+7145-7147, U+7149-714b, U+7150-7153, U+7155-7157, U+715a, U+715c, U+715e, U+7160, U+7162, U+7164-7165; } /* [32] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-32.woff2) format('woff2'); unicode-range: U+6d7c, U+6d80-6d82, U+6d85, U+6d87, U+6d89-6d8a, U+6d8c-6d8e, U+6d91-6d98, U+6d9c, U+6daa-6dac, U+6dae, U+6db4-6db5, U+6db7-6db9, U+6dbd, U+6dbf, U+6dc2, U+6dc4-6dc8, U+6dca, U+6dcc, U+6dce-6dd0, U+6dd2, U+6dd5-6dd6, U+6dd8-6ddb, U+6ddd-6de0, U+6de2, U+6de4-6de6, U+6de8-6dea, U+6dec, U+6dee-6df0, U+6df2, U+6df4, U+6df6, U+6df8-6dfa, U+6dfc, U+6e00, U+6e04, U+6e0a, U+6e17, U+6e19, U+6e1d-6e20, U+6e22-6e25, U+6e27, U+6e2b, U+6e2d-6e2e, U+6e32, U+6e34, U+6e36, U+6e38-6e3c, U+6e42-6e45, U+6e48-6e49, U+6e4b-6e4f, U+6e51-6e54, U+6e57, U+6e5b-6e5f, U+6e62-6e63, U+6e68, U+6e6b, U+6e6e, U+6e72-6e73, U+6e76, U+6e7b, U+6e7d, U+6e82, U+6e89, U+6e8c-6e8d, U+6e8f, U+6e93, U+6e98-6e99, U+6e9f-6ea0, U+6ea5, U+6ea7, U+6eaa-6eab, U+6ead-6eaf, U+6eb1-6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec4, U+6ec7-6eca, U+6ecc-6ecf, U+6ed3-6ed5, U+6ed9-6edb, U+6ee6, U+6eeb-6eef, U+6ef7-6ef9, U+6efb, U+6efd-6eff, U+6f04, U+6f08-6f0a, U+6f0c-6f0d, U+6f10-6f11, U+6f13, U+6f15-6f16, U+6f18, U+6f1a-6f1b, U+6f25-6f26, U+6f29-6f2a, U+6f2d, U+6f2f-6f33, U+6f35-6f36, U+6f38, U+6f3b-6f3c, U+6f3e-6f3f, U+6f41, U+6f45, U+6f4f, U+6f51-6f53, U+6f57; } /* [33] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-33.woff2) format('woff2'); unicode-range: U+6b85, U+6b89, U+6b8d, U+6b95, U+6b97-6b98, U+6b9b, U+6b9e-6ba0, U+6ba2-6ba4, U+6ba8-6bb3, U+6bb7-6bb9, U+6bbc-6bbe, U+6bc0, U+6bc3-6bc4, U+6bc6-6bc9, U+6bcb-6bcc, U+6bcf, U+6bd3, U+6bd6-6bd8, U+6bda, U+6bdf, U+6be1, U+6be3, U+6be6-6be7, U+6beb-6bec, U+6bee, U+6bf1, U+6bf3, U+6bf7, U+6bf9, U+6bff, U+6c02, U+6c04-6c05, U+6c08-6c0a, U+6c0d-6c0e, U+6c10, U+6c12-6c14, U+6c19, U+6c1b, U+6c1f, U+6c24, U+6c26-6c28, U+6c2c, U+6c2e, U+6c33, U+6c35-6c36, U+6c3a-6c3b, U+6c3e-6c40, U+6c4a-6c4b, U+6c4d, U+6c4f, U+6c52, U+6c54-6c55, U+6c59, U+6c5b-6c5e, U+6c62, U+6c67-6c68, U+6c6a-6c6b, U+6c6d, U+6c6f, U+6c73-6c74, U+6c76, U+6c78-6c79, U+6c7b, U+6c7e, U+6c81-6c87, U+6c89, U+6c8c-6c8d, U+6c90, U+6c92-6c95, U+6c97-6c98, U+6c9a-6c9c, U+6c9f, U+6caa-6cae, U+6cb0-6cb2, U+6cb4, U+6cba, U+6cbd-6cbe, U+6cc2, U+6cc5-6cc6, U+6ccd, U+6ccf-6cd4, U+6cd6-6cd7, U+6cd9-6cdd, U+6ce0, U+6ce7, U+6ce9-6cef, U+6cf1-6cf2, U+6cf4, U+6cfb, U+6d00-6d01, U+6d04, U+6d07, U+6d0a, U+6d0c, U+6d0e-6d0f, U+6d11, U+6d13, U+6d19-6d1a, U+6d1f, U+6d24, U+6d26-6d28, U+6d2b, U+6d2e-6d2f, U+6d31, U+6d33-6d36, U+6d38-6d39, U+6d3c-6d3d, U+6d3f, U+6d57-6d5b, U+6d5e-6d61, U+6d64-6d65, U+6d67, U+6d6c, U+6d6f-6d70, U+6d79; } /* [34] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-34.woff2) format('woff2'); unicode-range: U+69dd-69de, U+69e2-69e3, U+69e5, U+69e7-69eb, U+69ed-69ef, U+69f1-69f6, U+69f9, U+69fe-6a01, U+6a03, U+6a05, U+6a0a, U+6a0c, U+6a0f, U+6a11-6a15, U+6a17, U+6a1a-6a1b, U+6a1d-6a20, U+6a22-6a24, U+6a28, U+6a2e, U+6a30, U+6a32-6a38, U+6a3b, U+6a3e-6a3f, U+6a44-6a4a, U+6a4e, U+6a50-6a52, U+6a54-6a56, U+6a5b, U+6a61-6a62, U+6a64, U+6a66-6a67, U+6a6a-6a6b, U+6a71-6a73, U+6a78, U+6a7a, U+6a7e-6a7f, U+6a81, U+6a83-6a84, U+6a86-6a87, U+6a89, U+6a8b, U+6a8d, U+6a90-6a91, U+6a94, U+6a97, U+6a9b, U+6a9d-6aa3, U+6aa5, U+6aaa-6aac, U+6aae-6ab1, U+6ab3-6ab4, U+6ab8, U+6abb, U+6abd-6abf, U+6ac1-6ac3, U+6ac6, U+6ac8-6ac9, U+6acc, U+6ad0-6ad1, U+6ad3-6ad6, U+6ada-6adf, U+6ae2, U+6ae4, U+6ae7-6ae8, U+6aea, U+6aec, U+6af0-6af3, U+6af8, U+6afa, U+6afc-6afd, U+6b02-6b03, U+6b06-6b07, U+6b09-6b0b, U+6b0f-6b12, U+6b16-6b17, U+6b1b, U+6b1d-6b1f, U+6b23-6b24, U+6b28, U+6b2b-6b2c, U+6b2f, U+6b35-6b39, U+6b3b, U+6b3d, U+6b3f, U+6b43, U+6b46-6b47, U+6b49-6b4a, U+6b4d-6b4e, U+6b50, U+6b52, U+6b54, U+6b56, U+6b58-6b59, U+6b5b, U+6b5d, U+6b5f-6b61, U+6b65, U+6b67, U+6b6b-6b6c, U+6b6e, U+6b70, U+6b72, U+6b75, U+6b77-6b7a, U+6b7d-6b84; } /* [35] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-35.woff2) format('woff2'); unicode-range: U+6855, U+6857-6859, U+685b, U+685d, U+685f, U+6863, U+6867, U+686b, U+686e-6872, U+6874-6875, U+6877, U+6879-687c, U+687e-687f, U+6882-6884, U+6886, U+6888, U+688d-6890, U+6894, U+6896, U+6898-689c, U+689f-68a3, U+68a5-68a7, U+68a9-68ab, U+68ad-68af, U+68b2-68b5, U+68b9-68bc, U+68c3, U+68c5-68c6, U+68c8-68ca, U+68cc-68cd, U+68cf-68d1, U+68d3-68d9, U+68dc-68dd, U+68e0-68e1, U+68e3-68e5, U+68e7-68e8, U+68ea-68ed, U+68ef-68f1, U+68f5-68f7, U+68f9, U+68fb-68fd, U+6900-6901, U+6903-6904, U+6906-690c, U+690f-6911, U+6913, U+6916-6917, U+6919-691b, U+6921-6923, U+6925-6926, U+6928, U+692a, U+6930-6931, U+6933-6936, U+6938-6939, U+693b, U+693d, U+6942, U+6945-6946, U+6949, U+694e, U+6954, U+6957, U+6959, U+695b-695e, U+6961-6966, U+6968-696c, U+696e-6974, U+6977-697b, U+697e-6981, U+6986, U+698d, U+6991-6992, U+6994-6996, U+6998, U+699c, U+69a0-69a1, U+69a5-69a8, U+69ab, U+69ad, U+69af-69b2, U+69b4, U+69b7-69b8, U+69ba-69bc, U+69be-69c1, U+69c3, U+69c5, U+69c7-69c8, U+69ca, U+69ce-69d1, U+69d3, U+69d6-69d7, U+69d9; } /* [36] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-36.woff2) format('woff2'); unicode-range: U+667e-6680, U+6683-6684, U+6688, U+668b-668e, U+6690, U+6692, U+6698-669d, U+669f-66a0, U+66a2, U+66a4, U+66ad, U+66b1-66b3, U+66b5, U+66b8-66b9, U+66bb-66bc, U+66be-66c4, U+66c6, U+66c8-66c9, U+66cc, U+66ce-66cf, U+66d4, U+66da-66db, U+66dd, U+66df-66e0, U+66e6, U+66e8-66e9, U+66eb-66ec, U+66ee, U+66f5, U+66f7, U+66fa-66fc, U+6701, U+6705, U+6707, U+670c, U+670e-6710, U+6712-6716, U+6719, U+671c, U+671e, U+6720, U+6722, U+6725-6726, U+672e, U+6733, U+6735-6738, U+673e-673f, U+6741, U+6743, U+6745-6748, U+674c-674d, U+6753-6755, U+6759, U+675d-675e, U+6760, U+6762-6764, U+6766, U+676a, U+676c, U+676e, U+6770, U+6772-6774, U+6776-6777, U+677b-677c, U+6780-6781, U+6784-6785, U+6787, U+6789, U+678b-678c, U+678e-678f, U+6791-6793, U+6796, U+6798-6799, U+679b, U+67a1, U+67a4, U+67a6, U+67a9, U+67b0-67b5, U+67b7-67b9, U+67bb-67be, U+67c0-67c3, U+67c5-67c6, U+67c8-67c9, U+67ce, U+67d2, U+67d7-67d9, U+67db-67de, U+67e1-67e2, U+67e4, U+67e6-67e7, U+67e9, U+67ec, U+67ee-67f0, U+67f2, U+67f6-67f7, U+67f9-67fa, U+67fc, U+67fe, U+6801-6802, U+6805, U+6810, U+6814, U+6818-6819, U+681d, U+681f, U+6822, U+6827-6829, U+682b-682d, U+682f-6834, U+683b, U+683e-6840, U+6844-6846, U+6849-684a, U+684c-684e, U+6852-6854; } /* [37] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-37.woff2) format('woff2'); unicode-range: U+64d2, U+64d4-64d5, U+64d7-64d8, U+64da, U+64e0-64e1, U+64e3-64e5, U+64e7, U+64e9-64ea, U+64ed, U+64ef-64f2, U+64f4-64f7, U+64fa-64fb, U+64fd-6501, U+6504-6505, U+6508-650a, U+650f, U+6513-6514, U+6516, U+6518-6519, U+651b-651f, U+6522, U+6524, U+6526, U+6529-652c, U+652e, U+6531-6532, U+6534-6538, U+653a, U+653c-653d, U+6543-6544, U+6547-6549, U+654d-654e, U+6550, U+6552, U+6554-6556, U+6558, U+655d-6560, U+6567, U+656b, U+6572, U+6578, U+657a, U+657d, U+6581-6585, U+6588, U+658a, U+658c, U+6592, U+6595, U+6598, U+659b, U+659d, U+659f-65a1, U+65a3-65a6, U+65ab, U+65ae, U+65b2-65b5, U+65b7-65b8, U+65be-65bf, U+65c1-65c4, U+65c6, U+65c8-65c9, U+65cc, U+65ce, U+65d0, U+65d2, U+65d4, U+65d6, U+65d8-65d9, U+65db, U+65df-65e1, U+65e3, U+65f0-65f2, U+65f4-65f5, U+65f9, U+65fb-65fc, U+65fe-6600, U+6603-6604, U+6608-660a, U+660d, U+6611-6612, U+6615-6616, U+661c-661e, U+6621-6624, U+6626, U+6629-662c, U+662e, U+6630-6631, U+6633-6637, U+6639-663b, U+663f-6641, U+6644-6646, U+6648-664a, U+664c, U+664e-664f, U+6651, U+6657-6665, U+6667-6668, U+666a-666d, U+6670, U+6673, U+6675, U+6677-6679, U+667b-667c; } /* [38] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-38.woff2) format('woff2'); unicode-range: U+62cf, U+62d1, U+62d4-62d6, U+62da, U+62dc, U+62ea, U+62ee-62ef, U+62f1-62f2, U+62f4-62f5, U+62fc-62fd, U+62ff, U+6302-6304, U+6308-630d, U+6310, U+6313, U+6316, U+6318, U+631b, U+6327, U+6329-632a, U+632d, U+6332, U+6335-6336, U+6339-633c, U+633e, U+6341-6344, U+6346, U+634a-634e, U+6350, U+6352-6354, U+6358-6359, U+635b, U+6365-6366, U+6369, U+636b-636d, U+6371-6372, U+6374-6378, U+637a, U+637c-637d, U+637f-6380, U+6382, U+6384, U+6387, U+6389-638a, U+638e-6390, U+6394-6396, U+6399-639a, U+639e, U+63a0, U+63a3-63a4, U+63a6, U+63a9, U+63ab-63af, U+63b5, U+63bd-63be, U+63c0-63c1, U+63c4-63c6, U+63c8, U+63ce, U+63d1-63d6, U+63dc, U+63e0, U+63e3, U+63e5, U+63e9-63ed, U+63f2-63f3, U+63f5-63f9, U+6406, U+6409-640a, U+640f-6410, U+6412-6414, U+6416-6418, U+641e, U+6420, U+6422, U+6424-6426, U+6428-642a, U+642f-6430, U+6434-6436, U+643d, U+643f, U+644b, U+644e-644f, U+6451-6454, U+645a-645d, U+645f-6461, U+6463, U+6467, U+646d, U+6473-6474, U+6476, U+6478-6479, U+647b, U+647d, U+6485, U+6487-6488, U+648f-6491, U+6493, U+6495, U+6498-649b, U+649d-649f, U+64a1, U+64a3, U+64a6, U+64a8-64a9, U+64ac, U+64b3, U+64bb-64bf, U+64c2, U+64c4-64c5, U+64c7, U+64c9-64cc, U+64ce, U+64d0-64d1; } /* [39] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-39.woff2) format('woff2'); unicode-range: U+6117, U+6119, U+611c, U+611e, U+6120-6122, U+6127-6128, U+612a-612c, U+6130-6131, U+6134-6137, U+6139-613a, U+613c-613f, U+6141-6142, U+6144-6147, U+6149-614a, U+614d, U+6153, U+6158-615a, U+615d-6160, U+6164-6165, U+616b-616c, U+616f, U+6171-6175, U+6177-6178, U+617b-6181, U+6183-6184, U+6187, U+618a-618b, U+618d, U+6192-6194, U+6196-619a, U+619c-619d, U+619f-61a0, U+61a5, U+61a8, U+61aa-61ae, U+61b8-61ba, U+61bc, U+61be, U+61c0-61c3, U+61c6, U+61c8, U+61ca-61cf, U+61d5, U+61dc-61df, U+61e1-61e3, U+61e5-61e9, U+61ec-61ed, U+61ef, U+61f4-61f7, U+61fa, U+61fc-6201, U+6203-6204, U+6207-620a, U+620d-620e, U+6213-6215, U+621b-621e, U+6220-6223, U+6227, U+6229-622b, U+622e, U+6230-6233, U+6236, U+6239, U+623d-623e, U+6241-6244, U+6246, U+6248, U+624c, U+624e, U+6250-6252, U+6254, U+6256, U+6258, U+625a-625c, U+625e, U+6260-6261, U+6263-6264, U+6268, U+626d, U+626f, U+6273, U+627a-627e, U+6282-6283, U+6285, U+6289, U+628d-6290, U+6292-6294, U+6296, U+6299, U+629b, U+62a6, U+62a8, U+62ac, U+62b3, U+62b6-62b7, U+62ba-62bb, U+62be-62bf, U+62c2, U+62c4, U+62c6-62c8, U+62ca, U+62ce; } /* [40] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-40.woff2) format('woff2'); unicode-range: U+5f6c-5f6d, U+5f6f, U+5f72-5f75, U+5f78, U+5f7a, U+5f7d-5f7f, U+5f82-5f83, U+5f87-5f89, U+5f8d, U+5f8f, U+5f91, U+5f96, U+5f99, U+5f9c-5f9d, U+5fa0, U+5fa2, U+5fa4, U+5fa7-5fa8, U+5fab-5fad, U+5faf-5fb1, U+5fb5, U+5fb7-5fb8, U+5fbc-5fbd, U+5fc4, U+5fc7-5fc9, U+5fcb, U+5fd0-5fd4, U+5fdd-5fde, U+5fe1-5fe2, U+5fe4, U+5fe8-5fea, U+5fec-5ff3, U+5ff6, U+5ff8, U+5ffa-5ffd, U+5fff, U+6007, U+600a, U+600d-6010, U+6013-6015, U+6017-601b, U+601f, U+6021-6022, U+6024, U+6026, U+6029, U+602b, U+602d, U+6031, U+6033, U+6035, U+603a, U+6040-6043, U+6046-604a, U+604c-604d, U+6051, U+6054-6057, U+6059-605a, U+605d, U+605f-6064, U+6067, U+606a-606c, U+6070-6071, U+6077, U+607e-607f, U+6081-6086, U+6088-608e, U+6091-6093, U+6095-6098, U+609a-609b, U+609d-609e, U+60a2, U+60a4-60a5, U+60a7-60a8, U+60b0-60b1, U+60b3-60b5, U+60b7-60b8, U+60bb, U+60bd-60be, U+60c2, U+60c4, U+60c6-60cb, U+60ce-60cf, U+60d3-60d5, U+60d8-60d9, U+60db, U+60dd-60df, U+60e1-60e2, U+60e5, U+60ee, U+60f0-60f2, U+60f4-60f8, U+60fa-60fd, U+6100, U+6102-6103, U+6106-6108, U+610a, U+610c-610e, U+6110-6114, U+6116; } /* [41] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-41.woff2) format('woff2'); unicode-range: U+5d9b, U+5d9d, U+5d9f-5da0, U+5da2, U+5da4, U+5da7, U+5dab-5dac, U+5dae, U+5db0, U+5db2, U+5db4, U+5db7-5db9, U+5dbc-5dbd, U+5dc3, U+5dc7, U+5dc9, U+5dcb-5dce, U+5dd0-5dd3, U+5dd6-5dd9, U+5ddb, U+5de0, U+5de2, U+5de4, U+5de9, U+5df2, U+5df5, U+5df8-5df9, U+5dfd, U+5dff-5e00, U+5e07, U+5e0b, U+5e0d, U+5e11-5e12, U+5e14-5e15, U+5e18-5e1b, U+5e1f-5e20, U+5e25, U+5e28, U+5e2e, U+5e32, U+5e35-5e37, U+5e3e, U+5e40, U+5e43-5e44, U+5e47, U+5e49, U+5e4b, U+5e4e, U+5e50-5e51, U+5e54, U+5e56-5e58, U+5e5b-5e5c, U+5e5e-5e5f, U+5e62, U+5e64, U+5e68, U+5e6a-5e6e, U+5e70, U+5e75-5e77, U+5e7a, U+5e7f-5e80, U+5e87, U+5e8b, U+5e8e, U+5e96, U+5e99-5e9a, U+5ea0, U+5ea2, U+5ea4-5ea5, U+5ea8, U+5eaa, U+5eac, U+5eb1, U+5eb3, U+5eb8-5eb9, U+5ebd-5ebf, U+5ec1-5ec2, U+5ec6, U+5ec8, U+5ecb-5ecc, U+5ece-5ed6, U+5ed9-5ee2, U+5ee5, U+5ee8-5ee9, U+5eeb-5eec, U+5ef0-5ef1, U+5ef3-5ef4, U+5ef8-5ef9, U+5efc-5f00, U+5f02-5f03, U+5f06-5f09, U+5f0b-5f0e, U+5f11, U+5f16-5f17, U+5f19, U+5f1b-5f1e, U+5f21-5f24, U+5f27-5f29, U+5f2b-5f30, U+5f34, U+5f36, U+5f38, U+5f3a-5f3d, U+5f3f-5f41, U+5f44-5f45, U+5f47-5f48, U+5f4a, U+5f4c-5f4e, U+5f50-5f51, U+5f54, U+5f56-5f58, U+5f5b-5f5d, U+5f60, U+5f63-5f65, U+5f67, U+5f6a; } /* [42] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-42.woff2) format('woff2'); unicode-range: U+5bbc, U+5bc0-5bc1, U+5bc3, U+5bc7, U+5bc9, U+5bcd-5bd0, U+5bd3-5bd4, U+5bd6-5bda, U+5bde, U+5be0-5be2, U+5be4-5be6, U+5be8, U+5beb-5bec, U+5bef-5bf1, U+5bf3-5bf6, U+5bfd, U+5c03, U+5c05, U+5c07-5c09, U+5c0c-5c0d, U+5c12-5c14, U+5c17, U+5c19, U+5c1e-5c20, U+5c22-5c24, U+5c26, U+5c28-5c2e, U+5c30, U+5c32, U+5c35-5c36, U+5c38-5c39, U+5c46, U+5c4d-5c50, U+5c53, U+5c59-5c5c, U+5c5f-5c63, U+5c67-5c69, U+5c6c-5c70, U+5c74-5c76, U+5c79-5c7d, U+5c87-5c88, U+5c8a, U+5c8c, U+5c8f, U+5c91-5c92, U+5c94, U+5c9d, U+5c9f-5ca0, U+5ca2-5ca3, U+5ca6-5ca8, U+5caa-5cab, U+5cad, U+5cb1-5cb2, U+5cb4-5cb7, U+5cba-5cbc, U+5cbe, U+5cc5, U+5cc7, U+5cc9, U+5ccb, U+5cd0, U+5cd2, U+5cd7, U+5cd9, U+5cdd, U+5ce6, U+5ce8-5cea, U+5ced-5cee, U+5cf1-5cf2, U+5cf4-5cf5, U+5cfa-5cfb, U+5cfd, U+5d01, U+5d06, U+5d0b, U+5d0d, U+5d10-5d12, U+5d14-5d15, U+5d17-5d1b, U+5d1d, U+5d1f-5d20, U+5d22-5d24, U+5d26-5d27, U+5d2b, U+5d31, U+5d34, U+5d39, U+5d3d, U+5d3f, U+5d42-5d43, U+5d46-5d48, U+5d4a-5d4b, U+5d4e, U+5d51-5d53, U+5d55, U+5d59, U+5d5c, U+5d5f-5d62, U+5d64, U+5d69-5d6a, U+5d6c-5d6d, U+5d6f-5d70, U+5d73, U+5d76, U+5d79-5d7a, U+5d7e-5d7f, U+5d81-5d84, U+5d87-5d88, U+5d8a, U+5d8c, U+5d90, U+5d92-5d95, U+5d97, U+5d99; } /* [43] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-43.woff2) format('woff2'); unicode-range: U+598b-598e, U+5992, U+5995, U+5997, U+599b, U+599d, U+599f, U+59a3-59a4, U+59a7, U+59ad-59b0, U+59b2-59b3, U+59b7, U+59ba, U+59bc, U+59be, U+59c1, U+59c3-59c4, U+59c6, U+59c8, U+59ca, U+59cd, U+59d2, U+59d9-59da, U+59dd-59df, U+59e3-59e5, U+59e7-59e8, U+59ec, U+59ee-59ef, U+59f1-59f2, U+59f4, U+59f6-59f8, U+5a00, U+5a03-5a04, U+5a09, U+5a0c-5a0e, U+5a11-5a13, U+5a17, U+5a1a-5a1c, U+5a1e-5a1f, U+5a23-5a25, U+5a27-5a28, U+5a2a, U+5a2d, U+5a30, U+5a35-5a36, U+5a40-5a41, U+5a44-5a45, U+5a47-5a49, U+5a4c, U+5a50, U+5a55, U+5a5e, U+5a62-5a63, U+5a65, U+5a67, U+5a6a, U+5a6c-5a6d, U+5a77, U+5a7a-5a7b, U+5a7e, U+5a84, U+5a8b, U+5a90, U+5a93, U+5a96, U+5a99, U+5a9c, U+5a9e-5aa0, U+5aa2, U+5aa7, U+5aac, U+5ab1-5ab3, U+5ab5, U+5ab8, U+5aba-5abf, U+5ac2, U+5ac4, U+5ac6, U+5ac8, U+5acb, U+5acf-5ad0, U+5ad6-5ad7, U+5ada, U+5adc, U+5ae0-5ae1, U+5ae3, U+5ae5-5ae6, U+5ae9-5aea, U+5aee, U+5af0, U+5af5-5af6, U+5afa-5afb, U+5afd, U+5b00-5b01, U+5b08, U+5b0b, U+5b16-5b17, U+5b19, U+5b1b, U+5b1d, U+5b21, U+5b25, U+5b2a, U+5b2c-5b2d, U+5b30, U+5b32, U+5b34, U+5b36, U+5b38, U+5b3e, U+5b40-5b41, U+5b43, U+5b45, U+5b4b-5b4c, U+5b51-5b52, U+5b56, U+5b5a-5b5c, U+5b5e-5b5f, U+5b65, U+5b68-5b69, U+5b6e-5b71, U+5b73, U+5b75-5b76, U+5b7a, U+5b7c-5b84, U+5b86, U+5b8a-5b8b, U+5b8d-5b8e, U+5b90-5b91, U+5b93-5b94, U+5b96, U+5ba5-5ba6, U+5ba8-5ba9, U+5bac-5bad, U+5baf, U+5bb1-5bb2, U+5bb7-5bb8, U+5bba; } /* [44] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-44.woff2) format('woff2'); unicode-range: U+57b3, U+57b8, U+57bd, U+57c0, U+57c3, U+57c6-57c8, U+57cc, U+57cf, U+57d2-57d7, U+57dc-57de, U+57e0-57e1, U+57e3-57e4, U+57e6-57e7, U+57e9, U+57ed, U+57f0, U+57f4-57f6, U+57f8, U+57fb, U+57fd-57ff, U+5803-5804, U+5808-580d, U+5819, U+581b, U+581d-5821, U+5826-5827, U+582d, U+582f-5830, U+5832, U+5835, U+5839, U+583d, U+583f-5840, U+5849, U+584b-584d, U+584f-5852, U+5855, U+5858-5859, U+585f, U+5861-5862, U+5864, U+5867-5868, U+586d, U+5870, U+5872, U+5878-5879, U+587c, U+587f-5881, U+5885, U+5887-588d, U+588f-5890, U+5894, U+5896, U+5898, U+589d-589e, U+58a0-58a2, U+58a6, U+58a9-58ab, U+58ae, U+58b1-58b3, U+58b8-58bc, U+58be, U+58c2-58c5, U+58c8, U+58cd-58ce, U+58d0-58da, U+58dc-58e2, U+58e4-58e5, U+58e9, U+58ec, U+58ef, U+58f3-58f4, U+58f7, U+58f9, U+58fb-58fd, U+5902, U+5905-5906, U+590a-590d, U+5910, U+5912-5914, U+5918-5919, U+591b, U+591d, U+591f, U+5921, U+5923-5925, U+5928, U+592c-592d, U+592f-5930, U+5932-5933, U+5935-5936, U+5938-5939, U+593d-593f, U+5943, U+5946, U+594e, U+5950, U+5952-5953, U+5955, U+5957-595b, U+595d-5961, U+5963, U+5967, U+5969, U+596b-596d, U+596f, U+5972, U+5975-5976, U+5978-5979, U+597b-597c, U+5981; } /* [45] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-45.woff2) format('woff2'); unicode-range: U+5616-5617, U+5619, U+561b, U+5620, U+5628, U+562c, U+562f-5639, U+563b-563d, U+563f-5641, U+5643-5644, U+5646-5647, U+5649, U+564b, U+564d-5650, U+5653-5654, U+565e, U+5660-5664, U+5666, U+5669-566d, U+566f, U+5671-5672, U+5675-5676, U+5678, U+567a, U+5680, U+5684-5688, U+568a-568c, U+568f, U+5694-5695, U+5699-569a, U+569d-56a0, U+56a5-56a9, U+56ab-56ae, U+56b1-56b4, U+56b6-56b7, U+56bc, U+56be, U+56c0, U+56c2-56c3, U+56c5, U+56c8-56d1, U+56d3, U+56d7-56d9, U+56dc-56dd, U+56df, U+56e1, U+56e4-56e8, U+56eb, U+56ed-56ee, U+56f1, U+56f6-56f7, U+56f9, U+56ff-5704, U+5707-570a, U+570c-570d, U+5711, U+5713, U+5715-5716, U+5718, U+571a-571d, U+5720-5726, U+5729-572a, U+572c, U+572e-572f, U+5733-5734, U+5737-5738, U+573b, U+573d-573f, U+5745-5746, U+574c-574f, U+5751-5752, U+5759, U+575f, U+5761-5762, U+5764-5765, U+5767-5769, U+576b, U+576d-5771, U+5773-5775, U+5777, U+5779-577c, U+577e-577f, U+5781, U+5783, U+5788-5789, U+578c, U+5793-5795, U+5797, U+5799-579a, U+579c-57a1, U+57a4, U+57a7-57aa, U+57ac, U+57ae, U+57b0; } /* [46] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-46.woff2) format('woff2'); unicode-range: U+543f-5440, U+5443-5444, U+5447, U+544c-544f, U+5455, U+545e, U+5462, U+5464, U+5466-5467, U+5469, U+546b-546e, U+5470-5471, U+5474-5477, U+547b, U+547f-5481, U+5483-5486, U+5488-548b, U+548d-5492, U+5495-5496, U+549c, U+549f-54a2, U+54a4, U+54a6-54af, U+54b1, U+54b7-54bc, U+54be-54bf, U+54c2-54c4, U+54c6-54c8, U+54ca, U+54cd-54ce, U+54d8, U+54e0, U+54e2, U+54e5-54e6, U+54e8-54ea, U+54ec-54ef, U+54f1, U+54f3, U+54f6, U+54fc-5501, U+5505, U+5508-5509, U+550c-550f, U+5514-5516, U+5527, U+552a-552b, U+552e, U+5532-5533, U+5535-5536, U+5538-5539, U+553b-553d, U+5540-5541, U+5544-5545, U+5547, U+5549-554a, U+554c-554d, U+5550-5551, U+5556-5558, U+555a-555e, U+5560-5561, U+5563-5564, U+5566, U+557b-5583, U+5586-5588, U+558a, U+558e-558f, U+5591-5594, U+5597, U+5599, U+559e-559f, U+55a3-55a4, U+55a8-55a9, U+55ac-55ae, U+55b2, U+55bf, U+55c1, U+55c3-55c4, U+55c6-55c7, U+55c9, U+55cb-55cc, U+55ce, U+55d1-55d4, U+55d7-55d8, U+55da-55db, U+55dd-55df, U+55e2, U+55e4, U+55e9, U+55ec, U+55ee, U+55f1, U+55f6-55f9, U+55fd-55ff, U+5605, U+5607-5608, U+560a, U+560d-5612; } /* [47] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-47.woff2) format('woff2'); unicode-range: U+528d, U+5291-5298, U+529a, U+529c, U+52a4-52a7, U+52ab-52ad, U+52af-52b0, U+52b5-52b8, U+52ba-52be, U+52c0-52c1, U+52c4-52c6, U+52c8, U+52ca, U+52cc-52cd, U+52cf-52d2, U+52d4, U+52d6-52d7, U+52db-52dc, U+52de, U+52e0-52e1, U+52e3, U+52e5-52e6, U+52e8-52ea, U+52ec, U+52f0-52f1, U+52f3-52fb, U+5300-5301, U+5303, U+5306-5308, U+530a-530d, U+530f-5311, U+5313, U+5315, U+5318-531f, U+5321, U+5323-5325, U+5327-532d, U+532f-5333, U+5335, U+5338, U+533c-533e, U+5340, U+5342, U+5345-5346, U+5349, U+534b-534c, U+5359, U+535b, U+535e, U+5361, U+5363-5367, U+5369, U+536c-536e, U+5372, U+5377, U+5379-537b, U+537d-537f, U+5382-5383, U+5387-5389, U+538e, U+5393-5394, U+5396, U+5398-5399, U+539d, U+53a0-53a1, U+53a4-53a6, U+53a9-53ab, U+53ad-53b0, U+53b2, U+53b4-53b8, U+53ba, U+53bd, U+53c0-53c1, U+53c3-53c5, U+53cf, U+53d2-53d3, U+53d5, U+53da-53db, U+53dd-53e0, U+53e2, U+53e6-53e8, U+53ed-53ee, U+53f4-53f5, U+53fa, U+5401-5403, U+540b, U+540f, U+5412-5413, U+541a, U+541d-541e, U+5421, U+5424, U+5427-542a, U+542c-542f, U+5431, U+5433-5436, U+543c-543d; } /* [48] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-48.woff2) format('woff2'); unicode-range: U+50dd-50df, U+50e1-50e6, U+50e8-50e9, U+50ed-50f6, U+50f9-50fb, U+50fe, U+5101-5103, U+5106-5109, U+510b-510e, U+5110, U+5112, U+5114-511e, U+5121, U+5123, U+5127-5128, U+512c-512d, U+512f, U+5131, U+5133-5135, U+5137-513c, U+513f-5142, U+5147, U+514a, U+514c, U+514f, U+5152-5155, U+5157-5158, U+515f-5160, U+5162, U+5164, U+5166-5167, U+5169-516a, U+516e, U+5173-5174, U+5179, U+517b, U+517e, U+5180, U+5182-5184, U+5189, U+518b-518c, U+518e-5191, U+5193, U+5195-5196, U+5198, U+519d, U+51a1-51a4, U+51a6, U+51a9-51ab, U+51ad, U+51b0-51b3, U+51b5, U+51b8, U+51ba, U+51bc-51bf, U+51c2-51c3, U+51c5, U+51c8-51cb, U+51cf, U+51d1-51d6, U+51d8, U+51de-51e0, U+51e2, U+51e5, U+51e7, U+51e9, U+51ec-51ee, U+51f2-51f5, U+51f7, U+51fe, U+5201-5202, U+5204-5205, U+520b, U+520e, U+5212-5216, U+5218, U+5222, U+5226-5228, U+522a-522b, U+522e, U+5231-5233, U+5235, U+523c, U+5244-5245, U+5249, U+524b-524c, U+524f, U+5254-5255, U+5257-5258, U+525a, U+525c-5261, U+5266, U+5269, U+526c, U+526e, U+5271, U+5273-5274, U+5277-5279, U+527d, U+527f-5280, U+5282-5285, U+5288-528a, U+528c; } /* [49] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-49.woff2) format('woff2'); unicode-range: U+4f57-4f58, U+4f5a-4f5b, U+4f5d-4f5f, U+4f63-4f64, U+4f69-4f6a, U+4f6c, U+4f6e-4f71, U+4f76-4f7e, U+4f81-4f85, U+4f88-4f8a, U+4f8c, U+4f8e-4f90, U+4f92-4f94, U+4f96-4f9a, U+4f9e-4fa0, U+4fab, U+4fad, U+4faf, U+4fb2, U+4fb7, U+4fb9, U+4fbb-4fbe, U+4fc0-4fc1, U+4fc4-4fc6, U+4fc8-4fc9, U+4fcb-4fd4, U+4fd8, U+4fda-4fdc, U+4fdf-4fe0, U+4fe2, U+4fe4-4fe6, U+4fef-4ff2, U+4ff6, U+4ffc-5002, U+5004-5007, U+500a, U+500c, U+500e-5011, U+5013-5014, U+5016-5018, U+501a-501e, U+5021-5023, U+5025-502a, U+502c-502e, U+5030, U+5032-5033, U+5035, U+5039, U+503b, U+5040-5043, U+5045-5048, U+504a, U+504c, U+504e, U+5050-5053, U+5055-5057, U+5059-505a, U+505f-5060, U+5062-5063, U+5066-5067, U+506a, U+506c-506d, U+5070-5072, U+5077-5078, U+5080-5081, U+5083-5086, U+5088, U+508a, U+508e-5090, U+5092-5096, U+509a-509c, U+509e-50a3, U+50aa, U+50ad, U+50af-50b4, U+50b9-50bb, U+50bd, U+50c0, U+50c2-50c4, U+50c7, U+50c9-50ca, U+50cc, U+50ce, U+50d0-50d1, U+50d3-50d4, U+50d6, U+50d8-50d9, U+50dc; } /* [50] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-50.woff2) format('woff2'); unicode-range: U+4093, U+4103, U+4105, U+4148, U+414f, U+4163, U+41b4, U+41bf, U+41e6, U+41ee, U+41f3, U+4207, U+420e, U+4264, U+4293, U+42c6, U+42d6, U+42dd, U+4302, U+432b, U+4343, U+43ee, U+43f0, U+4408, U+440c, U+4417, U+441c, U+4422, U+4453, U+445b, U+4476, U+447a, U+4491, U+44b3, U+44be, U+44d4, U+4508, U+450d, U+4525, U+4543, U+457a, U+459d, U+45b8, U+45be, U+45e5, U+45ea, U+460f-4610, U+4641, U+4665, U+46a1, U+46ae-46af, U+470c, U+471f, U+4764, U+47e6, U+47fd, U+4816, U+481e, U+4844, U+484e, U+48b5, U+49b0, U+49e7, U+49fa, U+4a04, U+4a29, U+4abc, U+4b38, U+4b3b, U+4b7e, U+4bc2, U+4bca, U+4bd2, U+4be8, U+4c17, U+4c20, U+4c38, U+4cc4, U+4cd1, U+4ce1, U+4d07, U+4d77, U+4e02, U+4e04-4e05, U+4e0c, U+4e0f-4e12, U+4e15, U+4e17, U+4e19, U+4e1e-4e1f, U+4e23-4e24, U+4e28-4e2c, U+4e2e-4e31, U+4e35-4e37, U+4e3f-4e42, U+4e44, U+4e47-4e48, U+4e4d-4e4e, U+4e51, U+4e55-4e56, U+4e58, U+4e5a-4e5c, U+4e62-4e63, U+4e68-4e69, U+4e74-4e75, U+4e79, U+4e7f, U+4e82, U+4e85, U+4e8a, U+4e8d-4e8e, U+4e96-4e99, U+4e9d-4ea0, U+4ea2, U+4ea5-4ea6, U+4ea8, U+4eaf-4eb0, U+4eb3, U+4eb6, U+4eb9, U+4ebb-4ebc, U+4ec2-4ec4, U+4ec6-4ec8, U+4ecd, U+4ed0, U+4ed7, U+4eda-4edb, U+4edd-4ee2, U+4ee8, U+4eeb, U+4eed, U+4eef, U+4ef1, U+4ef3, U+4ef5, U+4ef7, U+4efc-4f00, U+4f02-4f03, U+4f08-4f09, U+4f0b-4f0d, U+4f12, U+4f15-4f17, U+4f19, U+4f1c, U+4f2b, U+4f2e, U+4f30-4f31, U+4f33, U+4f35-4f37, U+4f39, U+4f3b, U+4f3e, U+4f40, U+4f42-4f43, U+4f48-4f49, U+4f4b-4f4c, U+4f52, U+4f54, U+4f56; } /* [51] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-51.woff2) format('woff2'); unicode-range: U+3395-339b, U+339e-33a0, U+33a2-33ff, U+3402, U+3405-3406, U+3427, U+342c, U+342e, U+3468, U+346a, U+3488, U+3492, U+34b5, U+34bc, U+34c1, U+34c7, U+34db, U+351f, U+353e, U+355d-355e, U+3563, U+356e, U+35a6, U+35a8, U+35c5, U+35da, U+35de, U+35f4, U+3605, U+3614, U+364a, U+3691, U+3696, U+3699, U+36cf, U+3761-3762, U+376b-376c, U+3775, U+378d, U+37c1, U+37e2, U+37e8, U+37f4, U+37fd, U+3800, U+382f, U+3836, U+3840, U+385c, U+3861, U+38a1, U+38ad, U+38fa, U+3917, U+391a, U+396f, U+39a4, U+39b8, U+3a5c, U+3a6e, U+3a73, U+3a85, U+3ac4, U+3acb, U+3ad6-3ad7, U+3aea, U+3af3, U+3b0e, U+3b1a, U+3b1c, U+3b22, U+3b35, U+3b6d, U+3b77, U+3b87-3b88, U+3b8d, U+3ba4, U+3bb6, U+3bc3, U+3bcd, U+3bf0, U+3bf3, U+3c0f, U+3c26, U+3cc3, U+3cd2, U+3d11, U+3d1e, U+3d31, U+3d4e, U+3d64, U+3d9a, U+3dc0, U+3dcc, U+3dd4, U+3e05, U+3e3f-3e40, U+3e60, U+3e66, U+3e68, U+3e83, U+3e8a, U+3e94, U+3eda, U+3f57, U+3f72, U+3f75, U+3f77, U+3fae, U+3fb1, U+3fc9, U+3fd7, U+3fdc, U+4039, U+4058; } /* [52] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-52.woff2) format('woff2'); unicode-range: U+32b5-332b, U+332d-3394; } /* [53] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-53.woff2) format('woff2'); unicode-range: U+31c8-31e3, U+31f0-321e, U+3220-3230, U+3232-32b4; } /* [54] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-54.woff2) format('woff2'); unicode-range: U+3028-303f, U+3094-3096, U+309f-30a0, U+30ee, U+30f7-30fa, U+30ff, U+3105-312f, U+3131-3163, U+3165-318e, U+3190-31bb, U+31c0-31c7; } /* [55] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-55.woff2) format('woff2'); unicode-range: U+2f14-2fd5, U+2ff0-2ffb, U+3004, U+3013, U+3016-301b, U+301e, U+3020-3027; } /* [56] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-56.woff2) format('woff2'); unicode-range: U+25e4-25e6, U+2601-2603, U+2609, U+260e-260f, U+2616-2617, U+261c-261f, U+262f, U+2641, U+2660, U+2662-2664, U+2666-2668, U+266d-266e, U+2672-267d, U+26bd-26be, U+2702, U+271a, U+273d, U+2740, U+2756, U+2776-2793, U+27a1, U+2934-2935, U+29bf, U+29fa-29fb, U+2b05-2b07, U+2b1a, U+2b95, U+2e3a-2e3b, U+2e80-2e99, U+2e9b-2ef3, U+2f00-2f13; } /* [57] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-57.woff2) format('woff2'); unicode-range: U+24d1-24ff, U+2503-2513, U+2515-2516, U+2518-251b, U+251d-2522, U+2524-259f, U+25a2-25ab, U+25b1, U+25b7, U+25c0-25c1, U+25c9-25ca, U+25cc, U+25d0-25d3, U+25e2-25e3; } /* [58] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-58.woff2) format('woff2'); unicode-range: U+2105, U+2109-210a, U+210f, U+2116, U+2121, U+2126-2127, U+212b, U+212e, U+2135, U+213b, U+2194-2199, U+21b8-21b9, U+21c4-21c6, U+21cb-21cc, U+21d0, U+21e6-21e9, U+21f5, U+2202-2203, U+2205-2206, U+2208-220b, U+220f, U+2211, U+2213, U+2215, U+221a, U+221d, U+2220, U+2223, U+2225-2226, U+2228, U+222a-222e, U+2234-2237, U+223d, U+2243, U+2245, U+2248, U+224c, U+2260, U+2262, U+2264-2265, U+226e-226f, U+2272-2273, U+2276-2277, U+2283-2287, U+228a-228b, U+2295-2299, U+22a0, U+22a5, U+22bf, U+22da-22db, U+22ef, U+2305-2307, U+2318, U+2329-232a, U+23b0-23b1, U+23be-23cc, U+23ce, U+23da-23db, U+2423, U+2469-24d0; } /* [59] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-59.woff2) format('woff2'); unicode-range: U+a1-a4, U+a6-a7, U+aa, U+ac-ad, U+b5-b6, U+b8-ba, U+bc-c8, U+ca-cc, U+ce-d5, U+d9-db, U+dd-df, U+e6, U+ee, U+f0, U+f5, U+f7, U+f9, U+fb, U+fe-102, U+110-113, U+11a-11b, U+128-12b, U+143-144, U+147-148, U+14c, U+14e-14f, U+152-153, U+168-16d, U+192, U+1a0-1a1, U+1af, U+1cd-1dc, U+1f8-1f9, U+251, U+261, U+2bb, U+2c7, U+2c9, U+2ea-2eb, U+304, U+307, U+30c, U+1e3e-1e3f, U+1ea0-1ebe, U+1ec0-1ec6, U+1ec8-1ef9, U+2011-2012, U+2016, U+2018-201a, U+201e, U+2021, U+2030, U+2033, U+2035, U+2042, U+2047, U+2051, U+2074, U+20a9, U+20ab-20ac, U+20dd-20de, U+2100; } /* [60] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-60.woff2) format('woff2'); unicode-range: U+2227, U+26a0, U+2713, U+301f, U+4ff8, U+5239, U+526a, U+54fa, U+5740, U+5937, U+5993, U+59fb, U+5a3c, U+5c41, U+6028, U+626e, U+646f, U+647a, U+64b0, U+64e2, U+65a7, U+66fe, U+6727, U+6955, U+6bef, U+6f23, U+724c, U+767c, U+7a83, U+7ac4, U+7b67, U+8000, U+8471, U+8513, U+8599, U+86db, U+8718, U+87f2, U+88f3, U+8ad2, U+8e2a, U+8fa3, U+95a5, U+9798, U+9910, U+9957, U+9bab, U+9c3b, U+9daf, U+ff95; } /* [61] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-61.woff2) format('woff2'); unicode-range: U+a8, U+2032, U+2261, U+2282, U+3090, U+30f1, U+339c, U+535c, U+53d9, U+56a2, U+56c1, U+5806, U+589f, U+59d0, U+5a7f, U+60e0, U+639f, U+65af, U+68fa, U+69ae, U+6d1b, U+6ef2, U+71fb, U+725d, U+7262, U+75bc, U+7768, U+7940, U+79bf, U+7bed, U+7d68, U+7dfb, U+814b, U+8207, U+83e9, U+8494, U+8526, U+8568, U+85ea, U+86d9, U+87ba, U+8861, U+887f, U+8fe6, U+9059, U+9061, U+916a, U+976d, U+97ad, U+9ece; } /* [62] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-62.woff2) format('woff2'); unicode-range: U+2d9, U+21d4, U+301d, U+515c, U+52fe, U+5420, U+5750, U+5766, U+5954, U+5b95, U+5f8a, U+5f98, U+620c, U+621f, U+641c, U+66d9, U+676d, U+6775, U+67f5, U+694a, U+6a02, U+6a3a, U+6a80, U+6c23, U+6c72, U+6dcb, U+6faa, U+707c, U+71c8, U+7422, U+74e2, U+7791, U+7825, U+7a14, U+7a1c, U+7c95, U+7fc1, U+82a5, U+82db, U+8304, U+853d, U+8cd3, U+8de8, U+8f0c, U+8f3f, U+9091, U+91c7, U+929a, U+98af, U+9913; } /* [63] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-63.woff2) format('woff2'); unicode-range: U+2ca-2cb, U+2229, U+2468, U+2669, U+266f, U+273f, U+4ec0, U+4f60, U+4fb6, U+5347, U+540e, U+543b, U+5b0c, U+5d4c, U+5f14, U+5f9e, U+6155, U+62d0, U+6602, U+6666, U+66f3, U+67a2, U+67ca, U+69cc, U+6d29, U+6d9b, U+6e3e, U+6f81, U+7109, U+73c0, U+73c2, U+7425, U+7435-7436, U+7525, U+7554, U+785d, U+786b, U+7ae3, U+7b94, U+7d18, U+81bf, U+8511, U+8549, U+9075, U+9640, U+98e2, U+9e9f, U+ff96; } /* [64] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-64.woff2) format('woff2'); unicode-range: U+2467, U+4ece, U+4ed4, U+4f91, U+4fae, U+534d, U+53c9, U+54b3, U+586b, U+5944, U+5b78, U+5df7, U+5f77, U+6101, U+6167-6168, U+61a4, U+62d9, U+698a, U+699b, U+6a59, U+6cc4, U+6e07, U+7099, U+75d2, U+77ad, U+7953, U+7984, U+7a92, U+7baa, U+7dbb, U+817f, U+82ad, U+85e9, U+868a, U+8caa, U+8f44, U+9017, U+907c, U+908a, U+92f3, U+936e, U+9435, U+978d, U+9838, U+9a28, U+9b41, U+9ba8, U+9c57, U+9eb9; } /* [65] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-65.woff2) format('woff2'); unicode-range: U+b1, U+309b, U+4e5e, U+51f1, U+5506, U+55c5, U+58cc, U+59d1, U+5c51, U+5ef7, U+6284, U+62d7, U+6689, U+673d, U+6a2b, U+6a8e, U+6a9c, U+6d63, U+6dd1, U+70b8, U+7235, U+72db, U+72f8, U+7560, U+7c9b, U+7ce7, U+7e1e, U+80af, U+82eb, U+8463, U+8499, U+85dd, U+86ee, U+8a60, U+8a6e, U+8c79, U+8e87, U+8e8a, U+8f5f, U+9010, U+918d, U+9190, U+965b, U+97fb, U+9ab8, U+9bad, U+9d3b, U+9d5c, U+9dfa, U+9e93; } /* [66] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-66.woff2) format('woff2'); unicode-range: U+2020, U+3003, U+3231, U+4e9b, U+4f3d, U+4f47, U+51b6, U+51dc, U+53e1, U+5bc5, U+602f, U+60bc, U+61c9, U+633d, U+637b, U+6492, U+65fa, U+660f, U+66f0, U+6703, U+681e, U+6876, U+6893, U+6912, U+698e, U+6c7d, U+714c, U+7169, U+71d5, U+725f, U+72d7, U+745b, U+74dc, U+75e2, U+7891, U+7897, U+7dcb, U+810a, U+8218, U+8339, U+840e, U+852d, U+8823, U+8a0a, U+9089, U+919c, U+971c, U+9ad9, U+ff4a, U+ff5a; } /* [67] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-67.woff2) format('woff2'); unicode-range: U+2466, U+2600, U+4eab, U+4fe3, U+4ff5, U+51a5, U+51f0, U+536f, U+53d4, U+53f1, U+54a5, U+559d, U+55e3, U+58fa, U+5962, U+59ea, U+5c16, U+5cef, U+5d16, U+5f10, U+5fd6, U+6190, U+6216, U+634f, U+63bb, U+66d6, U+6756, U+6bc5, U+6e26, U+727d, U+731f, U+76f2, U+7729, U+7a7f, U+7aff, U+7c9f, U+818f, U+8236, U+82b9, U+8338, U+85aa, U+88b4, U+8b33, U+904d, U+93a7, U+96cc, U+96eb, U+9aed, U+9b8e, U+fa11; } /* [68] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-68.woff2) format('woff2'); unicode-range: U+251c, U+2523, U+4e14, U+545f, U+54bd, U+553e, U+55dc, U+56da, U+589c, U+5b55, U+5bb5, U+5ce1, U+5df4, U+5eb6, U+5ec9, U+6191, U+62f7, U+6357, U+64a5, U+6591, U+65bc, U+6897, U+6e1a, U+7063, U+711a, U+721b, U+722c, U+75b9, U+75d5, U+75fa, U+7766, U+7aae, U+7b48, U+7b8b, U+7d21, U+7e55, U+7f75, U+842c, U+8910, U+8a63, U+8b39, U+8b5a, U+8cdc, U+8d74, U+907d, U+91e7, U+9306, U+96bc, U+98f4, U+9ac4; } /* [69] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-69.woff2) format('woff2'); unicode-range: U+2003, U+2312, U+266c, U+4f86, U+51ea, U+5243, U+5256, U+541f, U+5841, U+59dc, U+5df3, U+601c, U+60e7, U+632b, U+638c, U+64ad, U+6881, U+697c, U+69cd, U+6c50, U+6d2a, U+6fc1, U+7027, U+7058, U+70f9, U+714e, U+7345, U+751a, U+760d, U+764c, U+77db, U+7d79, U+7e8f, U+80ce, U+814e, U+81fc, U+8247, U+8278, U+85a9, U+8a03, U+90ed, U+9784, U+9801, U+984e, U+99b3, U+9bc9, U+9bdb, U+9be8, U+9e78, U+ff6b; } /* [70] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-70.woff2) format('woff2'); unicode-range: U+266b, U+3006, U+5176, U+5197, U+51a8, U+51c6, U+52f2, U+5614, U+5875, U+5a2f, U+5b54, U+5ce0, U+5dba, U+5deb, U+5e63, U+5f59, U+5fcc, U+6068, U+6367, U+68b6, U+6a0b, U+6b64, U+6e15, U+6eba, U+7272, U+72a0, U+7947, U+7985, U+79e6, U+79e9, U+7a3d, U+7a9f, U+7aaf, U+7b95, U+7f60, U+7f9e, U+7fe0, U+8098, U+80ba, U+8106, U+82d4, U+831c, U+87f9, U+8a1f, U+8acf, U+90c1, U+920d, U+9756, U+fe43, U+ff94; } /* [71] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-71.woff2) format('woff2'); unicode-range: U+af, U+2465, U+2517, U+33a1, U+4f10, U+50c5, U+51b4, U+5384, U+5606, U+5bb0, U+5cac, U+5ee3, U+618e, U+61f2, U+62c9, U+66ab, U+66f9, U+6816, U+6960, U+6b3e, U+6f20, U+7078, U+72d0, U+73ed, U+7ad9, U+7b1b, U+7be4, U+7d62, U+7f51, U+80b4, U+80f4, U+8154, U+85fb, U+865c, U+8702, U+895f, U+8aed, U+8b90, U+8ced, U+8fbf, U+91d8, U+9418, U+9583, U+9591, U+9813, U+982c, U+9bd6, U+ff46, U+ff7f, U+ff88; } /* [72] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-72.woff2) format('woff2'); unicode-range: U+4e91, U+508d, U+50e7, U+514e, U+51f6, U+5446, U+5504, U+584a, U+59a8, U+59d3, U+5a46, U+5ac9, U+6020, U+60a6, U+6148, U+621a, U+6234, U+64c1, U+6523, U+675c, U+67d1, U+6953, U+6ccc, U+6df5, U+6e13, U+6f06, U+723a, U+7325, U+74e6, U+758e, U+75ab, U+75d9, U+7a40, U+8096, U+82fa, U+8587, U+8594, U+8a6b, U+8ab9, U+8b17, U+8b83, U+937c, U+963b, U+9673, U+96db, U+9ce9, U+9f4b, U+ff67, U+ff82, U+ff93; } /* [73] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-73.woff2) format('woff2'); unicode-range: U+221e, U+2514, U+51f9, U+5270, U+5449, U+5824, U+59a5, U+5a29, U+5d07, U+5e16, U+60e3, U+614c, U+6276, U+643e, U+64ab, U+6562, U+6681, U+670b, U+6734, U+67af, U+6a3d, U+6b05, U+6dc0, U+6e4a, U+7259, U+732a, U+7409, U+78a7, U+7a6b, U+8015, U+809b, U+817a, U+830e, U+837b, U+85ab, U+8a23, U+8a93, U+8b00, U+8b19, U+8b21, U+8cbf, U+8fb0, U+901d, U+91b8, U+9320, U+932c, U+9688, U+96f6, U+9df2, U+ff6a; } /* [74] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-74.woff2) format('woff2'); unicode-range: U+2002, U+2025, U+4f8d, U+51e1, U+51f8, U+5507, U+5598, U+58f1, U+5983, U+59ac, U+5c3c, U+5de7, U+5e7d, U+5eca, U+5f61, U+606d, U+60f9, U+636e, U+64ec, U+67da, U+67ff, U+6813, U+68f2, U+693f, U+6b6a, U+6bbb, U+6ef4, U+7092, U+717d, U+7261, U+73c8, U+7432, U+7483, U+76fe, U+7709, U+78d0, U+81a3, U+81b3, U+82af, U+8305, U+8309, U+8870, U+88fe, U+8cd1, U+8d66, U+906e, U+971e, U+9812, U+ff79, U+ff90; } /* [75] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-75.woff2) format('woff2'); unicode-range: U+2464, U+2501, U+2640, U+2642, U+339d, U+4f0e, U+5091, U+50b5, U+5132, U+51cc, U+558b, U+55aa, U+585e, U+5bee, U+5dfe, U+60b6, U+62b9, U+6349, U+6566, U+6590, U+6842, U+689d, U+6a58, U+6c70, U+6ff1, U+7815, U+7881, U+7aaa, U+7bc7, U+7def, U+7fa8, U+8017, U+8036, U+8061, U+821f, U+8429, U+8ce0, U+8e74, U+9019, U+90ca, U+9162, U+932f, U+93ae, U+9644, U+990c, U+9cf3, U+ff56, U+ff6e, U+ff7e, U+ff85; } /* [76] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-76.woff2) format('woff2'); unicode-range: U+2266-2267, U+4f2f, U+5208, U+5451, U+546a, U+5589, U+576a, U+5815, U+5a9a, U+5b9b, U+5c3a, U+5efb, U+5faa, U+6109, U+6643, U+6652, U+695a, U+69fd, U+6b86, U+6bb4, U+6daf, U+7089, U+70cf, U+7a00, U+7a4f, U+7b39, U+7d33, U+80e1, U+828b, U+82a6, U+86cd, U+8c8c, U+8cca, U+8df3, U+9077, U+9175, U+91dc, U+925b, U+9262, U+9271, U+92ed, U+9855, U+9905, U+9d28, U+ff3f, U+ff58, U+ff68, U+ff6d, U+ff9c; } /* [77] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-77.woff2) format('woff2'); unicode-range: U+2207, U+25ef, U+309c, U+4e4f, U+5146, U+51dd, U+5351, U+540a, U+5629, U+5eb5, U+5f04, U+5f13, U+60dc, U+6212, U+63b4, U+642c, U+6627, U+66a6, U+66c7, U+66fd, U+674e, U+6b96, U+6c4e, U+6df3, U+6e67, U+6f84, U+72fc, U+733f, U+7c97, U+7db1, U+7e4d, U+816b, U+82d1, U+84cb, U+854e, U+8607, U+86c7, U+871c, U+8776, U+8a89, U+8fc4, U+91a4, U+9285, U+9685, U+9903, U+9b31, U+9f13, U+ff42, U+ff74, U+ff91; } /* [78] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-78.woff2) format('woff2'); unicode-range: U+4e32, U+51db, U+53a8, U+53ea, U+5609, U+5674, U+5a92, U+5e7e, U+6115, U+611a, U+62cc, U+62ed, U+63c9, U+64b9, U+64e6, U+65cb, U+6606, U+6731, U+683d, U+6afb, U+7460, U+771e, U+78ef, U+7b26, U+7b51, U+7cde, U+7d10, U+7d2f, U+7d46, U+80de, U+819c, U+84b2, U+85cd, U+865a, U+8ecc, U+9022, U+90b8, U+9192, U+9675, U+96b7, U+99ff, U+ff44, U+ff55, U+ff6c, U+ff73, U+ff75, U+ff86, U+ff8d, U+ff92, U+ffe3; } /* [79] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-79.woff2) format('woff2'); unicode-range: U+25b3, U+30f5, U+4eae, U+4f46, U+4f51, U+5203, U+52ff, U+55a7, U+564c, U+565b, U+57f9, U+5805, U+5b64, U+5e06, U+5f70, U+5f90, U+60e8, U+6182, U+62f3, U+62fe, U+63aa, U+64a4, U+65d7, U+673a, U+6851, U+68cb, U+68df, U+6d1e, U+6e58, U+6e9d, U+77b3, U+7832, U+7c3f, U+7db4, U+7f70, U+80aa, U+80c6, U+8105, U+819d, U+8276, U+8679, U+8986, U+8c9d, U+8fc5, U+916c, U+9665, U+9699, U+96c0, U+9a19, U+ff8b; } /* [80] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-80.woff2) format('woff2'); unicode-range: U+2463, U+25a1, U+4ef0, U+5076, U+5098, U+51fd, U+5302, U+5448, U+54c9, U+570b, U+583a, U+5893, U+58a8, U+58ee, U+5949, U+5bdb, U+5f26, U+5f81, U+6052, U+6170, U+61c7, U+631f, U+635c, U+664b, U+69fb, U+6f01, U+7070, U+722a, U+745e, U+755c, U+76c6, U+78c1, U+79e4, U+7bb8, U+7d0b, U+81a8, U+82d7, U+8b5c, U+8f14, U+8fb1, U+8fbb, U+9283, U+9298, U+9a30, U+ff03, U+ff50, U+ff59, U+ff7b, U+ff8e-ff8f; } /* [81] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-81.woff2) format('woff2'); unicode-range: U+2010, U+2502, U+25b6, U+4f3a, U+514b, U+5265, U+52c3, U+5339, U+53ec, U+54c0, U+55b0, U+5854, U+5b8f, U+5cb3, U+5e84, U+60da, U+6247, U+6249, U+628a, U+62cd, U+65ac, U+6838, U+690e, U+6cf0, U+6f02, U+6f2c, U+6f70, U+708a, U+7434, U+75be, U+77ef, U+7c60, U+7c98, U+7d1b, U+7e2b, U+80a5, U+81e3, U+820c, U+8210, U+8475, U+862d, U+8650, U+8997, U+906d, U+91c8, U+9700, U+9727, U+9df9, U+ff3a, U+ff9a; } /* [82] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-82.woff2) format('woff2'); unicode-range: U+2103, U+5049, U+52b1, U+5320, U+5553, U+572d, U+58c7, U+5b5d, U+5bc2, U+5de3, U+5e61, U+5f80, U+61a9, U+67d0, U+67f4, U+6c88, U+6ca1, U+6ce5, U+6d78, U+6e9c, U+6f54, U+731b, U+73b2, U+74a7, U+74f6, U+75e9, U+7b20, U+7c8b, U+7f72, U+809d, U+8108, U+82b3, U+82bd, U+84b8, U+84c4, U+88c2, U+8ae6, U+8ef8, U+902e, U+9065, U+9326, U+935b, U+938c, U+9676, U+9694, U+96f7, U+9ed9, U+ff48, U+ff4c, U+ff81; } /* [83] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-83.woff2) format('woff2'); unicode-range: U+2500, U+3008-3009, U+4ead, U+4f0f, U+4fca, U+53eb, U+543e, U+57a2, U+5cf0, U+5e8f, U+5fe0, U+61b2, U+62d8, U+6442, U+64b2, U+6589, U+659c, U+67f1, U+68c4, U+6cb8, U+6d12, U+6de1, U+6fe1, U+70c8, U+723d, U+73e0, U+7656, U+773a, U+7948, U+7b87, U+7c92, U+7d3a, U+7e1b, U+7e4a, U+819a, U+8358, U+83c5, U+84bc, U+864e, U+8912, U+8c9e, U+8d05, U+92fc, U+9396, U+98fd, U+99d2, U+ff64, U+ff7a, U+ff83; } /* [84] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-84.woff2) format('woff2'); unicode-range: U+3014-3015, U+4e3c, U+5036, U+5075, U+533f, U+53e9, U+5531, U+5642, U+5984, U+59e6, U+5a01, U+5b6b, U+5c0b, U+5f25, U+6069, U+60a0, U+614e, U+62b5, U+62d2-62d3, U+6597, U+660c, U+674f, U+67cf, U+6841, U+6905, U+6cf3, U+6d32, U+6d69, U+6f64, U+716e, U+7761, U+7b52, U+7be0, U+7dbf, U+7de9, U+7f36, U+81d3, U+8302, U+8389, U+846c, U+84ee, U+8a69, U+9038, U+9d8f, U+ff47, U+ff4b, U+ff76, U+ff9b; } /* [85] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-85.woff2) format('woff2'); unicode-range: U+25c7, U+3007, U+504f, U+507d, U+51a0, U+52a3, U+5410, U+5510, U+559a, U+5782, U+582a, U+5c0a, U+5c3f, U+5c48, U+5f6b, U+6176, U+622f, U+6279, U+62bd, U+62dd, U+65ed, U+67b6, U+6817, U+6850, U+6d6a, U+6deb, U+6ea2, U+6edd, U+6f5c, U+72e9, U+73a9, U+7573, U+76bf, U+7950, U+7956, U+7f8a, U+7ffc, U+80a2, U+80c3, U+83ca, U+8a02, U+8a13, U+8df5, U+9375, U+983b, U+99b4, U+ff4e, U+ff71, U+ff89, U+ff97; } /* [86] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-86.woff2) format('woff2'); unicode-range: U+24, U+2022, U+2212, U+221f, U+2665, U+4ecf, U+5100, U+51cd, U+52d8, U+5378, U+53f6, U+574a, U+5982, U+5996, U+5c1a, U+5e1d, U+5f84, U+609f, U+61a7, U+61f8, U+6398, U+63ee, U+6676, U+6691, U+6eb6, U+7126, U+71e5, U+7687, U+7965, U+7d17, U+80a1, U+8107, U+8266, U+85a6, U+8987, U+8ca2, U+8cab, U+8e0a, U+9042, U+95c7, U+9810, U+9867, U+98fc, U+ff52-ff54, U+ff61, U+ff77, U+ff98-ff99; } /* [87] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-87.woff2) format('woff2'); unicode-range: U+b0, U+226a, U+2462, U+4e39, U+4fc3, U+4fd7, U+50be, U+50da, U+5200, U+5211, U+54f2, U+5618, U+596a, U+5b22, U+5bb4, U+5d50, U+60a3, U+63fa, U+658e, U+65e8, U+6669, U+6795, U+679d, U+67a0, U+6b3a, U+6e09, U+757f, U+7cd6, U+7dbe, U+7ffb, U+83cc, U+83f1, U+840c, U+845b, U+8846, U+8972, U+8a34, U+8a50, U+8a87, U+8edf, U+8ff0, U+90a6, U+9154, U+95a3, U+9663, U+9686, U+96c7, U+ff3c, U+ff7c, U+ff8a; } /* [88] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-88.woff2) format('woff2'); unicode-range: U+25bd, U+4e59, U+4ec1, U+4ff3, U+515a, U+518a, U+525b, U+5375, U+552f, U+57a3, U+5b9c, U+5c3d, U+5e3d, U+5e7b, U+5f0a, U+6094, U+6458, U+654f, U+67f3, U+6b8a, U+6bd2, U+6c37, U+6ce1, U+6e56, U+6e7f, U+6ed1, U+6ede, U+6f0f, U+70ad, U+7267, U+7363, U+786c, U+7a42, U+7db2, U+7f85, U+8178, U+829d, U+8896, U+8c5a, U+8cb0, U+8ce2, U+8ed2, U+9047, U+9177, U+970a, U+9ea6, U+ff1b, U+ff31, U+ff39, U+ff80; } /* [89] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-89.woff2) format('woff2'); unicode-range: U+a5, U+4e80, U+4f34, U+4f73, U+4f75, U+511f, U+5192, U+52aa, U+53c8, U+570f, U+57cb, U+596e, U+5d8b, U+5f66, U+5fd9, U+62db, U+62f6, U+6328, U+633f, U+63a7, U+6469, U+6bbf, U+6c41, U+6c57, U+6d44, U+6dbc, U+706f, U+72c2, U+72ed, U+7551, U+75f4, U+7949, U+7e26, U+7fd4, U+8150, U+8af8, U+8b0e, U+8b72, U+8ca7, U+934b, U+9a0e, U+9a12, U+9b42, U+ff41, U+ff43, U+ff45, U+ff49, U+ff4f, U+ff62-ff63; } /* [90] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-90.woff2) format('woff2'); unicode-range: U+4e18, U+4fb5, U+5104, U+52c7, U+5353, U+5374, U+53e5, U+587e, U+594f, U+5a20, U+5de1, U+5f18, U+5fcd, U+6291, U+62ab, U+6355, U+6392, U+63da, U+63e1, U+656c, U+6687, U+68b0-68b1, U+68d2, U+68da, U+6b27, U+6cbc, U+7159, U+7344, U+73cd, U+76df, U+790e, U+7cf8, U+8102, U+88c1, U+8aa0, U+8e0f, U+9178, U+92ad, U+9670, U+96c5, U+9cf4, U+9db4, U+ff3e, U+ff6f, U+ff72, U+ff78, U+ff7d, U+ff84, U+ff8c; } /* [91] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-91.woff2) format('woff2'); unicode-range: U+60, U+2200, U+226b, U+2461, U+517c, U+526f, U+5800, U+5b97, U+5bf8, U+5c01, U+5d29, U+5e4c, U+5e81, U+6065, U+61d0, U+667a, U+6696, U+6843, U+6c99, U+6d99, U+6ec5, U+6f22, U+6f6e, U+6fa4, U+6fef, U+71c3, U+72d9, U+7384, U+78e8, U+7a1a, U+7a32, U+7a3c, U+7adc, U+7ca7, U+7d2b, U+7dad, U+7e4b, U+80a9, U+8170, U+81ed, U+820e, U+8a17, U+8afe, U+90aa, U+914e, U+963f, U+99c4, U+9eba, U+9f3b, U+ff38; } /* [92] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-92.woff2) format('woff2'); unicode-range: U+2460, U+4e5f, U+4e7e, U+4ed9, U+501f, U+502b, U+5968, U+5974, U+5ac1, U+5b99, U+5ba3, U+5be7, U+5be9, U+5c64, U+5cb8, U+5ec3, U+5f1f, U+616e, U+6297, U+62e0, U+62ec, U+6368, U+642d, U+65e6, U+6717, U+676f, U+6b04, U+732e, U+7652, U+76ca, U+76d7, U+7802, U+7e70, U+7f6a, U+8133, U+81e8, U+866b, U+878d, U+88f8, U+8a5e, U+8cdb, U+8d08, U+907a, U+90e1, U+96f2, U+9f8d, U+ff35, U+ff37, U+ff40, U+ff9d; } /* [93] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-93.woff2) format('woff2'); unicode-range: U+21d2, U+25ce, U+300a-300b, U+4e89, U+4e9c, U+4ea1, U+5263, U+53cc, U+5426, U+5869, U+5947, U+598a, U+5999, U+5e55, U+5e72, U+5e79, U+5fae, U+5fb9, U+602a, U+6163, U+624d, U+6749, U+6c5a, U+6cbf, U+6d45, U+6dfb, U+6e7e, U+708e, U+725b, U+7763, U+79c0, U+7bc4, U+7c89, U+7e01, U+7e2e, U+8010, U+8033, U+8c6a, U+8cc3, U+8f1d, U+8f9b, U+8fb2, U+907f, U+90f7, U+9707, U+9818, U+9b3c, U+ff0a, U+ff4d; } /* [94] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-94.woff2) format('woff2'); unicode-range: U+2015, U+2190, U+4e43, U+5019, U+5247, U+52e7, U+5438, U+54b2, U+55ab, U+57f7, U+5bd2, U+5e8a, U+5ef6, U+6016, U+60b2, U+6162, U+6319, U+6551, U+6607, U+66b4, U+675f, U+67d4, U+6b20, U+6b53, U+6ce3, U+719f, U+75b2, U+770b, U+7720, U+77ac, U+79d2, U+7af9, U+7d05, U+7dca, U+8056, U+80f8, U+81f3, U+8352, U+885d, U+8a70, U+8aa4, U+8cbc, U+900f, U+9084, U+91e3, U+9451, U+96c4, U+99c6, U+9ad4, U+ff70; } /* [95] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-95.woff2) format('woff2'); unicode-range: U+2193, U+25b2, U+4e4b, U+516d, U+51c4, U+529f, U+52c9, U+5360, U+5442, U+5857, U+5915, U+59eb, U+5a9b, U+5c3b, U+6012, U+61b6, U+62b1, U+6311, U+6577, U+65e2, U+65ec, U+6613, U+6790, U+6cb9, U+7372, U+76ae, U+7d5e, U+7fcc, U+88ab, U+88d5, U+8caf, U+8ddd, U+8ecd, U+8f38, U+8f9e, U+8feb, U+9063, U+90f5, U+93e1, U+968a, U+968f, U+98fe, U+9ec4, U+ff1d, U+ff27, U+ff2a, U+ff36, U+ff3b, U+ff3d, U+ffe5; } /* [96] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-96.woff2) format('woff2'); unicode-range: U+4e03, U+4f38, U+50b7, U+5264, U+5348, U+5371, U+585a, U+58ca, U+5951, U+59b9, U+59d4, U+5b98, U+5f8b, U+6388, U+64cd, U+65e7, U+6803, U+6b6f, U+6d66, U+6e0b, U+6ecb, U+6fc3, U+72ac, U+773c, U+77e2, U+7968, U+7a74, U+7dba, U+7dd1, U+7e3e, U+808c, U+811a, U+8179, U+8239, U+8584, U+8a0e, U+8a72, U+8b66, U+8c46, U+8f29, U+90a3, U+9234, U+96f0, U+9769, U+9774, U+9aa8, U+ff26, U+ff28, U+ff9e-ff9f; } /* [97] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-97.woff2) format('woff2'); unicode-range: U+7e, U+b4, U+25c6, U+2661, U+4e92, U+4eee, U+4ffa, U+5144, U+5237, U+5287, U+52b4, U+58c1, U+5bff, U+5c04, U+5c06, U+5e95, U+5f31, U+5f93, U+63c3, U+640d, U+6557, U+6614, U+662f, U+67d3, U+690d, U+6bba, U+6e6f, U+72af, U+732b, U+7518, U+7ae0, U+7ae5, U+7af6, U+822a, U+89e6, U+8a3a, U+8a98, U+8cb8, U+8de1, U+8e8d, U+95d8, U+961c, U+96a3, U+96ea, U+9bae, U+ff20, U+ff22, U+ff29, U+ff2b-ff2c; } /* [98] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-98.woff2) format('woff2'); unicode-range: U+25cb, U+4e71, U+4f59, U+50d5, U+520a, U+5217, U+5230, U+523a-523b, U+541b, U+5439, U+5747, U+59c9, U+5bdf, U+5c31, U+5de8, U+5e7c, U+5f69, U+6050, U+60d1, U+63cf, U+663c, U+67c4, U+6885, U+6c38, U+6d6e, U+6db2, U+6df7, U+6e2c, U+6f5f, U+7532, U+76e3-76e4, U+7701, U+793c, U+79f0, U+7a93, U+7d00, U+7de0, U+7e54, U+8328, U+8840, U+969c, U+96e8, U+9811, U+9aea, U+9b5a, U+ff24, U+ff2e, U+ff57; } /* [99] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-99.woff2) format('woff2'); unicode-range: U+2191, U+505c, U+52e4, U+5305, U+535a, U+56e0, U+59bb, U+5acc, U+5b09, U+5b87, U+5c90, U+5df1, U+5e2d, U+5e33, U+5f3e, U+6298, U+6383, U+653b, U+6697, U+6804, U+6a39, U+6cca, U+6e90, U+6f2b, U+702c, U+7206, U+7236, U+7559, U+7565, U+7591, U+75c7, U+75db, U+7b4b, U+7bb1, U+7d99, U+7fbd, U+8131, U+885b, U+8b1d, U+8ff7, U+9003, U+9045, U+96a0, U+9732, U+990a, U+99d0, U+9e97, U+9f62, U+ff25, U+ff2d; } /* [100] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-100.woff2) format('woff2'); unicode-range: U+4e08, U+4f9d, U+5012, U+514d, U+51b7, U+5275, U+53ca, U+53f8, U+5584, U+57fc, U+5b9d, U+5bfa, U+5c3e, U+5f01, U+5fb4, U+5fd7, U+606f, U+62e1, U+6563, U+6674, U+6cb3, U+6d3e, U+6d74, U+6e1b, U+6e2f, U+718a, U+7247, U+79d8, U+7d14, U+7d66, U+7d71, U+7df4, U+7e41, U+80cc, U+8155, U+83d3, U+8a95, U+8ab2, U+8ad6, U+8ca1, U+9000, U+9006, U+9678, U+97d3, U+9808, U+98ef, U+9a5a, U+9b45, U+ff23, U+ff30; } /* [101] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-101.woff2) format('woff2'); unicode-range: U+25bc, U+3012, U+4ef2, U+4f0a, U+516b, U+5373, U+539a, U+53b3, U+559c, U+56f0, U+5727, U+5742, U+5965, U+59ff, U+5bc6, U+5dfb, U+5e45, U+5ead, U+5fb3, U+6211, U+6253, U+639b, U+63a8, U+6545, U+6575, U+6628, U+672d, U+68a8, U+6bdb, U+6d25, U+707d, U+767e, U+7834, U+7b46, U+7bc9, U+8074, U+82e6, U+8349, U+8a2a, U+8d70, U+8da3, U+8fce, U+91cc, U+967d, U+97ff, U+9996, U+ff1c, U+ff2f, U+ff32, U+ff34; } /* [102] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-102.woff2) format('woff2'); unicode-range: U+3d, U+5e, U+25cf, U+4e0e, U+4e5d, U+4e73, U+4e94, U+4f3c, U+5009, U+5145, U+51ac, U+5238, U+524a, U+53f3, U+547c, U+5802, U+5922, U+5a66, U+5c0e, U+5de6, U+5fd8, U+5feb, U+6797, U+685c, U+6b7b, U+6c5f-6c60, U+6cc9, U+6ce2, U+6d17, U+6e21, U+7167, U+7642, U+76db, U+8001, U+821e, U+8857, U+89d2, U+8b1b, U+8b70, U+8cb4, U+8cde, U+8f03, U+8f2a, U+968e, U+9b54, U+9e7f, U+9ebb, U+ff05, U+ff33; } /* [103] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-103.woff2) format('woff2'); unicode-range: U+500d, U+5074, U+50cd, U+5175, U+52e2, U+5352, U+5354, U+53f2, U+5409, U+56fa, U+5a18, U+5b88, U+5bdd, U+5ca9, U+5f92, U+5fa9, U+60a9, U+623f, U+6483, U+653f, U+666f, U+66ae, U+66f2, U+6a21, U+6b66, U+6bcd, U+6d5c, U+796d, U+7a4d, U+7aef, U+7b56, U+7b97, U+7c4d, U+7e04, U+7fa9, U+8377, U+83dc, U+83ef, U+8535, U+8863, U+88cf, U+88dc, U+8907, U+8acb, U+90ce, U+91dd, U+ff0b, U+ff0d, U+ff19, U+ff65; } /* [104] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-104.woff2) format('woff2'); unicode-range: U+4e01, U+4e21, U+4e38, U+52a9, U+547d, U+592e, U+5931, U+5b63, U+5c40, U+5dde, U+5e78, U+5efa, U+5fa1, U+604b, U+6075, U+62c5, U+632f, U+6a19, U+6c0f, U+6c11, U+6c96, U+6e05, U+70ba, U+71b1, U+7387, U+7403, U+75c5, U+77ed, U+795d, U+7b54, U+7cbe, U+7d19, U+7fa4, U+8089, U+81f4, U+8208, U+8336, U+8457, U+8a33, U+8c4a, U+8ca0, U+8ca8, U+8cc0, U+9014, U+964d, U+9803, U+983c, U+98db, U+ff17, U+ff21; } /* [105] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-105.woff2) format('woff2'); unicode-range: U+25, U+25a0, U+4e26, U+4f4e, U+5341, U+56f2, U+5bbf, U+5c45, U+5c55, U+5c5e, U+5dee, U+5e9c, U+5f7c, U+6255, U+627f, U+62bc, U+65cf, U+661f, U+666e, U+66dc, U+67fb, U+6975, U+6a4b, U+6b32, U+6df1, U+6e29, U+6fc0, U+738b, U+7686, U+7a76, U+7a81, U+7c73, U+7d75, U+7dd2, U+82e5, U+82f1, U+85ac, U+888b, U+899a, U+8a31, U+8a8c, U+8ab0, U+8b58, U+904a, U+9060, U+9280, U+95b2, U+984d, U+9ce5, U+ff18; } /* [106] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-106.woff2) format('woff2'); unicode-range: U+30f6, U+50ac, U+5178, U+51e6, U+5224, U+52dd, U+5883, U+5897, U+590f, U+5a5a, U+5bb3, U+5c65, U+5e03, U+5e2b, U+5e30, U+5eb7, U+6271, U+63f4, U+64ae, U+6574, U+672b, U+679a, U+6a29-6a2a, U+6ca2, U+6cc1, U+6d0b, U+713c, U+74b0, U+7981, U+7a0b, U+7bc0, U+7d1a, U+7d61, U+7fd2, U+822c, U+8996, U+89aa, U+8cac, U+8cbb, U+8d77, U+8def, U+9020, U+9152, U+9244, U+9662, U+967a, U+96e3, U+9759, U+ff16; } /* [107] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-107.woff2) format('woff2'); unicode-range: U+23, U+3c, U+2192, U+4e45, U+4efb, U+4f50, U+4f8b, U+4fc2, U+5024, U+5150, U+5272, U+5370, U+53bb, U+542b, U+56db, U+56e3, U+57ce, U+5bc4, U+5bcc, U+5f71, U+60aa, U+6238, U+6280, U+629c, U+6539, U+66ff, U+670d, U+677e-677f, U+6839, U+69cb, U+6b4c, U+6bb5, U+6e96, U+6f14, U+72ec, U+7389, U+7814, U+79cb, U+79d1, U+79fb, U+7a0e, U+7d0d, U+85e4, U+8d64, U+9632, U+96e2, U+9805, U+99ac, U+ff1e; } /* [108] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-108.woff2) format('woff2'); unicode-range: U+2605-2606, U+301c, U+4e57, U+4fee, U+5065, U+52df, U+533b, U+5357, U+57df, U+58eb, U+58f0, U+591c, U+592a-592b, U+5948, U+5b85, U+5d0e, U+5ea7, U+5ff5, U+6025, U+63a1, U+63a5, U+63db, U+643a, U+65bd, U+671d, U+68ee, U+6982, U+6b73, U+6bd4, U+6d88, U+7570, U+7b11, U+7d76, U+8077, U+8217, U+8c37, U+8c61, U+8cc7, U+8d85, U+901f, U+962a, U+9802, U+9806, U+9854, U+98f2, U+9928, U+99c5, U+9ed2; } /* [109] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-109.woff2) format('woff2'); unicode-range: U+266a, U+4f11, U+533a, U+5343, U+534a, U+53cd, U+5404, U+56f3, U+5b57-5b58, U+5bae, U+5c4a, U+5e0c, U+5e2f, U+5eab, U+5f35, U+5f79, U+614b, U+6226, U+629e, U+65c5, U+6625, U+6751, U+6821, U+6b69, U+6b8b, U+6bce, U+6c42, U+706b, U+7c21, U+7cfb, U+805e, U+80b2, U+82b8, U+843d, U+8853, U+88c5, U+8a3c, U+8a66, U+8d8a, U+8fba, U+9069, U+91cf, U+9752, U+975e, U+9999, U+ff0f-ff10, U+ff14-ff15; } /* [110] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-110.woff2) format('woff2'); unicode-range: U+40, U+4e86, U+4e95, U+4f01, U+4f1d, U+4fbf, U+5099, U+5171, U+5177, U+53cb, U+53ce, U+53f0, U+5668, U+5712, U+5ba4, U+5ca1, U+5f85, U+60f3, U+653e, U+65ad, U+65e9, U+6620, U+6750, U+6761, U+6b62, U+6b74, U+6e08, U+6e80, U+7248, U+7531, U+7533, U+753a, U+77f3, U+798f, U+7f6e, U+8449, U+88fd, U+89b3, U+8a55, U+8ac7, U+8b77, U+8db3, U+8efd, U+8fd4, U+9031-9032, U+9580, U+9589, U+96d1, U+985e; } /* [111] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-111.woff2) format('woff2'); unicode-range: U+2b, U+d7, U+300e-300f, U+4e07, U+4e8c, U+512a, U+5149, U+518d, U+5236, U+52b9, U+52d9, U+5468, U+578b, U+57fa, U+5b8c, U+5ba2, U+5c02, U+5de5, U+5f37, U+5f62, U+623b, U+63d0, U+652f, U+672a, U+6848, U+6d41, U+7136, U+7537, U+754c, U+76f4, U+79c1, U+7ba1, U+7d44, U+7d4c, U+7dcf, U+7dda, U+7de8, U+82b1, U+897f, U+8ca9, U+8cfc, U+904e, U+9664, U+982d, U+9858, U+98a8, U+9a13, U+ff13, U+ff5c; } /* [112] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-112.woff2) format('woff2'); unicode-range: U+4e16, U+4e3b, U+4ea4, U+4ee4, U+4f4d, U+4f4f, U+4f55, U+4f9b, U+5317, U+5358, U+53c2, U+53e4, U+548c, U+571f, U+59cb, U+5cf6, U+5e38, U+63a2, U+63b2, U+6559, U+662d, U+679c, U+6c7a, U+72b6, U+7523, U+767d, U+770c, U+7a2e, U+7a3f, U+7a7a, U+7b2c, U+7b49, U+7d20, U+7d42, U+8003, U+8272, U+8a08, U+8aac, U+8cb7, U+8eab, U+8ee2, U+9054-9055, U+90fd, U+914d, U+91cd, U+969b, U+97f3, U+984c, U+ff06; } /* [113] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-113.woff2) format('woff2'); unicode-range: U+26, U+5f, U+2026, U+203b, U+4e09, U+4eac, U+4ed5, U+4fa1, U+5143, U+5199, U+5207, U+539f, U+53e3, U+53f7, U+5411, U+5473, U+5546, U+55b6, U+5929, U+597d, U+5bb9, U+5c11, U+5c4b, U+5ddd, U+5f97, U+5fc5, U+6295, U+6301, U+6307, U+671b, U+76f8, U+78ba, U+795e, U+7d30, U+7d39, U+7d9a, U+89e3, U+8a00, U+8a73, U+8a8d, U+8a9e, U+8aad, U+8abf, U+8cea, U+8eca, U+8ffd, U+904b, U+9650, U+ff11-ff12; } /* [114] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-114.woff2) format('woff2'); unicode-range: U+3e, U+3005, U+4e0d, U+4e88, U+4ecb, U+4ee3, U+4ef6, U+4fdd, U+4fe1, U+500b, U+50cf, U+5186, U+5316, U+53d7, U+540c, U+544a, U+54e1, U+5728, U+58f2, U+5973, U+5b89, U+5c71, U+5e02, U+5e97, U+5f15, U+5fc3, U+5fdc, U+601d, U+611b, U+611f, U+671f, U+6728, U+6765, U+683c, U+6b21, U+6ce8, U+6d3b, U+6d77, U+7530, U+7740, U+7acb, U+7d50, U+826f, U+8f09, U+8fbc, U+9001, U+9053, U+91ce, U+9762, U+98df; } /* [115] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-115.woff2) format('woff2'); unicode-range: U+7c, U+3080, U+4ee5, U+5148, U+516c, U+521d, U+5225, U+529b, U+52a0, U+53ef, U+56de, U+56fd, U+5909, U+591a, U+5b66, U+5b9f, U+5bb6, U+5bfe, U+5e73, U+5e83, U+5ea6, U+5f53, U+6027, U+610f, U+6210, U+6240, U+660e, U+66f4, U+66f8, U+6709, U+6771, U+697d, U+69d8, U+6a5f, U+6c34, U+6cbb, U+73fe, U+756a, U+7684, U+771f, U+793a, U+7f8e, U+898f, U+8a2d, U+8a71, U+8fd1, U+9078, U+9577, U+96fb, U+ff5e; } /* [116] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-116.woff2) format('woff2'); unicode-range: U+a9, U+3010-3011, U+30e2, U+4e0b, U+4eca, U+4ed6, U+4ed8, U+4f53, U+4f5c, U+4f7f, U+53d6, U+540d, U+54c1, U+5730, U+5916, U+5b50, U+5c0f, U+5f8c, U+624b, U+6570, U+6587, U+6599, U+691c, U+696d, U+6cd5, U+7269, U+7279, U+7406, U+767a-767b, U+77e5, U+7d04, U+7d22, U+8005, U+80fd, U+81ea, U+8868, U+8981, U+89a7, U+901a, U+9023, U+90e8, U+91d1, U+9332, U+958b, U+96c6, U+9ad8, U+ff1a, U+ff1f; } /* [117] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-117.woff2) format('woff2'); unicode-range: U+4e, U+a0, U+3000, U+300c-300d, U+4e00, U+4e0a, U+4e2d, U+4e8b, U+4eba, U+4f1a, U+5165, U+5168, U+5185, U+51fa, U+5206, U+5229, U+524d, U+52d5, U+5408, U+554f, U+5831, U+5834, U+5927, U+5b9a, U+5e74, U+5f0f, U+60c5, U+65b0, U+65b9, U+6642, U+6700, U+672c, U+682a, U+6b63, U+6c17, U+7121, U+751f, U+7528, U+753b, U+76ee, U+793e, U+884c, U+898b, U+8a18, U+9593, U+95a2, U+ff01, U+ff08-ff09; } /* [118] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-118.woff2) format('woff2'); unicode-range: U+21-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2-b3, U+b7, U+bb, U+c9, U+cd, U+d6, U+d8, U+dc, U+e0-e5, U+e7-ed, U+ef, U+f1-f4, U+f6, U+f8, U+fa, U+fc-fd, U+103, U+14d, U+1b0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+201c-201d, U+2039-203a, U+203c, U+2048-2049, U+2113, U+2122, U+65e5, U+6708, U+70b9; } /* [119] */ @font-face { font-family: 'GenJyuuGothicX'; font-style: normal; font-weight: 400; font-display: swap; src: url(./GenJyuuGothicX-Regular-7e9696c772dbd2be53fce44190368ec7877ee7b4f2fd72e6dc2cc2820d4bd4cb-119.woff2) format('woff2'); unicode-range: U+20, U+2027, U+3001-3002, U+3041-307f, U+3081-308f, U+3091-3093, U+3099-309a, U+309d-309e, U+30a1-30e1, U+30e3-30ed, U+30ef-30f0, U+30f2-30f4, U+30fb-30fe, U+ff0c, U+ff0e; } ================================================ FILE: public/fonts/LICENSE ================================================ This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL ----------------------------------------------------------- SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ----------------------------------------------------------- PREAMBLE The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. DEFINITIONS "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. "Reserved Font Name" refers to any names specified as such after the copyright statement(s). "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. TERMINATION This license becomes null and void if any of the above conditions are not met. DISCLAIMER THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. ================================================ FILE: public/fonts/fonts.css ================================================ /** Japanese (GenjyuuGothicX) */ @import url('./GenJyuuGothicX-Bold/GenJyuuGothicX-Bold.css'); @import url('./GenJyuuGothicX-P-Bold/GenJyuuGothicX-P-Bold.css'); @import url('./GenJyuuGothicX-P-Regular/GenJyuuGothicX-P-Regular.css'); @import url('./GenJyuuGothicX-Regular/GenJyuuGothicX-Regular.css'); /** Korean (Gothic A1) */ @import url('https://fonts.googleapis.com/css2?family=Gothic+A1:wght@400;700&display=swap'); /** Simplified Chinese (Noto Sans SC) */ @import url('https://fonts.googleapis.cn/css2?family=Noto+Sans+SC:wght@400;700&display=swap'); /** Traditional Chinese (Noto Sans TC) */ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;700&display=swap'); /** Thai (Kodchasan) */ @import url('https://fonts.googleapis.com/css2?family=Kodchasan:ital,wght@0,400;0,700;1,400;1,700&display=swap'); :root { font-family: Nunito, var(--mi-localized-font, ''), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } html[lang='ja-JP'], html[lang='ja-KS'], ._i18n[lang='ja'], ._i18n[lang='ja-JP'], ._i18n[lang='ja-KS'] { --mi-localized-font: 'Hiragino Maru Gothic Pro', 'GenJyuuGothicX'; --mi-localized-font-p: 'Hiragino Maru Gothic Pro', 'GenJyuuGothicXP'; } html[lang='ko-KR'], ._i18n[lang='ko'], ._i18n[lang='ko-KR'] { --mi-localized-font: 'Gothic A1'; } html[lang='zh-CN'], ._i18n[lang='cn'], ._i18n[lang='zh-CN'] { --mi-localized-font: 'Noto Sans SC'; } html[lang='zh-TW'], ._i18n[lang='tw'], ._i18n[lang='zh-TW'] { --mi-localized-font: 'Noto Sans TC'; } html[lang='th-TH'], ._i18n[lang='th'], ._i18n[lang='th-TH'] { --mi-localized-font: 'Kodchasan'; } ================================================ FILE: public/img/docs/fukidashi/README.md ================================================ ## 吹き出し用キャラ素材について - 全員**左を向いている画像**にして入れてください - **webpで**入れてください ================================================ FILE: public/img/sponsors/LICENSE ================================================ LICENSE ------- All the files contained in this directory (hereinafter refered as "The Assets") are used by Misskey Project under explicit license from respective copyright holders. The Assets may not be redistributed, modified, or reused in any way without explicit permission from Misskey Project and/or the copyright holders. The user is expressly prohibited from distributing, sublicensing, selling, reselling, or transferring The Assets. Any form of modification or tampering with The Assets is strictly prohibited. IN NO EVENT SHALL MISSKEY PROJECT BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING BUT NOT LIMITED TO DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES, ARISING OUT OF THE USE, COPYING, PUBLISHING, OR MODIFICATION OF THE ASSETS. NO WARRANTIES OF ANY KIND ARE OFFERED FOR THE ASSETS. THEY ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. ================================================ FILE: public/img/uwu/LICENSE ================================================ The logo and derivative works contained in this folder are copyrighted by SAWARATSUKI and used by Misskey Project under license from SAWARATSUKI. The assets in this folder are exempt from CC BY 4.0 as well as AGPLv3. Please note that any use outside of the intended use may violate the copyright. ================================================ FILE: scripts/changelog-auto-updater/package.json ================================================ { "name": "misskey-hub-changelog-auto-updater", "type": "module", "private": true, "description": "", "scripts": { "start": "vite-node src/index.ts" }, "devDependencies": { "@types/node": "^22.9.1", "ts-node": "^10.9.2", "typescript": "^5.6.3", "vite": "^5.4.11", "vite-node": "^2.1.5" } } ================================================ FILE: scripts/changelog-auto-updater/src/index.ts ================================================ import { promises as fsp } from 'node:fs'; import path from 'path'; function parseChangelog(text: string) { const lines = text.split('\n'); const latestVersionIndex = lines.findIndex(line => line.startsWith('## ')); if (latestVersionIndex === -1) { throw new Error('Failed to find latest version'); } const latestVersion = lines[latestVersionIndex].replace('## ', '').replaceAll('\r', ''); // 次の ## までを取得 let latestChangesLine = lines.slice(latestVersionIndex + 1); const nextVersionIndex = latestChangesLine.findIndex(line => line.startsWith('## ')); if (nextVersionIndex !== -1) { latestChangesLine = latestChangesLine.slice(0, nextVersionIndex); } let contentEncountered = false; latestChangesLine = latestChangesLine.filter(line => { if (line.trim() === '') { return contentEncountered; // はじめの空行は無視(文字が入り出してからは空行を含むように) } else if (!contentEncountered) { contentEncountered = true; } return true; }).map(line => line.replaceAll('\r', '')); const prefixLine = lines.slice(0, latestVersionIndex).map(line => line.replaceAll('\r', '')); return { latestVersion, latestChanges: latestChangesLine.join('\n'), prefix: prefixLine.join('\n'), rest: lines.slice(latestVersionIndex).join('\n'), }; } async function getGhChangelog() { const response = await fetch('https://raw.githubusercontent.com/misskey-dev/misskey/master/CHANGELOG.md'); if (!response.ok) { throw new Error('Failed to fetch changelog'); } const text = await response.text(); return parseChangelog(text); } async function main() { const releaseDate = process.env.RELEASE_DATE; const version = process.env.VERSION; if (releaseDate && !releaseDate.match(/^\d{4}-\d{2}-\d{2}$/)) { throw new Error('Invalid date format. Specify the date in the format of "YYYY-MM-DD"'); } const ghChangelog = await getGhChangelog(); const docsPath = path.resolve(import.meta.dirname, '../../../content/ja/docs/5.releases.md'); const localText = await fsp.readFile(docsPath, 'utf-8'); const localChangelog = parseChangelog(localText); if (version && ghChangelog.latestVersion !== version) { throw new Error(`Latest version is ${ghChangelog.latestVersion}, but specified version is ${version}`); } if (ghChangelog.latestVersion === localChangelog.latestVersion) { console.log('No updates'); return; } console.log('Updating release notes...'); const now = releaseDate ? new Date(`${releaseDate}T00:00:00`) : new Date(); // リリースノート更新 const releaseDateForReleaseNotes = `${now.getFullYear()}/${(now.getMonth() + 1).toString().padStart(2, '0')}/${(now.getDate()).toString().padStart(2, '0')}`; const newChangelog = `${localChangelog.prefix}\n## ${ghChangelog.latestVersion}\nリリース日: ${releaseDateForReleaseNotes}\n\n${ghChangelog.latestChanges}\n\n${localChangelog.rest}`; await fsp.writeFile(docsPath, newChangelog); console.log('Release notes updated'); // リリースのお知らせを追加 const releaseDateForBlogPath = `${now.getFullYear()}-${(now.getMonth() + 1).toString().padStart(2, '0')}-${(now.getDate()).toString().padStart(2, '0')}`; const releaseDateForBlogEntry = `${now.getFullYear()}年${(now.getMonth() + 1)}月${now.getDate()}日`; const postsPath = path.resolve(import.meta.dirname, `../../../content/blog/${releaseDateForBlogPath}-release.md`); const postTemplate = `--- description: Misskey v${ghChangelog.latestVersion} がリリースされました! date: ${releaseDateForBlogPath} --- # NEW RELEASE: v${ghChangelog.latestVersion} Misskey Projectは${releaseDateForBlogEntry}、Misskey v${ghChangelog.latestVersion} をリリースしました! 詳しくは[リリースノート](/docs/releases/)をご覧ください。 開発に貢献してくださった方々、ベータ版をテストしてくださった方々、いつも支援してくださっている方々に感謝を申し上げます。 Misskeyは皆様の支援のおかげで継続した開発が行えています。Misskeyを気に入っていただけたらぜひ[プロジェクトに支援](/docs/donate/)をお願いします! `; await fsp.writeFile(postsPath, postTemplate); console.log('Blog post added'); // トップページのお知らせを更新 const appConfigPath = path.resolve(import.meta.dirname, '../../../app.config.ts'); await fsp.writeFile(appConfigPath, `export default defineAppConfig({ notice: { title: { ja: 'v${ghChangelog.latestVersion} をリリースしました!', en: 'v${ghChangelog.latestVersion} is out now!', }, to: "/docs/releases/", }, }); `); console.log('App config updated'); console.log('Done'); } main().catch(e => { console.error(e); process.exit(1); }); ================================================ FILE: scripts/changelog-auto-updater/tsconfig.json ================================================ { "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { "target": "ES2022", "module": "nodenext", "moduleResolution": "nodenext", "declaration": true, "declarationMap": true, "sourceMap": true, "removeComments": true, "strict": true, "strictFunctionTypes": true, "strictNullChecks": true, "experimentalDecorators": true, "noImplicitReturns": true, "esModuleInterop": true, "typeRoots": [ "./node_modules/@types" ], "lib": [ "esnext" ] }, "include": [ "src/**/*" ], "exclude": [ "node_modules", "test/**/*" ] } ================================================ FILE: scripts/changelog-auto-updater/vite.config.ts ================================================ import { defineConfig } from 'vite'; const config = defineConfig({}); export default config; ================================================ FILE: scripts/fetch-crowdin.ts ================================================ import { withQuery } from "ufo"; import { localesConst, type LocaleCodes } from "../assets/data/locales"; import type { PartialRecord } from "../types/others"; import { writeFileSync } from "fs"; import path from "path"; type CrowdinTargetLanguages = { id: string; name: string; editorCode: string; twoLettersCode: string; threeLettersCode: string; locale: string; androidCode: string; osxCode: string; osxLocale: string; pluralCategoryNames: string[]; pluralRules: string; pluralExamples: string[]; textDirection: string; dialectOf: string; }; type CrowdinProjectMember = { id: number; username: string; fullName: string; role: string; permissions: Record; roles: { name: string; permissions: Record }; avatarUrl: string; joinedAt: string; timezone: string; }; function fallback(sourceFilePath: string, tsOut: string[]) { tsOut.push('export const hubI18nMembers: PartialRecord = {};'); writeFileSync(sourceFilePath, tsOut.join('\n')); } //@ts-ignore export async function fetchCrowdinMembers() { const sourceFilePath = path.resolve(__dirname, '../assets/data/i18n-members.ts'); const tsOut = [ '/** This file is auto-generated */', 'import type { LocaleCodes } from \'@/assets/data/locales\';', 'import type { PartialRecord } from \'@/types/others\';', 'import type { MiHubMember } from \'./team-members\';', ]; if (!process.env.CROWDIN_INTG_API) { fallback(sourceFilePath, tsOut); return; } try { const res = await fetch('https://api.crowdin.com/api/v2/projects/628502', { headers: { 'Authorization': `Bearer ${process.env.CROWDIN_INTG_API}`, }, }); const projectRes = await res.json(); const out: PartialRecord = {}; for (let i = 0; i < projectRes.data.targetLanguages.length; i++) { const lang = projectRes.data.targetLanguages[i] as CrowdinTargetLanguages; const correspondLocaleObject = localesConst.find((v) => v.language === lang.locale); if (correspondLocaleObject !== undefined) { try { const res = await fetch(withQuery('https://api.crowdin.com/api/v2/projects/628502/members', { role: 'translator', languageId: lang.id, limit: 24, }), { headers: { 'Authorization': `Bearer ${process.env.CROWDIN_INTG_API}`, }, }); const membersRes = await res.json(); out[correspondLocaleObject.code] = (membersRes.data as { data: CrowdinProjectMember }[]).map((v) => ({ id: 'crowdin', username: v.data.username, name: v.data.fullName ? v.data.fullName : undefined, avatar: v.data.avatarUrl ? v.data.avatarUrl : undefined, })); } catch (error) { fallback(sourceFilePath, tsOut); return; } } } tsOut.push(`export const hubI18nMembers: PartialRecord = ${JSON.stringify(out)};`); writeFileSync(sourceFilePath, tsOut.join('\n')); console.log('Crowdin (Misskey Hub) 貢献者の取得完了'); } catch (error) { fallback(sourceFilePath, tsOut); return; } } ================================================ FILE: scripts/gen-locales.ts ================================================ import { promises as fsp, existsSync } from 'fs'; import * as path from 'path'; import * as yaml from 'js-yaml'; export async function genLocalesJson() { const sourceDirectory = path.resolve(__dirname, '../locales/'); const destinationDirectory = path.resolve(__dirname, '../locales_dist/'); // ディレクトリ内のすべてのファイルを取得 const files = await fsp.readdir(sourceDirectory); // 出力ディレクトリが存在しない場合は作成 if (!existsSync(destinationDirectory)) { await fsp.mkdir(destinationDirectory); } // 各ファイルを処理 files.forEach(async (file) => { const fileMeta = path.parse(file); if (!['.yml', '.yaml'].includes(fileMeta.ext)) return; const sourceFilePath = path.join(sourceDirectory, file); const destinationFilePath = path.join(destinationDirectory, `${fileMeta.name}.json`); try { // YAMLファイルを読み込み const yamlContent = await fsp.readFile(sourceFilePath, 'utf-8'); // YAMLをJSONに変換 const jsonContent = yaml.load(yamlContent); // JSONをファイルに書き込み await fsp.writeFile(destinationFilePath, jsonContent ? JSON.stringify(jsonContent) : '{}'); console.log(`Converted ${file} to ${fileMeta.name}.json`); } catch (error) { console.error(`Error processing ${file}`, error); } }); console.log('Conversion complete.'); } ================================================ FILE: scripts/gen-old-hub-redirects.ts ================================================ import { generateOldHubRedirects } from './get-old-hub-redirects'; await generateOldHubRedirects(); ================================================ FILE: scripts/gen-spa-loading-template.ts ================================================ import { promises as fsp } from 'fs'; import { localesConst } from './../assets/data/locales'; export async function genSpaLoadingTemplate() { const base = await fsp.readFile('app/spa-loading-template-base.html', 'utf-8'); const script = ``; await fsp.writeFile('app/spa-loading-template.html', base.replace('', script)); } ================================================ FILE: scripts/get-old-hub-redirects.ts ================================================ import { redirects } from './../assets/data/old-hub-redirects'; import { localesConst, localePathRegex } from './../assets/data/locales'; import type { LocaleCodes } from './../assets/data/locales'; import type { PartialRecord } from './../types/others'; import type { NuxtConfig } from 'nuxt/schema'; import { joinURL } from 'ufo'; import { readFileSync, writeFileSync, promises as fsp } from 'fs'; import { mkdir, access } from 'fs/promises'; import { constants } from 'fs'; type VercelRouteSource = { src: string; dest?: string; headers?: Record; methods?: string[]; continue?: boolean; caseSensitive?: boolean; check?: boolean; status?: number; has?: Array; missing?: Array; locale?: { redirect?: Record; cookie?: string; }; middlewareRawSrc?: string[]; middlewarePath?: string; }; // 旧Hub時代の各言語のプレフィックス const hubLocales: PartialRecord = { ja: '/', en: '/en', id: '/id', ko: '/ko', it: '/it', pl: '/pl', fr: '/fr', cn: '/zh-CN', tw: '/zh-TW', }; export function getOldHubRedirects(mode: 'nitro'): NuxtConfig['routeRules'] export function getOldHubRedirects(mode: 'nitroFs'): NuxtConfig['routeRules'] export function getOldHubRedirects(mode: 'vercel'): VercelRouteSource[] export function getOldHubRedirects(mode: 'nitro' | 'nitroFs' | 'vercel' = 'nitro'): NuxtConfig['routeRules'] | VercelRouteSource[] { if (mode === 'vercel') { const out: VercelRouteSource[] = []; redirects.forEach((route) => { if (route[0].startsWith('/ns')) return; let destination = route[1]; if (!localePathRegex.test(destination)) { destination = joinURL(`$1/`, destination); } out.push({ src: joinURL(`(${Object.values(hubLocales).map((v) => v === '/' ? '' : v).join('|')})/`, route[0]).replace(/(? hubLocales.hasOwnProperty(v.code)).forEach((locale) => { redirects.forEach((route) => { if (route[0].startsWith('/ns') || ['/', '/index.html'].includes(route[0])) return; let destination = route[1]; if (!localePathRegex.test(destination)) { destination = joinURL(`/${locale.code}`, destination); } if (process.env.CF_PAGES === '1' && route[0].endsWith('.md')) return; out[joinURL(hubLocales[locale.code] ?? '/', route[0])] = { redirect: { to: destination, statusCode: 301, }, }; }); }); } if (process.env.CF_PAGES === '1') { const staticRedirects = readFileSync('./public/_redirects_template', 'utf-8'); const additionalRedirects = redirects.filter((route) => route[0].endsWith('.md')).map((route) => { return `${route[0]} ${route[1]} 301`; }); writeFileSync('./public/_redirects', staticRedirects + '\n' + additionalRedirects.join('\n')); } return { ...out, // See: https://github.com/unjs/nitro/pull/1976 '/zh-CN/**': { redirect: '/cn/**' }, '/zh-TW/**': { redirect: '/tw/**' }, '/zh-cn/**': { redirect: '/cn/**' }, '/zh-tw/**': { redirect: '/tw/**' }, } } } export async function generateOldHubRedirects() { const out = new Map(); localesConst.filter((v) => hubLocales.hasOwnProperty(v.code)).forEach((locale) => { redirects.forEach((route) => { if (route[0].startsWith('/ns') || ['/', '/index.html'].includes(route[0])) return; let destination = route[1]; if (!localePathRegex.test(destination)) { destination = joinURL(`/${locale.code}`, destination); } if (route[0].endsWith('.md')) return; out.set(joinURL(hubLocales[locale.code] ?? '/', route[0]), destination); }); }); console.log('Old Hub redirects:', out); function getRedirectHtml(destination: string) { return ` `; } const redirectsDir = './.output/public'; for (const [src, dest] of out.entries()) { let srcPath = src; if (srcPath.endsWith('/')) { srcPath += 'index.html'; } else if (srcPath.endsWith('.md')) { srcPath = srcPath.slice(0, -3) + '.html'; } const filePath = redirectsDir + srcPath; try { // ディレクトリを作成(存在しない場合のみ) await mkdir(filePath.substring(0, filePath.lastIndexOf('/')), { recursive: true }); // ファイルが既に存在するか確認 await access(filePath, constants.F_OK); console.log(`File already exists, skipping: ${filePath}`); } catch { // ファイルが存在しない場合は作成 await fsp.writeFile(filePath, getRedirectHtml(dest)); console.log(`File created: ${filePath}`); } } } ================================================ FILE: scripts/get-static-endpoints.ts ================================================ import fs from 'fs'; import { resolve, dirname } from 'path'; import { fileURLToPath } from 'url'; export function getStaticEndpoints(): string[] { const __dirname = dirname(fileURLToPath(import.meta.url)) const dir = resolve(`${__dirname}/../pages`); const files = getFiles(dir); const filtered = files .filter((file) => !file.includes('slug')) // exclude dynamic content .filter((file) => !/-ignore\.vue$/.test(file)) // ignore .map((file) => file.split('pages')[1]) .map((file) => file.replaceAll('\\', '/')) .map((file) => { if (/(index)?(\.(server|client))?\.vue$/.test(file)) { const path = file.replace(/(index)?(\.(server|client))?\.vue$/, ''); return path.endsWith('/') ? path : path + '/'; } return file.split('.vue')[0] + '/'; }); return filtered; } /** * recursively get all files from /pages folder */ function getFiles(dir: string): string[] { const dirents = fs.readdirSync(dir, { withFileTypes: true }); const files = dirents.map((dirent) => { const res = resolve(dir, dirent.name); return dirent.isDirectory() ? getFiles(res) : res; }) return files.flat(); } ================================================ FILE: scripts/markdown-fixer/index.js ================================================ import { visit } from 'unist-util-visit'; export default function remarkAddSpaceFunction() { return (tree) => { visit(tree, 'text', (node, index, parent) => { if (parent && ['root', 'emphasis', 'strong', 'paragraph'].includes(parent.type)) { node.value = node.value.replace(/(?<=[\.\?\!])([A-Z(])/g, ' $1'); } }); }; } ================================================ FILE: scripts/markdown-fixer/package.json ================================================ { "name": "misskey-hub-markdown-fixer", "version": "0.0.0", "type": "module", "private": true, "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "unist-util-visit": "^4.1.0" } } ================================================ FILE: scripts/vercel-branch-deploy-config.sh ================================================ #!/bin/bash echo "VERCEL_GIT_COMMIT_REF: $VERCEL_GIT_COMMIT_REF" if [[ "$VERCEL_GIT_COMMIT_REF" == "l10n_master" ]] ; then # Don't build echo "🛑 - Build cancelled" exit 0; else # Proceed with the build echo "✅ - Build can proceed" exit 1; fi ================================================ FILE: server/plugins/appendComment.ts ================================================ export default defineNitroPlugin((nitroApp) => { nitroApp.hooks.hook('render:html', (html, { event }) => { html.head.unshift(`\n\n`); }); }); ================================================ FILE: server/plugins/i18nRedirector.ts ================================================ import { useRuntimeConfig } from '#imports'; import { withTrailingSlash } from 'ufo'; import type { LocaleObject } from '@nuxtjs/i18n'; export default defineNitroPlugin((nitroApp) => { nitroApp.hooks.hook('render:html', (html, { event }) => { if (event.path.includes("_nuxt") || event.path.match(/\d{3}\.html/) || event.path.match(/^\/ns/)) { return; } const runtimeConfig = useRuntimeConfig(); const locales = runtimeConfig.public.locales as LocaleObject[]; if (!event.path.match(new RegExp(`^/(${locales.map((l) => l.code).join('|')})/`))) { const links = locales.map((l) => { const url = withTrailingSlash(`/${l.code}${event.path.replace(/\.html$/g, '/')}`); return `${l.name}`; }); html.htmlAttrs = []; const remainingList: string[] = []; html.head.forEach((v: string) => { remainingList.push(...(v.match(/)/gm) ?? [])); remainingList.push(...(v.match(/]+>/gm) ?? [])); remainingList.push(...(v.match(/]+>/gm) ?? [])); remainingList.push(...(v.match(/\n'); html.body = [ '\n\n', `\n`, ]; html.bodyAppend = []; html.bodyPrepend = []; } }); }); ================================================ FILE: server/tsconfig.json ================================================ { "extends": "../.nuxt/tsconfig.server.json" } ================================================ FILE: tsconfig.json ================================================ { // https://nuxt.com/docs/guide/concepts/typescript "extends": "./.nuxt/tsconfig.json", "exclude": [ "./scripts/changelog-auto-updater/**/*" ], } ================================================ FILE: types/content.ts ================================================ // Misskey Docs Frontmatter Types import type { ParsedContent, MarkdownParsedContent, MarkdownRoot } from '@nuxt/content'; /** * Docs Frontmatter の型定義 * * `/content//docs/` のフロントマターはこの形式で入力してください */ export interface MiDocsParsedContentMd extends MarkdownParsedContent { _TYPE_: undefined; /** もくじの見出しをさかのぼる限度 */ maxTocDepth?: number; /** 前へ・次へボタンの階層考慮を無視 */ ignoreDirBasedNav?: boolean; }; /** * ステップバイステップガイドの型定義 */ export interface MiDocsParsedContentSteppedGuide extends ParsedContent { _TYPE_: 'STEPPED_GUIDE'; guides: { _AUTOSELECT_TYPE_?: 'OS_ANDROID' | 'OS_IOS' | 'OS_MAC' | 'OS_WINDOWS' | 'HARD_SMARTPHONE' | 'HARD_PC'; _LAYOUT_TYPE_?: 'IMAGE_PORTRAIT_FIXED'; title: string; description?: string | MarkdownRoot; steps: { title: string; description: string | MarkdownRoot; image?: string; }[]; }[]; }; export type MiDocsParsedContent = MiDocsParsedContentMd | MiDocsParsedContentSteppedGuide; /** * Blog Frontmatter の型定義 * * `/content/blog/` のフロントマターはこの形式で入力してください */ export interface MiBlogParsedContent extends MarkdownParsedContent { /** サムネイル画像のURL・絶対パス */ thumbnail?: string; } /** * お問い合わせ用ドキュメントの Frontmatter の型定義 */ export interface MiContactFaqParsedContent extends MarkdownParsedContent { question: string; }; /** * Docs API の型定義 */ ================================================ FILE: types/instances-info.ts ================================================ import type { entities as MisskeyEntities } from 'misskey-js'; /** 各インスタンスの情報 */ export type InstanceItem = { /** Hostname (e.g. `misskey.io`) */ url: string; /** Name (e.g. `すしすきー`) */ name: string; /** Language the API author aqz set manually (e.g. `["ja"]`, `["zh"]`) */ langs: string[], /** `meta.description` or the the API author aqz set manually */ description: string | null; /** `true` only */ isAlive: true, /** The server Value calculated from the version, etc. */ value: number, /** Banner existance */ banner: boolean; /** Background Image existance */ background: boolean; /** Icon Image existance */ icon: boolean; /** nodeinfo */ nodeinfo: Record | null, /** result of api/meta */ meta: Partial | null, /** Number of Notes per Day (15-day average) */ npd15: number, /** Number of Daily Read Users (15-day average) */ dru15?: number, /** Yesterday's Daily Read Users */ druYesterday?: number, /** Stats (deprecated) */ stats?: MisskeyEntities.StatsResponse, // deprecated (result of api/stats) }; /** JSON Object Returned from `joinmisskey/api`. */ export type InstanceInfo = { /** The date instances.json was published at. */ date: string; /** Statistics */ stats: { /** Total notes */ notesCount: number; /** Total Users */ usersCount: number; /** Average of notes per day in the last 15 days */ npd15: number; /** Average of daily read users in the last 15 days */ dru15?: number; /** Yesterday's daily read users */ druYesterday?: number; /** Total MAUs (deprecated) */ mau?: number; /** Servers counter */ instancesCount: number; }, /** Language List */ langs: string[], /** Instance List */ instancesInfos: InstanceItem[]; } export type InstancesStatsObj = { notesCount?: number; usersCount?: number; instancesCount?: number; }; ================================================ FILE: types/misc.d.ts ================================================ import type { LocaleCodes } from './../nuxt.config'; import type { ComputedRef } from 'vue-demi'; import type { LocaleObject } from '@nuxtjs/i18n'; import { FunctionalComponent, SVGAttributes } from '#app/compat/capi'; export { }; declare module '*.svg' { const src: FunctionalComponent; export default src; } declare module 'nuxt/schema' { interface CustomAppConfig { /** お知らせ */ notice?: { /** * お知らせの文言(言語ごとに羅列) * * ```js * defineAppConfig({ * notice: { * title: { * ja: '〇〇をリリースしました!', * en: 'We\'ve released 〇〇!', * ... * }, * ... * } * }); * ``` * **/ title: { ja: string; } & Partial>; /** * リンク先 * (内部パス・外部パスどちらでも指定可能) * * 内部リンクの場合は、**先頭の言語ディレクトリ(`/ja/`など)を除いて記入** * (例: `/ja/docs/releases/` → `/docs/releases/`) **/ to: string; } } } declare module 'vue-i18n' { interface ComposerCustomProperties { // 厳格に定義し直す locales: ComputedRef } } ================================================ FILE: types/others.ts ================================================ export type PartialRecord = { [P in K]?: T; }; ================================================ FILE: types/router.d.ts ================================================ import 'vue-router'; import type { Thing } from 'schema-dts'; export {}; declare module 'vue-router' { interface RouteMeta { description?: string; title?: string; graph?: Thing[]; thumbnail?: string; scrollButton?: false | { hideFrom?: number; customPosition?: { x?: string; y?: string; }; customClass?: string; }; /** @private */ __isDocsIndexPage?: boolean; } } ================================================ FILE: uno.config.ts ================================================ import { defineConfig, presetWind3, transformerDirectives } from 'unocss'; export default defineConfig({ presets: [ presetWind3(), ], transformers: [ transformerDirectives(), ], theme: { colors: { 'accent': { '50': '#fcffe5', '100': '#f6ffc7', '200': '#ecff95', '300': '#dcfe58', '400': '#c9f526', '500': '#aadc06', '600': '#86b300', '700': '#638506', '800': '#4f690b', '900': '#42580f', '950': '#223201', }, }, }, extendTheme: (theme) => { theme.breakpoints = { ...(theme.breakpoints ?? {}), xs: '475px', '3xl': '1970px', }; theme.fontFamily = { sans: ['Nunito', 'var(--mi-localized-font, \'\')', theme.fontFamily?.sans ?? 'sans-serif'].join(','), title: ['Nunito', 'var(--mi-localized-font, \'\')', theme.fontFamily?.sans ?? 'sans-serif'].join(','), 'content-sans': ['Nunito', 'var(--mi-localized-font-p, \'\')', 'var(--mi-localized-font, \'\')', theme.fontFamily?.sans ?? 'sans-serif'].join(','), }; }, }); ================================================ FILE: vercel.json ================================================ { "trailingSlash": true }