Files
kmtnflower/backend/app/config.py
T
2026-07-08 23:18:07 -07:00

55 lines
2.3 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
DOWNLOAD_TOKEN_MINUTES: int = 10 # short-lived signed download URLs
# 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()