diff --git a/apps/render-farm/README.md b/apps/render-farm/README.md index 5b86cd9772..bfcd346445 100644 --- a/apps/render-farm/README.md +++ b/apps/render-farm/README.md @@ -74,6 +74,10 @@ expires `hls/` and `jobs/` objects. | `RF_TOKEN` | required | Bearer token between clients, coordinator and workers | | `RF_S3_ENDPOINT`, `RF_S3_BUCKET`, `RF_S3_REGION` | required | Bucket holding recordings, outputs, HLS and the journal | | `RF_S3_IMDS` | off | Use the instance role instead of `RF_S3_ACCESS_KEY_ID`/`RF_S3_SECRET_ACCESS_KEY` | +| `RF_MEDIA_S3_BUCKET` (`_REGION`, `_ENDPOINT`) | the `RF_S3_*` bucket | Bucket holding recordings and receiving exports; may belong to another account whose policy grants the farm's role. Objects are written `bucket-owner-full-control`; the journal stays in `RF_S3_BUCKET` | +| `RF_CALLBACK_HOSTS` | none | Host suffixes a job's `callbackUrl` may use (e.g. `vercel.app,cap.so`) | +| `RF_CALLBACK_SECRET` | `RF_TOKEN` | HMAC key for callback signatures | +| `RF_TRANSCODE_ENCODER` | `h264_nvenc` | Encoder for source transcodes (`libx264` without a GPU) | | `RF_COORDINATOR_URL` | `http://127.0.0.1:8080` | Coordinator address (workers) and its advertised URL | | `RF_SLOTS` / `RF_AUDIO_SLOTS` | `5` / `4` | Render slots and audio lanes per worker (tuned on one L4 with 8 vCPUs) | | `RF_LOCAL_AUDIO_SLOTS` | `2` | Audio lanes on the coordinator | @@ -92,6 +96,27 @@ expires `hls/` and `jobs/` objects. | `CAP_DECODER_READAHEAD` | `8` | Frames each decoder decodes ahead of the renderer | | `RF_HOT_SWAP` | off | Development: pull the engine, app and tuning from the bucket's `bin/` pointers | +## Product integration + +A job can export a recording that lives in the product's bucket: + +- `sourceRoot` names the recording's folder (e.g. `/