πŸš€ mixlink is Open Source! Build your own A2A gateway.

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

VariablePurpose
SECRET_KEYJWT / session signing. Change this.
ENCRYPTION_KEYField encryption. Change this.
PUBLIC_BASE_URLPublic origin of this shop (http://localhost:8080 locally, https://your.domain in prod)
OPENAI_KEYOptional. Powers the in-shop negotiator
MIXLINK_MARKETPLACE_URL / MIXLINK_MARKETPLACE_TOKENOptional. Publish checked products to mixlink.one/marketplace

Telegram admin bot

Required only if you want order alerts and admin commands in Telegram.

  1. Create a bot with @BotFather β†’ copy the token.
  2. Message the bot once. Read your numeric id (e.g. @userinfobot).
  3. 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.