https://github.com/uj5ghare/devops-engineer-project
DevOps Engineer Project
https://github.com/uj5ghare/devops-engineer-project
docker docker-scout git github-actions kubernetes
Last synced: 3 months ago
JSON representation
DevOps Engineer Project
- Host: GitHub
- URL: https://github.com/uj5ghare/devops-engineer-project
- Owner: Uj5Ghare
- License: apache-2.0
- Created: 2024-12-07T18:07:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-16T14:25:09.000Z (over 1 year ago)
- Last Synced: 2025-04-08T14:50:56.573Z (about 1 year ago)
- Topics: docker, docker-scout, git, github-actions, kubernetes
- Language: JavaScript
- Homepage: https://docs.google.com/document/d/1Wmnl51IzMLck-hMvmdoUgPlXWP_N99nSsWrRmMukQL0/edit?tab=t.0#heading=h.af80tl7prv5v
- Size: 308 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DevOps-Engineer-Project
This project consists of two parts: a ReactJS frontend and a NodeJS backend.
## 👨💻Frontend (ReactJS)
This ReactJS application provides the user interface for the application.
#### Getting Started
Clone the repository:
```
git clone https://github.com/Uj5Ghare/DevOps-Engineer-Project.git
```
Navigate to the frontend directory:
```
cd frontend
```
Install dependencies:
```
npm install
```
Run the application:
```
npm start
```
This will start the development server and open the application in your browser at http://localhost:3000/.
**Build for Production To create an optimized build for production deployment.**
**run:**
```
npm run build
```
This will create a production-ready build in the build directory.
## ⌨️Backend (NodeJS)
This NodeJS application provides the backend logic and API endpoints for the application.
#### Getting Started
Clone the repository (if not already done):
```
git clone https://github.com/Uj5Ghare/DevOps-Engineer-Project.git
```
Navigate to the backend directory:
```
cd backend
```
Install dependencies:
```
npm install
```
Start the development server:
```
npm start
```
This will start the backend server and listen for API requests on http://localhost:8000/
#### New API Endpoint: `/status`
The backend provides a new API endpoint at `/status` that provides information about the application's current state and uptime.
#### Testing
The backend has integrated simple test case.
To run the tests:
```
npm test
```
## 🐙GitHub Workflow
This workflow automates building, testing, deploying, and securing of ReactJS frontend and NodeJS backend applications.
### Workflow Triggers
Pushes to branches main and dev that modify files in:
- `.github/workflows/main.yml` (the workflow itself)
- `frontend/` directory
- `backend/` directory
- `k8s/manifests/**/*` directory
- Pull requests to the main branch
### Workflow Jobs
**Build-And-Test (runs on pull requests):**
- Tests the backend code (requires `backend/` directory)
**Push-To-DockerHub-Frontend (frontend changes):**
- Builds and pushes a Docker image for the frontend application
**Image-Vuln-Check-Frontend (frontend changes):**
- Scans the built frontend Docker image for vulnerabilities
**Update-ImgTag-Frontend (frontend changes):**
- Updates the image tag in the Kubernetes deployment manifest based on the workflow run number
**Deploy-On-Minikube-Frontend (frontend changes):**
- Deploys the updated frontend image to a local Minikube cluster (for testing)
**Slack-Notification-Frontend (frontend changes):**
- Sends a notification to a Slack channel about the deployment result
- Similar jobs exist for backend changes (replace "frontend" with "backend")
### Requirements
- Docker and Docker Hub access (secrets: `DOCKER_TOKEN`, `DOCKER_USER`)
- GitHub personal access token (secrets: `GITHUB_TOKEN`) - optional
- Slack communication (secrets: `SLACK_BOT_TOKEN`, `SLACK_CHANNEL_ID`)
### Security
The workflow scans frontend Docker images for vulnerabilities using Trivy.