server: NAVI_WEBCLIENT_ENABLED gate + navi-server launcher
NAVI_WEBCLIENT_ENABLED=false removes every web-facing route (/, /assets,
/images, /content-viewers, /content, /admin panel, /debug*) and skips
the navi_ui MCP server — its only consumer is the webclient. The REST
API and WS the terminal client uses stay fully intact, and so does the
/admin/* JSON API (still gated by require_admin). Static mounts use
check_dir=False so a tree without webclient/dist imports fine.

New navi-server console script (navi/server.py): uvicorn launcher that
reads NAVI_HOST/NAVI_PORT from settings — the systemd unit needs no
hardcoded values.

Default stays true (full web UI), so nothing changes for dev setups;
subprocess route tests cover both modes.
1 parent 5b594f7 commit 6101971a6c114fea5df151e94d73e7cdd5c40c91
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 19 hours ago
Showing 5 changed files
View
navi/config.py
View
navi/main.py
View
navi/server.py 0 → 100644
View
pyproject.toml
View
tests/unit/test_deployment_flags.py 0 → 100644