Express / Nodejs Starter with JWT authentication, OAuth (Github), and SQLite persistance - Provided by AppSeed. Authentication Flow uses json web tokens via Passport library - passport-jwt strategy.
AppSeed. Features:
Full-stack ready with React Soft DashboardTypeScript, Joy for validationpassport-jwt strategy OAuth for GithubTested with:
| NodeJS | NPM | YARN |
|---|---|---|
v18.0.0 |
✅ | ✅ |
v16.10.0 |
✅ | ✅ |
v14.15.0 |
✅ | ✅ |

👉 Step 1 - Clone the project
$ git clone https://github.com/app-generator/api-server-nodejs.git
$ cd api-server-nodejs
👉 Step 2 - Install dependencies via
Yarn
$ npm i
// OR
$ yarn
👉 Step 3 - Run the SQLite migration via TypeORM
$ npm run typeorm migration:run
// OR
$ yarn typeorm migration:run
👉 Step 4 - Edit the
.envusing the template.env.sample.
PORT=5000 # API PORT
SQLITE_PATH=./database.db # Path to the SQLite database file
SECRET="Whatever-STRONG" # Secret for sensitive data hashing
# Same as for React APP
GITHUB_OAUTH_CLIENT_ID= ... # Github OAuth secret
GITHUB_OAUTH_CLIENT_SECRET= ... # Github OAuth secret
👉 Step 5 - Start the API server (development mode)
$ npm run dev
// OR
$ yarn dev
👉 Step 6 - Production Build (files generated in
builddirectory)
$ yarn build
👉 Step 7 - Start the API server for production (files served from
build/index.js)
$ yarn start
The API server will start using the PORT specified in .env file (default 5000).
< ROOT / src >
|
|-- config/
| |-- config.ts # Configuration
| |-- passport.ts # Define Passport Strategy
|
|-- migration/
| |-- some_migration.ts # database migrations
|
|-- models/
| |-- activeSession.ts # Sessions Model (Typeorm)
| |-- user.ts # User Model (Typeorm)
|
|-- routes/
| |-- users.ts # Define Users API Routes
|
|
|-- index.js # API Entry Point
|-- .env # Specify the ENV variables
|
|-- ************************************************************************
The SQLite Path is set in .env, as SQLITE_PATH
👉 Generate migration:
$ yarn typeorm migration:generate -n your_migration_name
👉 Run migration:
$ yarn typeorm migration:run
For a fast set up, use this POSTMAN file: api_sample
👉 Register -
api/users/register
POST api/users/register
Content-Type: application/json
{
"username":"test",
"password":"pass",
"email":"test@appseed.us"
}
👉 Login -
api/users/login
POST /api/users/login
Content-Type: application/json
{
"password":"pass",
"email":"test@appseed.us"
}
👉 Logout -
api/users/logout
POST api/users/logout
Content-Type: application/json
authorization: JWT_TOKEN (returned by Login request)
{
"token":"JWT_TOKEN"
}
👉 Using npm:
$ npm run update-role [user_id] [role_id (optional)]
👉 Using yarn:
$ yarn update-role [user_id] [role_id (optional)]
minimal suite)$ npm run test
// OR
$ yarn test
This software is provided by the core AppSeed team with an inspiration from other great NodeJS starters:
Node JS API Server - provided by AppSeed App Generator
$ claude mcp add api-server-nodejs \
-- python -m otcore.mcp_server <graph>