mirror of
				https://github.com/9technologygroup/patchmon.net.git
				synced 2025-10-31 12:03:47 +00:00 
			
		
		
		
	Add Docker configuration for PostgreSQL, backend, and frontend services
This commit is contained in:
		
							
								
								
									
										26
									
								
								backend/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								backend/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| FROM node:lts-alpine | ||||
|  | ||||
| WORKDIR /app | ||||
|  | ||||
| COPY package*.json ./ | ||||
|  | ||||
| RUN npm install --only=production | ||||
| RUN npm install -g prisma | ||||
|  | ||||
| COPY . . | ||||
|  | ||||
| RUN npx prisma generate | ||||
|  | ||||
| RUN mkdir -p logs | ||||
|  | ||||
| EXPOSE 3001 | ||||
|  | ||||
| RUN echo '#!/bin/sh\n\ | ||||
| echo "Waiting for database..."\n\ | ||||
| sleep 10\n\ | ||||
| echo "Running database migrations..."\n\ | ||||
| npx prisma migrate deploy\n\ | ||||
| echo "Starting server..."\n\ | ||||
| npm start' > /app/start.sh && chmod +x /app/start.sh | ||||
|  | ||||
| CMD ["/app/start.sh"] | ||||
							
								
								
									
										75
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| services: | ||||
|   # PostgreSQL Database | ||||
|   database: | ||||
|     image: postgres:17-alpine3.22 | ||||
|     container_name: patchmon-database | ||||
|     environment: | ||||
|       POSTGRES_DB: patchmon_db | ||||
|       POSTGRES_USER: patchmon_user | ||||
|       POSTGRES_PASSWORD: p@tchm0n_p@55 | ||||
|     volumes: | ||||
|       - postgres_data:/var/lib/postgresql/data | ||||
|     ports: | ||||
|       - "5432:5432" | ||||
|     networks: | ||||
|       - patchmon-network | ||||
|     restart: unless-stopped | ||||
|     healthcheck: | ||||
|       test: ["CMD-SHELL", "pg_isready -U patchmon_user -d patchmon_db"] | ||||
|       interval: 10s | ||||
|       timeout: 5s | ||||
|       retries: 5 | ||||
|  | ||||
|   # Backend API Service | ||||
|   backend: | ||||
|     build: | ||||
|       context: ./backend | ||||
|       dockerfile: Dockerfile | ||||
|     container_name: patchmon-backend | ||||
|     environment: | ||||
|       DATABASE_URL: postgresql://patchmon_user:p@tchm0n_p@55@database:5432/patchmon_db | ||||
|       PORT: 3001 | ||||
|       NODE_ENV: production | ||||
|       API_VERSION: v1 | ||||
|       CORS_ORIGIN: http://localhost:3000 | ||||
|       RATE_LIMIT_WINDOW_MS: 900000 | ||||
|       RATE_LIMIT_MAX: 100 | ||||
|       LOG_LEVEL: info | ||||
|       ENABLE_LOGGING: true | ||||
|       ENABLE_HSTS: true | ||||
|       TRUST_PROXY: true | ||||
|     ports: | ||||
|       - "3001:3001" | ||||
|     depends_on: | ||||
|       database: | ||||
|         condition: service_healthy | ||||
|     networks: | ||||
|       - patchmon-network | ||||
|     restart: unless-stopped | ||||
|     volumes: | ||||
|       - backend_logs:/app/logs | ||||
|  | ||||
|   # Frontend Service | ||||
|   frontend: | ||||
|     build: | ||||
|       context: ./frontend | ||||
|       dockerfile: Dockerfile | ||||
|     container_name: patchmon-frontend | ||||
|     environment: | ||||
|       PORT: 3000 | ||||
|       CORS_ORIGIN: http://localhost:3001 | ||||
|     ports: | ||||
|       - "3000:3000" | ||||
|     depends_on: | ||||
|       - backend | ||||
|     networks: | ||||
|       - patchmon-network | ||||
|     restart: unless-stopped | ||||
|  | ||||
| networks: | ||||
|   patchmon-network: | ||||
|     driver: bridge | ||||
|  | ||||
| volumes: | ||||
|   postgres_data: | ||||
|   backend_logs: | ||||
							
								
								
									
										16
									
								
								frontend/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								frontend/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| FROM node:lts-alpine | ||||
|  | ||||
| WORKDIR /app | ||||
|  | ||||
| COPY package*.json ./ | ||||
|  | ||||
| RUN npm install | ||||
|  | ||||
| COPY . . | ||||
|  | ||||
| RUN npm run build | ||||
| RUN npm install --only=production | ||||
|  | ||||
| EXPOSE 3000 | ||||
|  | ||||
| CMD ["node", "server.js"] | ||||
		Reference in New Issue
	
	Block a user