An API Boilerplate to create a ready-to-use REST API in seconds with Fastify + Kysely and JWT Authentication
npm installSet Environment for secret key JWT and other configurations
cp .env.example .envIn the project directory, you can run:
npm run devor
npm run dev:watchTo start the app in dev mode. Open http://localhost:3000 to view it in the browser.
npm startFor production mode
npm run testRun the test cases. The suite needs the test database (docker compose up -d db-postgres-test)
and a .env.test file (cp .env.test.example .env.test): the application has a single set of
DB_*/EMAIL_* variables and each environment supplies its own values. The users table of
the test database is emptied at the start of every test file.
NODE_ENV is never read by the application and should always be production (it is set in the
Dockerfile); behaviour is driven by dedicated variables only, e.g. EXPOSE_ERROR_DETAILS=true
to include the message of unexpected errors in responses during local development.
Tests are compiled with tsc (see test/tsconfig.json) and run with the Node.js test runner on
the compiled output, so the coverage report (c8) reflects the real sources. The build fails when
coverage drops below 100% (lines, branches, functions, statements); see .c8rc.json.
npm run test:coverage # same, plus an HTML report in coverage/There is a docker-compose.yml file for starting PostgreSQL with Docker.
docker compose up dbAfter running, you can stop the Docker container with
docker compose downhttp://127.0.0.1:3000/docs