Add initial project structure with Docker, CI, and FastAPI setup
CI / lint-test-build (push) Failing after 8m23s

- Create Dockerfile and docker-compose.yml for containerization
- Add CI configuration for linting and testing
- Implement FastAPI application with health check routes
- Set up database schema using DuckDB
- Include environment configuration and secrets management
- Add README with project objectives and key features
- Implement logging setup and configuration
- Create initial tests for health route
- Add HTML templates for web interface
This commit is contained in:
2026-06-01 09:15:38 +02:00
commit f3f369ad6b
23 changed files with 585 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
from __future__ import annotations
from functools import lru_cache
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", extra="ignore")
app_env: str = Field(default="dev", alias="APP_ENV")
app_host: str = Field(default="0.0.0.0", alias="APP_HOST")
app_port: int = Field(default=8000, alias="APP_PORT")
log_level: str = Field(default="INFO", alias="LOG_LEVEL")
log_json: bool = Field(default=True, alias="LOG_JSON")
duckdb_path: Path = Field(default=Path("./data/arbitrade.duckdb"), alias="DUCKDB_PATH")
fernet_key: str | None = Field(default=None, alias="FERNET_KEY")
@lru_cache(maxsize=1)
def get_settings() -> Settings:
return Settings()