Files
kmtnflower/backend/app/config.py
T

48 lines
1.8 KiB
Python

from pydantic_settings import BaseSettings
class Settings(BaseSettings):
DATABASE_URL: str = "postgresql+asyncpg://postgres:postgres@localhost:5432/kmountain"
CORS_ORIGINS: list[str] = ["http://localhost:4200", "http://localhost:3000"]
ENV: str = "development"
# Auth
ADMIN_USERNAME: str = ""
ADMIN_PASSWORD: str = ""
GOOGLE_CLIENT_ID: str = ""
GOOGLE_REDIRECT_URI: str = "http://localhost:4200"
JWT_SECRET_KEY: str = "change-me-in-production"
JWT_EXPIRE_MINUTES: int = 1440 # 24 hours
# Visitor stats
LOGS_DIR: str = "/logs"
GEOLITE2_DB_PATH: str = "/app/geo/GeoLite2-City.mmdb"
# Mobile build orchestration
MOBILE_BUILD_SSH_USER: str = "buildbot"
MOBILE_BUILD_SSH_PASSWORD: str = "buildbot"
MOBILE_BUILD_SSH_PORT: int = 22
MOBILE_BUILD_ANDROID_HOST: str = ""
MOBILE_BUILD_IOS_HOST: str = ""
MOBILE_BUILD_REMOTE_APP_DIR: str = "~/mobile_app"
MOBILE_BUILD_ANDROID_SCRIPT: str = "do_android_build.sh"
MOBILE_BUILD_IOS_SCRIPT: str = "do_ios_build.sh"
MOBILE_BUILD_UPLOAD_DIR: str = "/tmp/kmtn_mobile_build_uploads"
MOBILE_BUILD_ARTIFACT_DIR: str = "/tmp/kmtn_mobile_build_artifacts"
MOBILE_BUILD_ANDROID_ARTIFACT_GLOB: str = "~/mobile_app/build/app/outputs/bundle/release/*.aab"
MOBILE_BUILD_IOS_ARTIFACT_GLOB: str = "~/mobile_app/build/ios/ipa/*.ipa"
# Theme export
WEBSITE_URL: str = "https://kmountainflower.org"
THEME_JSON_PATH: str = "/app/theme.json"
STATIC_FILES_DIR: str = "/usr/share/nginx/html"
# Internal URL for fetching static files when they're not on the local
# filesystem (e.g. separate Docker/K8s containers). Falls back to
# WEBSITE_URL if not set.
STATIC_UPSTREAM_URL: str = ""
model_config = {"env_prefix": "KMTN_"}
settings = Settings()