TemplatesTypescriptBackendFastifyFastify MySQL TypeScript

Fastify MySQL TypeScript

Fastify REST API with MySQL, Prisma ORM, JWT authentication, Swagger docs, and Docker support.

Quick Start

npx tempora-cli init fastify-mysql my-app

Stack

  • Fastify 4
  • TypeScript 5
  • Prisma 5
  • MySQL 8
  • @fastify/jwt
  • @fastify/swagger + @fastify/swagger-ui
  • Docker + Docker Compose
  • Node.js 20

Running with Docker

docker compose up
 
# First run only — run migrations in a second terminal
docker exec fastify_mysql_app pnpm prisma migrate dev --name init
 
# Visit API docs
open http://localhost:3000/api/docs

Running Locally

pnpm install
cp .env.example .env
pnpm prisma migrate dev --name init
pnpm dev

API Routes

Auth

MethodRouteAccess
POST/api/auth/signupPublic
POST/api/auth/loginPublic

Todos

MethodRouteAccess
GET/api/todosProtected
POST/api/todosProtected
PUT/api/todos/:idProtected
DELETE/api/todos/:idProtected

Documentation: tempora.irbaye.com