nijiiroは、単一サーバーで完結する、シンプルなATProtocol PDSです。
Warning
このリポジトリは、個人の実験プロジェクトです。セキュリティ的な監査は受けていませんので、自己責任での利用をお願いします。
鍵ペアとパスワードを生成します。
deno task setup
REPO_SIGNING_KEY=<hex>
ADMIN_PASSWORD=<base64>
REPO_SIGNING_KEY_DID=did:key:z...また、対話型で Bluesky でのハンドルネームを設定します。
cp config.example.ts config.tsconfigを編集します。
did:web:localhost→did:web:<your-domain>(例:did:web:example.com)at://localhost.local→at://<your-handle>(例:at://example.com)publicKeyMultibase→ ステップ 1 で出力されたREPO_SIGNING_KEY_DIDの値 (did:key:プレフィックスを含む全体)serviceEndpoint→ このサーバーの公開 URL (例:https://pds.example.com)defaultPath→ レコードを保存するディレクトリのパス
const config: Config = {
defaultPath: "./records",
collections: {},
didDoc: {
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/multikey/v1",
"https://w3id.org/security/suites/secp256k1-2019/v1",
],
id: "did:web:<your-domain>",
alsoKnownAs: ["at://<your-handle>"],
verificationMethod: [
{
id: "did:web:<your-domain>#atproto",
type: "Multikey",
controller: "did:web:<your-domain>",
publicKeyMultibase: "<REPO_SIGNING_KEY_DID>",
},
],
service: [
{
id: "#atproto_pds",
type: "AtprotoPersonalDataServer",
serviceEndpoint: "<your-pds-url>",
},
],
},
};cp .env.example .env先ほど生成したシークレットを入れます。
REPO_DID=
REPO_HANDLE=
REPO_SIGNING_KEY=
ADMIN_PASSWORD=
PDS_URL=
PORT=レコードからMSTをビルドします。
deno task builddeno task startDIDドキュメントが配信されているかの確認
curl https://<your-domain>/.well-known/did.jsonBluesky のリレーにクロールをリクエストして AppView にインデックスされるようにします。
curl -X POST https://bsky.network/xrpc/com.atproto.sync.requestCrawl \
-H "Content-Type: application/json" \
-d '{"hostname": "<your-pds-hostname>"}'<your-pds-hostname> はスキームなしのホスト名です (例: pds.example.com)。