Files
uniare.sori.studio/docker-compose.prod.yml
zenn a281d731a1 v4.0.0: UNIARE 리브랜딩·레이아웃·덱 UX 개선
제품명·헤더 로고 이미지 통일, 덱 이름 변경·조회 수 제거, 썸네일 홀드 미리보기를 누르는 동안만 표시하도록 수정하고 Tailwind CSS를 재빌드했다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 11:19:07 +09:00

68 lines
2.3 KiB
YAML

# UNIARE v4 프로덕션 스택 (NAS Docker)
# 사용: docker compose -f docker-compose.prod.yml up -d --build
#
# 정적 파일(HTML, images, datas)은 필요한 경로만 read-only 마운트 — 카드/이미지 추가 시 재빌드 불필요
services:
uniare-api:
build: ./api
container_name: uniare-api
restart: unless-stopped
expose:
- "3000"
environment:
- PORT=3000
- JWT_SECRET=${JWT_SECRET}
- JWT_EXPIRES=${JWT_EXPIRES:-7d}
- ADMIN_EMAIL=${ADMIN_EMAIL}
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
- ADMIN_USERNAME=${ADMIN_USERNAME:-admin}
- CORS_ORIGINS=${CORS_ORIGINS:-*}
- PREVIEWS_PATH=/data/previews
- AVATARS_PATH=/data/avatars
- DB_PATH=/data/uadeck.db
- DATAS_PATH=/datas
volumes:
- uniare-data:/data
- ./datas:/datas:ro
- ./api/data/previews:/data/previews
- ./api/data/avatars:/data/avatars
healthcheck:
test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:3000/api/v1/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
uniare-web:
build:
context: .
dockerfile: nginx/Dockerfile
image: uniare-web:latest
container_name: uniare-web
restart: unless-stopped
ports:
- "${WEB_PORT:-44082}:80"
volumes:
- ./index.html:/usr/share/nginx/html/index.html:ro
- ./cardList.html:/usr/share/nginx/html/cardList.html:ro
- ./result.html:/usr/share/nginx/html/result.html:ro
- ./login.html:/usr/share/nginx/html/login.html:ro
- ./signup.html:/usr/share/nginx/html/signup.html:ro
- ./deckHistory.html:/usr/share/nginx/html/deckHistory.html:ro
- ./preset.html:/usr/share/nginx/html/preset.html:ro
- ./profile.html:/usr/share/nginx/html/profile.html:ro
- ./admin.html:/usr/share/nginx/html/admin.html:ro
- ./favicon.ico:/usr/share/nginx/html/favicon.ico:ro
- ./script:/usr/share/nginx/html/script:ro
- ./style:/usr/share/nginx/html/style:ro
- ./i18n:/usr/share/nginx/html/i18n:ro
- ./datas:/usr/share/nginx/html/datas:ro
- ./images:/usr/share/nginx/html/images:ro
depends_on:
uniare-api:
condition: service_healthy
volumes:
uniare-data: