[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "meshbay-node" version = "0.6.0" description = "MeshBay Node — local file host, streaming server, and group daemon" requires-python = ">=3.12" dependencies = [ "meshbay-common>=0.6.0", "fastapi>=0.115", # local web UI on localhost:18000 "uvicorn[standard]>=0.30", "httpx>=0.28", # hub client "watchdog>=5.0", # directory monitoring "aioice>=0.9", # ICE/STUN for NAT traversal "aioquic>=1.0", # QUIC transport (MNP v2) — implemented in Phase 5 "websockets>=12.0", # hub→node revocation push "aiortc>=1.9", # WebRTC DataChannel for browser P2P (Phase 9) "aiosqlite>=0.20", # async SQLite for chat, audit, bundle stores ] [project.optional-dependencies] dev = ["pytest>=8", "pytest-asyncio>=0.24", "ruff>=0.6"] [project.scripts] meshbay-node = "meshbay_node.daemon:main" [tool.hatch.build.targets.wheel] packages = ["src/meshbay_node"] # RPM/DEB: meshbay-node # Systemd service: meshbay-node.service # Config: /etc/meshbay/node.conf (or ~/.config/meshbay/node.conf per-user) # Data: ~/.local/share/meshbay/node/ # Keystore: ~/.config/meshbay/keystore.enc # Local UI: http://localhost:18000