v4.0.0: 회원·덱 API, 인증 UI, 프로필 및 레이아웃 통일
Express/SQLite API와 Docker 구성을 추가하고 로그인·덱 저장·공개 덱·관리자·프로필 화면을 구현했다. 결과 화면 저장 UX, 헤더 프로필, 애드센스용 app-shell 레이아웃(1280px) 및 문서를 반영했다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
51
docker-compose.prod.yml
Normal file
51
docker-compose.prod.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
# UADECK v4 프로덕션 스택 (NAS Docker)
|
||||
# 사용: docker compose -f docker-compose.prod.yml up -d --build
|
||||
#
|
||||
# 정적 파일(HTML, images, datas)은 호스트 볼륨 마운트 — 카드/이미지 추가 시 재빌드 불필요
|
||||
|
||||
services:
|
||||
uadeck-api:
|
||||
build: ./api
|
||||
container_name: uadeck-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:
|
||||
- uadeck-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
|
||||
|
||||
uadeck-web:
|
||||
image: nginx:alpine
|
||||
container_name: uadeck-web
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${WEB_PORT:-8080}:80"
|
||||
volumes:
|
||||
- ./:/usr/share/nginx/html:ro
|
||||
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
depends_on:
|
||||
uadeck-api:
|
||||
condition: service_healthy
|
||||
|
||||
volumes:
|
||||
uadeck-data:
|
||||
Reference in New Issue
Block a user