Postwright

Configuration

Postwright is configured with environment variables (for a self-managed deployment) or through the settings UI into an encrypted store (in a packaged install). Here are the ones that matter most, grouped by concern. The installer sets these for you.

In a packaged install you never edit a file — the setup UI collects these and stores them encrypted. The variable names below are useful if you’re configuring Postwright by hand or want to know exactly what a given feature needs.

Core

VariableWhat it does
OBSIDIAN_VAULT_PATHYour content folder. The one truly required setting — unset, Postwright starts in setup mode.
PORTServer port (default 8002).
DB_PATHLocal database file (default ./data/postwright.db).

Blog publishing

For the Git path (see How publishing works). Point Postwright at the repo your site builds from and enable pushing to trigger your host’s deploy.

VariableWhat it does
STEP_ZERO_REPO_PATHLocal checkout of the repo your site deploys from. Unset → stub mode (nothing is written).
STEP_ZERO_PUSH_ENABLEDWhen true, git-pushes after committing — which triggers your host’s deploy (default false).
STEP_ZERO_BASE_URLYour site’s public URL, used for canonical links and to confirm the post went live.

These STEP_ZERO_* names are legacy (Postwright grew out of that project); a future release renames them. In the packaged product the publisher is chosen per brand — Git, folder, webhook, or none.

Newsletter

VariableWhat it does
RESEND_API_KEYResend API key.
RESEND_DOMAINYour verified Resend sending domain.
MAILGUN_API_KEY / MAILGUN_DOMAINUse Mailgun instead of Resend, per brand.
NEWSLETTER_TEST_EMAILWhere the send-a-test-first preview goes.

Social platforms

VariableWhat it does
BROWSER_PROFILE_PATHWhere the logged-in LinkedIn browser session is kept (default ./data/browser-profile).
FB_PAGE_ID / FB_PAGE_ACCESS_TOKENFacebook Page publishing via the Meta Graph API.
IG_BUSINESS_ACCOUNT_ID / IG_ACCESS_TOKENInstagram Reels and feed via the Meta Graph API.
THREADS_ACCESS_TOKEN / THREADS_USER_IDThreads via the Threads Graph API.
YOUTUBE_CLIENT_ID / _SECRET / _REFRESH_TOKENYouTube uploads via the YouTube Data API.

AI & media

VariableWhat it does
CLAUDE_CLI_PATHPath to the Claude Code CLI (default claude). Postwright’s drafting uses your existing Claude Code subscription — no separate API key.
GOOGLE_GENAI_API_KEYOptional. Powers AI social art (Gemini / Imagen).
UNSPLASH_ACCESS_KEY / PIXABAY_API_KEYOptional stock-photo sources for blog hero images.
This is the high-value subset. The full reference — SEO providers, analytics, the video pipeline’s tuning knobs, and editorial intelligence weights — ships with the app in docs/configuration.md.