Configuration
All configuration lives in two places:
.env— server-level secrets and connection strings (this page)- Admin → Settings — everything a store manager should touch day-to-day (business info, payment toggles, email sender, storage provider, AI keys). See the Settings guide.
Many integrations can be configured in either place: seeding reads the .env values once as defaults, and the admin Settings pages let you change them later without touching the server.
After editing .env in production
Re-run php artisan config:cache so the changes take effect.
Core
| Key | Description |
|---|---|
APP_NAME | Your store name (used in emails and titles) |
APP_ENV | production on a live site |
APP_DEBUG | Must be false in production — preflight enforces this |
APP_URL | Full public URL, e.g. https://shop.example.com |
APP_KEY | Set by php artisan key:generate — never share it |
DEMO_MODE | true locks the install into read-mostly demo behaviour |
Database
| Key | Description |
|---|---|
DB_CONNECTION | mysql |
DB_HOST / DB_PORT | Usually 127.0.0.1 / 3306 |
DB_DATABASE / DB_USERNAME / DB_PASSWORD | Your database credentials |
First admin account
Read once by the seeder — see Installation step 6.
| Key | Description |
|---|---|
ADMIN_EMAIL | Email for the first super admin (default [email protected]) |
ADMIN_PASSWORD | Password for it — leave empty to get a generated one printed at seed time |
Transactional email (order confirmations, password resets) and marketing campaigns:
| Key | Description |
|---|---|
MAIL_MAILER | smtp for real delivery, log for testing |
MAIL_HOST / MAIL_PORT | Your SMTP server |
MAIL_USERNAME / MAIL_PASSWORD | SMTP credentials |
MAIL_FROM_ADDRESS / MAIL_FROM_NAME | Sender identity |
SMTP can also be configured from Admin → Settings → Email Config, including a test-send button.
Payments
Cash on Delivery works with zero configuration. Online gateways activate when their keys are present — via .env at seed time or later in Admin → Settings → Payments.
Stripe
| Key | Description |
|---|---|
STRIPE_SECRET_KEY | sk_live_… (or sk_test_…) |
STRIPE_PUBLISHABLE_KEY | pk_live_… |
STRIPE_WEBHOOK_SECRET | whsec_… — register the webhook in your Stripe dashboard |
STRIPE_CHARGE_CURRENCIES | Currencies Stripe should charge in |
PayPal
| Key | Description |
|---|---|
PAYPAL_ENABLED | true / false |
PAYPAL_MODE | sandbox or live |
PAYPAL_CLIENT_ID / PAYPAL_CLIENT_SECRET | REST API credentials |
PAYPAL_WEBHOOK_ID | For webhook signature verification |
bKash (Bangladesh)
| Key | Description |
|---|---|
BKASH_USERNAME / BKASH_PASSWORD | Merchant credentials |
BKASH_APP_KEY / BKASH_APP_SECRET | App credentials |
BKASH_SANDBOX | true for testing |
SSLCommerz (Bangladesh)
| Key | Description |
|---|---|
SSLCOMMERZ_STORE_ID / SSLCOMMERZ_STORE_PASSWORD | Store credentials |
SSLCOMMERZ_SANDBOX | true for testing |
SSLCOMMERZ_*_URL | Init / validation / refund / callback / IPN endpoints |
Register your webhooks
Each gateway needs its webhook/IPN URL registered in the provider's dashboard so payment confirmations reach your store. The exact URLs are listed in deploy/DEPLOYMENT.md § "Webhooks to register with each provider".
Media storage
Local disk works out of the box. For S3 or DigitalOcean Spaces:
| Key | Description |
|---|---|
STORAGE_PROVIDER | local, s3, … |
STORAGE_ACCESS_KEY_ID / STORAGE_SECRET_ACCESS_KEY | Provider credentials |
STORAGE_REGION / STORAGE_BUCKET_NAME | Bucket location |
STORAGE_ENDPOINT / STORAGE_PUBLIC_URL | For S3-compatible providers (Spaces, MinIO) |
STORAGE_FORCE_PATH_STYLE | true for most S3-compatible services |
Also configurable in Admin → Settings → Storage.
AI (all optional)
Claude — text features
Product copy, review moderation, support chatbot, fraud scoring, email copy, merchandising insights:
| Key | Description |
|---|---|
ANTHROPIC_API_KEY | Your Anthropic API key — get one at console.anthropic.com |
AI_MODEL | Model id (a sensible default ships in .env.example) |
AI_EFFORT / AI_MAX_TOKENS / AI_CACHE_TTL | Tuning knobs — defaults are fine |
AI_EMBEDDINGS_PROVIDER | Optional semantic search provider |
VOYAGE_API_KEY / VOYAGE_MODEL | Only if using Voyage embeddings |
AI Studio — image & video generation
Configure any subset; providers appear in the AI Studio UI when their key is present:
| Key | Provider |
|---|---|
GEMINI_API_KEY | Google Gemini |
OPENAI_API_KEY | OpenAI |
FAL_KEY | FAL |
REPLICATE_API_TOKEN | Replicate |
You pay providers directly
AI usage is billed by each provider to your account. StoreMine never proxies or meters your AI traffic.
Shipping & currency
| Key | Description |
|---|---|
STEADFAST_BASE_URL | Steadfast courier API (Bangladesh) — credentials go in Admin → Settings → Courier |
FX_PROVIDER / FX_BASE_URL | Exchange-rate source for php artisan currency:refresh (default: exchangerate.host) |
Queue & scheduler
| Key | Description |
|---|---|
QUEUE_CONNECTION | database by default; redis for higher volume |
CRON_SECRET | Protects HTTP-triggered scheduled endpoints |
Remember: the queue worker and the cron entry from Installation step 10 must be running in production — campaigns, emails and AI jobs all depend on them.