44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
"""应用配置
|
||
|
||
从项目根目录的 .env 文件加载配置(若存在)。
|
||
API_KEY 留空表示不启用写操作鉴权(适用于纯内网环境)。
|
||
"""
|
||
|
||
import os
|
||
from pathlib import Path
|
||
|
||
from dotenv import load_dotenv
|
||
|
||
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
||
load_dotenv(BASE_DIR / ".env")
|
||
|
||
|
||
class Settings:
|
||
"""应用配置项"""
|
||
|
||
APP_NAME: str = os.getenv("APP_NAME", "VPS 资产管理系统")
|
||
# 写操作(POST/PUT/DELETE)鉴权密钥;留空则不校验
|
||
API_KEY: str = os.getenv("API_KEY", "")
|
||
# Agent 上报鉴权密钥;配置后 Agent 上报需携带 X-Agent-Key
|
||
AGENT_KEY: str = os.getenv("AGENT_KEY", "")
|
||
# 凭证加密主密钥(Fernet);生成:python -c 'from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())'
|
||
MASTER_KEY: str = os.getenv("MASTER_KEY", "")
|
||
|
||
# ---- 通知渠道:Telegram ----
|
||
TELEGRAM_BOT_TOKEN: str = os.getenv("TELEGRAM_BOT_TOKEN", "")
|
||
TELEGRAM_CHAT_ID: str = os.getenv("TELEGRAM_CHAT_ID", "")
|
||
|
||
# ---- 通知渠道:邮件(SMTP)----
|
||
SMTP_HOST: str = os.getenv("SMTP_HOST", "")
|
||
SMTP_PORT: int = int(os.getenv("SMTP_PORT", "465"))
|
||
SMTP_USER: str = os.getenv("SMTP_USER", "")
|
||
SMTP_PASSWORD: str = os.getenv("SMTP_PASSWORD", "")
|
||
SMTP_FROM: str = os.getenv("SMTP_FROM", "")
|
||
SMTP_TO: str = os.getenv("SMTP_TO", "")
|
||
|
||
# ---- 续费提醒 ----
|
||
RENEWAL_THRESHOLD_DAYS: int = int(os.getenv("RENEWAL_THRESHOLD_DAYS", "30"))
|
||
|
||
|
||
settings = Settings()
|