Files
M-Project/deploy/docker-compose.synology.yml
Hyungi Ahn eebeaf1008 feat: NAS(Synology) 배포 도구 및 마이그레이션 추가
- deploy/ 폴더: docker-compose.synology.yml, deploy.sh, package.sh
- NAS 배포 패키지 생성/전송/설치 자동화 스크립트
- 삭제 로그 테이블 마이그레이션 (018_add_deletion_log_table.sql)
- 사진 필드 마이그레이션 유틸리티 (migrate_add_photo_fields.py)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:41:32 +09:00

81 lines
1.8 KiB
YAML

version: '3.8'
services:
# PostgreSQL 데이터베이스
db:
image: postgres:15-alpine
container_name: m-project-db
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-mproject}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB:-mproject}
TZ: Asia/Seoul
PGTZ: Asia/Seoul
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-db:/docker-entrypoint-initdb.d
ports:
- "16432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mproject}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- m-project-network
# FastAPI 백엔드
backend:
build: ./backend
container_name: m-project-backend
restart: unless-stopped
environment:
DATABASE_URL: postgresql://${POSTGRES_USER:-mproject}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-mproject}
SECRET_KEY: ${SECRET_KEY}
ALGORITHM: HS256
ACCESS_TOKEN_EXPIRE_MINUTES: 10080
ADMIN_USERNAME: ${ADMIN_USERNAME:-hyungi}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
TZ: Asia/Seoul
volumes:
- uploads:/app/uploads
ports:
- "16000:8000"
depends_on:
db:
condition: service_healthy
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
- m-project-network
# Nginx 프론트엔드
nginx:
build: ./nginx
container_name: m-project-nginx
restart: unless-stopped
ports:
- "16080:80"
volumes:
- ./frontend:/usr/share/nginx/html:ro
- uploads:/app/uploads
depends_on:
- backend
networks:
- m-project-network
volumes:
postgres_data:
driver: local
uploads:
driver: local
networks:
m-project-network:
driver: bridge
name: m-project-network