Manual Installation (Local Development)
Prerequisites
- Node.js — the app itself (NestJS 12) boots on v20.19+, but the backend test runner (Vitest 5)
refuses to start below v22.12, so use v22.12+ to actually run
npm test. - PostgreSQL — the repo ships
docker-compose.dev.ymlto start one locally (also Redis and Mailpit), or pointDATABASE_URLat your own instance - npm
Steps
-
Clone the project:
git clone https://github.com/invoicerr-app/invoicerr.gitcd invoicerr -
Backend setup:
cd backendnpm installnpx prisma generatenpm run startPDF generation (every document type shares one renderer — quotes, invoices, credit notes, expenses, received invoices, purchase orders, goods receipts) needs a Chromium/Chrome binary. Outside the Docker image nothing provides one automatically, so run
npx playwright-core install chromiumonce to fetch a matching build — or pointCHROMIUM_EXECUTABLE_PATHat a browser you already have (seebackend/.env.example). -
Frontend setup, in a new terminal:
cd frontendnpm installnpm run start -
Open in your browser:
- Frontend:
http://localhost:5173 - API:
http://localhost:3000
- Frontend:
Running end-to-end tests (Cypress)
-
Start the backend and frontend with the test environment variables:
cd backend && npm run start:test &cd frontend && npm run start:test &Make sure you have a
.env.testfile in each directory. -
In another terminal, run Cypress:
cd e2enpm installnpm run e2e:open # or npm run e2e:run
In CI, the GitHub Actions workflow runs these steps automatically.