mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-09-22 04:50:46 +02:00
124 lines
No EOL
6.3 KiB
YAML
124 lines
No EOL
6.3 KiB
YAML
services:
|
|
web:
|
|
# image: mwisnowski/mtg-python-deckbuilder:2.2.7-amd64 # Use specific build for amd64
|
|
# image: mwisnowski/mtg-python-deckbuilder:2.2.7-arm64 # use specific build for arm64
|
|
image: mwisnowski/mtg-python-deckbuilder:latest
|
|
container_name: mtg-deckbuilder-web
|
|
ports:
|
|
- "8080:8080" # Host:Container — open http://localhost:8080
|
|
environment:
|
|
PYTHONUNBUFFERED: "1"
|
|
TERM: "xterm-256color"
|
|
DEBIAN_FRONTEND: "noninteractive"
|
|
# ------------------------------------------------------------------
|
|
# Core UI Feature Toggles
|
|
# ------------------------------------------------------------------
|
|
SHOW_LOGS: "1" # 1=enable /logs page; 0=hide
|
|
SHOW_SETUP: "1" # 1=show Setup/Tagging card; 0=hide
|
|
SHOW_DIAGNOSTICS: "1" # 1=enable /diagnostics & /diagnostics/perf
|
|
ENABLE_PWA: "0" # 1=serve manifest/service worker (experimental)
|
|
ENABLE_THEMES: "1" # 1=expose theme selector; 0=hide
|
|
ENABLE_PRESETS: "0" # 1=show presets section
|
|
WEB_VIRTUALIZE: "1" # 1=enable list virtualization in Step 5
|
|
ALLOW_MUST_HAVES: "1" # Include/Exclude feature enable
|
|
|
|
# ------------------------------------------------------------------
|
|
# Random Build (Alpha) Feature Flags
|
|
# ------------------------------------------------------------------
|
|
RANDOM_MODES: "0" # 1=backend random build endpoints
|
|
RANDOM_UI: "0" # 1=UI Surprise/Reroll controls
|
|
RANDOM_MAX_ATTEMPTS: "5" # Retry cap for constrained random builds
|
|
RANDOM_TIMEOUT_MS: "5000" # Per-attempt timeout (ms)
|
|
|
|
# Theming
|
|
THEME: "system" # system|light|dark default theme
|
|
|
|
# ------------------------------------------------------------------
|
|
# Setup / Tagging / Catalog
|
|
# ------------------------------------------------------------------
|
|
WEB_AUTO_SETUP: "1" # Auto-run setup/tagging on demand
|
|
WEB_AUTO_REFRESH_DAYS: "7" # Refresh card data if stale (days; 0=never)
|
|
WEB_TAG_PARALLEL: "1" # Parallel tag extraction on
|
|
WEB_TAG_WORKERS: "4" # Worker count (CPU bound; tune as needed)
|
|
THEME_CATALOG_MODE: "merge" # Phase B merged theme builder
|
|
THEME_YAML_FAST_SKIP: "0" # 1=allow skipping YAML export on fast path (default 0 = always export)
|
|
WEB_AUTO_ENFORCE: "0" # 1=auto compliance JSON export after builds
|
|
WEB_CUSTOM_EXPORT_BASE: "" # Optional export base override
|
|
APP_VERSION: "v2.2.10" # Displayed in footer/health
|
|
|
|
# ------------------------------------------------------------------
|
|
# Misc Land Selection Tuning (Step 7)
|
|
# ------------------------------------------------------------------
|
|
# MISC_LAND_DEBUG: "1" # Write debug CSVs (diagnostics only)
|
|
# MISC_LAND_EDHREC_KEEP_PERCENT_MIN: "0.75"
|
|
# MISC_LAND_EDHREC_KEEP_PERCENT_MAX: "1.0"
|
|
# MISC_LAND_EDHREC_KEEP_PERCENT: "0.80" # Fallback if MIN/MAX unset
|
|
# MISC_LAND_THEME_MATCH_BASE: "1.4"
|
|
# MISC_LAND_THEME_MATCH_PER_EXTRA: "0.15"
|
|
# MISC_LAND_THEME_MATCH_CAP: "2.0"
|
|
|
|
# ------------------------------------------------------------------
|
|
# Path Overrides
|
|
# ------------------------------------------------------------------
|
|
# DECK_EXPORTS: "/app/deck_files"
|
|
# DECK_CONFIG: "/app/config"
|
|
# OWNED_CARDS_DIR: "/app/owned_cards"
|
|
# CARD_LIBRARY_DIR: "/app/owned_cards" # legacy alias
|
|
|
|
# ------------------------------------------------------------------
|
|
# Headless / CLI Mode (optional automation)
|
|
# ------------------------------------------------------------------
|
|
# DECK_MODE: "headless"
|
|
# HEADLESS_EXPORT_JSON: "1"
|
|
# DECK_COMMANDER: ""
|
|
# DECK_PRIMARY_CHOICE: "1"
|
|
# DECK_SECONDARY_CHOICE: ""
|
|
# DECK_TERTIARY_CHOICE: ""
|
|
# DECK_PRIMARY_TAG: ""
|
|
# DECK_SECONDARY_TAG: ""
|
|
# DECK_TERTIARY_TAG: ""
|
|
# DECK_BRACKET_LEVEL: "3"
|
|
# DECK_ADD_LANDS: "1"
|
|
# DECK_ADD_CREATURES: "1"
|
|
# DECK_ADD_NON_CREATURE_SPELLS: "1"
|
|
# DECK_ADD_RAMP: "1"
|
|
# DECK_ADD_REMOVAL: "1"
|
|
# DECK_ADD_WIPES: "1"
|
|
# DECK_ADD_CARD_ADVANTAGE: "1"
|
|
# DECK_ADD_PROTECTION: "1"
|
|
# DECK_FETCH_COUNT: "3"
|
|
# DECK_DUAL_COUNT: ""
|
|
# DECK_TRIPLE_COUNT: ""
|
|
# DECK_UTILITY_COUNT: ""
|
|
# DECK_TAG_MODE: "AND"
|
|
|
|
# ------------------------------------------------------------------
|
|
# Entrypoint / Server knobs
|
|
# ------------------------------------------------------------------
|
|
# APP_MODE: "web" # web|cli
|
|
# HOST: "0.0.0.0" # Bind host
|
|
# PORT: "8080" # Uvicorn port
|
|
# WORKERS: "1" # Uvicorn workers
|
|
|
|
# ------------------------------------------------------------------
|
|
# Editorial / Theme Catalog (Phase D) Controls (advanced / optional)
|
|
# These are primarily for maintainers refining automated theme
|
|
# descriptions & popularity analytics. Leave commented for normal use.
|
|
# ------------------------------------------------------------------
|
|
# EDITORIAL_SEED: "1234" # Deterministic seed for reproducible ordering.
|
|
# EDITORIAL_AGGRESSIVE_FILL: "0" # 1=borrow extra synergies for sparse themes.
|
|
# EDITORIAL_POP_BOUNDARIES: "50,120,250,600" # Override popularity bucket thresholds (4 ints).
|
|
# EDITORIAL_POP_EXPORT: "0" # 1=emit theme_popularity_metrics.json.
|
|
# EDITORIAL_BACKFILL_YAML: "0" # 1=write description/popularity back to YAML (missing only).
|
|
# EDITORIAL_INCLUDE_FALLBACK_SUMMARY: "0" # 1=include fallback description usage summary in JSON.
|
|
# EDITORIAL_REQUIRE_DESCRIPTION: "0" # (lint) 1=fail if any theme lacks description.
|
|
# EDITORIAL_REQUIRE_POPULARITY: "0" # (lint) 1=fail if any theme lacks popularity bucket.
|
|
# EDITORIAL_MIN_EXAMPLES: "0" # (future) minimum curated examples target.
|
|
# EDITORIAL_MIN_EXAMPLES_ENFORCE: "0" # (future) enforce above threshold vs warn.
|
|
volumes:
|
|
- ${PWD}/deck_files:/app/deck_files
|
|
- ${PWD}/logs:/app/logs
|
|
- ${PWD}/csv_files:/app/csv_files
|
|
- ${PWD}/config:/app/config
|
|
- ${PWD}/owned_cards:/app/owned_cards
|
|
restart: unless-stopped |