40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
import os
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
class Config:
|
|
# Database
|
|
DATABASE_URL: str = os.getenv("DATABASE_URL", "sqlite:///./chepuhagram.db")
|
|
|
|
# Security
|
|
JWT_KEY: str = os.getenv("JWT_KEY", "")
|
|
if not JWT_KEY:
|
|
raise RuntimeError("JWT_KEY environment variable not set")
|
|
|
|
# Firebase
|
|
FIREBASE_CREDENTIALS_PATH: str = os.getenv("FIREBASE_CREDENTIALS_PATH", "chepuhagram-6ca5d-firebase-adminsdk-fbsvc-cf8a5ad2f3.json")
|
|
|
|
# Google Cloud / Google Drive Integration
|
|
# Путь к скачанному JSON-ключу вашего сервисного аккаунта Google
|
|
GOOGLE_APPLICATION_CREDENTIALS: str = os.getenv("GOOGLE_APPLICATION_CREDENTIALS", "google-credentials.json")
|
|
GOOGLE_DRIVE_FOLDER_ID: str = os.getenv("GOOGLE_DRIVE_FOLDER_ID", None)
|
|
GOOGLE_REFRESH_TOKEN: str = os.getenv("GOOGLE_REFRESH_TOKEN", None)
|
|
GOOGLE_CLIENT_ID: str = os.getenv("GOOGLE_CLIENT_ID", None)
|
|
GOOGLE_CLIENT_SECRET: str = os.getenv("GOOGLE_CLIENT_SECRET", None)
|
|
|
|
|
|
# Server
|
|
HOST: str = os.getenv("HOST", "0.0.0.0")
|
|
PORT: int = int(os.getenv("PORT", "8587"))
|
|
|
|
# Media Storage & Quotas (Google Drive)
|
|
# 10 ГБ лимита на пользователя (при превышении удаляются старые медиафайлы)
|
|
HOME_USER_QUOTA_BYTES: int = int(os.getenv("HOME_USER_QUOTA_BYTES", str(10 * 1024 * 1024 * 1024)))
|
|
# Максимальный размер одного загружаемого файла (500 МБ)
|
|
MEDIA_UPLOAD_MAX_BYTES: int = int(os.getenv("MEDIA_UPLOAD_MAX_BYTES", str(500 * 1024 * 1024)))
|
|
|
|
# CORS
|
|
ALLOWED_ORIGINS: list = os.getenv("ALLOWED_ORIGINS", "http://localhost:3000,http://127.0.0.1:3000").split(",")
|
|
|
|
config = Config() |