Major changes: - Full UI redesign with Vuetify 3 (dark theme, modern components) - Sidebar navigation with gradient logo - Redesigned player controls with Material Design icons - New room cards, track lists, and filter UI with chips - Modern auth pages with centered cards Configuration improvements: - Centralized all settings in root .env file - Removed redundant backend/.env and frontend/.env files - Increased file upload limit to 100MB (nginx + backend) - Added build args for Vite environment variables - Frontend now uses relative paths (better for domain deployment) UI Components updated: - App.vue: v-navigation-drawer with sidebar - MiniPlayer: v-footer with modern controls - Queue: v-list with styled items - RoomView: improved filters with clickable chips - All views: Vuetify cards, buttons, text fields 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
34 lines
861 B
Python
34 lines
861 B
Python
from pydantic_settings import BaseSettings
|
|
from functools import lru_cache
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
# Database
|
|
database_url: str = "postgresql://postgres:postgres@localhost:5432/enigfm"
|
|
|
|
# JWT
|
|
secret_key: str = "your-secret-key-change-in-production"
|
|
algorithm: str = "HS256"
|
|
access_token_expire_minutes: int = 60 * 24 * 7 # 7 days
|
|
|
|
# S3 (FirstVDS)
|
|
s3_endpoint_url: str = ""
|
|
s3_access_key: str = ""
|
|
s3_secret_key: str = ""
|
|
s3_bucket_name: str = "enigfm"
|
|
s3_region: str = "ru-1"
|
|
|
|
# Limits
|
|
max_file_size_mb: int = 10
|
|
max_storage_gb: int = 90
|
|
max_room_participants: int = 50
|
|
|
|
class Config:
|
|
# env_file не нужен - переменные передаются через docker-compose
|
|
extra = "ignore"
|
|
|
|
|
|
@lru_cache()
|
|
def get_settings() -> Settings:
|
|
return Settings()
|