Self-host and operate

Configuration

Use the source .env.example for the complete comments and defaults. This page identifies the major boundaries and values required by each deployment shape.

Core application

VariableRequiredPurpose
NUXT_POCKETBASE_URLYesInternal PocketBase origin
NUXT_POCKETBASE_ADMIN_EMAILYesSuperuser used by both PocketBase boot and web
NUXT_POCKETBASE_ADMIN_PASSWORDYesMatching generated superuser password
NUXT_PUBLIC_APP_URLYesPublic origin used to build connector URLs
NUXT_ALLOW_PRIVATE_TARGETSNoPermit user-supplied private targets in trusted single-tenant installs
PB_ENCRYPTION_KEYRecommendedEncrypt sensitive PocketBase settings at rest

WhatsApp

VariableRequired when enabledPurpose
EVOLUTION_API_KEYFor bundled EvolutionGlobal Evolution administrator key
NUXT_EVOLUTION_URLFor a default serverEvolution origin reached by web
NUXT_EVOLUTION_ADMIN_KEYFor a default serverMust match EVOLUTION_API_KEY
NUXT_EVOLUTION_DATABASE_URLFor reads and searchRead-only access to Evolution "Message"
WEBHOOK_URLLocal composeCompose fallback webhook URL
NUXT_WEBHOOK_URLYes for fast Evolution alertsPer-connection webhook registered by web
NUXT_WEBHOOK_SECRETStrongly recommendedShared x-webhook-secret value
POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DBLocal composeEvolution datastore values

Set Evolution DATABASE_SAVE_DATA_HISTORIC=true before pairing if full history matters.

Telegram

VariableRequired when enabledPurpose
TELEGRAM_API_ID, TELEGRAM_API_HASHYesCredentials from my.telegram.org
TELEGRAM_BRIDGE_ADMIN_KEYYesCreates and deletes bridge sessions
TELEGRAM_SESSION_ENCRYPTION_KEYYesSeals stored account sessions
TELEGRAM_BRIDGE_DATABASE_URLYesBridge owner connection to Postgres
NUXT_TELEGRAM_URLFor a default bridgeBridge origin reached by web
NUXT_TELEGRAM_ADMIN_KEYFor a default bridgeMatches the bridge administrator key
NUXT_TELEGRAM_DATABASE_URLFor reads and searchRead access to the telegram schema
NUXT_TELEGRAM_WEBHOOK_URLLocal developmentBridge-to-web callback; production derives it from app URL

Backfill is tuned by TELEGRAM_BACKFILL_MAX_PER_CHAT, TELEGRAM_BACKFILL_DAYS, TELEGRAM_BACKFILL_BROADCAST, and TELEGRAM_BACKFILL_PAGE_DELAY_MS.

Alerts and mail

PocketBase sends connection and invitation email. Configure PB_SMTP_HOST, PB_SMTP_PORT, PB_SMTP_USERNAME, PB_SMTP_PASSWORD, PB_SMTP_TLS, PB_SMTP_AUTH_METHOD, PB_SENDER_ADDRESS, and PB_SENDER_NAME.

With PB_SMTP_HOST empty, alerts are computed but delivery fails in a normal container. The sender address must be a valid address accepted by the provider.

Production settings

  • Do not ship .env; use platform variables and secret references.
  • Set NUXT_WEBHOOK_SECRET.
  • Keep NUXT_ALLOW_PRIVATE_TARGETS unset for shared deployments.
  • Use a dedicated read-only role for NUXT_EVOLUTION_DATABASE_URL.
  • Keep Evolution global keys, bridge keys, database URLs, and PocketBase administrator credentials out of client code and logs.
  • Preserve TELEGRAM_SESSION_ENCRYPTION_KEY outside the deployment platform.
View source