{
  "_readme": "LIVE Byfrost provisioning config, served at https://byfrost.xyz/portal.json — every distributed copy of the app fetches this on launch. Editing this file and deploying reconfigures every copy. A portal.json placed NEXT TO Byfrost.exe overrides this URL (handy for testing). Keys starting with _ are comments and ignored by the parser.",
  "version": 1,

  "branding": {
    "_comment": "What contributors see on the upload portal.",
    "title": "Byfrost",
    "subtitle": "Send your files. Big ones welcome.",
    "deadline": ""
  },

  "storage": {
    "_comment": "S3-compatible destination — Cloudflare R2, bucket byfrost-ingest, account 649aa5291d1e3760938b8e3dec0cc7f9. Cloudflare shows the S3 API as https://<account>.r2.cloudflarestorage.com/byfrost-ingest; the bucket is split out below because the SDK wants the account endpoint and the bucket separately.",

    "endpoint": "https://649aa5291d1e3760938b8e3dec0cc7f9.r2.cloudflarestorage.com",
    "_region_comment": "R2 always signs as 'auto' regardless of the bucket's location hint (this one is WNAM). Do not put a Cloudflare region code here.",
    "region": "auto",
    "bucket": "byfrost-ingest",

    "_key_comment": "PUBLIC FILE — anyone can read this. R2's token presets have no write-only option (see docs/r2-buckets.md), so the narrowest available scope is Object Read & Write on this one bucket. That token can also LIST and DOWNLOAD everything contributors upload. Accepted deliberately for small-scale testing; rotate it when the test ends, and do not reuse it anywhere else.",
    "accessKey": "9100b30d6fa0550050b4b1a0bb7d7427",
    "secretKey": "bd1916fb49ce57df1e6a2079932acd3acd644ebf86706d105d9c6932d1e78e4d",

    "_forcePathStyle_comment": "false = virtual-hosted addressing (bucket.account.r2.cloudflarestorage.com), which R2 supports and the AWS SDK does by default. If the dashboard's connection test fails with a DNS or TLS error, flip this to true to use the path-style URL Cloudflare displays.",
    "forcePathStyle": false,

    "_localDir_comment": "TESTING ONLY: set to a folder on YOUR machine (e.g. E:/ByfrostTest — forward slashes) and uploads land there instead of S3, overriding everything else. CLEAR THIS before deploying.",
    "localDir": "",

    "_serverUrl_comment": "FREE MODE: point at a machine running Byfrost with Host mode enabled (Dashboard -> Settings -> Host mode), e.g. http://203.0.113.7:8737 — every portal then uploads straight to that machine over HTTP. serverKey must match the host's access key. localDir must be empty or it overrides this.",
    "serverUrl": "",
    "serverKey": ""
  },

  "p2p": {
    "_comment": "Optional croc relay override for the private bridge.",
    "relayAddress": "",
    "relayPassword": ""
  }
}
