# Getting started

Payvy is open-source accounts payable software (AGPL-3.0-only) in development. You can run the current Rust build yourself today; the hosted product is planned and not yet generally available. This page gets the local stack running.

## What you need

- Docker (for Postgres and an S3-compatible store locally)
- Rust toolchain and Node/pnpm, from the [source repo](https://github.com/VisiOffice/Payvy)

## Run it locally

```bash
git clone https://github.com/VisiOffice/Payvy.git
cd Payvy
docker compose up -d        # Postgres on :5446, SeaweedFS (S3) on :8336

# once: create the bucket, then restart the store
echo 's3.bucket.create -name payvy-dev' | docker compose exec -T s3 weed shell
docker compose restart s3

cp .env.example .env        # set PAYVY_API_KEY (32+ characters)
set -a; . ./.env; set +a
cargo run -- serve          # http://127.0.0.1:7430, MCP at /mcp
```

## Create keys and people

```bash
cargo run -- key create --actor robert --kind person
cargo run -- person add --email you@example.com --name You
pnpm install   # once
pnpm web       # web app on http://127.0.0.1:5173
```

People sign in with a link sent by email — no passwords. In development without a mail sender, the link is printed in the server log. Asking for a link answers the same whether or not the address is known.

## Next steps

- [How Payvy works](https://docs.payvy.com/guide/how-it-works/) — the bill lifecycle end to end
- [Invoice intake](https://docs.payvy.com/guide/invoice-intake/) and [bills by email](https://docs.payvy.com/guide/email-intake/)
- [Reading bills with a model](https://docs.payvy.com/guide/extraction/) — configure Claude or an OpenAI-compatible model
- [Paying through your bank](https://docs.payvy.com/guide/payments/) — connect Mercury
- [Configuration](https://docs.payvy.com/self-hosting/configuration/) — every environment variable