# DTP Newsroom Worker The Newsroom Worker is a process that runs in the background and uses cron jobs to: 1. Fetch news articles 1. Generate AI summaries of them 1. Generate AI images from article content 1. Generate AI voice narration for summary videos 1. Generate summary videos 1. Publish summary videos to DTP Newsroom Web ## Managing The Worker Follow the instructions in [README.md](../README.md) to configure a host for running DTP Newsroom including the configuration of [supervisord](https://supervisord.org/) to start and manage the execution of the `newsroom-worker` process. Refer to the [.env](./env.md) documentation for information about environment variables used to control `newsroom-worker` in your environment. The worker does not bind a TCP port and provide a Web interface. It is mostly driven by cron, and processes Bull jobs. It will communicate directly with the database, Redis, and S3 storage. It writes a log file for auditing, diagnostics, and reporting. ## Storage The worker requires access to S3-compatible storage and configured buckets for use while processing the news articles. ## MongoDB Database The worker requires access to the MongoDB database for use while processing the news articles and analytics. ## Redis The worker requires access to Redis to implement Bull queue jobs that ingest new feeds and process other jobs. ## Local Storage The worker requires access to gigabytes of local temporary storage for use while rendering news story summaries and videos. The worker will allocate space on local storage while processing a job, then remove the temporary data and generated artifacts once uploaded to S3 for distribution. ## Output Traffic The worker requires the ability to make outbound HTTP requests and receive responses while calling various APIs used by the application to generate AI content. ## Graphics Processing Unit (GPU) The worker requires access to a compatible GPU for use while rendering content. The GPU will be used to run a text-to-speech AI model, and also to render h.264 videos using FFMPEG.