fix: make logfire disabled by default

Initially started by
https://github.com/learnhouse/learnhouse/pull/496
This commit is contained in:
swve 2025-08-06 14:45:08 +02:00
parent b425cd2984
commit 05abc93017
4 changed files with 20 additions and 4 deletions

View file

@ -37,8 +37,13 @@ app.add_middleware(
allow_headers=["*"],
)
logfire.configure(console=False, service_name=learnhouse_config.site_name,)
logfire.instrument_fastapi(app)
# Only enable logfire if explicitly configured
if learnhouse_config.general_config.logfire_enabled:
logfire.configure(console=False, service_name=learnhouse_config.site_name,)
logfire.instrument_fastapi(app)
# Instrument database after logfire is configured
from src.core.events.database import engine
logfire.instrument_sqlalchemy(engine=engine)
# Gzip Middleware (will add brotli later)
app.add_middleware(GZipMiddleware, minimum_size=1000)

View file

@ -12,6 +12,7 @@ class CookieConfig(BaseModel):
class GeneralConfig(BaseModel):
development_mode: bool
install_mode: bool
logfire_enabled: bool
class SecurityConfig(BaseModel):
@ -118,6 +119,13 @@ def get_learnhouse_config() -> LearnHouseConfig:
else yaml_config.get("general", {}).get("install_mode")
)
# Logfire config
env_logfire_enabled = os.environ.get("LEARNHOUSE_LOGFIRE_ENABLED", "None")
logfire_enabled = (
env_logfire_enabled.lower() == "true" if env_logfire_enabled != "None"
else yaml_config.get("general", {}).get("logfire_enabled", False)
)
# Security Config
env_auth_jwt_secret_key = os.environ.get("LEARNHOUSE_AUTH_JWT_SECRET_KEY")
auth_jwt_secret_key = env_auth_jwt_secret_key or yaml_config.get(
@ -295,7 +303,9 @@ def get_learnhouse_config() -> LearnHouseConfig:
site_description=site_description,
contact_email=contact_email,
general_config=GeneralConfig(
development_mode=bool(development_mode), install_mode=bool(install_mode)
development_mode=bool(development_mode),
install_mode=bool(install_mode),
logfire_enabled=bool(logfire_enabled)
),
hosting_config=hosting_config,
database_config=database_config,

View file

@ -7,6 +7,7 @@ contact_email: hi@learnhouse.app
general:
development_mode: true
install_mode: true
logfire_enabled: false
security:
auth_jwt_secret_key: secret

View file

@ -58,7 +58,7 @@ else:
# Only create tables if not in test mode (tests will handle this themselves)
if not is_testing:
SQLModel.metadata.create_all(engine)
logfire.instrument_sqlalchemy(engine=engine)
# Note: logfire instrumentation will be handled in app.py after configuration
async def connect_to_db(app: FastAPI):
app.db_engine = engine # type: ignore