From ed17f52d14be7e8a020a2e286143dfda795e1043 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Tue, 24 Mar 2026 09:04:27 -0700 Subject: [PATCH] chore(infra): add .env.ecosystem.example for ecosystem compose --- .env.ecosystem.example | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .env.ecosystem.example diff --git a/.env.ecosystem.example b/.env.ecosystem.example new file mode 100644 index 00000000..58bfa8ae --- /dev/null +++ b/.env.ecosystem.example @@ -0,0 +1,75 @@ +# ── ByteLyst Ecosystem Environment Variables ───────────────────── +# Copy to .env.ecosystem and fill in real values. +# Used by: docker compose -f docker-compose.ecosystem.yml --env-file .env.ecosystem up + +# ── Cosmos DB (local emulator) ─────────────────────────────────── +COSMOS_ENDPOINT=http://cosmos-emulator:8081 +COSMOS_KEY=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw== +COSMOS_DATABASE=bytelyst + +# ── Auth ───────────────────────────────────────────────────────── +JWT_SECRET=change-me-ecosystem-jwt-secret-at-least-32-chars +RATE_LIMIT_STORE_MODE=datastore + +# ── Azure Blob Storage (Azurite emulator) ──────────────────────── +STORAGE_PROVIDER=azure +AZURE_BLOB_CONNECTION_STRING=DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://azurite:10000/devstoreaccount1; +AZURE_BLOB_ACCOUNT_NAME=devstoreaccount1 +AZURE_BLOB_ACCOUNT_KEY=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw== +AZURE_BLOB_PUBLIC_ENDPOINT=http://localhost:10000/devstoreaccount1 + +# ── Email (Mailpit sandbox) ────────────────────────────────────── +EMAIL_PROVIDER=smtp +EMAIL_FROM_ADDRESS=noreply@bytelyst.local +EMAIL_FROM_NAME=ByteLyst +SMTP_HOST=mailpit +SMTP_PORT=1025 +SMTP_SECURE=false +SMTP_USER= +SMTP_PASSWORD= + +# ── Stripe (test keys — replace with your own) ────────────────── +STRIPE_SECRET_KEY=sk_test_REPLACE_ME +STRIPE_WEBHOOK_SECRET=whsec_REPLACE_ME +STRIPE_PRICE_PRO=price_REPLACE_ME +STRIPE_PRICE_ENTERPRISE=price_REPLACE_ME + +# ── Extraction Service ─────────────────────────────────────────── +PYTHON_SIDECAR_URL=http://localhost:4006 +DEFAULT_MODEL_ID=gemini-2.5-flash +GEMINI_API_KEY=REPLACE_ME +EXTRACTION_QUEUE_BACKEND=file +EXTRACTION_QUEUE_FILE=.data/extraction-jobs.json + +# ── Cross-service URLs (resolved via Docker service names) ─────── +PLATFORM_SERVICE_URL=http://platform-service:4003 +EXTRACTION_SERVICE_URL=http://extraction-service:4005 +MCP_SERVER_URL=http://mcp-server:4007 + +# ── Datastore provider ─────────────────────────────────────────── +# Use 'cosmos' for emulator, 'memory' for in-memory (tests) +DB_PROVIDER=cosmos + +# ── Telemetry ──────────────────────────────────────────────────── +TELEMETRY_ENABLED=true + +# ── Event Bus ──────────────────────────────────────────────────── +EVENT_BUS_BACKEND=file +EVENT_BUS_FILE=.data/platform-events.json + +# ── Field Encryption ───────────────────────────────────────────── +FIELD_ENCRYPT_KEY_PROVIDER=memory + +# ── Product Identity ───────────────────────────────────────────── +DEFAULT_PRODUCT_ID=lysnrai + +# ── Webhooks (optional) ───────────────────────────────────────── +WEBHOOK_INVITATION_REDEEMED_URL= +WEBHOOK_REFERRAL_STATUS_URL= +WEBHOOK_WAITLIST_JOINED_URL= + +# ── Notification channels (optional) ──────────────────────────── +TELEGRAM_BOT_TOKEN= +TELEGRAM_DEFAULT_CHAT_ID= +SLACK_WEBHOOK_URL= +SLACK_DEFAULT_CHANNEL=