feat: scaffold FastAPI app, config, and SQLite models
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
from pathlib import Path
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
model_config = SettingsConfigDict(
|
||||
env_file=".env",
|
||||
env_file_encoding="utf-8",
|
||||
populate_by_name=True,
|
||||
extra="ignore",
|
||||
)
|
||||
|
||||
data_dir: Path = Field(default=Path("/data"), alias="DATA_DIR")
|
||||
admin_password: str = Field(default="changeme", alias="ADMIN_PASSWORD")
|
||||
secret_key: str = Field(default="dev-secret-change-me", alias="SECRET_KEY")
|
||||
max_upload_mb: int = Field(default=200, alias="MAX_UPLOAD_MB")
|
||||
rate_limit_per_second: int = Field(default=2, alias="RATE_LIMIT_PER_SECOND")
|
||||
jwt_expire_hours: int = Field(default=12, alias="JWT_EXPIRE_HOURS")
|
||||
host: str = Field(default="0.0.0.0", alias="HOST")
|
||||
port: int = Field(default=8080, alias="PORT")
|
||||
|
||||
@property
|
||||
def db_url(self) -> str:
|
||||
return f"sqlite:///{self.data_dir / 'mincedpad.db'}"
|
||||
|
||||
@property
|
||||
def uploads_dir(self) -> Path:
|
||||
return self.data_dir / "uploads"
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user