-
Install packages
npm install
-
Configure DB. Create
.env
file in this format:NODE_ENV=development DB_NAME=name DB_USER=user DB_PASSWORD=pass DB_HOST=127.0.0.1 SECRET= TOKEN_SECRET=
SECRET
andTOKEN_SECRET
preferably shoud be randomly generated hashes.Optional fields
ADMIN_LOGIN= ADMIN_MAIL= ADMIN_PASS= BUILT_IN_GZIP= TOKEN_EXPIRATION_TIME=
TOKEN_EXPIRATION_TIME
defaults to1h
,ADMIN_*
fields are used in a seeder, which creates an admin user for the system. -
Init CLI
npx sequelize-cli init
-
Create DB
npx sequelize-cli db:create --charset utf8mb4 --collate utf8mb4_unicode_ci
-
Migrate
npx sequelize-cli db:migrate
To clear and re-migrate DB, use:
npm run refresh
Create admin user with data specified in .env
:
npm run seed
To run project with nodemon:
npm run dev
- Move admin stuff to route
- Add rate limiter or express-brute and apply to the some auth routes
- Experiment with gzip
- Admin auth
- Secret in env
- Add option to disable gzip from
.env
- List all possible
.env
fields in README - Look at helmet
- Move to fastest-validator
- Add a cron job to empty invalidated tokens table
- Document all routes
- Move server from
app.js