59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Enhanced Configuration with Database Settings
|
|
|
|
import os
|
|
from dotenv import load_dotenv
|
|
|
|
# Load environment variables from .env file
|
|
load_dotenv()
|
|
|
|
class Config:
|
|
# Flask/Quart Settings
|
|
DEBUG = os.getenv('DEBUG', 'False').lower() == 'true'
|
|
SECRET_KEY = os.getenv('SECRET_KEY', 'dev-secret-key-change-in-production')
|
|
|
|
# Server Settings
|
|
APP_HOST = os.getenv('APP_HOST', '0.0.0.0')
|
|
APP_PORT = int(os.getenv('APP_PORT', '5000'))
|
|
|
|
# Database Settings
|
|
DB_HOST = os.getenv('DB_HOST', 'localhost')
|
|
DB_PORT = int(os.getenv('DB_PORT', '3306'))
|
|
DB_USER = os.getenv('DB_USER', 'hersel_user')
|
|
DB_PASSWORD = os.getenv('DB_PASSWORD', 'your_password_here')
|
|
DB_NAME = os.getenv('DB_NAME', 'hersel_portfolio')
|
|
|
|
# Session Settings
|
|
SESSION_PERMANENT = False
|
|
SESSION_TYPE = 'filesystem'
|
|
PERMANENT_SESSION_LIFETIME = 60 * 60 * 24 * 7 # 7 days
|
|
|
|
# Upload Settings
|
|
UPLOAD_FOLDER = os.getenv('UPLOAD_FOLDER', 'static/uploads')
|
|
MAX_CONTENT_LENGTH = int(os.getenv('MAX_CONTENT_LENGTH', '16777216')) # 16MB
|
|
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'webp', 'pdf', 'txt', 'doc', 'docx'}
|
|
|
|
# Email Settings (for future use)
|
|
MAIL_SERVER = os.getenv('MAIL_SERVER', 'localhost')
|
|
MAIL_PORT = int(os.getenv('MAIL_PORT', '587'))
|
|
MAIL_USE_TLS = os.getenv('MAIL_USE_TLS', 'True').lower() == 'true'
|
|
MAIL_USERNAME = os.getenv('MAIL_USERNAME', '')
|
|
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD', '')
|
|
|
|
# Security Settings
|
|
WTF_CSRF_ENABLED = True
|
|
WTF_CSRF_TIME_LIMIT = None
|
|
|
|
# Pagination
|
|
POSTS_PER_PAGE = int(os.getenv('POSTS_PER_PAGE', '10'))
|
|
PROJECTS_PER_PAGE = int(os.getenv('PROJECTS_PER_PAGE', '12'))
|
|
|
|
# Cache Settings
|
|
CACHE_TYPE = os.getenv('CACHE_TYPE', 'simple')
|
|
CACHE_DEFAULT_TIMEOUT = int(os.getenv('CACHE_DEFAULT_TIMEOUT', '300'))
|
|
|
|
# Create config instance
|
|
config = Config()
|