# LLM Configuration LLM_PROVIDER=kimi LLM_API_KEY=your-api-key-here LLM_MODEL=kimi-k2.6 # GCloud Storage GCS_BUCKET=your-bucket-name GCS_PREFIX=snapshots/ GCS_CREDENTIALS_FILE=credentials.json # GCP project (required for the Pub/Sub snapshot watcher; not used # elsewhere). Find it with: gcloud config get-value project GCP_PROJECT_ID=your-gcp-project-id # Pub/Sub snapshot watcher (optional but recommended for multi-instance # setups). See internal/store/pubsub.go for the one-time gcloud setup. # Leave GCS_PUBSUB_TOPIC empty to disable the watcher; without it, # instances only sync on restart. GCS_PUBSUB_TOPIC= GCS_PUBSUB_SUBSCRIPTION= # optional; defaults to grocer-snapshot-watcher- GCS_PUBSUB_RELOAD_DEBOUNCE=1s # collapse bursts of events into one reload; Go duration (e.g. 500ms, 2s) # Telegram Bot (optional) TELEGRAM_BOT_TOKEN= # Discord Bot (optional) DISCORD_BOT_TOKEN= # Bot Web URL (for links in bot messages) BOT_WEB_URL=http://localhost:8080 # Photo Cache PHOTO_CACHE_DIR=./cache/photos PHOTO_CACHE_SIZE=500 # Server PORT=8080 # Cookie # Set to false for local dev over plain HTTP; keep true (default) in # production so browsers only send the session cookie over HTTPS. COOKIE_SECURE=true # Snapshots # Debounce window for GCS snapshot writes (default 5s). Increase on # slow networks; decrease to 1s for single-user dev. SNAPSHOT_DEBOUNCE_SECONDS=5 # Costco import # Paste-first flow needs no credentials. Direct fetch (POST # /api/costco/sync) uses a user-pasted bearer at request time — nothing # to configure here.