mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-27 21:05:34 +00:00
All three deployment methods bound 0.0.0.0:8000 with no API key, so following
the README produced a server reachable from any device on the network with no
auth. `check_bind_safety` already refuses to start a non-loopback bind without
a key (so these configs actually failed to start) — this wires the key in so
the documented path yields a *working, authenticated* server.
- docker-compose.yml: require `OPENJARVIS_API_KEY` via `${VAR:?...}` so
`docker compose up` fails fast when unset; added `deploy/docker/.env.example`
(un-ignored in .gitignore).
- systemd: add `EnvironmentFile=/etc/openjarvis/env` (no `-` prefix, so a
missing key file blocks startup rather than exposing an open server).
- launchd: bind `127.0.0.1` by default (the personal-device default — no
network exposure, no key needed) with a documented, commented opt-in to
0.0.0.0 + `OPENJARVIS_API_KEY`. Avoids shipping a usable default credential.
- Docs (docker/systemd/launchd) updated with the key-setup step.
- Tests assert each config can't reintroduce an open server, plus
`check_bind_safety` behavior across loopback/public × key/no-key.
Closes #221
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
128 lines
2.2 KiB
Plaintext
128 lines
2.2 KiB
Plaintext
# Byte-compiled / optimized / DLL files
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
|
|
# Distribution / packaging
|
|
dist/
|
|
build/
|
|
*.egg-info/
|
|
*.egg
|
|
|
|
# Virtual environments
|
|
.venv/
|
|
venv/
|
|
env/
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# Testing
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
.coverage
|
|
htmlcov/
|
|
|
|
# uv
|
|
# Note: uv.lock is intentionally tracked — it pins all transitive deps for reproducibility.
|
|
# Uncomment the line below only if you deliberately choose not to commit the lock file.
|
|
# uv.lock
|
|
|
|
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Secrets
|
|
.env
|
|
.env.*
|
|
# ...but keep checked-in example/templates (never contain real secrets)
|
|
!.env.example
|
|
!**/.env.example
|
|
|
|
# Project
|
|
*.sqlite
|
|
*.db
|
|
*.jsonl
|
|
*.npz
|
|
*.log
|
|
results/
|
|
logs/
|
|
# Anchored to repo root — DO NOT use the unanchored form `traces/`.
|
|
# hatchling honors .gitignore when building the wheel; an unanchored
|
|
# `traces/` pattern matches src/openjarvis/traces/ and silently drops
|
|
# the runtime module from the wheel (issue #372).
|
|
/traces/
|
|
coding_task_*
|
|
get-pip.py
|
|
# Junk from mocked-path tests that write to their mock's __repr__ as a path
|
|
MagicMock/
|
|
|
|
# MkDocs build output
|
|
site/
|
|
|
|
# Frontend
|
|
frontend/node_modules/
|
|
frontend/dist/
|
|
|
|
# Desktop
|
|
desktop/node_modules/
|
|
desktop/dist/
|
|
src/openjarvis/server/static/
|
|
|
|
# Desktop (Tauri)
|
|
frontend/src-tauri/target/
|
|
|
|
# Worktrees
|
|
.worktrees/
|
|
|
|
# Rust
|
|
target/
|
|
|
|
# Claude plan artifacts
|
|
docs/plans/
|
|
docs/superpowers/
|
|
.superpowers/
|
|
|
|
# Claude Code project instructions (per-developer)
|
|
CLAUDE.md
|
|
.claude/
|
|
|
|
# Tauri auto-generated schemas
|
|
**/src-tauri/gen/schemas/
|
|
|
|
# NFS lock artifacts
|
|
.nfs*
|
|
**/.nfs*
|
|
|
|
# Research output
|
|
research_mining_*
|
|
.python-version
|
|
src/openjarvis/channels/whatsapp_baileys_bridge/node_modules/
|
|
|
|
# SQLite in-memory artifacts
|
|
:memory:
|
|
|
|
# Dogfood reports (regenerated locally; not for VCS)
|
|
dogfood_report*.md
|
|
|
|
# Second Repos
|
|
Inline/
|
|
scratch/
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Distillation runtime artifacts (defense in depth — these should always live
|
|
# in ~/.openjarvis/, never inside the source tree, but we ignore them here in
|
|
# case OPENJARVIS_HOME is misconfigured during dev)
|
|
# ---------------------------------------------------------------------------
|
|
.openjarvis/
|
|
learning.db
|
|
**/learning/sessions/
|
|
**/learning/pending_review/
|
|
**/learning/benchmarks/
|
|
**/teacher_traces/
|
|
*.session.json
|