Skip to main content

Web (web/.env)

Fed to the Next.js app. Variables prefixed with NEXT_PUBLIC_ are exposed to the browser. | STAFF_EMAILS | optional | Comma-separated sign-in e-mails of Ansvisor staff: Chat’s Debug view and the free report cards’ admin view. Unset: nobody. | | REPORT_CARD_DAILY_CAP, REPORT_CARD_MONTHLY_BUDGET_USD | cloud only | The free report card’s caps as the admin view shows them; set them only if the server’s differ from 200 cards a day and $200 a month (Free report card) | * You need at least one AI provider key for tracking to work. Configure providers per-brand in the dashboard.

Server (server/.env)

Fed to the Express API + workers.
Where connection tokens live. The sign-ins made through Composio (Search Console, Google Analytics, Merchant Center, Webflow and Slack) are kept by Composio Cloud, under your own Composio account: your database stores only which Composio account each connection uses, never its OAuth or API tokens, and every call to those services goes through Composio. If your install must not send tokens to a third party, leave the COMPOSIO_* variables unset: those cards then say “not configured” and the rest of Ansvisor works. The sign-ins Ansvisor keeps itself (stores, WordPress, Framer and Wix) are encrypted in your database with CONNECTOR_CREDENTIALS_KEY.

Tips for production

  • Mark secrets as sensitive — on Vercel, toggle the Sensitive flag on every secret env var. Once set, the value is write-only and can’t be read back from the UI.
  • Rotate SUPABASE_SERVICE_ROLE_KEY and CRON_SECRET quarterly as a hygiene practice
  • Use a different Supabase project for each environment (dev / staging / prod). Don’t share databases across environments — RLS bypasses make it easy to corrupt prod data with a misconfigured dev pointer

Continue: Upgrading

How to upgrade your self-hosted instance to a new release.