This repository features DeepSmile website
This project is created with:
- Next.js
- React
- Typescript
- Apollo
- ChakraUI
- git-secret
- Sentry
- env-cmd
- next-translate
- Install git-secret:
$ brew install git-secret
Linux: https://git-secret.io/installation
- Generate a gpg-key
$ gpg --gen-key
- Export your public key
$ gpg --export -a [email protected] > public_key.gpg
- Send your public key to someone who has already access
(If you are that someone and wish to add a user to the repository)
$ gpg --import public_key.gpg
$ git secret tell [email protected]
- Decrypt files:
$ git secret reveal
- Encrypt files: (if you modified .env-cmdrc.json or added new users)
$ git secret hide
Your .env-cmdrc.json must contain the following values for both env (prod and preprod) :
# sentry dns
"NEXT_PUBLIC_SENTRY_DSN": ""
# organization name
"SENTRY_ORG": ""
# project name
"SENTRY_PROJECT": ""
# https://sentry.io/settings/account/api/auth-tokens/
"SENTRY_AUTH_TOKEN": ""
next-translate builds the next.js pages directory including translations in those pages . That is why we need to develop our app in a pages_ directory. The pages directory shall not be pushed to the repository since it will be generated by CI.
To run this project, install it locally using npm:
$ npm install
$ npm run dev
Preprod:
$ npm run build
Prod:
$ npm run build:prod
Then:
$ npm start
$ npm run test
Please find below a diagram describing our CI/CD strategy