- Global Error Handling
- JWT Tokens
- Social Logins
- Password hashing with bcrypt
- Input validation with joi
- Production Console
- Specific code for each response
docker
docker-compose
git-crypt
make
(optional, but recommended)
You can configure all environment variables for your environment via the config/environment
directory. Each environment has its own file.
The
production
is binary because its not recommended to have the data in plain text. git-crypt was used to encrypt it. You can safely it and add your ownproduction
file, which will be encrypted as soon as yougit commit
it.
Aplication wide configuration can be found at
Git clone this repository and run make dev
. This will bring both API and DATABASE containers up.
Your API will be listening on port 3000
and postgres will be on 5432
.
The repo is configured to run on CircleCI.
The workflow will also deploy the master
branch to the server, which is identified via SERVER_USER@SERVER_IP
environment variables in CircleCI.
Before running the repository in production, you'll need to:
- Configure your environment variables via
config/environment/production
file (remember, this file is, by default,git-crypt
ed) - a domain with DNS pointing to the server IP you're running the command
To run the code in production just run make prod
.
This command will run 4 different containers:
jwilder/nginx-proxy
jrcs/letsencrypt-nginx-proxy-companion
- the api, with pm2 as the process manager
- and the postgres database
- Manage JWT tokens via Redis
- GraphQL support