Skip to content
PostMTA Hosted
StatusSign inOpen panelRequest access
Open menu

Docs

Hardening checklist

Per-flag guarantees when shipping apps/api in production. Each row links to the smoke-proof and a safe rollback path.

Required (0 / unset in production)

Flag Default Smoke proof Rollback
ALLOW_DEV_SEED 0 make smoke-prod (M20) fails if =1 unset env var; restart API
LOCAL_OPS 0 make smoke-prod (M20) fails if =1 unset env var; restart API
POSTMTA_HOSTED_DNS_VERIFY_STUB unset assertProductionProfile() throws if =1 and NODE_ENV=production; smoke-prod verifies .env.production.example has no =1 unset env var; restart API
MIB_DNS_VERIFY_STUB unset same unset env var; restart API
SMTP_ALLOW_INSECURE unset assertProductionProfile() rejects when combined with NODE_ENV=production unset env var; restart SMTP
BOOTSTRAP_CREDITS 0 smoke-prod grants are admin-only; on-disk wallet starts at 0 revert by setting =0 in .env

Production-required (must be on)

Flag Recommended Purpose Rollback
NODE_ENV production activates all assertProductionProfile() checks this is a build gate, not runtime; rollback = deploy with NODE_ENV=development and accept lab flag re-enables
REQUIRE_VERIFIED_DOMAIN unset (= on) refuses unverified From in runSend; matrix M27/M28 emergency opt-out: REQUIRE_VERIFIED_DOMAIN=0 for one-off lab ops; do not leave unset in .env.production.example
MIB_WEB_SSR 1 Astro SSR for /app; needed by middleware.ts (M27 redirect to /login) =0 disables /app SSR — keep at 1
SMTP_TLS_CERT / SMTP_TLS_KEY real PEM paths STARTTLS row of docs/security-architecture.md path round-trip: re-issue from your ACME / CA

Optional

Flag When Note
REQUIRE_AAL2 if SSO/MFA rolled out (Release C) current default is 0; M-AAL2 not yet shipped
STRIPE_* air-gap = off; commercial = on M12 honest SKIP without secrets
MIB_INSTALL_SYSTEMD=1 on-site appliance installs the four-pack service units
INCUS_LIVE_PROBE=1 on-site with Incus socket M10b green; SKIP otherwise

Pre-release smoke proof

env -u ALLOW_DEV_SEED -u LOCAL_OPS make smoke-prod
make qa-matrix

Both must exit 0 the same day per the release checklist.

Last verified: Sat Jul 11 2026 17:00:00 GMT-0700 (Pacific Daylight Time). Cross-link maintained byscripts/check-docs-drift.sh (M54).

← All docs