Repository navigation
Releases: Keychrom/Spica
Releases · Keychrom/Spica
Release list
v0.2.0 (Beta)
最初の 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 構成)。