Configure · Product guide
Operate and verify safely
Use readiness checks, migrations, a sanitized operation ledger, and production verification without exposing sensitive data.
Configure fail-closed
Copy .env.example for local work and set the database, JWT, encryption, storage, and only the integrations required for the workflow under test. Never print populated environment values or reuse hosted secrets in a community installation.
Self-hosted production uses BLOGFACTORY_SELF_HOSTED=true and rejects missing or placeholder database, encryption, cron, administrator, origin, and storage configuration before it serves requests.
Migrate deliberately
Run npm run db:migrate against the target database before code that requires a new schema. Migrations are additive, locked, checksummed, and recorded in schema_migrations.
Never run PostgreSQL integration tests against shared production infrastructure. Use a disposable database for integration coverage.
npm run typecheck
npm run lint --workspace=web
npm run test --workspace=web
npm run test:server
npm run build
git diff --checkRead the operation ledger
Authenticated tool calls create sanitized lifecycle records. The ledger can keep safe client metadata, action, object reference, status, duration, stable error code, and small allowlisted metadata. It is a diagnostic surface—not an archive of prompts or content.
Records expire after 30 days and the existing bounded scheduler clears them. Web GET requests do not create operation records.
- Stored
- Safe client identity, action, status, duration, stable error code
- Never stored
- Article bodies, prompts, source values, provider responses, tokens, keys, credentials
Verify a release
A green build is not production acceptance. Confirm the intended instance origin, API health, unauthenticated MCP challenge, OAuth metadata, and the deployment commit before declaring a release complete.
curl -i https://content.example.com/api/health
curl -i https://content.example.com/mcp
curl -i https://content.example.com/.well-known/oauth-protected-resource