# Staging Environment Setup Complete ## Summary Tailscale-only staging environment for hoffdesk-api has been successfully created. ## Files Created 1. **`staging.env`** — Environment configuration with separate database path 2. **`staging-start.sh`** — Script to start the staging server 3. **`staging-stop.sh`** — Script to stop the staging server ## Staging Database - **Location:** `/home/hoffmann_admin/.openclaw/data/blog-staging/blog.db` - **Source:** Copied from production at setup time - **Isolation:** Changes to staging do NOT affect production ## Access - **URL:** `http://titanium-butler:8002` - **Network:** Tailscale/LAN only (binds to 0.0.0.0, port 8002) - **No Cloudflare:** Direct access via Tailscale hostname ## Usage ```bash # Start staging server cd /home/hoffmann_admin/.openclaw/workspace-socrates/hoffdesk-api ./staging-start.sh # Stop staging server ./staging-stop.sh # View logs tail -f /tmp/hoffdesk-staging.log ``` ## Verification - ✅ `curl http://titanium-butler:8002/` returns blog HTML - ✅ Staging database is isolated from production - ✅ `./staging-start.sh` launches server successfully - ✅ `./staging-stop.sh` kills server cleanly ## Notes - Production server continues running on port 8000 - Staging uses same codebase but separate database via `BLOG_DATA_DIR` env var - Also fixed import error in `main_v2.py` (`HTMLResponse` now imported from `starlette.responses`)