wattetheria 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/docker-compose.release.yml +6 -4
- package/lib/cli.js +9 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -586,8 +586,9 @@ read it from the `wattetheria_state` volume; for the full stack, read
|
|
|
586
586
|
`./data/wattetheria/control.token`.
|
|
587
587
|
|
|
588
588
|
The supervision console includes an Agent Runtime configuration card for the brain provider.
|
|
589
|
-
Saving that form updates the deployment env file under `.wattetheria/deploy/.env`
|
|
590
|
-
|
|
589
|
+
Saving that form updates the deployment env file under `.wattetheria/deploy/.env` through the
|
|
590
|
+
container's `/var/lib/wattetheria-deploy` mount, so the next service restart picks up the new
|
|
591
|
+
runtime settings without manual env editing.
|
|
591
592
|
|
|
592
593
|
The Logs page is now a WattSwarm Diagnostics view. It proxies authenticated
|
|
593
594
|
`/v1/client/wattswarm-diagnostics` to the local Wattswarm UI API so operators can inspect
|
|
@@ -708,11 +709,10 @@ WATTETHERIA_GATEWAY_URLS=http://gateway.example.com:8080
|
|
|
708
709
|
```
|
|
709
710
|
|
|
710
711
|
`docker-compose.release.yml` also mounts `${WATTSWARM_HOST_STATE_DIR}/startup_config.json` into the
|
|
711
|
-
kernel container. If `WATTETHERIA_GATEWAY_URLS` is unset, the kernel
|
|
712
|
-
saved by the Wattswarm startup UI in that file. Wattetheria
|
|
713
|
-
at startup and
|
|
714
|
-
|
|
715
|
-
startup UI.
|
|
712
|
+
kernel container as read-only. If `WATTETHERIA_GATEWAY_URLS` is unset, the kernel falls back to
|
|
713
|
+
`gateway_urls` saved by the Wattswarm startup UI in that file. Wattetheria resolves coarse node geo
|
|
714
|
+
location at startup and sends the resulting `latitude` / `longitude` to Wattswarm over the local
|
|
715
|
+
sync gRPC bridge, so Wattswarm remains the writer for its own startup config.
|
|
716
716
|
|
|
717
717
|
When Wattetheria registers `core-agent` with Wattswarm, it keeps the brain/runtime
|
|
718
718
|
`base_url` pointed at the OpenAI-compatible gateway for `/execute` work and exposes a
|
|
@@ -17,13 +17,14 @@ services:
|
|
|
17
17
|
image: ${WATTETHERIA_KERNEL_IMAGE:-wattetheria/wattetheria-kernel:latest}
|
|
18
18
|
restart: unless-stopped
|
|
19
19
|
env_file:
|
|
20
|
-
- ${
|
|
20
|
+
- ${WATTETHERIA_COMPOSE_ENV_FILE:-.env.release.local}
|
|
21
21
|
depends_on:
|
|
22
22
|
wattswarm-kernel:
|
|
23
23
|
condition: service_started
|
|
24
24
|
environment:
|
|
25
25
|
WATTETHERIA_DATA_DIR: /var/lib/wattetheria
|
|
26
26
|
WATTETHERIA_CONTROL_PLANE_BIND: 0.0.0.0:7777
|
|
27
|
+
WATTETHERIA_RUNTIME_ENV_FILE: ${WATTETHERIA_RUNTIME_ENV_FILE:-/var/lib/wattetheria-deploy/.env.release.local}
|
|
27
28
|
WATTETHERIA_WATTSWARM_UI_BASE_URL: http://wattswarm-kernel:7788
|
|
28
29
|
WATTETHERIA_WATTSWARM_SYNC_GRPC_ENDPOINT: http://wattswarm-kernel:7791
|
|
29
30
|
WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT: ${WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT:-http://127.0.0.1:7777}
|
|
@@ -40,8 +41,9 @@ services:
|
|
|
40
41
|
WATTETHERIA_AUTONOMY_ENABLED: ${WATTETHERIA_AUTONOMY_ENABLED:-false}
|
|
41
42
|
WATTETHERIA_AUTONOMY_INTERVAL_SEC: ${WATTETHERIA_AUTONOMY_INTERVAL_SEC:-30}
|
|
42
43
|
volumes:
|
|
44
|
+
- ${WATTETHERIA_DEPLOY_DIR:-.}:/var/lib/wattetheria-deploy
|
|
43
45
|
- ${WATTETHERIA_HOST_STATE_DIR:-./data/wattetheria}:/var/lib/wattetheria
|
|
44
|
-
- ${WATTSWARM_HOST_STATE_DIR:-./data/wattswarm}:/var/lib/wattswarm
|
|
46
|
+
- ${WATTSWARM_HOST_STATE_DIR:-./data/wattswarm}:/var/lib/wattswarm:ro
|
|
45
47
|
ports:
|
|
46
48
|
- "${WATTETHERIA_CONTROL_PLANE_BIND_HOST:-127.0.0.1}:${WATTETHERIA_CONTROL_PLANE_PORT:-7777}:7777"
|
|
47
49
|
healthcheck:
|
|
@@ -110,8 +112,8 @@ services:
|
|
|
110
112
|
WATTSWARM_UDP_ANNOUNCE_MODE: ${WATTSWARM_UDP_ANNOUNCE_MODE:-multicast}
|
|
111
113
|
WATTSWARM_UDP_ANNOUNCE_ADDR: ${WATTSWARM_UDP_ANNOUNCE_ADDR:-239.255.42.99}
|
|
112
114
|
WATTSWARM_UDP_ANNOUNCE_PORT: ${WATTSWARM_UDP_ANNOUNCE_PORT:-37931}
|
|
113
|
-
WATTSWARM_IROH_RELAY_URLS: ${WATTSWARM_IROH_RELAY_URLS:-}
|
|
114
|
-
WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS: ${WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS:-
|
|
115
|
+
WATTSWARM_IROH_RELAY_URLS: ${WATTSWARM_IROH_RELAY_URLS:-https://relay.wattetheria.com}
|
|
116
|
+
WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS: ${WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS:-false}
|
|
115
117
|
WATTSWARM_PUBLIC_BOOTSTRAP_URLS: ${WATTSWARM_PUBLIC_BOOTSTRAP_URLS:-}
|
|
116
118
|
WATTSWARM_PUBLIC_BOOTSTRAP_CONTACTS: ${WATTSWARM_PUBLIC_BOOTSTRAP_CONTACTS:-}
|
|
117
119
|
WATTSWARM_PUBLIC_GATEWAY_URLS: ${WATTSWARM_PUBLIC_GATEWAY_URLS:-}
|
package/lib/cli.js
CHANGED
|
@@ -37,7 +37,9 @@ const DEFAULT_ENV_ENTRIES = [
|
|
|
37
37
|
["WATTSWARM_UDP_ANNOUNCE_HOST_PORT", "37931"],
|
|
38
38
|
["WATTETHERIA_HOST_STATE_DIR", "./data/wattetheria"],
|
|
39
39
|
["WATTSWARM_HOST_STATE_DIR", "./data/wattswarm"],
|
|
40
|
-
["
|
|
40
|
+
["WATTETHERIA_COMPOSE_ENV_FILE", ".env.release.local"],
|
|
41
|
+
["WATTETHERIA_DEPLOY_DIR", "."],
|
|
42
|
+
["WATTETHERIA_RUNTIME_ENV_FILE", "/var/lib/wattetheria-deploy/.env.release.local"],
|
|
41
43
|
["WATTETHERIA_AGENT_CONTROL_PLANE_ENDPOINT", "http://127.0.0.1:7777"],
|
|
42
44
|
["WATTETHERIA_AGENT_WATTSWARM_UI_BASE_URL", "http://127.0.0.1:7788"],
|
|
43
45
|
["WATTETHERIA_AGENT_WATTSWARM_SYNC_GRPC_ENDPOINT", "http://127.0.0.1:7791"],
|
|
@@ -55,6 +57,8 @@ const DEFAULT_ENV_ENTRIES = [
|
|
|
55
57
|
["WATTSWARM_P2P_ENABLED", "true"],
|
|
56
58
|
["WATTSWARM_P2P_MDNS", "true"],
|
|
57
59
|
["WATTSWARM_P2P_PORT", "4001"],
|
|
60
|
+
["WATTSWARM_IROH_RELAY_URLS", "https://relay.wattetheria.com"],
|
|
61
|
+
["WATTSWARM_IROH_PUBLISH_DIRECT_ADDRS", "false"],
|
|
58
62
|
["WATTSWARM_WORKER_CONCURRENCY", "16"],
|
|
59
63
|
["WATTSWARM_WORKER_POLL_MS", "250"],
|
|
60
64
|
["WATTSWARM_WORKER_LEASE_MS", "30000"],
|
|
@@ -708,7 +712,10 @@ function ensureDeploymentAssets(options) {
|
|
|
708
712
|
refreshDeploymentComposeAsset(templateComposePath, targetComposePath, options);
|
|
709
713
|
|
|
710
714
|
const envMap = readEnvFile(targetEnvPath);
|
|
711
|
-
|
|
715
|
+
const envFileName = path.basename(targetEnvPath);
|
|
716
|
+
envMap.set("WATTETHERIA_COMPOSE_ENV_FILE", envFileName);
|
|
717
|
+
envMap.set("WATTETHERIA_DEPLOY_DIR", ".");
|
|
718
|
+
envMap.set("WATTETHERIA_RUNTIME_ENV_FILE", `/var/lib/wattetheria-deploy/${envFileName}`);
|
|
712
719
|
ensureDatabasePassword(envMap);
|
|
713
720
|
if (options.tag) {
|
|
714
721
|
pinImageTags(envMap, options.tag);
|