feat: Set up initial Docker Compose environment for client and server with Nginx, Express, MongoDB, and JWT/Google OAuth authentication.
This commit is contained in:
1
client/.env.example
Normal file
1
client/.env.example
Normal file
@@ -0,0 +1 @@
|
||||
REACT_APP_API_URL=http://localhost:8080/api
|
||||
@@ -7,12 +7,15 @@ COPY package*.json ./
|
||||
RUN npm install
|
||||
|
||||
COPY . .
|
||||
ARG REACT_APP_API_URL
|
||||
ENV REACT_APP_API_URL=$REACT_APP_API_URL
|
||||
RUN npm run build
|
||||
|
||||
# Stage 2: Serve the application with Nginx
|
||||
FROM nginx:alpine
|
||||
|
||||
COPY --from=build /app/build /usr/share/nginx/html
|
||||
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
|
||||
18
client/nginx.conf
Normal file
18
client/nginx.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html index.htm;
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
location /api {
|
||||
proxy_pass http://server:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
}
|
||||
}
|
||||
@@ -4,18 +4,22 @@ services:
|
||||
server:
|
||||
build: ./server
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "10090:8080"
|
||||
environment:
|
||||
- mongoURI=mongodb://mongo:27017/appointment_to_examiner
|
||||
- CORS_ORIGIN=http://localhost:10091
|
||||
depends_on:
|
||||
- mongo
|
||||
networks:
|
||||
- app-network
|
||||
|
||||
client:
|
||||
build: ./client
|
||||
build:
|
||||
context: ./client
|
||||
args:
|
||||
- REACT_APP_API_URL=/api
|
||||
ports:
|
||||
- "3000:80"
|
||||
- "10091:80"
|
||||
depends_on:
|
||||
- server
|
||||
networks:
|
||||
|
||||
6
server/.env.example
Normal file
6
server/.env.example
Normal file
@@ -0,0 +1,6 @@
|
||||
mongoURI=mongodb://localhost:27017/appointment_to_examiner
|
||||
JWT_SECRET=your_jwt_secret
|
||||
GOOGLE_CLIENT_ID=your_google_client_id
|
||||
GOOGLE_CLIENT_SECRET=your_google_client_secret
|
||||
GOOGLE_REFRESH_TOKEN=your_google_refresh_token
|
||||
EMAIL_USERNAME=your_email@gmail.com
|
||||
@@ -35,7 +35,7 @@ const app = express();
|
||||
const PORT = 8080;
|
||||
|
||||
// Middleware
|
||||
app.use(cors({ origin: "http://localhost:3000", credentials: true }));
|
||||
app.use(cors({ origin: process.env.CORS_ORIGIN || "http://localhost:3000", credentials: true }));
|
||||
app.use(cookieparser());
|
||||
app.use(express.json());
|
||||
app.use(bodyParser.urlencoded({ extended: true }));
|
||||
|
||||
Reference in New Issue
Block a user