2025-10-02 16:42:45 +09:00
|
|
|
version: "3.8"
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
# Node.js 백엔드
|
|
|
|
|
backend:
|
|
|
|
|
build:
|
|
|
|
|
context: ../../backend-node
|
|
|
|
|
dockerfile: ../docker/deploy/backend.Dockerfile
|
|
|
|
|
container_name: pms-backend-prod
|
|
|
|
|
restart: always
|
|
|
|
|
environment:
|
|
|
|
|
NODE_ENV: production
|
|
|
|
|
PORT: "3001"
|
|
|
|
|
HOST: 0.0.0.0
|
|
|
|
|
DATABASE_URL: postgresql://postgres:ph0909!!@39.117.244.52:11132/plm
|
|
|
|
|
JWT_SECRET: ilshin-plm-super-secret-jwt-key-2024
|
|
|
|
|
JWT_EXPIRES_IN: 24h
|
2025-10-24 10:37:02 +09:00
|
|
|
CORS_ORIGIN: https://v1.vexplor.com,https://api.vexplor.com
|
2025-10-02 16:42:45 +09:00
|
|
|
CORS_CREDENTIALS: "true"
|
|
|
|
|
LOG_LEVEL: info
|
2025-10-02 16:58:33 +09:00
|
|
|
ENCRYPTION_KEY: ilshin-plm-mail-encryption-key-32characters-2024-secure
|
2025-10-02 16:42:45 +09:00
|
|
|
volumes:
|
2025-10-16 10:47:24 +09:00
|
|
|
- backend_uploads:/app/uploads
|
|
|
|
|
- backend_data:/app/data
|
2025-10-02 16:42:45 +09:00
|
|
|
labels:
|
|
|
|
|
- traefik.enable=true
|
|
|
|
|
- traefik.http.routers.backend.rule=Host(`api.vexplor.com`)
|
|
|
|
|
- traefik.http.routers.backend.entrypoints=websecure,web
|
|
|
|
|
- traefik.http.routers.backend.tls=true
|
|
|
|
|
- traefik.http.routers.backend.tls.certresolver=le
|
|
|
|
|
- traefik.http.services.backend.loadbalancer.server.port=3001
|
|
|
|
|
|
|
|
|
|
# Next.js 프론트엔드
|
|
|
|
|
frontend:
|
|
|
|
|
build:
|
|
|
|
|
context: ../../frontend
|
|
|
|
|
dockerfile: ../docker/deploy/frontend.Dockerfile
|
|
|
|
|
args:
|
2025-10-02 17:28:52 +09:00
|
|
|
- NEXT_PUBLIC_API_URL=https://api.vexplor.com/api
|
2025-10-02 16:42:45 +09:00
|
|
|
container_name: pms-frontend-prod
|
|
|
|
|
restart: always
|
|
|
|
|
environment:
|
|
|
|
|
NODE_ENV: production
|
2025-10-02 17:28:52 +09:00
|
|
|
NEXT_PUBLIC_API_URL: https://api.vexplor.com/api
|
2025-10-02 16:42:45 +09:00
|
|
|
NEXT_TELEMETRY_DISABLED: "1"
|
|
|
|
|
PORT: "3000"
|
|
|
|
|
HOSTNAME: 0.0.0.0
|
|
|
|
|
volumes:
|
2025-10-16 10:47:24 +09:00
|
|
|
- frontend_data:/app/data
|
2025-10-02 16:42:45 +09:00
|
|
|
labels:
|
|
|
|
|
- traefik.enable=true
|
|
|
|
|
- traefik.http.routers.frontend.rule=Host(`v1.vexplor.com`)
|
|
|
|
|
- traefik.http.routers.frontend.entrypoints=websecure,web
|
|
|
|
|
- traefik.http.routers.frontend.tls=true
|
|
|
|
|
- traefik.http.routers.frontend.tls.certresolver=le
|
|
|
|
|
- traefik.http.services.frontend.loadbalancer.server.port=3000
|
|
|
|
|
|
2025-10-16 10:47:24 +09:00
|
|
|
volumes:
|
|
|
|
|
backend_uploads:
|
|
|
|
|
driver: local
|
|
|
|
|
backend_data:
|
|
|
|
|
driver: local
|
|
|
|
|
frontend_data:
|
|
|
|
|
driver: local
|
|
|
|
|
|
2025-10-02 16:42:45 +09:00
|
|
|
networks:
|
|
|
|
|
default:
|
|
|
|
|
name: toktork_server_default
|
|
|
|
|
external: true
|