diff --git a/.env.example b/.env.example index 388866b..6c10111 100644 --- a/.env.example +++ b/.env.example @@ -110,5 +110,8 @@ SUPABASE_SERVICE_KEY= # admin upload 토큰 TTL (초). default 1800 = 30분 UPLOAD_TOKEN_TTL_SEC=1800 -# 로컬 개발: ./data/packs / NAS 운영: /volume1/docker/webpage/media/packs +# 호스트 마운트 경로 (로컬 ./data/packs, NAS /volume1/docker/webpage/media/packs) PACK_DATA_PATH=./data/packs + +# 컨테이너 내부 PACK_BASE_DIR (routes.py가 파일 저장 시 사용. docker-compose volume의 컨테이너 측 경로와 반드시 일치) +PACK_BASE_DIR=/app/data/packs diff --git a/docker-compose.yml b/docker-compose.yml index 708c2d9..260830d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -191,8 +191,9 @@ services: - SUPABASE_URL=${SUPABASE_URL:-} - SUPABASE_SERVICE_KEY=${SUPABASE_SERVICE_KEY:-} - UPLOAD_TOKEN_TTL_SEC=${UPLOAD_TOKEN_TTL_SEC:-1800} + - PACK_BASE_DIR=${PACK_BASE_DIR:-/app/data/packs} volumes: - - ${PACK_DATA_PATH:-./data/packs}:/app/data/packs + - ${PACK_DATA_PATH:-./data/packs}:${PACK_BASE_DIR:-/app/data/packs} healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] interval: 30s diff --git a/packs-lab/app/routes.py b/packs-lab/app/routes.py index 65cacbf..dd52bd2 100644 --- a/packs-lab/app/routes.py +++ b/packs-lab/app/routes.py @@ -31,7 +31,7 @@ from .models import ( logger = logging.getLogger("packs-lab.routes") router = APIRouter(prefix="/api/packs") -PACK_BASE_DIR = Path("/volume1/docker/webpage/media/packs") +PACK_BASE_DIR = Path(os.getenv("PACK_BASE_DIR", "/app/data/packs")) ALLOWED_EXT = {"pdf", "zip", "mp4", "mov", "mkv", "wav", "m4a", "mp3", "png", "jpg", "jpeg", "webp", "prj"} MAX_BYTES = 5 * 1024 * 1024 * 1024 # 5GB SAFE_FILENAME = re.compile(r"^[\w가-힣\-\.\(\)\s]+$")