f
This commit is contained in:
@@ -8,7 +8,7 @@ Configuration keys:
|
||||
- NAME: store instance name (required)
|
||||
- NETWORK_ID: ZeroTier network ID to use for discovery (required)
|
||||
- SERVICE: 'remote' or 'hydrus' (default: 'remote')
|
||||
- PORT: service port (default: 5000 for remote, 45869 for hydrus)
|
||||
- PORT: service port (default: 999 for remote, 45869 for hydrus)
|
||||
- API_KEY: optional API key to include in requests
|
||||
- HOST: optional preferred peer address (skip discovery if provided)
|
||||
|
||||
@@ -38,7 +38,7 @@ class ZeroTier(Store):
|
||||
{"key": "NAME", "label": "Store Name", "default": "", "required": True},
|
||||
{"key": "NETWORK_ID", "label": "ZeroTier Network ID", "default": "", "required": True},
|
||||
{"key": "SERVICE", "label": "Service Type (remote|hydrus)", "default": "remote", "required": True},
|
||||
{"key": "PORT", "label": "Service Port", "default": "5000", "required": False},
|
||||
{"key": "PORT", "label": "Service Port", "default": "999", "required": False},
|
||||
{"key": "API_KEY", "label": "API Key (optional)", "default": "", "required": False, "secret": True},
|
||||
{"key": "HOST", "label": "Preferred peer host (optional)", "default": "", "required": False},
|
||||
{"key": "TIMEOUT", "label": "Request timeout (s)", "default": "5", "required": False},
|
||||
@@ -93,7 +93,7 @@ class ZeroTier(Store):
|
||||
self._name = str(instance_name or "")
|
||||
self._network_id = str(network_id or "").strip()
|
||||
self._service = (str(service or "remote") or "remote").lower()
|
||||
self._port = int(port if port is not None else (45869 if self._service == "hydrus" else 5000))
|
||||
self._port = int(port if port is not None else (45869 if self._service == "hydrus" else 999))
|
||||
self._api_key = str(api_key or "").strip() or None
|
||||
self._preferred_host = str(host or "").strip() or None
|
||||
self._timeout = int(timeout or 5)
|
||||
@@ -123,8 +123,20 @@ class ZeroTier(Store):
|
||||
debug(f"ZeroTier discovery helper not available: {exc}")
|
||||
return None
|
||||
|
||||
# Try to find a central API key for better discovery
|
||||
from SYS.config import load_config
|
||||
|
||||
conf = load_config()
|
||||
net_conf = conf.get("networking", {}).get("zerotier", {})
|
||||
central_token = net_conf.get("api_key")
|
||||
|
||||
# Look for a matching service on the network
|
||||
probe = zt.find_peer_service(self._network_id, service_hint=("hydrus" if self._service == "hydrus" else None), port=self._port)
|
||||
probe = zt.find_peer_service(
|
||||
self._network_id,
|
||||
service_hint=("hydrus" if self._service == "hydrus" else None),
|
||||
port=self._port,
|
||||
api_token=central_token,
|
||||
)
|
||||
if probe:
|
||||
# Extract host:port
|
||||
host = probe.address
|
||||
|
||||
Reference in New Issue
Block a user