Skip to content

Commit

Permalink
Merge pull request #10 from prasadhonrao/development
Browse files Browse the repository at this point in the history
merge develpment
  • Loading branch information
AkankshShigwan authored Oct 24, 2024
2 parents cc30c16 + 0adf65a commit d122569
Show file tree
Hide file tree
Showing 28 changed files with 331 additions and 172 deletions.
2 changes: 1 addition & 1 deletion .k8s/emptydir-volume/database/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ metadata:
name: devcamper-db-configmap
namespace: devcamper-namespace
data:
mongodb_db_name: 'devcamper-db'
mongodb_db_name: devcamper-db
6 changes: 3 additions & 3 deletions .k8s/emptydir-volume/database/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ spec:
spec:
containers:
- name: devcamper-db-container
image: mongo:4.4
image: mongo
ports:
- containerPort: 27017
env:
Expand All @@ -44,8 +44,8 @@ spec:
memory: '1Gi'
cpu: '1'
volumeMounts:
- name: mongo-volume
- name: mongodb-volume
mountPath: /data/db
volumes:
- name: mongo-volume
- name: mongodb-volume
emptyDir: {}
4 changes: 2 additions & 2 deletions .k8s/emptydir-volume/database/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
kubectl apply -f configmap.yaml
kubectl apply -f secret.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service-nodeport.yaml
kubectl apply -f service-clusterip.yaml
kubectl apply -f service.yaml


4 changes: 2 additions & 2 deletions .k8s/emptydir-volume/database/secret.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ metadata:
name: devcamper-db-secret
namespace: devcamper-namespace
data:
mongodb_username: 'YWRtaW4=' # base64 encoded string for 'admin'
mongodb_password: 'cGFzc3dvcmQ=' # base64 encoded string for 'password'
mongodb_username: 'YWRtaW4='
mongodb_password: 'cGFzc3dvcmQ='
14 changes: 0 additions & 14 deletions .k8s/emptydir-volume/database/service-nodeport.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: devcamper-db-clusterip-service
name: devcamper-db-service
namespace: devcamper-namespace
spec:
type: ClusterIP
Expand Down
4 changes: 2 additions & 2 deletions .k8s/emptydir-volume/database/uninstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
kubectl delete -f configmap.yaml
kubectl delete -f secret.yaml
kubectl delete -f deployment.yaml
kubectl delete -f service-nodeport.yaml
kubectl delete -f service-clusterip.yaml
kubectl delete -f service.yaml

9 changes: 6 additions & 3 deletions .k8s/emptydir-volume/install.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
#!/bin/bash

# Function to run install script in a directory
# Function to run install scripts in specified directories
run_install() {
local dir=$1
cd "$dir" || { echo "Failed to change directory to $dir"; exit 1; }
echo -e "\033[1;34m==================== Installing $dir ====================\033[0m"
cd "$dir" || { echo -e "\033[1;31mFailed to change directory to $dir\033[0m"; exit 1; }
bash ./install.sh
cd - > /dev/null || { echo "Failed to return to previous directory"; exit 1; }
cd - > /dev/null || { echo -e "\033[1;31mFailed to return to previous directory\033[0m"; exit 1; }
echo -e "\033[1;34m==================== Finished $dir ====================\033[0m"
}

# Set trap to ensure we return to the original directory on exit
Expand All @@ -16,3 +18,4 @@ run_install namespace
run_install database
run_install webapi
run_install webapp
run_install network
30 changes: 30 additions & 0 deletions .k8s/emptydir-volume/network/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: devcamper-ingress
namespace: devcamper-namespace
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: devcamper.webapp
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: devcamper-webapp-service
port:
number: 80
- host: devcamper.webapi
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: devcamper-webapi-service
port:
number: 80
4 changes: 4 additions & 0 deletions .k8s/emptydir-volume/network/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!bin/bash
# Install an NGINX Ingress Controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f ingress.yaml
2 changes: 2 additions & 0 deletions .k8s/emptydir-volume/network/uninstall.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!bin/bash
kubectl delete -f ingress.yaml
9 changes: 6 additions & 3 deletions .k8s/emptydir-volume/uninstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
# Function to run uninstall script in a directory
run_uninstall() {
local dir=$1
cd "$dir" || { echo "Failed to change directory to $dir"; exit 1; }
echo -e "\033[1;34m==================== Uninstalling $dir ====================\033[0m"
cd "$dir" || { echo -e "\033[1;31mFailed to change directory to $dir\033[0m"; exit 1; }
bash ./uninstall.sh
cd - > /dev/null || { echo "Failed to return to previous directory"; exit 1; }
cd - > /dev/null || { echo -e "\033[1;31mFailed to return to previous directory\033[0m"; exit 1; }
echo -e "\033[1;34m==================== Finished $dir ====================\033[0m"
}

# Set trap to ensure we return to the original directory on exit
Expand All @@ -15,4 +17,5 @@ trap 'cd - > /dev/null' EXIT
run_uninstall database
run_uninstall webapi
run_uninstall webapp
run_uninstall namespace
run_uninstall network
run_uninstall namespace
2 changes: 1 addition & 1 deletion .k8s/emptydir-volume/webapi/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ metadata:
name: devcamper-webapi-configmap
namespace: devcamper-namespace
data:
mongodb_host: 'devcamper-db-clusterip-service'
mongodb_host: 'devcamper-db-service'
mongodb_port: '27017'
mongodb_db_name: 'devcamper-db'
mongodb_db_params: 'authSource=admin'
Expand Down
3 changes: 2 additions & 1 deletion .k8s/emptydir-volume/webapi/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
kubectl apply -f configmap.yaml
kubectl apply -f secret.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service-nodeport.yaml
kubectl apply -f service.yaml

Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: devcamper-webapi-nodeport-service
name: devcamper-webapi-service
namespace: devcamper-namespace
spec:
type: NodePort
ports:
- protocol: TCP
port: 80
targetPort: 5000
nodePort: 32018
selector:
app: devcamper-webapi
2 changes: 1 addition & 1 deletion .k8s/emptydir-volume/webapi/uninstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
kubectl delete -f configmap.yaml
kubectl delete -f secret.yaml
kubectl delete -f deployment.yaml
kubectl delete -f service-nodeport.yaml
kubectl delete -f service.yaml
7 changes: 7 additions & 0 deletions .k8s/emptydir-volume/webapp/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: devcamper-webapp-configmap
namespace: devcamper-namespace
data:
react_app_devcamper_base_api_uri: 'http://devcamper.webapi'
33 changes: 33 additions & 0 deletions .k8s/emptydir-volume/webapp/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: devcamper-webapp-deployment
namespace: devcamper-namespace
spec:
replicas: 1
selector:
matchLabels:
app: devcamper-webapp
template:
metadata:
labels:
app: devcamper-webapp
spec:
containers:
- name: devcamper-webapp-container
image: prasadhonrao/devcamper-webapp:latest
ports:
- containerPort: 3000
env:
- name: REACT_APP_DEVCAMPER_BASE_API_URI
valueFrom:
configMapKeyRef:
name: devcamper-webapp-configmap
key: react_app_devcamper_base_api_uri
resources:
limits:
memory: '2Gi'
cpu: '2'
requests:
memory: '1Gi'
cpu: '1'
3 changes: 3 additions & 0 deletions .k8s/emptydir-volume/webapp/install.sh
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#!bin/bash
kubectl apply -f configmap.yaml
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
12 changes: 12 additions & 0 deletions .k8s/emptydir-volume/webapp/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: devcamper-webapp-service
namespace: devcamper-namespace
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
selector:
app: devcamper-webapp
3 changes: 3 additions & 0 deletions .k8s/emptydir-volume/webapp/uninstall.sh
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
#!bin/bash
kubectl delete -f configmap.yaml
kubectl delete -f deployment.yaml
kubectl delete -f service.yaml
40 changes: 40 additions & 0 deletions docker/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Web App Configuration
WEBAPP_PORT=3000
REACT_APP_DEVCAMPER_BASE_API_URI=http://localhost

# Server configuration
port=5000
node_env=development

# Database configuration
mongodb_host=localhost
mongodb_port=27017
mongodb_username=admin
mongodb_password=password
mongodb_db_name=devcamper-db
mongodb_db_params=authSource=admin

# Geocoder configuration
geocoder_provider=mapquest
geocoder_api_key=m5SpLGTkplsHrlCYbX9Yj5LOiALoK5o1

# File upload configuration
file_upload_path=../ui/public/images
max_file_upload=1000000

# JWT configuration
jwt_secret=jwt123
jwt_expire=30d
jwt_cookie_expire=30

# Email configuration
smtp_host=sandbox.smtp.mailtrap.io
smtp_port=2525
smtp_email=b672b25167e875
smtp_password=208334e8a6a9d8
from_email=[email protected]
from_name=DevCamper

# Rate limiting configuration
rate_limit_window=100
rate_limit_max=1000
16 changes: 16 additions & 0 deletions docker/docker-compose-mongo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: '3.8'

services:
mongo:
image: mongo
container_name: devcamper-db
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- mongo-data:/data/db

volumes:
mongo-data:
18 changes: 14 additions & 4 deletions api/docker-compose.yml → docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
version: '3.8'

services:
api:
webapp:
image: prasadhonrao/devcamper-webapp:latest
ports:
- '${WEBAPP_PORT}:3000'
environment:
- REACT_APP_DEVCAMPER_BASE_API_URI={REACT_APP_DEVCAMPER_BASE_API_URI} + ':' + ${WEBAPP_PORT}
depends_on:
- webapi
webapi:
image: prasadhonrao/devcamper-webapi:latest
ports:
- '${port}:${port}'
Expand Down Expand Up @@ -31,11 +39,13 @@ services:
- rate_limit_window_ms=${rate_limit_window_ms}
depends_on:
- mongo

mongo:
image: mongo:latest
image: mongo
ports:
- '27017:27017'
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
volumes:
- mongo-data:/data/db

Expand Down
30 changes: 30 additions & 0 deletions ui/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Use the official Node.js image as the base image
FROM node:14-alpine

# Set the working directory
WORKDIR /app

# Copy package.json and package-lock.json
COPY package*.json ./

# Install dependencies
RUN npm install

# Copy the rest of the application code
COPY . .

# Set build-time environment variables
ARG REACT_APP_DEVCAMPER_BASE_API_URI
ENV REACT_APP_DEVCAMPER_BASE_API_URI=${REACT_APP_DEVCAMPER_BASE_API_URI}

# Build the React application
RUN npm run build

# Install a simple HTTP server to serve the static files
RUN npm install -g serve

# Expose the port the app runs on
EXPOSE 3000

# Start the application
CMD ["serve", "-s", "build", "-l", "3000"]
Loading

0 comments on commit d122569

Please sign in to comment.