This guide walks you through running Finper locally from a fresh clone. By the end you will have the API listening on portDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/soker90/finper/llms.txt
Use this file to discover all available pages before exploring further.
3008, the React frontend on port 5173, and an initial user account ready to log in with.
Prerequisites
Before you start, make sure the following tools are available on your machine:| Tool | Required version | Notes |
|---|---|---|
| Node.js | ≥ 24 | Check with node -v |
| pnpm | 10 | The repo enforces pnpm; npm/yarn will be rejected |
| make | any | Pre-installed on macOS/Linux; available via winget or WSL on Windows |
| Docker (optional) | any | Only needed if you want to run the API in a container |
Steps
Clone the repository and install dependencies
Clone the monorepo and run the root install, which resolves all workspace packages in one shot:Alternatively, use the Makefile shorthand:
Configure your environment
Copy the provided example file to create your local Open All other variables are optional for local development. See the Configuration page for the full reference.
.env at the repo root:.env and set the two required variables at minimum:Build the shared packages
The API depends on the compiled output of You only need to rerun these commands when you change code inside
@soker90/finper-types and @soker90/finper-db. Build them in order:packages/types/ or packages/db/.Start the API
Launch the Express server. The API compiles TypeScript, then starts listening on port You should see output confirming the server is running. Leave this terminal open.
3008. Drizzle migrations are applied automatically on every startup — no manual migration step is needed.Start the frontend
Open a new terminal in the same repo root and start the Vite dev server. The React client is served on port The client reads the API base URL from
5173:packages/client/.env. The default value (http://localhost:3008/api/) matches the API you just started.Create your first user
Use the seed script to create an initial admin account. Replace the values with your chosen credentials:Username rules: 3–15 characters. Password rules: minimum 5 characters. The script is idempotent — if the user already exists it exits cleanly without error.You can now open http://localhost:5173 in your browser and log in.