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"