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 — matches the user created in build/Dockerfile MOBILE_BUILD_SSH_USER: str = "vscode" MOBILE_BUILD_SSH_PASSWORD: str = "123" MOBILE_BUILD_SSH_PORT: int = 22 MOBILE_BUILD_ANDROID_HOST: str = "" MOBILE_BUILD_IOS_HOST: str = "" MOBILE_BUILD_REMOTE_APP_DIR: str = "/home/vscode/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 = "/home/vscode/mobile_app/build/app/outputs/bundle/release/*.aab" MOBILE_BUILD_IOS_ARTIFACT_GLOB: str = "/home/vscode/mobile_app/build/ios/ipa/*.ipa" # Flutter container-based Android build (SSH directly to build service over Docker network) FLUTTER_BUILD_HOST: str = "build" # docker-compose service name FLUTTER_PROJECT_REPO_URL: str = "http://192.168.1.74:30008/kfj001/kryz-go-flutter.git" FLUTTER_PROJECT_DIR: str = "/home/vscode/kryz-go-flutter" FLUTTER_APK_GLOB: str = "/home/vscode/kryz-go-flutter/build/app/outputs/flutter-apk/app-*.apk" # 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()