@better-openclaw/core 1.0.22 → 1.0.24

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.
Files changed (697) hide show
  1. package/dist/bare-metal-partition.test.cjs +3 -4
  2. package/dist/bare-metal-partition.test.cjs.map +1 -1
  3. package/dist/bare-metal-partition.test.mjs +3 -4
  4. package/dist/bare-metal-partition.test.mjs.map +1 -1
  5. package/dist/composer.cjs +40 -14
  6. package/dist/composer.cjs.map +1 -1
  7. package/dist/composer.d.cts.map +1 -1
  8. package/dist/composer.d.mts.map +1 -1
  9. package/dist/composer.mjs +40 -14
  10. package/dist/composer.mjs.map +1 -1
  11. package/dist/composer.snapshot.test.cjs +1 -1
  12. package/dist/composer.snapshot.test.mjs +1 -1
  13. package/dist/composer.test.cjs +3 -2
  14. package/dist/composer.test.cjs.map +1 -1
  15. package/dist/composer.test.mjs +3 -2
  16. package/dist/composer.test.mjs.map +1 -1
  17. package/dist/deployers/strip-host-ports.test.cjs +1 -1
  18. package/dist/deployers/strip-host-ports.test.mjs +1 -1
  19. package/dist/generate.cjs +7 -2
  20. package/dist/generate.cjs.map +1 -1
  21. package/dist/generate.d.cts.map +1 -1
  22. package/dist/generate.d.mts.map +1 -1
  23. package/dist/generate.mjs +7 -2
  24. package/dist/generate.mjs.map +1 -1
  25. package/dist/generate.test.cjs +2 -2
  26. package/dist/generate.test.cjs.map +1 -1
  27. package/dist/generate.test.mjs +2 -2
  28. package/dist/generate.test.mjs.map +1 -1
  29. package/dist/generators/bare-metal-install.test.cjs +1 -1
  30. package/dist/generators/bare-metal-install.test.mjs +1 -1
  31. package/dist/generators/caddy.test.cjs +1 -1
  32. package/dist/generators/caddy.test.mjs +1 -1
  33. package/dist/generators/clone-repos.cjs +140 -0
  34. package/dist/generators/clone-repos.cjs.map +1 -0
  35. package/dist/generators/clone-repos.d.cts +11 -0
  36. package/dist/generators/clone-repos.d.cts.map +1 -0
  37. package/dist/generators/clone-repos.d.mts +11 -0
  38. package/dist/generators/clone-repos.d.mts.map +1 -0
  39. package/dist/generators/clone-repos.mjs +139 -0
  40. package/dist/generators/clone-repos.mjs.map +1 -0
  41. package/dist/generators/clone-repos.test.cjs +140 -0
  42. package/dist/generators/clone-repos.test.cjs.map +1 -0
  43. package/dist/generators/clone-repos.test.d.cts +1 -0
  44. package/dist/generators/clone-repos.test.d.mts +1 -0
  45. package/dist/generators/clone-repos.test.mjs +141 -0
  46. package/dist/generators/clone-repos.test.mjs.map +1 -0
  47. package/dist/generators/env.cjs +146 -0
  48. package/dist/generators/env.cjs.map +1 -1
  49. package/dist/generators/env.d.cts.map +1 -1
  50. package/dist/generators/env.d.mts.map +1 -1
  51. package/dist/generators/env.mjs +146 -0
  52. package/dist/generators/env.mjs.map +1 -1
  53. package/dist/generators/env.test.cjs +1 -1
  54. package/dist/generators/env.test.mjs +1 -1
  55. package/dist/generators/health-check.test.cjs +1 -1
  56. package/dist/generators/health-check.test.mjs +1 -1
  57. package/dist/generators/openclaw-json.cjs +102 -7
  58. package/dist/generators/openclaw-json.cjs.map +1 -1
  59. package/dist/generators/openclaw-json.mjs +102 -7
  60. package/dist/generators/openclaw-json.mjs.map +1 -1
  61. package/dist/generators/postgres-init.cjs +20 -0
  62. package/dist/generators/postgres-init.cjs.map +1 -1
  63. package/dist/generators/postgres-init.d.cts.map +1 -1
  64. package/dist/generators/postgres-init.d.mts.map +1 -1
  65. package/dist/generators/postgres-init.mjs +20 -0
  66. package/dist/generators/postgres-init.mjs.map +1 -1
  67. package/dist/generators/readme.cjs +2 -1
  68. package/dist/generators/readme.cjs.map +1 -1
  69. package/dist/generators/readme.mjs +2 -1
  70. package/dist/generators/readme.mjs.map +1 -1
  71. package/dist/generators/scripts.cjs +332 -3
  72. package/dist/generators/scripts.cjs.map +1 -1
  73. package/dist/generators/scripts.d.cts +3 -1
  74. package/dist/generators/scripts.d.cts.map +1 -1
  75. package/dist/generators/scripts.d.mts +3 -1
  76. package/dist/generators/scripts.d.mts.map +1 -1
  77. package/dist/generators/scripts.mjs +332 -3
  78. package/dist/generators/scripts.mjs.map +1 -1
  79. package/dist/generators/scripts.test.cjs +39 -5
  80. package/dist/generators/scripts.test.cjs.map +1 -1
  81. package/dist/generators/scripts.test.mjs +39 -5
  82. package/dist/generators/scripts.test.mjs.map +1 -1
  83. package/dist/generators/stack-manifest.cjs +1 -0
  84. package/dist/generators/stack-manifest.cjs.map +1 -1
  85. package/dist/generators/stack-manifest.d.cts +3 -2
  86. package/dist/generators/stack-manifest.d.cts.map +1 -1
  87. package/dist/generators/stack-manifest.d.mts +3 -2
  88. package/dist/generators/stack-manifest.d.mts.map +1 -1
  89. package/dist/generators/stack-manifest.mjs +1 -0
  90. package/dist/generators/stack-manifest.mjs.map +1 -1
  91. package/dist/generators/traefik.test.cjs +1 -1
  92. package/dist/generators/traefik.test.mjs +1 -1
  93. package/dist/index.cjs +8 -1
  94. package/dist/index.d.cts +5 -3
  95. package/dist/index.d.mts +5 -3
  96. package/dist/index.mjs +5 -3
  97. package/dist/migrations.test.cjs +1 -1
  98. package/dist/migrations.test.mjs +1 -1
  99. package/dist/presets/registry.cjs +19 -0
  100. package/dist/presets/registry.cjs.map +1 -1
  101. package/dist/presets/registry.d.cts.map +1 -1
  102. package/dist/presets/registry.d.mts.map +1 -1
  103. package/dist/presets/registry.mjs +19 -0
  104. package/dist/presets/registry.mjs.map +1 -1
  105. package/dist/presets/registry.test.cjs +1 -1
  106. package/dist/presets/registry.test.mjs +1 -1
  107. package/dist/resolver.cjs +8 -0
  108. package/dist/resolver.cjs.map +1 -1
  109. package/dist/resolver.mjs +9 -1
  110. package/dist/resolver.mjs.map +1 -1
  111. package/dist/resolver.test.cjs +47 -12
  112. package/dist/resolver.test.cjs.map +1 -1
  113. package/dist/resolver.test.mjs +47 -12
  114. package/dist/resolver.test.mjs.map +1 -1
  115. package/dist/{schema-C_hc7e4k.d.cts → schema-eX44HhRp.d.mts} +78 -8
  116. package/dist/schema-eX44HhRp.d.mts.map +1 -0
  117. package/dist/{schema-CaesJaS2.d.mts → schema-tn5RK8CM.d.cts} +78 -8
  118. package/dist/schema-tn5RK8CM.d.cts.map +1 -0
  119. package/dist/schema.cjs +26 -4
  120. package/dist/schema.cjs.map +1 -1
  121. package/dist/schema.d.cts +2 -2
  122. package/dist/schema.d.mts +2 -2
  123. package/dist/schema.mjs +25 -5
  124. package/dist/schema.mjs.map +1 -1
  125. package/dist/schema.test.cjs +1 -1
  126. package/dist/schema.test.mjs +1 -1
  127. package/dist/services/definitions/adguard-home.cjs +74 -0
  128. package/dist/services/definitions/adguard-home.cjs.map +1 -0
  129. package/dist/services/definitions/adguard-home.d.cts +7 -0
  130. package/dist/services/definitions/adguard-home.d.cts.map +1 -0
  131. package/dist/services/definitions/adguard-home.d.mts +7 -0
  132. package/dist/services/definitions/adguard-home.d.mts.map +1 -0
  133. package/dist/services/definitions/adguard-home.mjs +73 -0
  134. package/dist/services/definitions/adguard-home.mjs.map +1 -0
  135. package/dist/services/definitions/apptension-saas.cjs +87 -0
  136. package/dist/services/definitions/apptension-saas.cjs.map +1 -0
  137. package/dist/services/definitions/apptension-saas.d.cts +7 -0
  138. package/dist/services/definitions/apptension-saas.d.cts.map +1 -0
  139. package/dist/services/definitions/apptension-saas.d.mts +7 -0
  140. package/dist/services/definitions/apptension-saas.d.mts.map +1 -0
  141. package/dist/services/definitions/apptension-saas.mjs +86 -0
  142. package/dist/services/definitions/apptension-saas.mjs.map +1 -0
  143. package/dist/services/definitions/audiobookshelf.cjs +81 -0
  144. package/dist/services/definitions/audiobookshelf.cjs.map +1 -0
  145. package/dist/services/definitions/audiobookshelf.d.cts +7 -0
  146. package/dist/services/definitions/audiobookshelf.d.cts.map +1 -0
  147. package/dist/services/definitions/audiobookshelf.d.mts +7 -0
  148. package/dist/services/definitions/audiobookshelf.d.mts.map +1 -0
  149. package/dist/services/definitions/audiobookshelf.mjs +80 -0
  150. package/dist/services/definitions/audiobookshelf.mjs.map +1 -0
  151. package/dist/services/definitions/baserow.cjs +115 -0
  152. package/dist/services/definitions/baserow.cjs.map +1 -0
  153. package/dist/services/definitions/baserow.d.cts +7 -0
  154. package/dist/services/definitions/baserow.d.cts.map +1 -0
  155. package/dist/services/definitions/baserow.d.mts +7 -0
  156. package/dist/services/definitions/baserow.d.mts.map +1 -0
  157. package/dist/services/definitions/baserow.mjs +114 -0
  158. package/dist/services/definitions/baserow.mjs.map +1 -0
  159. package/dist/services/definitions/boxyhq-saas.cjs +88 -0
  160. package/dist/services/definitions/boxyhq-saas.cjs.map +1 -0
  161. package/dist/services/definitions/boxyhq-saas.d.cts +7 -0
  162. package/dist/services/definitions/boxyhq-saas.d.cts.map +1 -0
  163. package/dist/services/definitions/boxyhq-saas.d.mts +7 -0
  164. package/dist/services/definitions/boxyhq-saas.d.mts.map +1 -0
  165. package/dist/services/definitions/boxyhq-saas.mjs +87 -0
  166. package/dist/services/definitions/boxyhq-saas.mjs.map +1 -0
  167. package/dist/services/definitions/calibre-web.cjs +91 -0
  168. package/dist/services/definitions/calibre-web.cjs.map +1 -0
  169. package/dist/services/definitions/calibre-web.d.cts +7 -0
  170. package/dist/services/definitions/calibre-web.d.cts.map +1 -0
  171. package/dist/services/definitions/calibre-web.d.mts +7 -0
  172. package/dist/services/definitions/calibre-web.d.mts.map +1 -0
  173. package/dist/services/definitions/calibre-web.mjs +90 -0
  174. package/dist/services/definitions/calibre-web.mjs.map +1 -0
  175. package/dist/services/definitions/clickhouse.cjs +113 -0
  176. package/dist/services/definitions/clickhouse.cjs.map +1 -0
  177. package/dist/services/definitions/clickhouse.d.cts +7 -0
  178. package/dist/services/definitions/clickhouse.d.cts.map +1 -0
  179. package/dist/services/definitions/clickhouse.d.mts +7 -0
  180. package/dist/services/definitions/clickhouse.d.mts.map +1 -0
  181. package/dist/services/definitions/clickhouse.mjs +112 -0
  182. package/dist/services/definitions/clickhouse.mjs.map +1 -0
  183. package/dist/services/definitions/cloudflared.cjs +55 -0
  184. package/dist/services/definitions/cloudflared.cjs.map +1 -0
  185. package/dist/services/definitions/cloudflared.d.cts +7 -0
  186. package/dist/services/definitions/cloudflared.d.cts.map +1 -0
  187. package/dist/services/definitions/cloudflared.d.mts +7 -0
  188. package/dist/services/definitions/cloudflared.d.mts.map +1 -0
  189. package/dist/services/definitions/cloudflared.mjs +54 -0
  190. package/dist/services/definitions/cloudflared.mjs.map +1 -0
  191. package/dist/services/definitions/cmsaas-starter.cjs +86 -0
  192. package/dist/services/definitions/cmsaas-starter.cjs.map +1 -0
  193. package/dist/services/definitions/cmsaas-starter.d.cts +7 -0
  194. package/dist/services/definitions/cmsaas-starter.d.cts.map +1 -0
  195. package/dist/services/definitions/cmsaas-starter.d.mts +7 -0
  196. package/dist/services/definitions/cmsaas-starter.d.mts.map +1 -0
  197. package/dist/services/definitions/cmsaas-starter.mjs +85 -0
  198. package/dist/services/definitions/cmsaas-starter.mjs.map +1 -0
  199. package/dist/services/definitions/cockroachdb.cjs +70 -0
  200. package/dist/services/definitions/cockroachdb.cjs.map +1 -0
  201. package/dist/services/definitions/cockroachdb.d.cts +7 -0
  202. package/dist/services/definitions/cockroachdb.d.cts.map +1 -0
  203. package/dist/services/definitions/cockroachdb.d.mts +7 -0
  204. package/dist/services/definitions/cockroachdb.d.mts.map +1 -0
  205. package/dist/services/definitions/cockroachdb.mjs +69 -0
  206. package/dist/services/definitions/cockroachdb.mjs.map +1 -0
  207. package/dist/services/definitions/coder.cjs +64 -0
  208. package/dist/services/definitions/coder.cjs.map +1 -0
  209. package/dist/services/definitions/coder.d.cts +7 -0
  210. package/dist/services/definitions/coder.d.cts.map +1 -0
  211. package/dist/services/definitions/coder.d.mts +7 -0
  212. package/dist/services/definitions/coder.d.mts.map +1 -0
  213. package/dist/services/definitions/coder.mjs +63 -0
  214. package/dist/services/definitions/coder.mjs.map +1 -0
  215. package/dist/services/definitions/dragonfly.cjs +64 -0
  216. package/dist/services/definitions/dragonfly.cjs.map +1 -0
  217. package/dist/services/definitions/dragonfly.d.cts +7 -0
  218. package/dist/services/definitions/dragonfly.d.cts.map +1 -0
  219. package/dist/services/definitions/dragonfly.d.mts +7 -0
  220. package/dist/services/definitions/dragonfly.d.mts.map +1 -0
  221. package/dist/services/definitions/dragonfly.mjs +63 -0
  222. package/dist/services/definitions/dragonfly.mjs.map +1 -0
  223. package/dist/services/definitions/drone-ci.cjs +95 -0
  224. package/dist/services/definitions/drone-ci.cjs.map +1 -0
  225. package/dist/services/definitions/drone-ci.d.cts +7 -0
  226. package/dist/services/definitions/drone-ci.d.cts.map +1 -0
  227. package/dist/services/definitions/drone-ci.d.mts +7 -0
  228. package/dist/services/definitions/drone-ci.d.mts.map +1 -0
  229. package/dist/services/definitions/drone-ci.mjs +94 -0
  230. package/dist/services/definitions/drone-ci.mjs.map +1 -0
  231. package/dist/services/definitions/element-web.cjs +61 -0
  232. package/dist/services/definitions/element-web.cjs.map +1 -0
  233. package/dist/services/definitions/element-web.d.cts +7 -0
  234. package/dist/services/definitions/element-web.d.cts.map +1 -0
  235. package/dist/services/definitions/element-web.d.mts +7 -0
  236. package/dist/services/definitions/element-web.d.mts.map +1 -0
  237. package/dist/services/definitions/element-web.mjs +60 -0
  238. package/dist/services/definitions/element-web.mjs.map +1 -0
  239. package/dist/services/definitions/focalboard.cjs +65 -0
  240. package/dist/services/definitions/focalboard.cjs.map +1 -0
  241. package/dist/services/definitions/focalboard.d.cts +7 -0
  242. package/dist/services/definitions/focalboard.d.cts.map +1 -0
  243. package/dist/services/definitions/focalboard.d.mts +7 -0
  244. package/dist/services/definitions/focalboard.d.mts.map +1 -0
  245. package/dist/services/definitions/focalboard.mjs +64 -0
  246. package/dist/services/definitions/focalboard.mjs.map +1 -0
  247. package/dist/services/definitions/forgejo.cjs +108 -0
  248. package/dist/services/definitions/forgejo.cjs.map +1 -0
  249. package/dist/services/definitions/forgejo.d.cts +7 -0
  250. package/dist/services/definitions/forgejo.d.cts.map +1 -0
  251. package/dist/services/definitions/forgejo.d.mts +7 -0
  252. package/dist/services/definitions/forgejo.d.mts.map +1 -0
  253. package/dist/services/definitions/forgejo.mjs +107 -0
  254. package/dist/services/definitions/forgejo.mjs.map +1 -0
  255. package/dist/services/definitions/graylog.cjs +103 -0
  256. package/dist/services/definitions/graylog.cjs.map +1 -0
  257. package/dist/services/definitions/graylog.d.cts +7 -0
  258. package/dist/services/definitions/graylog.d.cts.map +1 -0
  259. package/dist/services/definitions/graylog.d.mts +7 -0
  260. package/dist/services/definitions/graylog.d.mts.map +1 -0
  261. package/dist/services/definitions/graylog.mjs +102 -0
  262. package/dist/services/definitions/graylog.mjs.map +1 -0
  263. package/dist/services/definitions/index.cjs +154 -1
  264. package/dist/services/definitions/index.cjs.map +1 -1
  265. package/dist/services/definitions/index.d.cts +52 -1
  266. package/dist/services/definitions/index.d.cts.map +1 -1
  267. package/dist/services/definitions/index.d.mts +52 -1
  268. package/dist/services/definitions/index.d.mts.map +1 -1
  269. package/dist/services/definitions/index.mjs +104 -2
  270. package/dist/services/definitions/index.mjs.map +1 -1
  271. package/dist/services/definitions/influxdb.cjs +105 -0
  272. package/dist/services/definitions/influxdb.cjs.map +1 -0
  273. package/dist/services/definitions/influxdb.d.cts +7 -0
  274. package/dist/services/definitions/influxdb.d.cts.map +1 -0
  275. package/dist/services/definitions/influxdb.d.mts +7 -0
  276. package/dist/services/definitions/influxdb.d.mts.map +1 -0
  277. package/dist/services/definitions/influxdb.mjs +104 -0
  278. package/dist/services/definitions/influxdb.mjs.map +1 -0
  279. package/dist/services/definitions/invoke-ai.cjs +70 -0
  280. package/dist/services/definitions/invoke-ai.cjs.map +1 -0
  281. package/dist/services/definitions/invoke-ai.d.cts +7 -0
  282. package/dist/services/definitions/invoke-ai.d.cts.map +1 -0
  283. package/dist/services/definitions/invoke-ai.d.mts +7 -0
  284. package/dist/services/definitions/invoke-ai.d.mts.map +1 -0
  285. package/dist/services/definitions/invoke-ai.mjs +69 -0
  286. package/dist/services/definitions/invoke-ai.mjs.map +1 -0
  287. package/dist/services/definitions/ixartz-saas.cjs +88 -0
  288. package/dist/services/definitions/ixartz-saas.cjs.map +1 -0
  289. package/dist/services/definitions/ixartz-saas.d.cts +7 -0
  290. package/dist/services/definitions/ixartz-saas.d.cts.map +1 -0
  291. package/dist/services/definitions/ixartz-saas.d.mts +7 -0
  292. package/dist/services/definitions/ixartz-saas.d.mts.map +1 -0
  293. package/dist/services/definitions/ixartz-saas.mjs +87 -0
  294. package/dist/services/definitions/ixartz-saas.mjs.map +1 -0
  295. package/dist/services/definitions/jaeger.cjs +95 -0
  296. package/dist/services/definitions/jaeger.cjs.map +1 -0
  297. package/dist/services/definitions/jaeger.d.cts +7 -0
  298. package/dist/services/definitions/jaeger.d.cts.map +1 -0
  299. package/dist/services/definitions/jaeger.d.mts +7 -0
  300. package/dist/services/definitions/jaeger.d.mts.map +1 -0
  301. package/dist/services/definitions/jaeger.mjs +94 -0
  302. package/dist/services/definitions/jaeger.mjs.map +1 -0
  303. package/dist/services/definitions/jan.cjs +64 -0
  304. package/dist/services/definitions/jan.cjs.map +1 -0
  305. package/dist/services/definitions/jan.d.cts +7 -0
  306. package/dist/services/definitions/jan.d.cts.map +1 -0
  307. package/dist/services/definitions/jan.d.mts +7 -0
  308. package/dist/services/definitions/jan.d.mts.map +1 -0
  309. package/dist/services/definitions/jan.mjs +63 -0
  310. package/dist/services/definitions/jan.mjs.map +1 -0
  311. package/dist/services/definitions/jitsi-meet.cjs +102 -0
  312. package/dist/services/definitions/jitsi-meet.cjs.map +1 -0
  313. package/dist/services/definitions/jitsi-meet.d.cts +7 -0
  314. package/dist/services/definitions/jitsi-meet.d.cts.map +1 -0
  315. package/dist/services/definitions/jitsi-meet.d.mts +7 -0
  316. package/dist/services/definitions/jitsi-meet.d.mts.map +1 -0
  317. package/dist/services/definitions/jitsi-meet.mjs +101 -0
  318. package/dist/services/definitions/jitsi-meet.mjs.map +1 -0
  319. package/dist/services/definitions/local-ai.cjs +86 -0
  320. package/dist/services/definitions/local-ai.cjs.map +1 -0
  321. package/dist/services/definitions/local-ai.d.cts +7 -0
  322. package/dist/services/definitions/local-ai.d.cts.map +1 -0
  323. package/dist/services/definitions/local-ai.d.mts +7 -0
  324. package/dist/services/definitions/local-ai.d.mts.map +1 -0
  325. package/dist/services/definitions/local-ai.mjs +85 -0
  326. package/dist/services/definitions/local-ai.mjs.map +1 -0
  327. package/dist/services/definitions/metabase.cjs +108 -0
  328. package/dist/services/definitions/metabase.cjs.map +1 -0
  329. package/dist/services/definitions/metabase.d.cts +7 -0
  330. package/dist/services/definitions/metabase.d.cts.map +1 -0
  331. package/dist/services/definitions/metabase.d.mts +7 -0
  332. package/dist/services/definitions/metabase.d.mts.map +1 -0
  333. package/dist/services/definitions/metabase.mjs +107 -0
  334. package/dist/services/definitions/metabase.mjs.map +1 -0
  335. package/dist/services/definitions/mission-control.cjs +16 -2
  336. package/dist/services/definitions/mission-control.cjs.map +1 -1
  337. package/dist/services/definitions/mission-control.mjs +16 -2
  338. package/dist/services/definitions/mission-control.mjs.map +1 -1
  339. package/dist/services/definitions/mosquitto.cjs +82 -0
  340. package/dist/services/definitions/mosquitto.cjs.map +1 -0
  341. package/dist/services/definitions/mosquitto.d.cts +7 -0
  342. package/dist/services/definitions/mosquitto.d.cts.map +1 -0
  343. package/dist/services/definitions/mosquitto.d.mts +7 -0
  344. package/dist/services/definitions/mosquitto.d.mts.map +1 -0
  345. package/dist/services/definitions/mosquitto.mjs +81 -0
  346. package/dist/services/definitions/mosquitto.mjs.map +1 -0
  347. package/dist/services/definitions/navidrome.cjs +90 -0
  348. package/dist/services/definitions/navidrome.cjs.map +1 -0
  349. package/dist/services/definitions/navidrome.d.cts +7 -0
  350. package/dist/services/definitions/navidrome.d.cts.map +1 -0
  351. package/dist/services/definitions/navidrome.d.mts +7 -0
  352. package/dist/services/definitions/navidrome.d.mts.map +1 -0
  353. package/dist/services/definitions/navidrome.mjs +89 -0
  354. package/dist/services/definitions/navidrome.mjs.map +1 -0
  355. package/dist/services/definitions/nginx-proxy-manager.cjs +71 -0
  356. package/dist/services/definitions/nginx-proxy-manager.cjs.map +1 -0
  357. package/dist/services/definitions/nginx-proxy-manager.d.cts +7 -0
  358. package/dist/services/definitions/nginx-proxy-manager.d.cts.map +1 -0
  359. package/dist/services/definitions/nginx-proxy-manager.d.mts +7 -0
  360. package/dist/services/definitions/nginx-proxy-manager.d.mts.map +1 -0
  361. package/dist/services/definitions/nginx-proxy-manager.mjs +70 -0
  362. package/dist/services/definitions/nginx-proxy-manager.mjs.map +1 -0
  363. package/dist/services/definitions/node-red.cjs +77 -0
  364. package/dist/services/definitions/node-red.cjs.map +1 -0
  365. package/dist/services/definitions/node-red.d.cts +7 -0
  366. package/dist/services/definitions/node-red.d.cts.map +1 -0
  367. package/dist/services/definitions/node-red.d.mts +7 -0
  368. package/dist/services/definitions/node-red.d.mts.map +1 -0
  369. package/dist/services/definitions/node-red.mjs +76 -0
  370. package/dist/services/definitions/node-red.mjs.map +1 -0
  371. package/dist/services/definitions/open-saas.cjs +81 -0
  372. package/dist/services/definitions/open-saas.cjs.map +1 -0
  373. package/dist/services/definitions/open-saas.d.cts +7 -0
  374. package/dist/services/definitions/open-saas.d.cts.map +1 -0
  375. package/dist/services/definitions/open-saas.d.mts +7 -0
  376. package/dist/services/definitions/open-saas.d.mts.map +1 -0
  377. package/dist/services/definitions/open-saas.mjs +80 -0
  378. package/dist/services/definitions/open-saas.mjs.map +1 -0
  379. package/dist/services/definitions/photoprism.cjs +126 -0
  380. package/dist/services/definitions/photoprism.cjs.map +1 -0
  381. package/dist/services/definitions/photoprism.d.cts +7 -0
  382. package/dist/services/definitions/photoprism.d.cts.map +1 -0
  383. package/dist/services/definitions/photoprism.d.mts +7 -0
  384. package/dist/services/definitions/photoprism.d.mts.map +1 -0
  385. package/dist/services/definitions/photoprism.mjs +125 -0
  386. package/dist/services/definitions/photoprism.mjs.map +1 -0
  387. package/dist/services/definitions/pihole.cjs +73 -0
  388. package/dist/services/definitions/pihole.cjs.map +1 -0
  389. package/dist/services/definitions/pihole.d.cts +7 -0
  390. package/dist/services/definitions/pihole.d.cts.map +1 -0
  391. package/dist/services/definitions/pihole.d.mts +7 -0
  392. package/dist/services/definitions/pihole.d.mts.map +1 -0
  393. package/dist/services/definitions/pihole.mjs +72 -0
  394. package/dist/services/definitions/pihole.mjs.map +1 -0
  395. package/dist/services/definitions/piper-tts.cjs +70 -0
  396. package/dist/services/definitions/piper-tts.cjs.map +1 -0
  397. package/dist/services/definitions/piper-tts.d.cts +7 -0
  398. package/dist/services/definitions/piper-tts.d.cts.map +1 -0
  399. package/dist/services/definitions/piper-tts.d.mts +7 -0
  400. package/dist/services/definitions/piper-tts.d.mts.map +1 -0
  401. package/dist/services/definitions/piper-tts.mjs +69 -0
  402. package/dist/services/definitions/piper-tts.mjs.map +1 -0
  403. package/dist/services/definitions/plane.cjs +75 -0
  404. package/dist/services/definitions/plane.cjs.map +1 -0
  405. package/dist/services/definitions/plane.d.cts +7 -0
  406. package/dist/services/definitions/plane.d.cts.map +1 -0
  407. package/dist/services/definitions/plane.d.mts +7 -0
  408. package/dist/services/definitions/plane.d.mts.map +1 -0
  409. package/dist/services/definitions/plane.mjs +74 -0
  410. package/dist/services/definitions/plane.mjs.map +1 -0
  411. package/dist/services/definitions/plausible.cjs +94 -0
  412. package/dist/services/definitions/plausible.cjs.map +1 -0
  413. package/dist/services/definitions/plausible.d.cts +7 -0
  414. package/dist/services/definitions/plausible.d.cts.map +1 -0
  415. package/dist/services/definitions/plausible.d.mts +7 -0
  416. package/dist/services/definitions/plausible.d.mts.map +1 -0
  417. package/dist/services/definitions/plausible.mjs +93 -0
  418. package/dist/services/definitions/plausible.mjs.map +1 -0
  419. package/dist/services/definitions/pocket-id.cjs +101 -0
  420. package/dist/services/definitions/pocket-id.cjs.map +1 -0
  421. package/dist/services/definitions/pocket-id.d.cts +7 -0
  422. package/dist/services/definitions/pocket-id.d.cts.map +1 -0
  423. package/dist/services/definitions/pocket-id.d.mts +7 -0
  424. package/dist/services/definitions/pocket-id.d.mts.map +1 -0
  425. package/dist/services/definitions/pocket-id.mjs +100 -0
  426. package/dist/services/definitions/pocket-id.mjs.map +1 -0
  427. package/dist/services/definitions/posthog.cjs +94 -0
  428. package/dist/services/definitions/posthog.cjs.map +1 -0
  429. package/dist/services/definitions/posthog.d.cts +7 -0
  430. package/dist/services/definitions/posthog.d.cts.map +1 -0
  431. package/dist/services/definitions/posthog.d.mts +7 -0
  432. package/dist/services/definitions/posthog.d.mts.map +1 -0
  433. package/dist/services/definitions/posthog.mjs +93 -0
  434. package/dist/services/definitions/posthog.mjs.map +1 -0
  435. package/dist/services/definitions/redis.cjs +1 -1
  436. package/dist/services/definitions/redis.cjs.map +1 -1
  437. package/dist/services/definitions/redis.mjs +1 -1
  438. package/dist/services/definitions/redis.mjs.map +1 -1
  439. package/dist/services/definitions/revolt.cjs +64 -0
  440. package/dist/services/definitions/revolt.cjs.map +1 -0
  441. package/dist/services/definitions/revolt.d.cts +7 -0
  442. package/dist/services/definitions/revolt.d.cts.map +1 -0
  443. package/dist/services/definitions/revolt.d.mts +7 -0
  444. package/dist/services/definitions/revolt.d.mts.map +1 -0
  445. package/dist/services/definitions/revolt.mjs +63 -0
  446. package/dist/services/definitions/revolt.mjs.map +1 -0
  447. package/dist/services/definitions/sentry.cjs +101 -0
  448. package/dist/services/definitions/sentry.cjs.map +1 -0
  449. package/dist/services/definitions/sentry.d.cts +7 -0
  450. package/dist/services/definitions/sentry.d.cts.map +1 -0
  451. package/dist/services/definitions/sentry.d.mts +7 -0
  452. package/dist/services/definitions/sentry.d.mts.map +1 -0
  453. package/dist/services/definitions/sentry.mjs +100 -0
  454. package/dist/services/definitions/sentry.mjs.map +1 -0
  455. package/dist/services/definitions/sonarqube.cjs +86 -0
  456. package/dist/services/definitions/sonarqube.cjs.map +1 -0
  457. package/dist/services/definitions/sonarqube.d.cts +7 -0
  458. package/dist/services/definitions/sonarqube.d.cts.map +1 -0
  459. package/dist/services/definitions/sonarqube.d.mts +7 -0
  460. package/dist/services/definitions/sonarqube.d.mts.map +1 -0
  461. package/dist/services/definitions/sonarqube.mjs +85 -0
  462. package/dist/services/definitions/sonarqube.mjs.map +1 -0
  463. package/dist/services/definitions/superset.cjs +77 -0
  464. package/dist/services/definitions/superset.cjs.map +1 -0
  465. package/dist/services/definitions/superset.d.cts +7 -0
  466. package/dist/services/definitions/superset.d.cts.map +1 -0
  467. package/dist/services/definitions/superset.d.mts +7 -0
  468. package/dist/services/definitions/superset.d.mts.map +1 -0
  469. package/dist/services/definitions/superset.mjs +76 -0
  470. package/dist/services/definitions/superset.mjs.map +1 -0
  471. package/dist/services/definitions/surrealdb.cjs +72 -0
  472. package/dist/services/definitions/surrealdb.cjs.map +1 -0
  473. package/dist/services/definitions/surrealdb.d.cts +7 -0
  474. package/dist/services/definitions/surrealdb.d.cts.map +1 -0
  475. package/dist/services/definitions/surrealdb.d.mts +7 -0
  476. package/dist/services/definitions/surrealdb.d.mts.map +1 -0
  477. package/dist/services/definitions/surrealdb.mjs +71 -0
  478. package/dist/services/definitions/surrealdb.mjs.map +1 -0
  479. package/dist/services/definitions/tabby-ml.cjs +70 -0
  480. package/dist/services/definitions/tabby-ml.cjs.map +1 -0
  481. package/dist/services/definitions/tabby-ml.d.cts +7 -0
  482. package/dist/services/definitions/tabby-ml.d.cts.map +1 -0
  483. package/dist/services/definitions/tabby-ml.d.mts +7 -0
  484. package/dist/services/definitions/tabby-ml.d.mts.map +1 -0
  485. package/dist/services/definitions/tabby-ml.mjs +69 -0
  486. package/dist/services/definitions/tabby-ml.mjs.map +1 -0
  487. package/dist/services/definitions/tempo.cjs +57 -0
  488. package/dist/services/definitions/tempo.cjs.map +1 -0
  489. package/dist/services/definitions/tempo.d.cts +7 -0
  490. package/dist/services/definitions/tempo.d.cts.map +1 -0
  491. package/dist/services/definitions/tempo.d.mts +7 -0
  492. package/dist/services/definitions/tempo.d.mts.map +1 -0
  493. package/dist/services/definitions/tempo.mjs +56 -0
  494. package/dist/services/definitions/tempo.mjs.map +1 -0
  495. package/dist/services/definitions/text-gen-webui.cjs +88 -0
  496. package/dist/services/definitions/text-gen-webui.cjs.map +1 -0
  497. package/dist/services/definitions/text-gen-webui.d.cts +7 -0
  498. package/dist/services/definitions/text-gen-webui.d.cts.map +1 -0
  499. package/dist/services/definitions/text-gen-webui.d.mts +7 -0
  500. package/dist/services/definitions/text-gen-webui.d.mts.map +1 -0
  501. package/dist/services/definitions/text-gen-webui.mjs +87 -0
  502. package/dist/services/definitions/text-gen-webui.mjs.map +1 -0
  503. package/dist/services/definitions/timescaledb.cjs +87 -0
  504. package/dist/services/definitions/timescaledb.cjs.map +1 -0
  505. package/dist/services/definitions/timescaledb.d.cts +7 -0
  506. package/dist/services/definitions/timescaledb.d.cts.map +1 -0
  507. package/dist/services/definitions/timescaledb.d.mts +7 -0
  508. package/dist/services/definitions/timescaledb.d.mts.map +1 -0
  509. package/dist/services/definitions/timescaledb.mjs +86 -0
  510. package/dist/services/definitions/timescaledb.mjs.map +1 -0
  511. package/dist/services/definitions/valkey.cjs +1 -1
  512. package/dist/services/definitions/valkey.cjs.map +1 -1
  513. package/dist/services/definitions/valkey.mjs +1 -1
  514. package/dist/services/definitions/valkey.mjs.map +1 -1
  515. package/dist/services/definitions/vector-log.cjs +59 -0
  516. package/dist/services/definitions/vector-log.cjs.map +1 -0
  517. package/dist/services/definitions/vector-log.d.cts +7 -0
  518. package/dist/services/definitions/vector-log.d.cts.map +1 -0
  519. package/dist/services/definitions/vector-log.d.mts +7 -0
  520. package/dist/services/definitions/vector-log.d.mts.map +1 -0
  521. package/dist/services/definitions/vector-log.mjs +58 -0
  522. package/dist/services/definitions/vector-log.mjs.map +1 -0
  523. package/dist/services/definitions/vikunja.cjs +96 -0
  524. package/dist/services/definitions/vikunja.cjs.map +1 -0
  525. package/dist/services/definitions/vikunja.d.cts +7 -0
  526. package/dist/services/definitions/vikunja.d.cts.map +1 -0
  527. package/dist/services/definitions/vikunja.d.mts +7 -0
  528. package/dist/services/definitions/vikunja.d.mts.map +1 -0
  529. package/dist/services/definitions/vikunja.mjs +95 -0
  530. package/dist/services/definitions/vikunja.mjs.map +1 -0
  531. package/dist/services/definitions/wireguard.cjs +88 -0
  532. package/dist/services/definitions/wireguard.cjs.map +1 -0
  533. package/dist/services/definitions/wireguard.d.cts +7 -0
  534. package/dist/services/definitions/wireguard.d.cts.map +1 -0
  535. package/dist/services/definitions/wireguard.d.mts +7 -0
  536. package/dist/services/definitions/wireguard.d.mts.map +1 -0
  537. package/dist/services/definitions/wireguard.mjs +87 -0
  538. package/dist/services/definitions/wireguard.mjs.map +1 -0
  539. package/dist/services/definitions/woodpecker-ci.cjs +93 -0
  540. package/dist/services/definitions/woodpecker-ci.cjs.map +1 -0
  541. package/dist/services/definitions/woodpecker-ci.d.cts +7 -0
  542. package/dist/services/definitions/woodpecker-ci.d.cts.map +1 -0
  543. package/dist/services/definitions/woodpecker-ci.d.mts +7 -0
  544. package/dist/services/definitions/woodpecker-ci.d.mts.map +1 -0
  545. package/dist/services/definitions/woodpecker-ci.mjs +92 -0
  546. package/dist/services/definitions/woodpecker-ci.mjs.map +1 -0
  547. package/dist/services/definitions/zulip.cjs +116 -0
  548. package/dist/services/definitions/zulip.cjs.map +1 -0
  549. package/dist/services/definitions/zulip.d.cts +7 -0
  550. package/dist/services/definitions/zulip.d.cts.map +1 -0
  551. package/dist/services/definitions/zulip.d.mts +7 -0
  552. package/dist/services/definitions/zulip.d.mts.map +1 -0
  553. package/dist/services/definitions/zulip.mjs +115 -0
  554. package/dist/services/definitions/zulip.mjs.map +1 -0
  555. package/dist/services/registry.cjs +3 -0
  556. package/dist/services/registry.cjs.map +1 -1
  557. package/dist/services/registry.d.cts.map +1 -1
  558. package/dist/services/registry.d.mts.map +1 -1
  559. package/dist/services/registry.mjs +3 -0
  560. package/dist/services/registry.mjs.map +1 -1
  561. package/dist/services/registry.test.cjs +8 -1
  562. package/dist/services/registry.test.cjs.map +1 -1
  563. package/dist/services/registry.test.mjs +8 -1
  564. package/dist/services/registry.test.mjs.map +1 -1
  565. package/dist/{skill-manifest-BVUXU0__.mjs → skill-manifest-6XhrhWsG.mjs} +49 -1
  566. package/dist/{skill-manifest--IgY9REK.cjs.map → skill-manifest-6XhrhWsG.mjs.map} +1 -1
  567. package/dist/{skill-manifest--IgY9REK.cjs → skill-manifest-B8znSsym.cjs} +49 -1
  568. package/dist/{skill-manifest-BVUXU0__.mjs.map → skill-manifest-B8znSsym.cjs.map} +1 -1
  569. package/dist/skills/registry.cjs +3 -3
  570. package/dist/skills/registry.cjs.map +1 -1
  571. package/dist/skills/registry.mjs +3 -3
  572. package/dist/skills/registry.mjs.map +1 -1
  573. package/dist/skills/skill-manifest.cjs +1 -1
  574. package/dist/skills/skill-manifest.mjs +1 -1
  575. package/dist/track-analytics.cjs +50 -0
  576. package/dist/track-analytics.cjs.map +1 -0
  577. package/dist/track-analytics.d.cts +34 -0
  578. package/dist/track-analytics.d.cts.map +1 -0
  579. package/dist/track-analytics.d.mts +34 -0
  580. package/dist/track-analytics.d.mts.map +1 -0
  581. package/dist/track-analytics.mjs +48 -0
  582. package/dist/track-analytics.mjs.map +1 -0
  583. package/dist/track-analytics.test.cjs +91 -0
  584. package/dist/track-analytics.test.cjs.map +1 -0
  585. package/dist/track-analytics.test.d.cts +1 -0
  586. package/dist/track-analytics.test.d.mts +1 -0
  587. package/dist/track-analytics.test.mjs +92 -0
  588. package/dist/track-analytics.test.mjs.map +1 -0
  589. package/dist/types.cjs +35 -0
  590. package/dist/types.cjs.map +1 -1
  591. package/dist/types.d.cts +5 -2
  592. package/dist/types.d.cts.map +1 -1
  593. package/dist/types.d.mts +5 -2
  594. package/dist/types.d.mts.map +1 -1
  595. package/dist/types.mjs +35 -0
  596. package/dist/types.mjs.map +1 -1
  597. package/dist/validator.test.cjs +1 -1
  598. package/dist/validator.test.mjs +1 -1
  599. package/dist/version-manager.cjs +1 -1
  600. package/dist/version-manager.cjs.map +1 -1
  601. package/dist/version-manager.mjs +1 -1
  602. package/dist/version-manager.mjs.map +1 -1
  603. package/dist/version-manager.test.cjs +7 -5
  604. package/dist/version-manager.test.cjs.map +1 -1
  605. package/dist/version-manager.test.mjs +7 -5
  606. package/dist/version-manager.test.mjs.map +1 -1
  607. package/dist/{vi.2VT5v0um-DvC3SVNc.mjs → vi.2VT5v0um-C_jmO7m2.mjs} +5 -5
  608. package/dist/{vi.2VT5v0um-DvC3SVNc.mjs.map → vi.2VT5v0um-C_jmO7m2.mjs.map} +1 -1
  609. package/dist/{vi.2VT5v0um-CRqXre87.cjs → vi.2VT5v0um-iVBt6Fyq.cjs} +5 -5
  610. package/dist/{vi.2VT5v0um-CRqXre87.cjs.map → vi.2VT5v0um-iVBt6Fyq.cjs.map} +1 -1
  611. package/package.json +1 -1
  612. package/src/__snapshots__/composer.snapshot.test.ts.snap +285 -65
  613. package/src/bare-metal-partition.test.ts +4 -3
  614. package/src/composer.test.ts +4 -2
  615. package/src/composer.ts +45 -16
  616. package/src/generate.test.ts +2 -1
  617. package/src/generate.ts +11 -1
  618. package/src/generators/clone-repos.test.ts +154 -0
  619. package/src/generators/clone-repos.ts +159 -0
  620. package/src/generators/env.ts +214 -0
  621. package/src/generators/openclaw-json.ts +156 -1
  622. package/src/generators/postgres-init.ts +17 -0
  623. package/src/generators/readme.ts +2 -1
  624. package/src/generators/scripts.test.ts +52 -4
  625. package/src/generators/scripts.ts +351 -3
  626. package/src/generators/stack-manifest.ts +4 -2
  627. package/src/index.ts +8 -0
  628. package/src/presets/registry.ts +20 -0
  629. package/src/resolver.test.ts +53 -15
  630. package/src/resolver.ts +13 -1
  631. package/src/schema.ts +37 -4
  632. package/src/services/definitions/adguard-home.ts +79 -0
  633. package/src/services/definitions/apptension-saas.ts +84 -0
  634. package/src/services/definitions/audiobookshelf.ts +83 -0
  635. package/src/services/definitions/baserow.ts +118 -0
  636. package/src/services/definitions/boxyhq-saas.ts +84 -0
  637. package/src/services/definitions/calibre-web.ts +95 -0
  638. package/src/services/definitions/clickhouse.ts +115 -0
  639. package/src/services/definitions/cloudflared.ts +55 -0
  640. package/src/services/definitions/cmsaas-starter.ts +84 -0
  641. package/src/services/definitions/cockroachdb.ts +75 -0
  642. package/src/services/definitions/coder.ts +68 -0
  643. package/src/services/definitions/dragonfly.ts +68 -0
  644. package/src/services/definitions/drone-ci.ts +96 -0
  645. package/src/services/definitions/element-web.ts +62 -0
  646. package/src/services/definitions/focalboard.ts +69 -0
  647. package/src/services/definitions/forgejo.ts +109 -0
  648. package/src/services/definitions/graylog.ts +101 -0
  649. package/src/services/definitions/index.ts +159 -0
  650. package/src/services/definitions/influxdb.ts +109 -0
  651. package/src/services/definitions/invoke-ai.ts +76 -0
  652. package/src/services/definitions/ixartz-saas.ts +84 -0
  653. package/src/services/definitions/jaeger.ts +94 -0
  654. package/src/services/definitions/jan.ts +68 -0
  655. package/src/services/definitions/jitsi-meet.ts +108 -0
  656. package/src/services/definitions/local-ai.ts +90 -0
  657. package/src/services/definitions/metabase.ts +111 -0
  658. package/src/services/definitions/mission-control.ts +19 -2
  659. package/src/services/definitions/mosquitto.ts +84 -0
  660. package/src/services/definitions/navidrome.ts +95 -0
  661. package/src/services/definitions/nginx-proxy-manager.ts +70 -0
  662. package/src/services/definitions/node-red.ts +83 -0
  663. package/src/services/definitions/open-saas.ts +79 -0
  664. package/src/services/definitions/photoprism.ts +130 -0
  665. package/src/services/definitions/pihole.ts +79 -0
  666. package/src/services/definitions/piper-tts.ts +76 -0
  667. package/src/services/definitions/plane.ts +75 -0
  668. package/src/services/definitions/plausible.ts +97 -0
  669. package/src/services/definitions/pocket-id.ts +98 -0
  670. package/src/services/definitions/posthog.ts +97 -0
  671. package/src/services/definitions/redis.ts +1 -1
  672. package/src/services/definitions/revolt.ts +68 -0
  673. package/src/services/definitions/sentry.ts +104 -0
  674. package/src/services/definitions/sonarqube.ts +85 -0
  675. package/src/services/definitions/superset.ts +84 -0
  676. package/src/services/definitions/surrealdb.ts +77 -0
  677. package/src/services/definitions/tabby-ml.ts +76 -0
  678. package/src/services/definitions/tempo.ts +59 -0
  679. package/src/services/definitions/text-gen-webui.ts +92 -0
  680. package/src/services/definitions/timescaledb.ts +90 -0
  681. package/src/services/definitions/valkey.ts +1 -1
  682. package/src/services/definitions/vector-log.ts +61 -0
  683. package/src/services/definitions/vikunja.ts +96 -0
  684. package/src/services/definitions/wireguard.ts +89 -0
  685. package/src/services/definitions/woodpecker-ci.ts +97 -0
  686. package/src/services/definitions/zulip.ts +117 -0
  687. package/src/services/registry.test.ts +8 -0
  688. package/src/services/registry.ts +7 -0
  689. package/src/skills/manifest.json +64 -0
  690. package/src/skills/registry.ts +3 -3
  691. package/src/track-analytics.test.ts +82 -0
  692. package/src/track-analytics.ts +76 -0
  693. package/src/types.ts +40 -0
  694. package/src/version-manager.test.ts +10 -5
  695. package/src/version-manager.ts +1 -1
  696. package/dist/schema-C_hc7e4k.d.cts.map +0 -1
  697. package/dist/schema-CaesJaS2.d.mts.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-openclaw/core",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "private": false,
5
5
  "description": "Core logic for better-openclaw: schemas, service registry, resolver, composer, validators and generators",
6
6
  "author": "bidew.io <bachir@bidew.io>",
@@ -8,9 +8,10 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
8
8
  HOME: /home/node
9
9
  TERM: xterm-256color
10
10
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
11
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
12
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
13
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
11
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
12
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
13
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
14
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
14
15
  OPENAI_API_KEY: \${OPENAI_API_KEY}
15
16
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
16
17
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -50,11 +51,51 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
50
51
  - \${OPENCLAW_GATEWAY_BIND:-lan}
51
52
  - --port
52
53
  - "18789"
54
+ - --allow-unconfigured
55
+ healthcheck:
56
+ test:
57
+ - CMD
58
+ - node
59
+ - -e
60
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
61
+ interval: 30s
62
+ timeout: 5s
63
+ retries: 5
64
+ start_period: 20s
53
65
  depends_on:
66
+ convex:
67
+ condition: service_healthy
54
68
  minio:
55
69
  condition: service_healthy
56
70
  redis:
57
71
  condition: service_healthy
72
+ convex:
73
+ image: ghcr.io/get-convex/convex-backend:latest
74
+ environment:
75
+ CONVEX_CLOUD_ORIGIN: http://127.0.0.1:3210
76
+ CONVEX_SITE_ORIGIN: http://127.0.0.1:3211
77
+ INSTANCE_NAME: openclaw-convex
78
+ INSTANCE_SECRET: \${INSTANCE_SECRET}
79
+ DATABASE_URL: \${DATABASE_URL}
80
+ RUST_LOG: info
81
+ DISABLE_BEACON: ""
82
+ CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
83
+ ports:
84
+ - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
85
+ - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
86
+ volumes:
87
+ - convex-data:/convex/data
88
+ healthcheck:
89
+ test:
90
+ - CMD-SHELL
91
+ - curl -f http://localhost:3210/version
92
+ interval: 5s
93
+ timeout: 5s
94
+ retries: 5
95
+ start_period: 10s
96
+ restart: unless-stopped
97
+ networks:
98
+ - openclaw-network
58
99
  minio:
59
100
  image: minio/minio:RELEASE.2025-04-22T22-12-26Z
60
101
  environment:
@@ -97,16 +138,21 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
97
138
  - openclaw-network
98
139
  openclaw-cli:
99
140
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
141
+ network_mode: service:openclaw-gateway
142
+ cap_drop:
143
+ - NET_RAW
144
+ - NET_ADMIN
145
+ security_opt:
146
+ - no-new-privileges:true
100
147
  environment:
101
148
  HOME: /home/node
102
149
  TERM: xterm-256color
103
150
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
104
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
105
- OPENCLAW_GATEWAY_PORT: "18789"
151
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
106
152
  BROWSER: echo
107
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
108
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
109
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
153
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
154
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
155
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
110
156
  OPENAI_API_KEY: \${OPENAI_API_KEY}
111
157
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
112
158
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -123,19 +169,17 @@ exports[`compose snapshot tests > creator preset (ffmpeg + remotion + minio + re
123
169
  stdin_open: true
124
170
  tty: true
125
171
  init: true
126
- networks:
127
- - openclaw-network
128
172
  entrypoint:
129
173
  - node
130
174
  - dist/index.js
131
- restart: no
132
175
  depends_on:
133
- openclaw-gateway:
134
- condition: service_started
176
+ - openclaw-gateway
135
177
  volumes:
178
+ convex-data:
136
179
  ffmpeg-shared:
137
180
  minio-data:
138
181
  redis-data:
182
+ tailscale-state:
139
183
  networks:
140
184
  openclaw-network:
141
185
  driver: bridge
@@ -179,9 +223,10 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
179
223
  HOME: /home/node
180
224
  TERM: xterm-256color
181
225
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
182
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
183
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
184
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
226
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
227
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
228
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
229
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
185
230
  OPENAI_API_KEY: \${OPENAI_API_KEY}
186
231
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
187
232
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -220,13 +265,53 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
220
265
  - \${OPENCLAW_GATEWAY_BIND:-lan}
221
266
  - --port
222
267
  - "18789"
268
+ - --allow-unconfigured
269
+ healthcheck:
270
+ test:
271
+ - CMD
272
+ - node
273
+ - -e
274
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
275
+ interval: 30s
276
+ timeout: 5s
277
+ retries: 5
278
+ start_period: 20s
223
279
  depends_on:
280
+ convex:
281
+ condition: service_healthy
224
282
  postgresql:
225
283
  condition: service_healthy
226
284
  redis:
227
285
  condition: service_healthy
228
286
  n8n:
229
287
  condition: service_healthy
288
+ convex:
289
+ image: ghcr.io/get-convex/convex-backend:latest
290
+ environment:
291
+ CONVEX_CLOUD_ORIGIN: http://127.0.0.1:3210
292
+ CONVEX_SITE_ORIGIN: http://127.0.0.1:3211
293
+ INSTANCE_NAME: openclaw-convex
294
+ INSTANCE_SECRET: \${INSTANCE_SECRET}
295
+ DATABASE_URL: \${DATABASE_URL}
296
+ RUST_LOG: info
297
+ DISABLE_BEACON: ""
298
+ CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
299
+ ports:
300
+ - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
301
+ - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
302
+ volumes:
303
+ - convex-data:/convex/data
304
+ healthcheck:
305
+ test:
306
+ - CMD-SHELL
307
+ - curl -f http://localhost:3210/version
308
+ interval: 5s
309
+ timeout: 5s
310
+ retries: 5
311
+ start_period: 10s
312
+ restart: unless-stopped
313
+ networks:
314
+ - openclaw-network
230
315
  postgresql:
231
316
  image: postgres:17-alpine
232
317
  environment:
@@ -341,16 +426,21 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
341
426
  - openclaw-network
342
427
  openclaw-cli:
343
428
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
429
+ network_mode: service:openclaw-gateway
430
+ cap_drop:
431
+ - NET_RAW
432
+ - NET_ADMIN
433
+ security_opt:
434
+ - no-new-privileges:true
344
435
  environment:
345
436
  HOME: /home/node
346
437
  TERM: xterm-256color
347
438
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
348
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
349
- OPENCLAW_GATEWAY_PORT: "18789"
439
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
350
440
  BROWSER: echo
351
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
352
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
353
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
441
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
442
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
443
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
354
444
  OPENAI_API_KEY: \${OPENAI_API_KEY}
355
445
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
356
446
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -367,21 +457,19 @@ exports[`compose snapshot tests > devops preset (n8n + postgresql + redis + moni
367
457
  stdin_open: true
368
458
  tty: true
369
459
  init: true
370
- networks:
371
- - openclaw-network
372
460
  entrypoint:
373
461
  - node
374
462
  - dist/index.js
375
- restart: no
376
463
  depends_on:
377
- openclaw-gateway:
378
- condition: service_started
464
+ - openclaw-gateway
379
465
  volumes:
466
+ convex-data:
380
467
  grafana-data:
381
468
  n8n-data:
382
469
  postgres-data:
383
470
  prometheus-data:
384
471
  redis-data:
472
+ tailscale-state:
385
473
  uptime-kuma-data:
386
474
  networks:
387
475
  openclaw-network:
@@ -470,9 +558,10 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
470
558
  HOME: /home/node
471
559
  TERM: xterm-256color
472
560
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
473
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
474
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
475
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
561
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
562
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
563
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
564
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
476
565
  OPENAI_API_KEY: \${OPENAI_API_KEY}
477
566
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
478
567
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -537,11 +626,24 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
537
626
  - \${OPENCLAW_GATEWAY_BIND:-lan}
538
627
  - --port
539
628
  - "18789"
629
+ - --allow-unconfigured
630
+ healthcheck:
631
+ test:
632
+ - CMD
633
+ - node
634
+ - -e
635
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
636
+ interval: 30s
637
+ timeout: 5s
638
+ retries: 5
639
+ start_period: 20s
540
640
  depends_on:
541
641
  browserless:
542
642
  condition: service_healthy
543
643
  caddy:
544
644
  condition: service_healthy
645
+ convex:
646
+ condition: service_healthy
545
647
  meilisearch:
546
648
  condition: service_healthy
547
649
  minio:
@@ -593,6 +695,33 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
593
695
  restart: unless-stopped
594
696
  networks:
595
697
  - openclaw-network
698
+ convex:
699
+ image: ghcr.io/get-convex/convex-backend:latest
700
+ environment:
701
+ CONVEX_CLOUD_ORIGIN: http://127.0.0.1:3210
702
+ CONVEX_SITE_ORIGIN: http://127.0.0.1:3211
703
+ INSTANCE_NAME: openclaw-convex
704
+ INSTANCE_SECRET: \${INSTANCE_SECRET}
705
+ DATABASE_URL: \${DATABASE_URL}
706
+ RUST_LOG: info
707
+ DISABLE_BEACON: ""
708
+ CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
709
+ ports:
710
+ - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
711
+ - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
712
+ volumes:
713
+ - convex-data:/convex/data
714
+ healthcheck:
715
+ test:
716
+ - CMD-SHELL
717
+ - curl -f http://localhost:3210/version
718
+ interval: 5s
719
+ timeout: 5s
720
+ retries: 5
721
+ start_period: 10s
722
+ restart: unless-stopped
723
+ networks:
724
+ - openclaw-network
596
725
  meilisearch:
597
726
  image: getmeili/meilisearch:v1.35.1
598
727
  environment:
@@ -784,16 +913,21 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
784
913
  - openclaw-network
785
914
  openclaw-cli:
786
915
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
916
+ network_mode: service:openclaw-gateway
917
+ cap_drop:
918
+ - NET_RAW
919
+ - NET_ADMIN
920
+ security_opt:
921
+ - no-new-privileges:true
787
922
  environment:
788
923
  HOME: /home/node
789
924
  TERM: xterm-256color
790
925
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
791
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
792
- OPENCLAW_GATEWAY_PORT: "18789"
926
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
793
927
  BROWSER: echo
794
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
795
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
796
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
928
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
929
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
930
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
797
931
  OPENAI_API_KEY: \${OPENAI_API_KEY}
798
932
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
799
933
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -810,18 +944,15 @@ exports[`compose snapshot tests > full preset (many services) 1`] = `
810
944
  stdin_open: true
811
945
  tty: true
812
946
  init: true
813
- networks:
814
- - openclaw-network
815
947
  entrypoint:
816
948
  - node
817
949
  - dist/index.js
818
- restart: no
819
950
  depends_on:
820
- openclaw-gateway:
821
- condition: service_started
951
+ - openclaw-gateway
822
952
  volumes:
823
953
  caddy-config:
824
954
  caddy-data:
955
+ convex-data:
825
956
  ffmpeg-shared:
826
957
  gotify-data:
827
958
  grafana-data:
@@ -834,6 +965,7 @@ volumes:
834
965
  qdrant-data:
835
966
  redis-data:
836
967
  searxng-data:
968
+ tailscale-state:
837
969
  uptime-kuma-data:
838
970
  networks:
839
971
  openclaw-network:
@@ -849,9 +981,10 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
849
981
  HOME: /home/node
850
982
  TERM: xterm-256color
851
983
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
852
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
853
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
854
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
984
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
985
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
986
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
987
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
855
988
  OPENAI_API_KEY: \${OPENAI_API_KEY}
856
989
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
857
990
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -883,9 +1016,49 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
883
1016
  - \${OPENCLAW_GATEWAY_BIND:-lan}
884
1017
  - --port
885
1018
  - "18789"
1019
+ - --allow-unconfigured
1020
+ healthcheck:
1021
+ test:
1022
+ - CMD
1023
+ - node
1024
+ - -e
1025
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
1026
+ interval: 30s
1027
+ timeout: 5s
1028
+ retries: 5
1029
+ start_period: 20s
886
1030
  depends_on:
1031
+ convex:
1032
+ condition: service_healthy
887
1033
  redis:
888
1034
  condition: service_healthy
1035
+ convex:
1036
+ image: ghcr.io/get-convex/convex-backend:latest
1037
+ environment:
1038
+ CONVEX_CLOUD_ORIGIN: http://127.0.0.1:3210
1039
+ CONVEX_SITE_ORIGIN: http://127.0.0.1:3211
1040
+ INSTANCE_NAME: openclaw-convex
1041
+ INSTANCE_SECRET: \${INSTANCE_SECRET}
1042
+ DATABASE_URL: \${DATABASE_URL}
1043
+ RUST_LOG: info
1044
+ DISABLE_BEACON: ""
1045
+ CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
1046
+ ports:
1047
+ - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
1048
+ - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
1049
+ volumes:
1050
+ - convex-data:/convex/data
1051
+ healthcheck:
1052
+ test:
1053
+ - CMD-SHELL
1054
+ - curl -f http://localhost:3210/version
1055
+ interval: 5s
1056
+ timeout: 5s
1057
+ retries: 5
1058
+ start_period: 10s
1059
+ restart: unless-stopped
1060
+ networks:
1061
+ - openclaw-network
889
1062
  redis:
890
1063
  image: redis:8-alpine
891
1064
  environment:
@@ -906,16 +1079,21 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
906
1079
  - openclaw-network
907
1080
  openclaw-cli:
908
1081
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
1082
+ network_mode: service:openclaw-gateway
1083
+ cap_drop:
1084
+ - NET_RAW
1085
+ - NET_ADMIN
1086
+ security_opt:
1087
+ - no-new-privileges:true
909
1088
  environment:
910
1089
  HOME: /home/node
911
1090
  TERM: xterm-256color
912
1091
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
913
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
914
- OPENCLAW_GATEWAY_PORT: "18789"
1092
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
915
1093
  BROWSER: echo
916
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
917
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
918
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
1094
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
1095
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
1096
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
919
1097
  OPENAI_API_KEY: \${OPENAI_API_KEY}
920
1098
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
921
1099
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -932,17 +1110,15 @@ exports[`compose snapshot tests > minimal preset (redis only) 1`] = `
932
1110
  stdin_open: true
933
1111
  tty: true
934
1112
  init: true
935
- networks:
936
- - openclaw-network
937
1113
  entrypoint:
938
1114
  - node
939
1115
  - dist/index.js
940
- restart: no
941
1116
  depends_on:
942
- openclaw-gateway:
943
- condition: service_started
1117
+ - openclaw-gateway
944
1118
  volumes:
1119
+ convex-data:
945
1120
  redis-data:
1121
+ tailscale-state:
946
1122
  networks:
947
1123
  openclaw-network:
948
1124
  driver: bridge
@@ -957,9 +1133,10 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
957
1133
  HOME: /home/node
958
1134
  TERM: xterm-256color
959
1135
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
960
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
961
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
962
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
1136
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
1137
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
1138
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
1139
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
963
1140
  OPENAI_API_KEY: \${OPENAI_API_KEY}
964
1141
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
965
1142
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -998,9 +1175,22 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
998
1175
  - \${OPENCLAW_GATEWAY_BIND:-lan}
999
1176
  - --port
1000
1177
  - "18789"
1178
+ - --allow-unconfigured
1179
+ healthcheck:
1180
+ test:
1181
+ - CMD
1182
+ - node
1183
+ - -e
1184
+ - fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
1185
+ interval: 30s
1186
+ timeout: 5s
1187
+ retries: 5
1188
+ start_period: 20s
1001
1189
  depends_on:
1002
1190
  browserless:
1003
1191
  condition: service_healthy
1192
+ convex:
1193
+ condition: service_healthy
1004
1194
  qdrant:
1005
1195
  condition: service_healthy
1006
1196
  redis:
@@ -1025,6 +1215,33 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
1025
1215
  restart: unless-stopped
1026
1216
  networks:
1027
1217
  - openclaw-network
1218
+ convex:
1219
+ image: ghcr.io/get-convex/convex-backend:latest
1220
+ environment:
1221
+ CONVEX_CLOUD_ORIGIN: http://127.0.0.1:3210
1222
+ CONVEX_SITE_ORIGIN: http://127.0.0.1:3211
1223
+ INSTANCE_NAME: openclaw-convex
1224
+ INSTANCE_SECRET: \${INSTANCE_SECRET}
1225
+ DATABASE_URL: \${DATABASE_URL}
1226
+ RUST_LOG: info
1227
+ DISABLE_BEACON: ""
1228
+ CONVEX_SELF_HOSTED_ADMIN_KEY: \${CONVEX_SELF_HOSTED_ADMIN_KEY}
1229
+ ports:
1230
+ - \${CONVEX_EXTERNAL_PORT_0:-3210}:3210
1231
+ - \${CONVEX_EXTERNAL_PORT_1:-3211}:3211
1232
+ volumes:
1233
+ - convex-data:/convex/data
1234
+ healthcheck:
1235
+ test:
1236
+ - CMD-SHELL
1237
+ - curl -f http://localhost:3210/version
1238
+ interval: 5s
1239
+ timeout: 5s
1240
+ retries: 5
1241
+ start_period: 10s
1242
+ restart: unless-stopped
1243
+ networks:
1244
+ - openclaw-network
1028
1245
  qdrant:
1029
1246
  image: qdrant/qdrant:v1.12.1
1030
1247
  environment:
@@ -1081,16 +1298,21 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
1081
1298
  - openclaw-network
1082
1299
  openclaw-cli:
1083
1300
  image: \${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest}
1301
+ network_mode: service:openclaw-gateway
1302
+ cap_drop:
1303
+ - NET_RAW
1304
+ - NET_ADMIN
1305
+ security_opt:
1306
+ - no-new-privileges:true
1084
1307
  environment:
1085
1308
  HOME: /home/node
1086
1309
  TERM: xterm-256color
1087
1310
  OPENCLAW_GATEWAY_TOKEN: \${OPENCLAW_GATEWAY_TOKEN}
1088
- OPENCLAW_GATEWAY_HOST: openclaw-gateway
1089
- OPENCLAW_GATEWAY_PORT: "18789"
1311
+ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS: \${OPENCLAW_ALLOW_INSECURE_PRIVATE_WS:-}
1090
1312
  BROWSER: echo
1091
- CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY}
1092
- CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY}
1093
- CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE}
1313
+ CLAUDE_AI_SESSION_KEY: \${CLAUDE_AI_SESSION_KEY:-}
1314
+ CLAUDE_WEB_SESSION_KEY: \${CLAUDE_WEB_SESSION_KEY:-}
1315
+ CLAUDE_WEB_COOKIE: \${CLAUDE_WEB_COOKIE:-}
1094
1316
  OPENAI_API_KEY: \${OPENAI_API_KEY}
1095
1317
  ANTHROPIC_API_KEY: \${ANTHROPIC_API_KEY}
1096
1318
  GOOGLE_API_KEY: \${GOOGLE_API_KEY}
@@ -1107,19 +1329,17 @@ exports[`compose snapshot tests > researcher preset (qdrant + searxng + browserl
1107
1329
  stdin_open: true
1108
1330
  tty: true
1109
1331
  init: true
1110
- networks:
1111
- - openclaw-network
1112
1332
  entrypoint:
1113
1333
  - node
1114
1334
  - dist/index.js
1115
- restart: no
1116
1335
  depends_on:
1117
- openclaw-gateway:
1118
- condition: service_started
1336
+ - openclaw-gateway
1119
1337
  volumes:
1338
+ convex-data:
1120
1339
  qdrant-data:
1121
1340
  redis-data:
1122
1341
  searxng-data:
1342
+ tailscale-state:
1123
1343
  networks:
1124
1344
  openclaw-network:
1125
1345
  driver: bridge
@@ -25,9 +25,10 @@ describe("bare-metal partition", () => {
25
25
  });
26
26
  const result = partitionBareMetal(resolved, "linux/amd64");
27
27
  expect(result.nativeIds.has("redis")).toBe(true);
28
- expect(result.nativeServices.length).toBe(1);
29
- expect(result.nativeServices[0].definition.id).toBe("redis");
30
- expect(result.dockerOnlyServices.length).toBe(0);
28
+ const redisNative = result.nativeServices.find((s) => s.definition.id === "redis");
29
+ expect(redisNative).toBeDefined();
30
+ // Mandatory services (convex, mission-control, tailscale) are Docker-only
31
+ expect(result.dockerOnlyServices.length).toBeGreaterThanOrEqual(0);
31
32
  });
32
33
 
33
34
  it("partitions n8n as Docker-only (no native recipe)", () => {
@@ -38,8 +38,10 @@ describe("compose", () => {
38
38
  // Should have CLI companion service
39
39
  expect(parsed.services).toHaveProperty("openclaw-cli");
40
40
 
41
- // Gateway should have no depends_on (no companions)
42
- expect(parsed.services["openclaw-gateway"]).not.toHaveProperty("depends_on");
41
+ // Gateway should have depends_on for mandatory services (convex, mission-control, tailscale)
42
+ // Even with no user-selected services, mandatory services are always present
43
+ expect(parsed.services).toHaveProperty("convex");
44
+ expect(parsed.services).toHaveProperty("mission-control");
43
45
 
44
46
  // Gateway should have restart policy
45
47
  expect(parsed.services["openclaw-gateway"].restart).toBe("unless-stopped");