Our Personal Data Server from scratch!
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 546 lines 15 kB view raw
1[server] 2# Public hostname of the PDS (e.g. `pds.example.com`). 3# 4# Can also be specified via environment variable `PDS_HOSTNAME`. 5# 6# Required! This value must be specified. 7#hostname = 8 9# Address to bind the HTTP server to. 10# 11# Can also be specified via environment variable `SERVER_HOST`. 12# 13# Default value: "127.0.0.1" 14#host = "127.0.0.1" 15 16# Port to bind the HTTP server to. 17# 18# Can also be specified via environment variable `SERVER_PORT`. 19# 20# Default value: 3000 21#port = 3000 22 23# List of domains for user handles. 24# Defaults to the PDS hostname when not set. 25# 26# Can also be specified via environment variable `PDS_USER_HANDLE_DOMAINS`. 27#user_handle_domains = 28 29# List of domains available for user registration. 30# Defaults to the PDS hostname when not set. 31# 32# Can also be specified via environment variable `AVAILABLE_USER_DOMAINS`. 33#available_user_domains = 34 35# Enable PDS-hosted did:web identities. Hosting did:web requires a 36# long-term commitment to serve DID documents; opt-in only. 37# 38# Can also be specified via environment variable `ENABLE_PDS_HOSTED_DID_WEB`. 39# 40# Default value: false 41#enable_pds_hosted_did_web = false 42 43# When set to true, skip age-assurance birthday prompt for all accounts. 44# 45# Can also be specified via environment variable `PDS_AGE_ASSURANCE_OVERRIDE`. 46# 47# Default value: false 48#age_assurance_override = false 49 50# Require an invite code for new account registration. 51# 52# Can also be specified via environment variable `INVITE_CODE_REQUIRED`. 53# 54# Default value: true 55#invite_code_required = true 56 57# Allow HTTP (non-TLS) proxy requests. Only useful during development. 58# 59# Can also be specified via environment variable `ALLOW_HTTP_PROXY`. 60# 61# Default value: false 62#allow_http_proxy = false 63 64# Disable all rate limiting. Should only be used in testing. 65# 66# Can also be specified via environment variable `DISABLE_RATE_LIMITING`. 67# 68# Default value: false 69#disable_rate_limiting = false 70 71# List of additional banned words for handle validation. 72# 73# Can also be specified via environment variable `PDS_BANNED_WORDS`. 74#banned_words = 75 76# URL to a privacy policy page. 77# 78# Can also be specified via environment variable `PRIVACY_POLICY_URL`. 79#privacy_policy_url = 80 81# URL to terms of service page. 82# 83# Can also be specified via environment variable `TERMS_OF_SERVICE_URL`. 84#terms_of_service_url = 85 86# Operator contact email address. 87# 88# Can also be specified via environment variable `CONTACT_EMAIL`. 89#contact_email = 90 91# Maximum allowed blob size in bytes (default 10 GiB). 92# 93# Can also be specified via environment variable `MAX_BLOB_SIZE`. 94# 95# Default value: 10737418240 96#max_blob_size = 10737418240 97 98[database] 99# PostgreSQL connection URL. 100# 101# Can also be specified via environment variable `DATABASE_URL`. 102# 103# Required! This value must be specified. 104#url = 105 106# Maximum number of connections in the pool. 107# 108# Can also be specified via environment variable `DATABASE_MAX_CONNECTIONS`. 109# 110# Default value: 100 111#max_connections = 100 112 113# Minimum number of idle connections kept in the pool. 114# 115# Can also be specified via environment variable `DATABASE_MIN_CONNECTIONS`. 116# 117# Default value: 10 118#min_connections = 10 119 120# Timeout in seconds when acquiring a connection from the pool. 121# 122# Can also be specified via environment variable `DATABASE_ACQUIRE_TIMEOUT_SECS`. 123# 124# Default value: 10 125#acquire_timeout_secs = 10 126 127[secrets] 128# Secret used for signing JWTs. Must be at least 32 characters in 129# production. 130# 131# Can also be specified via environment variable `JWT_SECRET`. 132#jwt_secret = 133 134# Secret used for DPoP proof validation. Must be at least 32 characters 135# in production. 136# 137# Can also be specified via environment variable `DPOP_SECRET`. 138#dpop_secret = 139 140# Master key used for key-encryption and HKDF derivation. Must be at 141# least 32 characters in production. 142# 143# Can also be specified via environment variable `MASTER_KEY`. 144#master_key = 145 146# PLC rotation key (DID key). If not set, user-level keys are used. 147# 148# Can also be specified via environment variable `PLC_ROTATION_KEY`. 149#plc_rotation_key = 150 151# Allow insecure/test secrets. NEVER enable in production. 152# 153# Can also be specified via environment variable `TRANQUIL_PDS_ALLOW_INSECURE_SECRETS`. 154# 155# Default value: false 156#allow_insecure = false 157 158[storage] 159# Storage backend: `filesystem` or `s3`. 160# 161# Can also be specified via environment variable `BLOB_STORAGE_BACKEND`. 162# 163# Default value: "filesystem" 164#backend = "filesystem" 165 166# Path on disk for the filesystem blob backend. 167# 168# Can also be specified via environment variable `BLOB_STORAGE_PATH`. 169# 170# Default value: "/var/lib/tranquil-pds/blobs" 171#path = "/var/lib/tranquil-pds/blobs" 172 173# S3 bucket name for blob storage. 174# 175# Can also be specified via environment variable `S3_BUCKET`. 176#s3_bucket = 177 178# Custom S3 endpoint URL. 179# 180# Can also be specified via environment variable `S3_ENDPOINT`. 181#s3_endpoint = 182 183# Repository backend: `postgres` by default, or `tranquil-store`, our embedded db. 184# tranquil-store is EXPERIMENTAL!!!! RISK OF TOTAL DATA LOSS. 185# 186# Can also be specified via environment variable `REPO_BACKEND`. 187# 188# Default value: "postgres" 189#repo_backend = "postgres" 190 191[tranquil_store] 192# Directory for tranquil-store data: the metastore, eventlog, and blockstore. 193# 194# Can also be specified via environment variable `TRANQUIL_STORE_DATA_DIR`. 195# 196# Default value: "/var/lib/tranquil-pds/store" 197#data_dir = "/var/lib/tranquil-pds/store" 198 199# Fjall block cache size in megabytes. Defaults to 20% of system RAM when unset. 200# 201# Can also be specified via environment variable `TRANQUIL_STORE_MEMORY_BUDGET_MB`. 202#memory_budget_mb = 203 204# Number of handler threads. Defaults to available_parallelism / 2. 205# 206# Can also be specified via environment variable `TRANQUIL_STORE_HANDLER_THREADS`. 207#handler_threads = 208 209# Maximum total bytes of pending (unsynced) eventlog payloads. Appenders block 210# once this budget is exhausted until in-flight events drain via fsync. Set to 211# 0 to disable backpressure. Default: 1 GiB. 212# 213# Can also be specified via environment variable 214# `TRANQUIL_STORE_EVENTLOG_PENDING_BYTES_BUDGET`. 215# 216# Default value: 1073741824 217#eventlog_pending_bytes_budget = 1073741824 218 219# Maximum size of an individual eventlog payload in bytes. Single events 220# larger than this are rejected at append time. Default: 256 MiB. 221# 222# Can also be specified via environment variable 223# `TRANQUIL_STORE_EVENTLOG_MAX_EVENT_PAYLOAD`. 224# 225# Default value: 268435456 226#eventlog_max_event_payload = 268435456 227 228[cache] 229# Cache backend: `ripple` by default, or `valkey`. 230# 231# Can also be specified via environment variable `CACHE_BACKEND`. 232# 233# Default value: "ripple" 234#backend = "ripple" 235 236# Valkey / Redis connection URL. Required when `backend = "valkey"`. 237# 238# Can also be specified via environment variable `VALKEY_URL`. 239#valkey_url = 240 241[cache.ripple] 242# Address to bind the Ripple gossip protocol listener. 243# 244# Can also be specified via environment variable `RIPPLE_BIND`. 245# 246# Default value: "0.0.0.0:0" 247#bind_addr = "0.0.0.0:0" 248 249# List of seed peer addresses. 250# 251# Can also be specified via environment variable `RIPPLE_PEERS`. 252#peers = 253 254# Unique machine identifier. Auto-derived from hostname when not set. 255# 256# Can also be specified via environment variable `RIPPLE_MACHINE_ID`. 257#machine_id = 258 259# Gossip protocol interval in milliseconds. 260# 261# Can also be specified via environment variable `RIPPLE_GOSSIP_INTERVAL_MS`. 262# 263# Default value: 200 264#gossip_interval_ms = 200 265 266# Maximum cache size in megabytes. 267# 268# Can also be specified via environment variable `RIPPLE_CACHE_MAX_MB`. 269# 270# Default value: 256 271#cache_max_mb = 256 272 273[plc] 274# Base URL of the PLC directory. 275# 276# Can also be specified via environment variable `PLC_DIRECTORY_URL`. 277# 278# Default value: "https://plc.directory" 279#directory_url = "https://plc.directory" 280 281# HTTP request timeout in seconds. 282# 283# Can also be specified via environment variable `PLC_TIMEOUT_SECS`. 284# 285# Default value: 10 286#timeout_secs = 10 287 288# TCP connect timeout in seconds. 289# 290# Can also be specified via environment variable `PLC_CONNECT_TIMEOUT_SECS`. 291# 292# Default value: 5 293#connect_timeout_secs = 5 294 295# Seconds to cache DID documents in memory. 296# 297# Can also be specified via environment variable `DID_CACHE_TTL_SECS`. 298# 299# Default value: 300 300#did_cache_ttl_secs = 300 301 302[firehose] 303# Size of the in-memory broadcast buffer for firehose events. 304# 305# Can also be specified via environment variable `FIREHOSE_BUFFER_SIZE`. 306# 307# Default value: 10000 308#buffer_size = 10000 309 310# How many hours of historical events to replay for cursor-based 311# firehose connections. 312# 313# Can also be specified via environment variable `FIREHOSE_BACKFILL_HOURS`. 314# 315# Default value: 72 316#backfill_hours = 72 317 318# Maximum number of lagged events before disconnecting a slow consumer. 319# 320# Can also be specified via environment variable `FIREHOSE_MAX_LAG`. 321# 322# Default value: 5000 323#max_lag = 5000 324 325# List of relay / crawler notification URLs. 326# 327# Can also be specified via environment variable `CRAWLERS`. 328#crawlers = 329 330[email] 331# Sender email address. When unset, email sending is disabled. 332# 333# Can also be specified via environment variable `MAIL_FROM_ADDRESS`. 334#from_address = 335 336# Display name used in the `From` header. 337# 338# Can also be specified via environment variable `MAIL_FROM_NAME`. 339# 340# Default value: "Tranquil PDS" 341#from_name = "Tranquil PDS" 342 343# Path to the `sendmail` binary. 344# 345# Can also be specified via environment variable `SENDMAIL_PATH`. 346# 347# Default value: "/usr/sbin/sendmail" 348#sendmail_path = "/usr/sbin/sendmail" 349 350[discord] 351# Discord bot token. When unset, Discord integration is disabled. 352# 353# Can also be specified via environment variable `DISCORD_BOT_TOKEN`. 354#bot_token = 355 356[telegram] 357# Telegram bot token. When unset, Telegram integration is disabled. 358# 359# Can also be specified via environment variable `TELEGRAM_BOT_TOKEN`. 360#bot_token = 361 362# Secret token for incoming webhook verification. 363# 364# Can also be specified via environment variable `TELEGRAM_WEBHOOK_SECRET`. 365#webhook_secret = 366 367[signal] 368# Protocol state is stored in postgres' signal_* tables. 369# Link a device via the admin API before enabling. 370# 371# Can also be specified via environment variable `SIGNAL_ENABLED`. 372#enabled = false 373 374[notifications] 375# Polling interval in milliseconds for the comms queue. 376# 377# Can also be specified via environment variable `NOTIFICATION_POLL_INTERVAL_MS`. 378# 379# Default value: 1000 380#poll_interval_ms = 1000 381 382# Number of notifications to process per batch. 383# 384# Can also be specified via environment variable `NOTIFICATION_BATCH_SIZE`. 385# 386# Default value: 100 387#batch_size = 100 388 389[sso] 390[sso.github] 391# Can also be specified via environment variable `SSO_GITHUB_ENABLED`. 392# Default value: false 393#enabled = false 394 395# Can also be specified via environment variable `SSO_GITHUB_CLIENT_ID`. 396#client_id = 397 398# Can also be specified via environment variable `SSO_GITHUB_CLIENT_SECRET`. 399#client_secret = 400 401# Can also be specified via environment variable `SSO_GITHUB_DISPLAY_NAME`. 402#display_name = 403 404[sso.discord] 405# Can also be specified via environment variable `SSO_DISCORD_ENABLED`. 406# Default value: false 407#enabled = false 408 409# Can also be specified via environment variable `SSO_DISCORD_CLIENT_ID`. 410#client_id = 411 412# Can also be specified via environment variable `SSO_DISCORD_CLIENT_SECRET`. 413#client_secret = 414 415# Can also be specified via environment variable `SSO_DISCORD_DISPLAY_NAME`. 416#display_name = 417 418[sso.google] 419# Can also be specified via environment variable `SSO_GOOGLE_ENABLED`. 420# Default value: false 421#enabled = false 422 423# Can also be specified via environment variable `SSO_GOOGLE_CLIENT_ID`. 424#client_id = 425 426# Can also be specified via environment variable `SSO_GOOGLE_CLIENT_SECRET`. 427#client_secret = 428 429# Can also be specified via environment variable `SSO_GOOGLE_DISPLAY_NAME`. 430#display_name = 431 432[sso.gitlab] 433# Can also be specified via environment variable `SSO_GITLAB_ENABLED`. 434# Default value: false 435#enabled = false 436 437# Can also be specified via environment variable `SSO_GITLAB_CLIENT_ID`. 438#client_id = 439 440# Can also be specified via environment variable `SSO_GITLAB_CLIENT_SECRET`. 441#client_secret = 442 443# Can also be specified via environment variable `SSO_GITLAB_ISSUER`. 444#issuer = 445 446# Can also be specified via environment variable `SSO_GITLAB_DISPLAY_NAME`. 447#display_name = 448 449[sso.oidc] 450# Can also be specified via environment variable `SSO_OIDC_ENABLED`. 451# Default value: false 452#enabled = false 453 454# Can also be specified via environment variable `SSO_OIDC_CLIENT_ID`. 455#client_id = 456 457# Can also be specified via environment variable `SSO_OIDC_CLIENT_SECRET`. 458#client_secret = 459 460# Can also be specified via environment variable `SSO_OIDC_ISSUER`. 461#issuer = 462 463# Can also be specified via environment variable `SSO_OIDC_DISPLAY_NAME`. 464#display_name = 465 466[sso.apple] 467# Can also be specified via environment variable `SSO_APPLE_ENABLED`. 468# Default value: false 469#enabled = false 470 471# Can also be specified via environment variable `SSO_APPLE_CLIENT_ID`. 472#client_id = 473 474# Can also be specified via environment variable `SSO_APPLE_TEAM_ID`. 475#team_id = 476 477# Can also be specified via environment variable `SSO_APPLE_KEY_ID`. 478#key_id = 479 480# Can also be specified via environment variable `SSO_APPLE_PRIVATE_KEY`. 481#private_key = 482 483[moderation] 484# External report-handling service URL. 485# 486# Can also be specified via environment variable `REPORT_SERVICE_URL`. 487#report_service_url = 488 489# DID of the external report-handling service. 490# 491# Can also be specified via environment variable `REPORT_SERVICE_DID`. 492#report_service_did = 493 494[import] 495# Whether the PDS accepts repo imports. 496# 497# Can also be specified via environment variable `ACCEPTING_REPO_IMPORTS`. 498# 499# Default value: true 500#accepting = true 501 502# Maximum allowed import archive size in bytes (default 1 GiB). 503# 504# Can also be specified via environment variable `MAX_IMPORT_SIZE`. 505# 506# Default value: 1073741824 507#max_size = 1073741824 508 509# Maximum number of blocks allowed in an import. 510# 511# Can also be specified via environment variable `MAX_IMPORT_BLOCKS`. 512# 513# Default value: 500000 514#max_blocks = 500000 515 516# Skip CAR verification during import. Only for development/debugging. 517# 518# Can also be specified via environment variable `SKIP_IMPORT_VERIFICATION`. 519# 520# Default value: false 521#skip_verification = false 522 523[scheduled] 524# Interval in seconds between scheduled delete checks. 525# 526# Can also be specified via environment variable `SCHEDULED_DELETE_CHECK_INTERVAL_SECS`. 527# 528# Default value: 3600 529#delete_check_interval_secs = 3600 530 531# Maximum age of events retained in the eventlog before pruning. 532# Per the atproto firehose spec, the relay backfill window only needs 533# to cover "hours or days". 534# 535# Can also be specified via environment variable `EVENT_RETENTION_MAX_AGE_SECS`. 536# 537# Default value: 604800 (7 days) 538#event_retention_max_age_secs = 604800 539 540# Interval in seconds between event retention prune passes. 541# Set to 0 to disable. 542# 543# Can also be specified via environment variable `EVENT_RETENTION_INTERVAL_SECS`. 544# 545# Default value: 3600 546#event_retention_interval_secs = 3600