mtg_python_deckbuilder/run-web-from-dockerhub.sh
mwisnowski ac6c9f4daa
Some checks failed
CI / build (push) Has been cancelled
docs: documentation overhaul - archive, user guides, env parity (#62)
* docs: archive CLI runner scripts and Windows Docker guide, update web runner scripts

* docs: overhaul README and DOCKER.md, add 10 user guides

- README: Budget Mode section, corrected Further Reading links, theme badge descriptions, diagnostics expansion
- DOCKER.md: Windows path note, Budget Mode + Include/Exclude sections, env table additions
- docs/user_guides/: 10 new feature guides covering budget mode, include/exclude, locks/replace/permalinks, batch build, theme browser, random build, owned cards, partner mechanics, bracket compliance, quick build & skip controls

* fix: map PriceTimeoutError→503, add budget exceptions to status map; update error_handling.md

* docs: env var parity — add missing vars to .env.example and README table
2026-03-23 22:00:50 -07:00

67 lines
2.6 KiB
Bash

#!/bin/bash
set -euo pipefail
# Primary entry point for the MTG Python Deckbuilder Web UI from Docker Hub.
# Override any flag by exporting it before running:
# export THEME=light
# export ENABLE_BUDGET_MODE=0
echo "MTG Python Deckbuilder - Web UI (Docker Hub)"
echo "==========================================="
# Create directories if they don't exist
mkdir -p deck_files logs csv_files config owned_cards
# --- Core UI flags ---
: "${SHOW_LOGS:=1}"
: "${SHOW_DIAGNOSTICS:=1}"
: "${WEB_VIRTUALIZE:=1}"
# --- Theming (system|light|dark) ---
: "${ENABLE_THEMES:=1}"
: "${THEME:=dark}"
# --- Budget Mode ---
: "${ENABLE_BUDGET_MODE:=1}"
: "${PRICE_LAZY_REFRESH:=1}"
# --- Builder features ---
: "${ENABLE_BATCH_BUILD:=1}"
: "${WEB_STAGE_ORDER:=new}"
: "${WEB_IDEALS_UI:=slider}"
: "${ALLOW_MUST_HAVES:=1}"
: "${ENABLE_PARTNER_MECHANICS:=1}"
# --- Theme catalog badges ---
: "${SHOW_THEME_QUALITY_BADGES:=1}"
: "${SHOW_THEME_POOL_BADGES:=1}"
: "${SHOW_THEME_POPULARITY_BADGES:=1}"
: "${SHOW_THEME_FILTERS:=1}"
echo "Starting Web UI on http://localhost:8080"
echo "Flags: SHOW_LOGS=${SHOW_LOGS} SHOW_DIAGNOSTICS=${SHOW_DIAGNOSTICS} WEB_VIRTUALIZE=${WEB_VIRTUALIZE} THEME=${THEME}"
echo " ENABLE_BUDGET_MODE=${ENABLE_BUDGET_MODE} ENABLE_BATCH_BUILD=${ENABLE_BATCH_BUILD} WEB_STAGE_ORDER=${WEB_STAGE_ORDER}"
docker run --rm \
-p 8080:8080 \
-e SHOW_LOGS="${SHOW_LOGS}" -e SHOW_DIAGNOSTICS="${SHOW_DIAGNOSTICS}" -e WEB_VIRTUALIZE="${WEB_VIRTUALIZE}" \
-e ENABLE_THEMES="${ENABLE_THEMES}" -e THEME="${THEME}" \
-e ENABLE_BUDGET_MODE="${ENABLE_BUDGET_MODE}" -e PRICE_LAZY_REFRESH="${PRICE_LAZY_REFRESH}" \
-e ENABLE_BATCH_BUILD="${ENABLE_BATCH_BUILD}" -e WEB_STAGE_ORDER="${WEB_STAGE_ORDER}" -e WEB_IDEALS_UI="${WEB_IDEALS_UI}" \
-e ALLOW_MUST_HAVES="${ALLOW_MUST_HAVES}" -e ENABLE_PARTNER_MECHANICS="${ENABLE_PARTNER_MECHANICS}" \
-e SHOW_THEME_QUALITY_BADGES="${SHOW_THEME_QUALITY_BADGES}" -e SHOW_THEME_POOL_BADGES="${SHOW_THEME_POOL_BADGES}" \
-e SHOW_THEME_POPULARITY_BADGES="${SHOW_THEME_POPULARITY_BADGES}" -e SHOW_THEME_FILTERS="${SHOW_THEME_FILTERS}" \
-v "$(pwd)/deck_files:/app/deck_files" \
-v "$(pwd)/logs:/app/logs" \
-v "$(pwd)/csv_files:/app/csv_files" \
-v "$(pwd)/owned_cards:/app/owned_cards" \
-v "$(pwd)/config:/app/config" \
mwisnowski/mtg-python-deckbuilder:latest \
bash -lc "cd /app && uvicorn code.web.app:app --host 0.0.0.0 --port 8080"
echo
echo "Open: http://localhost:8080"
echo "Tips:"
echo " export THEME=light|dark|system before running to change the theme"
echo " export ENABLE_BUDGET_MODE=0 to disable budget controls"
echo " export SHOW_LOGS=0 or SHOW_DIAGNOSTICS=0 to hide those pages"