@@ -110,6 +110,59 @@ The dashboard has four pages:
110110- ** Compare** — run a small hyper-parameter grid and inspect the result
111111 with parallel-coordinates and overlaid trajectories.
112112
113+ ## Deploy to the public web (free)
114+
115+ The dashboard can be published for free via ** Streamlit Community Cloud**
116+ (or Hugging Face Spaces) and bridged from any domain you already own
117+ (Xserver / お名前ドットコム / Cloudflare / …).
118+
119+ ### 1. Deploy to Streamlit Community Cloud
120+
121+ The repository already ships the two files needed by Community Cloud:
122+
123+ - [ ` requirements.txt ` ] ( requirements.txt ) — CPU-only PyTorch pin plus the
124+ minimal runtime. Installs this repo as the ` qqa ` package via the
125+ trailing ` . ` .
126+ - [ ` .streamlit/config.toml ` ] ( .streamlit/config.toml ) — on-brand dark
127+ theme and telemetry off.
128+
129+ Then:
130+
131+ 1 . Go to < https://share.streamlit.io > and sign in with GitHub.
132+ 2 . ** New app** → Repository ` Yuma-Ichikawa/QQA4CO ` , Branch ` main ` ,
133+ Main file path ` app/streamlit_app.py ` .
134+ 3 . Click ** Deploy** . Your app will be served at
135+ ` https://<something>.streamlit.app ` after a 3–5 min build.
136+
137+ The custom-problem editor is ** off by default** on public deployments
138+ (it evaluates arbitrary Python via ` exec ` ). Re-enable it on a trusted
139+ machine with:
140+
141+ ``` bash
142+ QQA_ALLOW_CUSTOM=1 uv run qqa gui
143+ ```
144+
145+ ### 2. Point your own domain at the app
146+
147+ If you own a domain on a shared rental host (e.g. Xserver), drop this
148+ snippet into the ` public_html/ ` of the subdomain that you want to use
149+ (adjust the target URL):
150+
151+ ``` apache
152+ RewriteEngine On
153+ RewriteRule ^(.*)$ https://qqa4co.streamlit.app/$1 [R=301,L]
154+ ```
155+
156+ A ready-to-copy template with both ` 301 ` and ` iframe ` variants lives at
157+ [ ` deploy/xserver-htaccess.example ` ] ( deploy/xserver-htaccess.example ) .
158+
159+ ### Other targets
160+
161+ The repository is portable enough to drop onto any of the usual
162+ platforms: Hugging Face Spaces (Streamlit SDK), Fly.io / Render
163+ (Docker), Google Cloud Run. The same ` requirements.txt ` and
164+ ` app/streamlit_app.py ` serve as the entry points.
165+
113166## Visualization
114167
115168``` python
0 commit comments