# Configuration > Environment variables, settings, and GitHub App setup for Syntropic137. Syntropic137 uses environment variables for configuration. Copy `.env.example` to `.env` and customize as needed. ## Core Settings | Variable | Default | Description | |----------|---------|-------------| | `APP_ENVIRONMENT` | `development` | Runtime environment (`development`, `staging`, `production`) | | `DATABASE_URL` | — | PostgreSQL connection string | | `REDIS_URL` | — | Redis connection string | | `API_HOST` | `0.0.0.0` | API server bind address | | `API_PORT` | `8000` | API server port | ## GitHub App Syntropic137 integrates with GitHub through a GitHub App for receiving webhook events and managing repositories. ### Setup Run the GitHub App setup via the CLI: ```bash npx @syntropic137/setup github-app ``` See [GitHub Integration](/docs/guide/github-integration) for the full setup guide including trigger rules and webhook configuration. For secret storage details, see [Secrets Management](/docs/guide/secrets). ### Environment Variables | Variable | Description | |----------|-------------| | `GITHUB_APP_ID` | GitHub App ID | | `GITHUB_APP_PRIVATE_KEY` | PEM-encoded private key | | `GITHUB_WEBHOOK_SECRET` | Webhook verification secret | ## Agent Configuration | Variable | Default | Description | |----------|---------|-------------| | `AGENT_WORKSPACE_DIR` | `/tmp/syn-workspaces` | Base directory for agent workspaces | | `AGENT_TIMEOUT` | `3600` | Maximum agent execution time (seconds) | | `AGENT_MAX_CONCURRENT` | `4` | Maximum concurrent agent sessions | ## Event Polling Syntropic137 polls the GitHub Events API as a zero-config fallback when webhooks are unavailable. Polling is **enabled by default** — no tunnel setup required. See [Event Ingestion](/docs/guide/event-ingestion) for how the hybrid approach works. | Variable | Default | Description | |----------|---------|-------------| | `SYN_POLLING_DISABLED` | `false` | Disable Events API polling entirely | | `SYN_POLLING_POLL_INTERVAL_SECONDS` | `60.0` | Active polling interval (seconds) | | `SYN_POLLING_SAFETY_NET_INTERVAL_SECONDS` | `300.0` | Safety net polling interval (seconds) | | `SYN_POLLING_WEBHOOK_STALE_THRESHOLD_SECONDS` | `1800.0` | Seconds before switching to active polling | | `SYN_POLLING_DEDUP_TTL_SECONDS` | `86400` | Redis dedup key TTL (seconds) | See `.env.example` in the repository for the complete list of configuration options.