41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
import os
|
|
from pathlib import Path
|
|
|
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
|
|
|
|
|
class Config:
|
|
ENV_NAME = os.getenv('FLASK_ENV', 'development')
|
|
SECRET_KEY = os.getenv('SECRET_KEY', 'dev-secret-key')
|
|
SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL', f"sqlite:///{BASE_DIR / 'instance' / 'expense_monitor.db'}")
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
APP_HOST = os.getenv('APP_HOST', '127.0.0.1')
|
|
APP_PORT = int(os.getenv('APP_PORT', '5000'))
|
|
DEFAULT_MAX_UPLOAD_MB = int(os.getenv('MAX_CONTENT_LENGTH_MB', '10'))
|
|
MAX_CONTENT_LENGTH = DEFAULT_MAX_UPLOAD_MB * 1024 * 1024
|
|
REGISTRATION_ENABLED = os.getenv('REGISTRATION_ENABLED', 'false').lower() == 'true'
|
|
MAIL_SERVER = os.getenv('MAIL_SERVER', '')
|
|
MAIL_PORT = int(os.getenv('MAIL_PORT', '465'))
|
|
MAIL_USE_TLS = os.getenv('MAIL_USE_TLS', 'false').lower() == 'true'
|
|
MAIL_USE_SSL = os.getenv('MAIL_USE_SSL', 'true').lower() == 'true'
|
|
MAIL_USERNAME = os.getenv('MAIL_USERNAME', '')
|
|
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD', '')
|
|
MAIL_DEFAULT_SENDER = os.getenv('MAIL_DEFAULT_SENDER', 'no-reply@example.com')
|
|
REMEMBER_COOKIE_HTTPONLY = True
|
|
REMEMBER_COOKIE_SAMESITE = 'Lax'
|
|
SESSION_COOKIE_HTTPONLY = True
|
|
SESSION_COOKIE_SAMESITE = 'Lax'
|
|
SESSION_COOKIE_SECURE = os.getenv('FLASK_ENV', 'development') != 'development'
|
|
PREFERRED_URL_SCHEME = 'https' if SESSION_COOKIE_SECURE else 'http'
|
|
LANGUAGES = ['pl', 'en']
|
|
DEFAULT_LANGUAGE = 'pl'
|
|
UPLOAD_EXTENSIONS = {'png', 'jpg', 'jpeg', 'heic', 'pdf'}
|
|
|
|
|
|
class TestConfig(Config):
|
|
TESTING = True
|
|
WTF_CSRF_ENABLED = False
|
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'
|
|
SESSION_COOKIE_SECURE = False
|
|
LOGIN_DISABLED = False
|