Files
deer-flow/web/.env.example
Willem Jiang 0441038672 fix: improve config loading resilience for non-localhost access (#510) (#658)
* fix: improve config loading resilience for non-localhost access (#510)

- Add DEFAULT_CONFIG fallback to always return valid config even if fetch fails
- Implement retry logic with exponential backoff (max 2 retries) to handle transient failures
- Add 5-second fetch timeout to prevent hanging on unreachable backends
- Improve error logging with clear messages about config fetch status
- Always return DeerFlowConfig (never null) to prevent UI rendering issues
- Add safety checks in input-box component to verify reasoning models before access
- Improve type safety: verify array length before accessing array indices
- Add comprehensive documentation in .env.example with examples for different deployment scenarios
- Document NEXT_PUBLIC_API_URL variable behavior and fallback mechanism

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: add nullish coalescing to prevent TypeScript error in input-box

- Add ?? operator to handle potential undefined value when accessing reasoning[0]
- Fixes TS2322 error: Type 'string | undefined' is not assignable to type 'string | number | Date'

---------

Co-authored-by: Willem Jiang <143703838+willem-bd@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-26 07:34:12 +08:00

44 lines
1.6 KiB
Plaintext

# Since the ".env" file is gitignored, you can use the ".env.example" file to
# build a new ".env" file when you clone the repo. Keep this file up-to-date
# when you add new variables to `.env`.
# This file will be committed to version control, so make sure not to have any
# secrets in it. If you are cloning this repo, create a copy of this file named
# ".env" and populate it with your secrets.
# When adding additional environment variables, the schema in "/src/env.js"
# should be updated accordingly.
# Example:
# SERVERVAR="foo"
# NEXT_PUBLIC_CLIENTVAR="bar"
# API Configuration
# IMPORTANT: Set this variable when accessing the application from a network IP address
# or when the backend server is hosted on a different machine.
#
# Default value (when not set): http://localhost:8000/api
# This default works only when accessing from localhost (http://localhost:3000)
#
# Examples:
# - Local development (no change needed):
# NEXT_PUBLIC_API_URL=http://localhost:8000/api
#
# - Accessing from LAN IP (e.g., http://192.168.1.100:3000):
# NEXT_PUBLIC_API_URL=http://192.168.1.100:8000/api
#
# - Accessing from different machine on network (e.g., http://10.24.9.33:3000):
# NEXT_PUBLIC_API_URL=http://your-backend-server-ip:8000/api
#
# - Remote deployment (behind reverse proxy):
# NEXT_PUBLIC_API_URL=https://your-domain.com/api
#
# If not set, the frontend will attempt to use http://localhost:8000/api as fallback.
# If the backend is unreachable, the application will use default configuration with
# limited features (some LLM-based features may be disabled).
NEXT_PUBLIC_API_URL=http://localhost:8000/api
# Github OAuth Token (optional)
GITHUB_OAUTH_TOKEN=xxxx