Configuration
Genfeed has separate configuration entry points for source development and the Community container. Do not copy keys blindly between them.
Source development
The repository root .env.example
is the canonical source-development template. Copy it, edit the root file, and
then generate app/service environment files:
cp .env.example .env.localAt minimum, align the database and Redis values with the local Compose stack:
DATABASE_URL=postgresql://genfeed:genfeed_local@localhost:5432/genfeed
REDIS_URL=redis://localhost:6379Add only the provider credentials needed for your work, then sync:
bun run env:sync local --prune-legacyRoot .env.local is the source of truth. Generated app/service .env files
must not be edited by hand or committed.
The root template documents the current canonical key names, including service-specific ports, URL fields, storage settings, authentication, provider credentials, and optional integrations. It intentionally contains placeholders; replace only the values needed for your environment.
Community container
The checksummed release bundle reads .env next to its compose.yml; create it
from the bundled .env.example:
cp .env.example .envA repository source checkout uses the same template at docker/.env.example
and reads docker/.env next to docker-compose.selfhosted.yml. The source
Compose file still runs a published image; it does not build checked-out code.
The default boots one local workspace without a login wall. Provider keys are optional until you execute a generation path. Host port overrides use:
SELFHOSTED_APP_PORT=3000
SELFHOSTED_API_PORT=3010
SELFHOSTED_MCP_PORT=3014The Community image excludes ee/; setting a license-key environment variable
does not add commercial packages to that image.
Secret handling
- Never commit
.env,.env.local, provider keys, auth secrets, webhook secrets, or customer data. - Keep backend credentials out of
NEXT_PUBLIC_*variables. - Use environment-specific secret management in hosted deployments.
- Rotate a credential immediately if it appears in a commit, log, screenshot, issue, or pull request.