-
Install packages
npm install -
Configure DB. Create
.envfile in this format:NODE_ENV=development DB_NAME=name DB_USER=user DB_PASSWORD=pass DB_HOST=127.0.0.1 SECRET= TOKEN_SECRET=SECRETandTOKEN_SECRETpreferably shoud be randomly generated hashes.Optional fields
ADMIN_LOGIN= ADMIN_MAIL= ADMIN_PASS= BUILT_IN_GZIP= TOKEN_EXPIRATION_TIME=TOKEN_EXPIRATION_TIMEdefaults 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
.envfields 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