Configuration
All keys live in src/config/.env (gitignored). Start from .env.example. Empty messenger tokens do not crash boot β those integrations simply stay off.
Core
| Variable | Purpose |
|---|---|
SECRET_KEY | JWT / session signing. Change this. |
ENCRYPTION_KEY | Field encryption. Change this. |
PUBLIC_BASE_URL | Public origin of this shop (http://localhost:8080 locally, https://your.domain in prod) |
OPENAI_KEY | Optional. Powers the in-shop negotiator |
MIXLINK_MARKETPLACE_URL / MIXLINK_MARKETPLACE_TOKEN | Optional. Publish checked products to mixlink.one/marketplace |
Telegram admin bot
Required only if you want order alerts and admin commands in Telegram.
- Create a bot with @BotFather β copy the token.
- Message the bot once. Read your numeric id (e.g. @userinfobot).
- Put both in
.env:
TELEGRAM_BOT_TOKEN=123456:ABC...
ADMIN_CHAT_ID=123456789
ADMIN_CHAT_ID locks the bot to you. Anyone else gets access denied. Leave TELEGRAM_BOT_TOKEN empty to skip the bot entirely.
Aliases still work: MIXLINK_ADMIN_BOT_TOKEN, MIXLINK_NOTIFY_BOT_TOKEN.
WhatsApp (Go bridge) β optional profile
The open-source repo does not vendor WhatsApp Go sources. You bring a prebuilt image.
WHATSAPP_GO_API_URL=http://whatsapp-go:3000
WHATSAPP_GO_IMAGE=your-registry/whatsapp-go:latest
docker compose -f docker/docker-compose.yml --profile whatsapp up -d
Meta WhatsApp Cloud (WABA) & Instagram
Leave blank β skipped. Fill in β enabled. No extra boolean flags.
# WhatsApp Cloud API
WABA_PHONE_NUMBER_ID=
WABA_ACCESS_TOKEN=
WABA_WEBHOOK_VERIFY_TOKEN=
# Instagram
IG_ACCESS_TOKEN=
IG_WEBHOOK_VERIFY_TOKEN=
Hosted aliases (WHATSAPP_ACCESS_TOKEN, INSTAGRAM_ACCESS_TOKEN, META_APP_ID, β¦) are accepted.