Skip to content

v0.2.0 (Beta)

Pre-release
Pre-release

Choose a tag to compare

@Keychrom Keychrom released this 16 Oct 01:33
· 36 commits to main since this release

最初の Beta リリースです。バージョンはルート / サーバー / クライアントで 0.2.0 に統一し、NodeInfo も 0.2.0 を報告します。

Spica とは

Node.js と SQLite だけで動く ActivityPub ノードです。追加のミドルウェアなしで起動でき、Misskey / Mastodon などの Fediverse と相互にフォロー・投稿・リアクションできます(PostgreSQL / Redis は任意で、規模を上げたいときだけ使います)。

主な内容

  • ActivityPub — ノート・返信・リノート・引用・リアクション・アンケート・CW。投稿の編集(連合先へ Update を配送し「編集済み」が付く)、アンケートの得票数の同期(Spica 同士でも合う。取り込みは多い方を採用して二重に数えない)、引っ越し(Move)、受信した Block の尊重、配送失敗の指数バックオフ再送。
  • タイムライン — ホーム(自分 + フォロー中)/ ローカル(サーバーの全員)/ 連合(届いた全部)/ タグ / リスト / アンテナ / チャンネル。SSE で即時配信し、見ていないタブの新着では通知音が鳴りません。
  • サードパーティ製クライアント — Misskey 互換 API(MiAuth ログイン、タイムライン、ノートの読み書きと編集、スレッド・メンション、リアクション、お気に入り、ピン留め、通知、フォロー / ミュート / ブロック、リスト、アンテナ、ドライブ、絵文字、WebSocket ストリーミング)。
  • 認証 — マスターキー(パスワードレス)/ メールアドレス+パスワード / パスキー(WebAuthn)/ 任意の 2 段階認証(TOTP)。
  • メディア — アップロード時にメタデータ(位置情報など)を除去して WebP へ変換、S3 / Cloudflare R2 / ローカル保存、ドライブ(容量管理・削除)、画像プロキシ、動画サムネイル(ffmpeg があるとき)。
  • 通知 — PWA / Web Push、種類別の ON/OFF、通知音(8 種から選択)。
  • モデレーション — 署名検証(strict)、IP 単位のレート制限、ワードフィルター、鍵アカウント、通報、ドメインブロック、任意の Authorized Fetch。
  • 運用 — db:maintenance(既定はドライラン)/ SQLite の世代バックアップ / PostgreSQL は pg_dump / ヘルスチェック / PROCESS_ROLE で役割分離 / Redis で複数プロセス。
  • 検査 — SQLite 57 スイート・PostgreSQL 39 スイート(bash scripts/run-suites.sh / run-suites-pg.sh)。

Beta について

仕様変更やデータの移行が起こることがあります。大切なデータはバックアップを取ってから使ってください(docs/UPGRADE.md)。規模を大きくすると不安定になる可能性があります(docs/SCALE.md)。DM(1対1のメッセージ)は既定でオフです(README の「DM について」)。

動作環境

Node.js v22.13.0 以上(v24 推奨)。node:sqlite を使うため v20 以前では動作しません。

セットアップは docs/SETUP.md から(SQLite・1 プロセスの通常構成 / PostgreSQL + Redis 構成)。