✨ 주요 변경사항: - 단일 docker-compose.yml로 통합 (로컬/시놀로지 환경 지원) - 시놀로지 볼륨 매핑 설정 (volume1: 이미지, volume3: 데이터) - 통합 배포 가이드 및 자동 배포 스크립트 추가 - 완전한 Memos 스타일 워크플로우 구현 🎯 새로운 기능: - 📝 메모 작성 (upload.html) - 이미지 업로드 지원 - 📥 수신함 (inbox.html) - 메모 편집 및 Todo/보드 변환 - ✅ Todo 목록 (todo-list.html) - 오늘 할 일 관리 - 📋 보드 (board.html) - 프로젝트 관리, 접기/펼치기, 이미지 지원 - 📚 아카이브 (archive.html) - 완료된 보드 보관 - 🔐 초기 설정 화면 - 관리자 계정 생성 🔧 기술적 개선: - 이미지 업로드/편집 완전 지원 - 반응형 디자인 및 모바일 최적화 - 보드 완료 후 자동 숨김 처리 - 메모 편집 시 제목 필드 제거 - 테스트 로그인 버튼 제거 (프로덕션 준비) - 과거 코드 정리 (TodoService, CalendarSyncService 등) 📦 배포 관련: - env.synology.example - 시놀로지 환경 설정 템플릿 - SYNOLOGY_DEPLOYMENT_GUIDE.md - 상세한 배포 가이드 - deploy-synology.sh - 원클릭 자동 배포 스크립트 - Nginx 정적 파일 서빙 및 이미지 프록시 설정 🗑️ 정리된 파일: - 사용하지 않는 HTML 페이지들 (dashboard, calendar, checklist 등) - 복잡한 통합 서비스들 (integrations 폴더) - 중복된 시놀로지 설정 파일들
84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
services:
|
|
frontend:
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "${FRONTEND_PORT:-4000}:80"
|
|
depends_on:
|
|
- backend
|
|
restart: unless-stopped
|
|
networks:
|
|
- todo-network
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "${BACKEND_PORT:-9000}:9000"
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
environment:
|
|
- DATABASE_URL=postgresql+asyncpg://todo_user:${POSTGRES_PASSWORD:-todo_password}@database:5432/todo_db
|
|
- SECRET_KEY=${SECRET_KEY:-your-secret-key-change-this-in-production}
|
|
- DEBUG=${DEBUG:-false}
|
|
- CORS_ORIGINS=${CORS_ORIGINS:-["http://localhost:4000", "http://127.0.0.1:4000"]}
|
|
# Synology MailPlus 통합 설정 (선택사항)
|
|
- SYNOLOGY_MAIL_SERVER=${SYNOLOGY_MAIL_SERVER:-}
|
|
- SYNOLOGY_MAIL_USERNAME=${SYNOLOGY_MAIL_USERNAME:-}
|
|
- SYNOLOGY_MAIL_PASSWORD=${SYNOLOGY_MAIL_PASSWORD:-}
|
|
- ENABLE_MAIL_MONITORING=${ENABLE_MAIL_MONITORING:-false}
|
|
- MAIL_CHECK_INTERVAL=${MAIL_CHECK_INTERVAL:-300}
|
|
- TODO_KEYWORDS=${TODO_KEYWORDS:-todo,할일,task}
|
|
- ATTACHMENTS_PATH=/data/uploads
|
|
volumes:
|
|
# 시놀로지 볼륨 매핑
|
|
- ${SYNOLOGY_UPLOADS_PATH:-/volume1/todo-project/uploads}:/data/uploads
|
|
- ${SYNOLOGY_CONFIG_PATH:-/volume3/docker/todo-project/config}:/app/config
|
|
# 로컬 개발용 (시놀로지에서는 제거)
|
|
- ./backend/src:/app/src
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:9000/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
networks:
|
|
- todo-network
|
|
|
|
database:
|
|
image: postgres:15-alpine
|
|
ports:
|
|
- "${DATABASE_PORT:-5432}:5432"
|
|
environment:
|
|
- POSTGRES_USER=${POSTGRES_USER:-todo_user}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-todo_password}
|
|
- POSTGRES_DB=${POSTGRES_DB:-todo_db}
|
|
volumes:
|
|
# 시놀로지 볼륨 매핑
|
|
- ${SYNOLOGY_DB_PATH:-/volume3/docker/todo-project/postgres}:/var/lib/postgresql/data
|
|
- ${SYNOLOGY_CONFIG_PATH:-/volume3/docker/todo-project/config}/migrations:/docker-entrypoint-initdb.d
|
|
# 로컬 개발용 (시놀로지에서는 제거)
|
|
- postgres_data:/var/lib/postgresql/data
|
|
- ./backend/migrations:/docker-entrypoint-initdb.d
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-todo_user} -d ${POSTGRES_DB:-todo_db}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 30s
|
|
networks:
|
|
- todo-network
|
|
|
|
networks:
|
|
todo-network:
|
|
driver: bridge
|
|
|
|
# 로컬 개발용 볼륨 (시놀로지에서는 사용하지 않음)
|
|
volumes:
|
|
postgres_data:
|
|
todo_uploads: |