ProsewireDocs

Run Prosewire locally

Bring up the dashboard, background worker, and Postgres in a few minutes.

This guide is for local development from source. For a production instance, use the Docker Compose guide and do not reuse the example credentials.

Prerequisites

  • Node.js 24+
  • pnpm 11+
  • Docker Desktop or Docker Engine
  • Git

Clone and start

Clone the repository, install the workspace, start Postgres, then run all development processes.

git clone https://github.com/prosewire/prosewire.git
cd prosewire
cp .env.example .env
pnpm install
pnpm dev:services
pnpm dev

The first boot applies the committed database migrations and seeds a local workspace.

pnpm dev starts the web app, background worker, and documentation site through the workspace task runner. Use pnpm dev:web when only the dashboard and APIs are needed.

Open the dashboard

Visit http://localhost:3000 and sign in with the local development account:

Email:    admin@prosewire.local
Password: prosewire-local-dev

Publish your first post

  1. Open Content, then choose New post.
  2. Add a title and body. The slug and reading time update automatically.
  3. Review the content checks, then publish immediately or schedule a future time.
  4. Open the Fieldnotes blog to verify the public, server-rendered article.

Use the workspace and publication selectors in the sidebar to move between tenants. Development seeds one owner and one publication; additional publications can be created in Settings.

Verify the runtime

Check that the web process can reach Postgres:

curl --fail http://localhost:3000/api/health

The response should report "status":"ok". Then open the Fieldnotes reader from the dashboard and confirm the published sample posts appear while the draft and future scheduled post remain private.

Stop local services

Stop pnpm dev with Ctrl+C, then stop the supporting container:

docker compose -f docker-compose.yml -f docker-compose.dev.yml down

The named Postgres volume is retained. Add --volumes only when you intentionally want to delete local database data.

Local configuration is not production configuration

The example authentication secret, Postgres password, administrator account, and optional seed key are development values. Production web startup does not run migrations or create the local administrator, API key, or sample posts. See the configuration map before deploying.