54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
import os
|
|
from pathlib import Path
|
|
from dotenv import load_dotenv
|
|
|
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
|
load_dotenv(BASE_DIR / ".env")
|
|
|
|
|
|
def _bool(name: str, default: bool = False) -> bool:
|
|
v = os.getenv(name)
|
|
if v is None:
|
|
return default
|
|
return v.lower() in ("1", "true", "yes", "on")
|
|
|
|
|
|
class Config:
|
|
SECRET_KEY = os.getenv("FLASK_SECRET_KEY", "dev-secret-change-me")
|
|
SQLALCHEMY_DATABASE_URI = os.getenv(
|
|
"DATABASE_URL", "postgresql+psycopg://mail:mail@localhost:5432/mail"
|
|
)
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
|
|
REDIS_URL = os.getenv("REDIS_URL", "redis://localhost:6379/0")
|
|
MEILI_URL = os.getenv("MEILI_URL", "http://localhost:7700")
|
|
MEILI_KEY = os.getenv("MEILI_KEY", "masterKey")
|
|
|
|
MAIL_SERVER_HOSTNAME = os.getenv("MAIL_SERVER_HOSTNAME", "mail.local")
|
|
MAIL_SERVER_IP = os.getenv("MAIL_SERVER_IP", "127.0.0.1")
|
|
|
|
IMAP_HOST = os.getenv("IMAP_HOST", "127.0.0.1")
|
|
IMAP_PORT = int(os.getenv("IMAP_PORT", "143"))
|
|
IMAP_PASSWORD = os.getenv("IMAP_PASSWORD", "")
|
|
SMTP_HOST = os.getenv("SMTP_HOST", "127.0.0.1")
|
|
SMTP_PORT = int(os.getenv("SMTP_PORT", "587"))
|
|
|
|
SEND_DEFER_SECONDS = int(os.getenv("SEND_DEFER_SECONDS", "30"))
|
|
DEFAULT_QUOTA_MB = int(os.getenv("DEFAULT_QUOTA_MB", "20480"))
|
|
TRASH_RETENTION_DAYS = int(os.getenv("TRASH_RETENTION_DAYS", "30"))
|
|
|
|
ELK_HOST = os.getenv("ELK_HOST", "")
|
|
ELK_PORT = int(os.getenv("ELK_PORT", "5140"))
|
|
ELK_PROTO = os.getenv("ELK_PROTO", "tcp")
|
|
|
|
TZ = os.getenv("TZ", "Europe/Moscow")
|
|
LOCALE = os.getenv("LOCALE", "ru_RU.UTF-8")
|
|
|
|
USE_MOCK_MAIL = _bool("USE_MOCK_MAIL", True)
|
|
|
|
# Comma-separated list of admin emails. Admins see /admin/* and the «Сервер» flyout.
|
|
ADMINS = os.getenv(
|
|
"ADMINS",
|
|
"admin@mail.local,admin@tempmail.kimchitogo.rest",
|
|
)
|