~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/pds.js

An atproto PDS in JavaScript, for Cloudflare Workers and Node

0
0
main
58 lines · 1.8 KB Raw History
name = "atproto-pds"
main = "packages/cloudflare/src/index.js"
compatibility_date = "2024-09-23"
compatibility_flags = ["nodejs_compat"]

[[durable_objects.bindings]]
name = "PDS"
class_name = "PDSDurableObject"

[[migrations]]
tag = "v1"
new_sqlite_classes = [ "PersonalDataServer" ]

[[migrations]]
tag = "v2"
renamed_classes = [ { from = "PersonalDataServer", to = "PDSDurableObject" } ]

[[r2_buckets]]
binding = "BLOBS"
bucket_name = "pds-blobs"

# Account verification mail. The From address defaults to no-reply@HOSTNAME;
# its domain must be onboarded for Email Sending:
#   npx wrangler email sending enable pds.example.com
# To send as a different address, set PDS_EMAIL_FROM after onboarding its
# domain, in [vars] below. It is not a secret, just an address.
[[send_email]]
name = "EMAIL"

# Scheduled backups land here. A separate bucket from BLOBS on purpose: the
# retention policy deletes freely inside it. Remove to run without backups.
# [[r2_buckets]]
# binding = "BACKUPS"
# bucket_name = "pds-backups"
#
# Better: back up OUTSIDE Cloudflare, to any S3-compatible bucket (Bunny,
# Backblaze B2, MinIO, AWS). When set, this wins over the BACKUPS binding.
# Endpoint/bucket/region go in [vars]; the two keys are secrets:
#   wrangler secret put BACKUP_S3_ACCESS_KEY
#   wrangler secret put BACKUP_S3_SECRET_KEY
# [vars]
# BACKUP_S3_ENDPOINT = "https://ny.storage.bunnycdn.com"
# BACKUP_S3_BUCKET = "my-pds-backups"
# BACKUP_S3_REGION = "us-east-1"

[observability]
enabled = true

[observability.logs]
invocation_logs = true
head_sampling_rate = 1

# Permissioned data (proposal 0016), experimental. Remove to disable; with it
# off the space endpoints do not exist. PLC_URL is left unset so identity
# resolution uses the production directory.
[vars]
PDS_ENABLE_SPACES = "true"
# PDS_EMAIL_FROM = "no-reply@example.com"