Files
backend/.env.example
T
Alireza HassaniandCursor 23ba6344f6 Switch AI defaults to OpenAI gpt-4.1-nano.
Prefer the cheapest ChatGPT model that supports our JSON completions, and skip custom temperature for gpt-5/o-series models.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 20:33:43 +03:30

99 lines
3.3 KiB
Bash

# PostgreSQL (DataGrip + API)
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=meshkee
POSTGRES_PASSWORD=meshkee_secret
POSTGRES_DB=meshkee_cms
DATABASE_URL=postgresql://meshkee:meshkee_secret@localhost:5432/meshkee_cms
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_URL=redis://localhost:6379
# API
PORT=3000
# JWT
JWT_ACCESS_SECRET=change-me-access-secret-min-32-chars-long
JWT_REFRESH_SECRET=change-me-refresh-secret-min-32-chars-long
JWT_ACCESS_EXPIRES_IN=15m
JWT_REFRESH_EXPIRES_IN=7d
# SMS — Gama (گاما) SendQuick via service shortcode
SMS_ENABLED=false
SMS_GAMA_BASE_URL=https://sms.igama.ir/api/v1
SMS_GAMA_USERNAME=
SMS_GAMA_PASSWORD=
SMS_GAMA_SOURCE_SERVICE=5000110005
# Optional later: SMS_GAMA_SOURCE_ADVERTISE=500099000005
# Partner gateway: domain:apiKey pairs, comma-separated (www. is stripped)
# Example: SMS_PARTNERS=baloutpastry.com:replace-with-long-random-secret
SMS_PARTNERS=
# Local-dev only: proxy SMS delivery through production partner gateway
# (OTP still stored in local Redis). Leave unset on production.
# SMS_PROXY_URL=https://api.meshkee.com/api/v1/public/sms/send
# SMS_PROXY_DOMAIN=meshkee.local
# SMS_PROXY_API_KEY=
# Object storage (Parspack / S3-compatible)
# Bucket id is the Parspack account id. Object keys live under meshkee/...
# meshkee/businesses/{businessId}/media/{file}
# meshkee/businesses/{businessId}/brand/{file}
STORAGE_DISK=s3
S3_ENDPOINT=https://c804387.parspack.net
S3_BUCKET=c804387
S3_PUBLIC_URL=https://c804387.parspack.net/c804387
S3_REGION=us-east-1
S3_FORCE_PATH_STYLE=true
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
# Legacy WillaEngine MySQL (SSH tunnel to old host, e.g. ssh -L 3307:127.0.0.1:3307 root@89.42.138.52)
OLD_MYSQL_HOST=127.0.0.1
OLD_MYSQL_PORT=3307
OLD_MYSQL_USER=
OLD_MYSQL_PASSWORD=
OLD_MYSQL_DATABASE=willaengine
# Legacy Parmin S3 (source for portfolio/media byte-copy; images >300KB are skipped)
OLD_S3_ENDPOINT=https://sas.amin.parminstorage.ir
OLD_S3_BUCKET=meshkee-storage
OLD_S3_PUBLIC_URL=https://meshkee-storage.sas.amin.parminstorage.ir
OLD_S3_REGION=us-east-1
OLD_S3_FORCE_PATH_STYLE=true
OLD_S3_ACCESS_KEY_ID=
OLD_S3_SECRET_ACCESS_KEY=
# AI product / category generation (OpenAI preferred; Groq optional fallback)
AI_PROVIDER=openai
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4.1-nano
GROQ_API_KEY=
GROQ_MODEL=llama-3.3-70b-versatile
MEDIA_MAX_FILE_SIZE_MB=10
# SSL sync (header X-SSL-Sync-Token)
# Dashboards VPS: GET /api/v1/internal/ssl/hosts → manage + business./customer.{apex}
# API VPS: GET /api/v1/internal/ssl/api-hosts → api.meshkee.com + api.{apex}
SSL_SYNC_TOKEN=
DASHBOARD_ADMIN_HOST=manage.meshkee.com
CENTRAL_API_HOST=api.meshkee.com
# Website storefront deploy agent (POST from Super Admin → websites VM)
# Deploy: WEBSITE_DEPLOY_AGENT_URL=.../deploy
# Provision: derived as same origin .../provision when Add Domain includes gitRepoUrl
WEBSITE_DEPLOY_AGENT_URL=http://89.44.241.119:9050/deploy
WEBSITE_DEPLOY_TOKEN=
# Dashboards SSL sync agent (POST from Super Admin → dashboards VPS)
SSL_SYNC_AGENT_URL=http://45.149.76.52:9051/ssl-sync
SSL_SYNC_AGENT_TOKEN=
# Public domain for platform invoice links (https://{domain}/invoices/{id})
INVOICE_PUBLIC_DOMAIN=meshkee.com
# Optional full origin for local (overrides domain), e.g. https://meshkee.app:5174
# INVOICE_PUBLIC_BASE_URL=https://meshkee.app:5174