ENV variables
Supported ENV variables
Section titled “Supported ENV variables”| Name | Description |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| HTML2RSS_SECRET_KEY | required in production; development/test gets a temporary default |
| HTML2RSS_ACCESS_TOKEN | token for the main feed-creation flow; paste the same value into the web UI when prompted |
| HEALTH_CHECK_TOKEN | optional bearer token for authenticated GET /api/v1/health; not part of the first-run quickstart; use /api/v1/health/ready for standard readiness checks |
| BUILD_TAG | release metadata used in logs; published Docker images set this to the release version |
| GIT_SHA | deployed commit metadata used in logs; published Docker images set this to the released commit |
| SENTRY_DSN | optional; enables Sentry errors/logs when set |
| BROWSERLESS_IO_WEBSOCKET_URL | optional; Browserless websocket endpoint for harder sites when you add Browserless later |
| BROWSERLESS_IO_API_TOKEN | optional unless you explicitly add Browserless to your stack or point at a custom Browserless endpoint |
| AUTO_SOURCE_ENABLED | true by default in development/test, false otherwise |
| ASYNC_FEED_REFRESH_ENABLED | optional boolean; default false |
| ASYNC_FEED_REFRESH_STALE_FACTOR | optional integer >= 1; default 3 |
| PORT | app listen port; compose uses 4000 |
| RACK_ENV | Rack environment; quickstart uses development, production examples use production |
| RACK_TIMEOUT_SERVICE_TIMEOUT | optional; total web-request timeout in seconds; default 30 |
| HTML2RSS_TOTAL_TIMEOUT_SECONDS | optional; internal gem request timeout in seconds; default 25 |
Timeout Chain
Section titled “Timeout Chain”When fetching feeds from complex websites, multiple components work together. To prevent premature request termination, ensure your timeouts are configured in a "chain" where the outer layers wait longer than the inner layers.
For an overall 30-second budget:
- Botasaurus Scraper (
SCRAPE_TIMEOUT_SECONDS): Set to 20s. This is the time allowed for the browser to fetch and render the page. - html2rss Gem (
HTML2RSS_TOTAL_TIMEOUT_SECONDS): Set to 25s. This allows the gem enough time to wait for Botasaurus and process the results. - html2rss-web (
RACK_TIMEOUT_SERVICE_TIMEOUT): Set to 30s. This is the total time the web server will wait before killing the request.
Older environment-variable examples from previous docs revisions are obsolete. Use only the supported table above and the Environment & Runtime Flags table in docs/README.md.