docs: add production deployment guide - #172
Conversation
|
Review/merge-manager classification: needs-fix before review, and needs-human before autonomous landing. Blockers found in diff review:
No local gates were run for this PR because the diff-level syntax/doc blockers are already sufficient. |
|
Scheduled review/merge lane classification: needs-human / needs-fix before merge consideration. This PR adds broad production deployment/security guidance, so it needs Korgo/human signoff rather than automatic landing by this guardrail lane. I also found a deployment-correctness issue to address or explicitly waive:
Suggested fix/signoff path:
git diff --check
PYTHONPATH=. uv run --no-project --with pytest --with pytest-asyncio --with pytest-aiohttp --with pyserial-asyncio --with aiosqlite pytest tests/ -q |
|
Review/merge-manager classification: needs-fix. I am not marking this ready or merging yet. The deployment guide is mergeable, but the production instructions appear incomplete for real Raspberry Pi/Debian-style modem hosts:
Security/doc scan found no obvious secret-looking API keys, SIM/modem IDs, raw phone numbers, or raw webhook URLs in the added docs. After the docs fix, rerun |
|
Human reviewer: approved, good addition; clean guided documentation helps users to navigate the app. fix and merge this after a few more polishes (this should be part of v0.3 in roadmap, bring v0.3 onto the schedule) |
|
Review-manager classification remains Acknowledged the human approval for adding deployment guidance. I am still not merging this pass because GitHub reports the branch as conflicting/dirty against current Requested next steps:
git diff --check
PYTHONPATH=. uv run --no-project --with pytest --with pytest-asyncio --with pytest-aiohttp --with pyserial-asyncio --with aiosqlite pytest tests/ -qNo merge attempted in this pass. |
|
Release review: needs-human. This draft is held from autonomous merge because it changes a security-sensitive, credential/SIM-recovery, production-deployment, or public product/API policy surface. Please provide an explicit product/security decision and a refreshed review-ready head (this PR is also stale/dirty where applicable) before it can re-enter the landing queue. No behavior was approved or merged in this pass. |
|
Release-captain classification: needs human decision. This production deployment documentation changes operational/security guidance. Autonomous merge is held pending explicit owner confirmation that the documented deployment/auth/secret-handling policy is current; then rebase and re-review it against |
|
Release lane update: needs-human. This change affects a sensitive security/privacy, production-deployment, modem/SIM, audio/hardware, or public realtime product boundary. It will not be autonomously merged under this lane. Please obtain an explicit Korgo decision on the intended policy/scope and, where applicable, rebase on current |
|
Release review: needs-fix. This PR is now |
|
Release review: needs-human. This stale production-deployment documentation/workflow PR needs an explicit owner decision on supported operating environment, credentials/secrets handling, and operational rollout policy before it can be refreshed or merged. Do not autonomously land it. |
|
Release review classification: superseded. This stale, conflicting deployment-guide branch is superseded by the newer overlapping deployment-guide PR #256. #256 is held for a human production/security documentation decision; please consolidate future work there instead of rebasing this older branch. |
|
Release-lane classification: superseded. This older deployment-guide draft overlaps the newer production-deployment-guide work in PR #256. Keep the current artifact as the review target; do not rebase or merge this stale duplicate unless the newer PR is explicitly abandoned. |
|
Release classification: needs-human. Production deployment guidance is an operational/security commitment. It needs Korgo’s approval of the documented deployment model, authentication/default-exposure guidance, and support scope before autonomous landing. Keep it draft; after a decision, rebase/repackage over current |
Summary
docs/deployment.mdwith a conservative Raspberry Pi/systemd deployment template for packagedcallstack serve./etc/callstackand/var/lib/callstack, loopback-first serving, and authenticated/healthz+/metricssmoke checks that do not print API keys.Closes #161
Tests
PYTHONPATH=. uv run --no-project --with pytest pytest tests/test_deployment_docs.py -qfailed before guide/link implementation (4 failed).PYTHONPATH=. uv run --no-project --with pytest pytest tests/test_deployment_docs.py -qfailed on the old root-owned snippets (2 failed).tests/test_deployment_docs.py::test_documentation_examples_do_not_include_private_identifiers_or_invalid_bearer_redactionas intended, then mutation was reverted.git diff --checkPYTHONPATH=. uv run --no-project --with pytest --with pytest-asyncio --with pytest-aiohttp --with pyserial-asyncio --with aiosqlite pytest tests/test_packaging_metadata.py tests/test_cli.py tests/test_metrics.py tests/test_deployment_docs.py -q→51 passedPYTHONPATH=. uv run --no-project --with pytest --with pytest-asyncio --with pytest-aiohttp --with pyserial-asyncio --with aiosqlite pytest tests/ -q→676 passedReviews
Risks