Documentación

Configuración de producción

Checklist de entorno e integraciones antes de desplegar Motoko Base a producción.

Abrir enChatGPT (se abre en una pestaña nueva)Claude (se abre en una pestaña nueva)Cursor (se abre en una pestaña nueva)Checklist de entorno e integraciones antes de desplegar Motoko Base a producción.

Usa esta checklist antes de tu primer deploy a producción. Las variables requeridas arrancan la app; las integraciones opcionales se pueden activar de una en una.

Referencia completa de env: Environment Variables.

Requerido

Estas cuatro variables son el mínimo para una app de producción funcional:

VariableValor en producción
DATABASE_URLCadena de conexión Postgres — preferir el transaction pooler de Supabase (puerto 6543) en runtime
BETTER_AUTH_SECRETSecreto aleatorio largo — genera con openssl rand -base64 32; nunca reutilices el secreto de desarrollo
BETTER_AUTH_URLOrigen HTTPS público, p. ej. https://app.example.com
NEXT_PUBLIC_APP_URLEl mismo origen público — se usa para short links y redirects

Mantén BETTER_AUTH_URL y NEXT_PUBLIC_APP_URL alineados con la URL que visitan realmente los usuarios.

Ejecuta las migraciones contra producción antes o durante el primer deploy:

pnpm db:migrate

Si el DDL falla a través del pooler, usa temporalmente una conexión directa (puerto 5432). Ver Migrations.

Base de datos

ComprobaciónAcción
Postgres en marchaSupabase, Neon, RDS o autoalojado — cualquier Postgres funciona
Migraciones aplicadaspnpm db:migrate contra producción
Pooler para runtimeUsa la URL del transaction pooler en DATABASE_URL para hosts serverless/multi-instancia
RLS (Supabase)El starter viene con RLS habilitado — la app se conecta vía el rol del pooler, no con la anon key

Detalles: Database.

Better Auth y secretos

ComprobaciónAcción
Nuevo secreto de producciónGenera un BETTER_AUTH_SECRET fresco — no copies de .env.local
Origen HTTPSBETTER_AUTH_URL debe coincidir con tu dominio en vivo (cookies + callbacks dependen de ello)
Trusted origins (opcional)BETTER_AUTH_TRUSTED_ORIGINS para hosts de preview/staging

Detalles: Better Auth.

Callbacks de OAuth

Si usas inicio de sesión con Google o GitHub, actualiza tanto la consola del proveedor como .env:

ProveedorURL de callback de producción
Google{BETTER_AUTH_URL}/api/auth/callback/google
GitHub{BETTER_AUTH_URL}/api/auth/callback/github

Configura credenciales de producción GOOGLE_* / GITHUB_* — las apps OAuth de sandbox/dev no funcionarán en tu dominio en vivo.

Detalles: OAuth Setup.

Resend

Requerido para la verificación de registro y el restablecimiento de contraseña en producción.

VariableNotas
RESEND_API_KEYAPI key de producción
EMAIL_FROMRemitente de dominio verificado, p. ej. My App <noreply@yourdomain.com>

Verifica tu dominio en Resend (SPF/DKIM) antes del go-live.

Detalles: Email (Resend).

Polar

Pasa de sandbox a production cuando la facturación entre en vivo.

VariableNotas
POLAR_SERVERproduction
POLAR_ACCESS_TOKENToken de organización de producción
POLAR_PRO_MONTHLY_PRODUCT_IDID de producto de producción
POLAR_WEBHOOK_SECRETDe la configuración de webhook de producción

URL del webhook: {NEXT_PUBLIC_APP_URL}/api/billing/webhooks/polar

Prueba el checkout en sandbox primero. Detalles: Payments (Polar).

Cloudflare R2

VariableNotas
R2_ACCOUNT_IDCuenta de Cloudflare
R2_ACCESS_KEY_ID / R2_SECRET_ACCESS_KEYToken de API de producción
R2_BUCKET_NAMEBucket privado

Configura CORS del bucket para tu origen de producción si fallan las subidas desde el navegador.

Detalles: Storage (R2).

PostHog

VariableÁmbitoNotas
NEXT_PUBLIC_POSTHOG_PROJECT_TOKENClienteToken de proyecto de producción
NEXT_PUBLIC_POSTHOG_HOSTClienteCoincide con tu región de PostHog (US/EU)
POSTHOG_PERSONAL_API_KEYServidorPara HogQL en /dashboard/analytics
POSTHOG_PROJECT_IDServidorID de proyecto de producción
POSTHOG_HOSTServidorHost de API (no el host de ingest)

Detalles: Analytics (PostHog).

Sentry

VariableNotas
NEXT_PUBLIC_SENTRY_DSNDSN del proyecto de producción
SENTRY_AUTH_TOKENCI/build — subida de source maps
SENTRY_ORG / SENTRY_PROJECTCI/build — slugs de org y proyecto

Configura las variables de Sentry en tu entorno de build (CI), no solo en runtime, para que los source maps se suban durante pnpm build.

Sentry está desactivado durante next dev — verifica con pnpm build && pnpm start o en el host desplegado.

Detalles: Monitoring (Sentry).

Checklist previa al lanzamiento

  • Variables de entorno de producción definidas en el host (nunca subas secretos)
  • BETTER_AUTH_SECRET fresco generado
  • BETTER_AUTH_URL y NEXT_PUBLIC_APP_URL apuntan al dominio HTTPS en vivo
  • Migraciones aplicadas a la base de datos de producción
  • Dominio de Resend verificado; prueba el email de verificación
  • URLs de callback de OAuth actualizadas (si usas inicio de sesión social)
  • Webhook de Polar apunta a la URL de producción (si usas billing)
  • pnpm build tiene éxito en local o en CI
  • Prueba de humo: registro → verificación → dashboard → integraciones clave

Despliegue — Despliega en cualquier plataforma compatible con Next.js + ejemplo con Vercel.