summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node')
-rw-r--r--packages/meshbay-node/pyproject.toml34
-rw-r--r--packages/meshbay-node/src/meshbay_node/__init__.py3
-rw-r--r--packages/meshbay-node/src/meshbay_node/daemon.py9
-rw-r--r--packages/meshbay-node/src/meshbay_node/indexer/__init__.py0
-rw-r--r--packages/meshbay-node/src/meshbay_node/modules/__init__.py0
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/__init__.py0
-rw-r--r--packages/meshbay-node/src/meshbay_node/ui/__init__.py0
-rw-r--r--packages/meshbay-node/tests/__init__.py0
8 files changed, 46 insertions, 0 deletions
diff --git a/packages/meshbay-node/pyproject.toml b/packages/meshbay-node/pyproject.toml
new file mode 100644
index 0000000..48231ad
--- /dev/null
+++ b/packages/meshbay-node/pyproject.toml
@@ -0,0 +1,34 @@
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
+
+[project]
+name = "meshbay-node"
+version = "0.1.0"
+description = "MeshBay Node — local file host, streaming server, and group daemon"
+requires-python = ">=3.12"
+dependencies = [
+ "meshbay-common>=0.1.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 added in v2 (QUIC transport)
+]
+
+[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
diff --git a/packages/meshbay-node/src/meshbay_node/__init__.py b/packages/meshbay-node/src/meshbay_node/__init__.py
new file mode 100644
index 0000000..91f6593
--- /dev/null
+++ b/packages/meshbay-node/src/meshbay_node/__init__.py
@@ -0,0 +1,3 @@
+"""MeshBay Node — local file host, streaming server, and group daemon."""
+
+__version__ = "0.1.0"
diff --git a/packages/meshbay-node/src/meshbay_node/daemon.py b/packages/meshbay-node/src/meshbay_node/daemon.py
new file mode 100644
index 0000000..83c0ed7
--- /dev/null
+++ b/packages/meshbay-node/src/meshbay_node/daemon.py
@@ -0,0 +1,9 @@
+"""Entry point for the meshbay-node systemd service."""
+
+
+def main() -> None:
+ raise NotImplementedError("Node daemon not yet implemented — see Phase 2")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/packages/meshbay-node/src/meshbay_node/indexer/__init__.py b/packages/meshbay-node/src/meshbay_node/indexer/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/meshbay-node/src/meshbay_node/indexer/__init__.py
diff --git a/packages/meshbay-node/src/meshbay_node/modules/__init__.py b/packages/meshbay-node/src/meshbay_node/modules/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/meshbay-node/src/meshbay_node/modules/__init__.py
diff --git a/packages/meshbay-node/src/meshbay_node/transport/__init__.py b/packages/meshbay-node/src/meshbay_node/transport/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/meshbay-node/src/meshbay_node/transport/__init__.py
diff --git a/packages/meshbay-node/src/meshbay_node/ui/__init__.py b/packages/meshbay-node/src/meshbay_node/ui/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/meshbay-node/src/meshbay_node/ui/__init__.py
diff --git a/packages/meshbay-node/tests/__init__.py b/packages/meshbay-node/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/meshbay-node/tests/__init__.py