本文へ移動

v1.2.0 ​

2026-10-21リリース

部屋のサーバーに、運営する人のための管理画面を加えました。部屋や、置かれた画像と音声を見て、困った使いかたをする送信元やアカウントをBANできます。BANで追いつかないときは、すべての人について、部屋を作ることなどを止められます。1つの部屋に置ける量の上限と、置き場所の使用量の知らせも、入れられるようになりました。部屋のGMは、部屋に置いた画像と音声を1つずつ消せるようになり、部屋にいる人は、運営する人に通報できるようになりました。

管理画面 ​

部屋のサーバーにADMIN_DISCORD_IDSを入れると、/adminに管理画面ができます。入るときは、Discordでログインしたうえで、端末のパスキーで確かめます。使えるようにする手順と、画面ごとの使いかたは、管理画面とBANにあります。

  • 概要:いま部屋に入っている人の数と、24時間か7日のあいだに置いた画像と音声の件数と大きさ、回数の制限などを出します。目立つ送信元とアカウントも並べます。
  • 部屋:いまある部屋と、作った人、入っている人、置いてある画像と音声を見ます。部屋のGMでなくても、部屋を削除できます。作った人が出るのは、この版にしてから作った部屋だけです。
  • アップロード:すべての部屋の画像と音声を並べます。1件ずつ中身を見ることと、部屋から消すことができます。中身を見たことは、だれが見たかと一緒に記録に残ります(→ 置かれた画像と音声を見るとき)。
  • 通報:部屋にいる人からの通報を並べ、対応済みや却下の印を付けます(下の通報)。
  • 記録:ログイン、部屋を作った、画像と音声を置いた、回数の上限を超えた、などを7日・2000件まで残します。運営する人の操作は、別に90日・1000件まで残します。
  • BAN:BANの一覧と、BANするための欄です(下のBAN)。
  • アカウント:本人に頼まれたときに、DiscordのユーザーIDでアカウントを削除します。
  • 安全:緊急停止と、回数の上限を締めること(下の緊急停止と回数の上限)、パスキーの追加と削除、すべての運営する人をログアウトさせることです。
  • 設定:いま入っている設定を、読むだけの表で出します。秘密の値は出しません。

「アップロード」の「消して二度と置かせない」は、中身が同じもの(SHA-256が同じもの)を、見つかったすべての部屋から消し、どの部屋にも置けないようにします。読もうとすると451 blockedを返します。Cloudflare版では、データセンターのキャッシュに写しが残っていても、30秒ほどのうちに配らなくなります。権利侵害の申し立てに応えるときの手順は、権利侵害の申し立てに応えるにあります。

BAN ​

送信元のIPアドレス(とその範囲)か、Discordのアカウントを止めます。期間は、1時間、1日、7日、30日、解除するまでの5つから選びます。BANすると、すべてのインスタンスで、部屋に入る、部屋を作る、画像と音声を置く、ログイン、トークンの更新を止めます。BANに当たる人が部屋に入っていれば、その接続もその場で切ります。BANした送信元には403 bannedを返し、ログインはAxeの戻り先にlogin_error=bannedを付けて戻します。止まるものと止まらないものは、BANで止まるものとBANで止まらないものにあります。

緊急停止と回数の上限 ​

BANでは追いつかないときは、管理画面の「安全」から、すべての人について止めたり、回数の上限を厳しくしたりできます。

  • 緊急停止:部屋を作ること、画像と音声を置くこと、新しくログインすることのうち、選んだものを止めます。止めたものには503 pausedを返し、ログインはAxeの戻り先にlogin_error=pausedを付けて戻します。いま部屋で遊んでいる人は、そのまま続けられます(→ 緊急停止)。
  • 回数の上限を締める:送信元ごとの回数の上限を、一時的に、上限ごとに1/2・1/4・1/10へ厳しくします(→ 回数の上限を締める)。

部屋のGMが画像と音声を消す ​

部屋のGMは、部屋に置いた画像と音声を、部屋を残したまま1つずつ消せるようになりました(→ DELETE /v1/rooms/:roomKey/assets/:sha256)。これまでは、部屋が消えるときに一緒に消えるだけでした。消せるのは、いまGMとして部屋にいる人だけです。Axeから消すには、対応したAxeが要ります。

通報 ​

部屋にいる人(GM・PL・見学)が、部屋の画像か音声、または部屋そのものを、運営する人に通報できるようになりました(→ POST /v1/rooms/:roomKey/reports)。通報は、通報した人と一緒に90日・1000件まで残り、管理画面の「通報」に並びます。1人の通報で、ほかの人の通報が押し出されないよう、同じ人の通報は24時間に20件までです。Axeから通報できるのは、通報に対応したAxeだけです。

新しい設定項目 ​

どれも任意で、入れたときだけ働きます。くわしくは部屋のサーバーの設定項目にあります。

項目働き
ADMIN_DISCORD_IDS管理画面に入れる運営する人の、DiscordのユーザーID
ADMIN_PASSKEY_RESETすべての端末のパスキーを失くした運営する人が、パスキーを登録し直すあいだだけ入れる
ADMIN_WEBHOOK_URL回数の上限を超えた送信元、管理画面へのログイン、通報などを、DiscordのWebhookに知らせる
ADMIN_CONTACT_URLBANや緊急停止で断った人に、Axeが見せる問い合わせ先
ROOM_STORAGE_LIMIT_MB1つの部屋に置ける画像と音声の合計(MB)。超えるときは413 room-storage-fullで断る
ADMIN_STORAGE_ALERT_GB1日1回、置き場所の使用量を数え、この量(GB)を超えていたら知らせる

形の合わない値を入れると、設定の誤りとして、部屋のサーバーのすべてのリクエストに500 config-invalidを返します。Cloudflare版を自分のリポジトリから自動でデプロイしているときは、ADMIN_PASSKEY_RESETを除く5つを、GitHub EnvironmentのSecretにも入れられます。入れたものは、デプロイの前に形を確かめ、デプロイのたびにWorkerのシークレットとして入れ直します。

部屋のサーバーが新しく置くもの ​

部屋のサーバーは、次のものを置くようになりました。ADMIN_DISCORD_IDSを入れていなくても置きます。

  • 管理の記録:ログイン、部屋を作った、画像と音声を置いた、回数の上限を超えた、などの時刻と、送信元のIPアドレス、Discordのアカウントと表示名。7日・2000件まで残ります。
  • 部屋を作った人:DiscordのアカウントとIPアドレス。部屋が消えるまで残ります。
  • 部屋に入っている人:IPアドレスとDiscordのアカウント。部屋を抜けるまで残ります。
  • 通報:対象と理由、通報した人のIPアドレス・Discordのアカウント・役割。90日・1000件まで残ります。

一覧は残るものにあります。公開して運営しているときは、プライバシーポリシーにも書いてください(ひな形には書き足してあります)。

この版にするとき ​

  • 部屋のサーバー(Cloudflare版):BANと記録を置くDurable Object(MODERATION)と、1日1回の定期実行(Cron Trigger)は、デプロイで作られます。用意するものはありません。
  • 部屋のサーバー(Vercel版):用意するものはありません。BANと記録は、いま使っているRedisに置きます。
  • 管理画面を使うとき:ADMIN_DISCORD_IDSを入れ、DiscordのアプリのRedirectsに、末尾を/admin/login/callbackにしたURLを足します。置いたらすぐに管理画面を開き、自分のパスキーを登録してください(→ 使えるようにする)。
  • プライバシーポリシー:上の部屋のサーバーが新しく置くものを書き足します。
  • Axe:そのまま使えます。通報すること、部屋のGMが画像と音声を消すこと、緊急停止や二度と置かせないものを参加者に知らせることは、対応したAxeだけができます。
  • SkyWay版のトークン発行とPHP版:v1.1.2と同じです。置いている人がすることはありません。BANは、SkyWay版のトークン発行には効きません。

開発者向けのくわしい変更は、GitHub ReleasesとCHANGELOGを参照してください。

MITライセンスで公開しています