# Local deployment (systemd user services) Unit templates for running the stack from a git checkout + venv (the original production shape; now the development shape). Paths inside the units assume `/mnt/c/code/momentum` + `/home/philip/.venvs/momentum` — adjust to your box. ```bash cp deploy/systemd/momentum-*.service ~/.config/systemd/user/ systemctl --user daemon-reload systemctl --user enable --now momentum-loop momentum-dashboard momentum-qabot momentum-transcripts systemctl --user enable --now momentum-premarket-eval.timer # 20:00 ET weekdays loginctl enable-linger $USER # start on boot without login ``` | Unit | What | |---|---| | momentum-loop | trading loop (`run_live_paper.py --no-dashboard`) | | momentum-dashboard | web dashboard :8765 (`dashboard_api.py`) | | momentum-qabot | Telegram Q&A bot (read-only) | | momentum-transcripts | YouTube → transcript → claims pipeline | | momentum-premarket-eval(.timer) | nightly SIP refetch + housekeeping + shadow-track re-validation | | momentum-testpg | local Postgres for test isolation (`/home/philip/pgrun` socket) — keep even when production is elsewhere | | momentum-controlroom | NiceGUI control room :8766 — **disabled by owner preference**; kept for reference | Config comes from `.env` in the repo root (see `.env.example`). The same behavior-flag warnings as compose apply (`TRADING_AUTO_APPROVE=1` etc. — see `deploy/README.md`). **Never run these enabled while the compose stack owns production** — two loops on one Alpaca account duplicate orders.