Tech stack:
-
fontend: Nginx, React (CRA boilerplate, E2E jest tests with puppeteer)
-
backend: Node.js (Express), GraphQL
-
database: MySql, PhpMyAdmin (only locally)
You should definitely exclude from repository files below
Remember to uncomment (prepared section lines) this files in .gitignore
./env
./frontend/dev.env
./frontend/prod.env
./frontend/nginx/auth/.htpasswd
- Github CI/CD scripts
./.github/workflows/dev.deploy-and-tests.yml
(especially deploy directories) - All .env files from secure section and .htpasswd you can generate new password in htpasswd genertor
- Database in docker build- here should be different approach (it is included here only for demonstration purposes)
After cloning repository depends of environment that you want to run service you do it through:
- Prod version
docker-compose -f docker-compose.prod.yml up -d
- Dev version
docker-compose -f docker-compose.dev.yml up -d
- local version
- Way (for testing whole service structures)
docker-compose -f docker-compose.local.yml up -d
- Way (recommended for developing)
docker-compose up -d
More info about how to run particular service you can find in ./frontend/README.md
and ./backend/README.md
Store your backend files in directory ./backend/uploads/data/
on your server