54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
"""
|
|
애플리케이션 설정
|
|
"""
|
|
from pydantic_settings import BaseSettings
|
|
from typing import List
|
|
import os
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""애플리케이션 설정 클래스"""
|
|
|
|
# 기본 설정
|
|
APP_NAME: str = "Document Server"
|
|
DEBUG: bool = True
|
|
VERSION: str = "0.1.0"
|
|
|
|
# 데이터베이스 설정
|
|
DATABASE_URL: str = "postgresql+asyncpg://docuser:docpass@localhost:24101/document_db"
|
|
|
|
# Redis 설정
|
|
REDIS_URL: str = "redis://localhost:24103/0"
|
|
|
|
# JWT 설정
|
|
SECRET_KEY: str = "your-secret-key-change-this-in-production"
|
|
ALGORITHM: str = "HS256"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
|
|
REFRESH_TOKEN_EXPIRE_DAYS: int = 7
|
|
|
|
# CORS 설정
|
|
ALLOWED_HOSTS: List[str] = ["http://localhost:24100", "http://127.0.0.1:24100"]
|
|
ALLOWED_ORIGINS: List[str] = ["http://localhost:24100", "http://127.0.0.1:24100"]
|
|
|
|
# 파일 업로드 설정
|
|
UPLOAD_DIR: str = "uploads"
|
|
MAX_FILE_SIZE: int = 100 * 1024 * 1024 # 100MB
|
|
ALLOWED_EXTENSIONS: List[str] = [".html", ".htm", ".pdf"]
|
|
|
|
# 관리자 계정 설정 (초기 설정용)
|
|
ADMIN_EMAIL: str = "admin@document-server.local"
|
|
ADMIN_PASSWORD: str = "admin123" # 프로덕션에서는 반드시 변경
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
case_sensitive = True
|
|
|
|
|
|
# 설정 인스턴스 생성
|
|
settings = Settings()
|
|
|
|
# 업로드 디렉토리 생성
|
|
os.makedirs(settings.UPLOAD_DIR, exist_ok=True)
|
|
os.makedirs(f"{settings.UPLOAD_DIR}/documents", exist_ok=True)
|
|
os.makedirs(f"{settings.UPLOAD_DIR}/thumbnails", exist_ok=True)
|