@better-openclaw/core 1.0.23 → 1.0.25

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 (335) hide show
  1. package/dist/addon-stack.cjs +673 -0
  2. package/dist/addon-stack.cjs.map +1 -0
  3. package/dist/addon-stack.d.cts +23 -0
  4. package/dist/addon-stack.d.cts.map +1 -0
  5. package/dist/addon-stack.d.mts +23 -0
  6. package/dist/addon-stack.d.mts.map +1 -0
  7. package/dist/addon-stack.mjs +671 -0
  8. package/dist/addon-stack.mjs.map +1 -0
  9. package/dist/addon-stack.test.cjs +349 -0
  10. package/dist/addon-stack.test.cjs.map +1 -0
  11. package/dist/addon-stack.test.d.cts +1 -0
  12. package/dist/addon-stack.test.d.mts +1 -0
  13. package/dist/addon-stack.test.mjs +349 -0
  14. package/dist/addon-stack.test.mjs.map +1 -0
  15. package/dist/bare-metal-partition.test.cjs +20 -21
  16. package/dist/bare-metal-partition.test.cjs.map +1 -1
  17. package/dist/bare-metal-partition.test.mjs +4 -5
  18. package/dist/bare-metal-partition.test.mjs.map +1 -1
  19. package/dist/composer.cjs +17 -1
  20. package/dist/composer.cjs.map +1 -1
  21. package/dist/composer.d.cts +24 -1
  22. package/dist/composer.d.cts.map +1 -1
  23. package/dist/composer.d.mts +24 -1
  24. package/dist/composer.d.mts.map +1 -1
  25. package/dist/composer.mjs +14 -2
  26. package/dist/composer.mjs.map +1 -1
  27. package/dist/composer.snapshot.test.cjs +20 -20
  28. package/dist/composer.snapshot.test.cjs.map +1 -1
  29. package/dist/composer.snapshot.test.mjs +2 -2
  30. package/dist/composer.test.cjs +53 -52
  31. package/dist/composer.test.cjs.map +1 -1
  32. package/dist/composer.test.mjs +4 -3
  33. package/dist/composer.test.mjs.map +1 -1
  34. package/dist/deployers/strip-host-ports.test.cjs +26 -26
  35. package/dist/deployers/strip-host-ports.test.cjs.map +1 -1
  36. package/dist/deployers/strip-host-ports.test.mjs +1 -1
  37. package/dist/generate.cjs +8 -4
  38. package/dist/generate.cjs.map +1 -1
  39. package/dist/generate.d.cts.map +1 -1
  40. package/dist/generate.d.mts.map +1 -1
  41. package/dist/generate.mjs +9 -5
  42. package/dist/generate.mjs.map +1 -1
  43. package/dist/generate.test.cjs +55 -55
  44. package/dist/generate.test.cjs.map +1 -1
  45. package/dist/generate.test.mjs +2 -2
  46. package/dist/generate.test.mjs.map +1 -1
  47. package/dist/generators/bare-metal-install.test.cjs +18 -18
  48. package/dist/generators/bare-metal-install.test.cjs.map +1 -1
  49. package/dist/generators/bare-metal-install.test.mjs +1 -1
  50. package/dist/generators/caddy.test.cjs +13 -13
  51. package/dist/generators/caddy.test.cjs.map +1 -1
  52. package/dist/generators/caddy.test.mjs +1 -1
  53. package/dist/generators/clone-repos.cjs +140 -0
  54. package/dist/generators/clone-repos.cjs.map +1 -0
  55. package/dist/generators/clone-repos.d.cts +11 -0
  56. package/dist/generators/clone-repos.d.cts.map +1 -0
  57. package/dist/generators/clone-repos.d.mts +11 -0
  58. package/dist/generators/clone-repos.d.mts.map +1 -0
  59. package/dist/generators/clone-repos.mjs +139 -0
  60. package/dist/generators/clone-repos.mjs.map +1 -0
  61. package/dist/generators/clone-repos.test.cjs +140 -0
  62. package/dist/generators/clone-repos.test.cjs.map +1 -0
  63. package/dist/generators/clone-repos.test.d.cts +1 -0
  64. package/dist/generators/clone-repos.test.d.mts +1 -0
  65. package/dist/generators/clone-repos.test.mjs +141 -0
  66. package/dist/generators/clone-repos.test.mjs.map +1 -0
  67. package/dist/generators/env.test.cjs +17 -17
  68. package/dist/generators/env.test.cjs.map +1 -1
  69. package/dist/generators/env.test.mjs +1 -1
  70. package/dist/generators/health-check.test.cjs +39 -39
  71. package/dist/generators/health-check.test.cjs.map +1 -1
  72. package/dist/generators/health-check.test.mjs +1 -1
  73. package/dist/generators/postgres-init.cjs +20 -0
  74. package/dist/generators/postgres-init.cjs.map +1 -1
  75. package/dist/generators/postgres-init.d.cts.map +1 -1
  76. package/dist/generators/postgres-init.d.mts.map +1 -1
  77. package/dist/generators/postgres-init.mjs +20 -0
  78. package/dist/generators/postgres-init.mjs.map +1 -1
  79. package/dist/generators/scripts.cjs +332 -3
  80. package/dist/generators/scripts.cjs.map +1 -1
  81. package/dist/generators/scripts.d.cts +3 -1
  82. package/dist/generators/scripts.d.cts.map +1 -1
  83. package/dist/generators/scripts.d.mts +3 -1
  84. package/dist/generators/scripts.d.mts.map +1 -1
  85. package/dist/generators/scripts.mjs +332 -3
  86. package/dist/generators/scripts.mjs.map +1 -1
  87. package/dist/generators/scripts.test.cjs +57 -23
  88. package/dist/generators/scripts.test.cjs.map +1 -1
  89. package/dist/generators/scripts.test.mjs +39 -5
  90. package/dist/generators/scripts.test.mjs.map +1 -1
  91. package/dist/generators/stack-manifest.cjs +1 -0
  92. package/dist/generators/stack-manifest.cjs.map +1 -1
  93. package/dist/generators/stack-manifest.d.cts +3 -2
  94. package/dist/generators/stack-manifest.d.cts.map +1 -1
  95. package/dist/generators/stack-manifest.d.mts +3 -2
  96. package/dist/generators/stack-manifest.d.mts.map +1 -1
  97. package/dist/generators/stack-manifest.mjs +1 -0
  98. package/dist/generators/stack-manifest.mjs.map +1 -1
  99. package/dist/generators/traefik.test.cjs +32 -32
  100. package/dist/generators/traefik.test.cjs.map +1 -1
  101. package/dist/generators/traefik.test.mjs +1 -1
  102. package/dist/index.cjs +28 -5
  103. package/dist/index.d.cts +7 -4
  104. package/dist/index.d.mts +7 -4
  105. package/dist/index.mjs +10 -7
  106. package/dist/migrations.test.cjs +16 -16
  107. package/dist/migrations.test.cjs.map +1 -1
  108. package/dist/migrations.test.mjs +1 -1
  109. package/dist/presets/registry.cjs.map +1 -1
  110. package/dist/presets/registry.d.cts.map +1 -1
  111. package/dist/presets/registry.d.mts.map +1 -1
  112. package/dist/presets/registry.mjs.map +1 -1
  113. package/dist/presets/registry.test.cjs +14 -14
  114. package/dist/presets/registry.test.cjs.map +1 -1
  115. package/dist/presets/registry.test.mjs +1 -1
  116. package/dist/resolver.cjs +8 -0
  117. package/dist/resolver.cjs.map +1 -1
  118. package/dist/resolver.mjs +9 -1
  119. package/dist/resolver.mjs.map +1 -1
  120. package/dist/resolver.test.cjs +125 -90
  121. package/dist/resolver.test.cjs.map +1 -1
  122. package/dist/resolver.test.mjs +47 -12
  123. package/dist/resolver.test.mjs.map +1 -1
  124. package/dist/{schema-B4c64P8N.d.cts → schema-CKBRu-Rt.d.cts} +355 -8
  125. package/dist/schema-CKBRu-Rt.d.cts.map +1 -0
  126. package/dist/{schema-CXNhYci1.d.mts → schema-Dn-_Jpb6.d.mts} +355 -8
  127. package/dist/schema-Dn-_Jpb6.d.mts.map +1 -0
  128. package/dist/schema.cjs +160 -5
  129. package/dist/schema.cjs.map +1 -1
  130. package/dist/schema.d.cts +2 -2
  131. package/dist/schema.d.mts +2 -2
  132. package/dist/schema.mjs +150 -6
  133. package/dist/schema.mjs.map +1 -1
  134. package/dist/schema.test.cjs +86 -86
  135. package/dist/schema.test.cjs.map +1 -1
  136. package/dist/schema.test.mjs +1 -1
  137. package/dist/services/definitions/apptension-saas.cjs +87 -0
  138. package/dist/services/definitions/apptension-saas.cjs.map +1 -0
  139. package/dist/services/definitions/apptension-saas.d.cts +7 -0
  140. package/dist/services/definitions/apptension-saas.d.cts.map +1 -0
  141. package/dist/services/definitions/apptension-saas.d.mts +7 -0
  142. package/dist/services/definitions/apptension-saas.d.mts.map +1 -0
  143. package/dist/services/definitions/apptension-saas.mjs +86 -0
  144. package/dist/services/definitions/apptension-saas.mjs.map +1 -0
  145. package/dist/services/definitions/boxyhq-saas.cjs +88 -0
  146. package/dist/services/definitions/boxyhq-saas.cjs.map +1 -0
  147. package/dist/services/definitions/boxyhq-saas.d.cts +7 -0
  148. package/dist/services/definitions/boxyhq-saas.d.cts.map +1 -0
  149. package/dist/services/definitions/boxyhq-saas.d.mts +7 -0
  150. package/dist/services/definitions/boxyhq-saas.d.mts.map +1 -0
  151. package/dist/services/definitions/boxyhq-saas.mjs +87 -0
  152. package/dist/services/definitions/boxyhq-saas.mjs.map +1 -0
  153. package/dist/services/definitions/browserless.cjs +4 -1
  154. package/dist/services/definitions/browserless.cjs.map +1 -1
  155. package/dist/services/definitions/browserless.mjs +4 -1
  156. package/dist/services/definitions/browserless.mjs.map +1 -1
  157. package/dist/services/definitions/cmsaas-starter.cjs +86 -0
  158. package/dist/services/definitions/cmsaas-starter.cjs.map +1 -0
  159. package/dist/services/definitions/cmsaas-starter.d.cts +7 -0
  160. package/dist/services/definitions/cmsaas-starter.d.cts.map +1 -0
  161. package/dist/services/definitions/cmsaas-starter.d.mts +7 -0
  162. package/dist/services/definitions/cmsaas-starter.d.mts.map +1 -0
  163. package/dist/services/definitions/cmsaas-starter.mjs +85 -0
  164. package/dist/services/definitions/cmsaas-starter.mjs.map +1 -0
  165. package/dist/services/definitions/convex.cjs +43 -1
  166. package/dist/services/definitions/convex.cjs.map +1 -1
  167. package/dist/services/definitions/convex.mjs +43 -1
  168. package/dist/services/definitions/convex.mjs.map +1 -1
  169. package/dist/services/definitions/grafana.cjs +11 -1
  170. package/dist/services/definitions/grafana.cjs.map +1 -1
  171. package/dist/services/definitions/grafana.mjs +11 -1
  172. package/dist/services/definitions/grafana.mjs.map +1 -1
  173. package/dist/services/definitions/index.cjs +51 -36
  174. package/dist/services/definitions/index.cjs.map +1 -1
  175. package/dist/services/definitions/index.d.cts +30 -25
  176. package/dist/services/definitions/index.d.cts.map +1 -1
  177. package/dist/services/definitions/index.d.mts +30 -25
  178. package/dist/services/definitions/index.d.mts.map +1 -1
  179. package/dist/services/definitions/index.mjs +47 -37
  180. package/dist/services/definitions/index.mjs.map +1 -1
  181. package/dist/services/definitions/ixartz-saas.cjs +88 -0
  182. package/dist/services/definitions/ixartz-saas.cjs.map +1 -0
  183. package/dist/services/definitions/ixartz-saas.d.cts +7 -0
  184. package/dist/services/definitions/ixartz-saas.d.cts.map +1 -0
  185. package/dist/services/definitions/ixartz-saas.d.mts +7 -0
  186. package/dist/services/definitions/ixartz-saas.d.mts.map +1 -0
  187. package/dist/services/definitions/ixartz-saas.mjs +87 -0
  188. package/dist/services/definitions/ixartz-saas.mjs.map +1 -0
  189. package/dist/services/definitions/meilisearch.cjs +11 -1
  190. package/dist/services/definitions/meilisearch.cjs.map +1 -1
  191. package/dist/services/definitions/meilisearch.mjs +11 -1
  192. package/dist/services/definitions/meilisearch.mjs.map +1 -1
  193. package/dist/services/definitions/minio.cjs +3 -1
  194. package/dist/services/definitions/minio.cjs.map +1 -1
  195. package/dist/services/definitions/minio.mjs +3 -1
  196. package/dist/services/definitions/minio.mjs.map +1 -1
  197. package/dist/services/definitions/mission-control.cjs +16 -2
  198. package/dist/services/definitions/mission-control.cjs.map +1 -1
  199. package/dist/services/definitions/mission-control.mjs +16 -2
  200. package/dist/services/definitions/mission-control.mjs.map +1 -1
  201. package/dist/services/definitions/n8n.cjs +11 -1
  202. package/dist/services/definitions/n8n.cjs.map +1 -1
  203. package/dist/services/definitions/n8n.mjs +11 -1
  204. package/dist/services/definitions/n8n.mjs.map +1 -1
  205. package/dist/services/definitions/ollama.cjs +3 -1
  206. package/dist/services/definitions/ollama.cjs.map +1 -1
  207. package/dist/services/definitions/ollama.mjs +3 -1
  208. package/dist/services/definitions/ollama.mjs.map +1 -1
  209. package/dist/services/definitions/open-saas.cjs +81 -0
  210. package/dist/services/definitions/open-saas.cjs.map +1 -0
  211. package/dist/services/definitions/open-saas.d.cts +7 -0
  212. package/dist/services/definitions/open-saas.d.cts.map +1 -0
  213. package/dist/services/definitions/open-saas.d.mts +7 -0
  214. package/dist/services/definitions/open-saas.d.mts.map +1 -0
  215. package/dist/services/definitions/open-saas.mjs +80 -0
  216. package/dist/services/definitions/open-saas.mjs.map +1 -0
  217. package/dist/services/definitions/qdrant.cjs +3 -1
  218. package/dist/services/definitions/qdrant.cjs.map +1 -1
  219. package/dist/services/definitions/qdrant.mjs +3 -1
  220. package/dist/services/definitions/qdrant.mjs.map +1 -1
  221. package/dist/services/definitions/searxng.cjs +8 -1
  222. package/dist/services/definitions/searxng.cjs.map +1 -1
  223. package/dist/services/definitions/searxng.mjs +8 -1
  224. package/dist/services/definitions/searxng.mjs.map +1 -1
  225. package/dist/services/definitions/uptime-kuma.cjs +8 -1
  226. package/dist/services/definitions/uptime-kuma.cjs.map +1 -1
  227. package/dist/services/definitions/uptime-kuma.mjs +8 -1
  228. package/dist/services/definitions/uptime-kuma.mjs.map +1 -1
  229. package/dist/services/registry.cjs +3 -0
  230. package/dist/services/registry.cjs.map +1 -1
  231. package/dist/services/registry.d.cts.map +1 -1
  232. package/dist/services/registry.d.mts.map +1 -1
  233. package/dist/services/registry.mjs +3 -0
  234. package/dist/services/registry.mjs.map +1 -1
  235. package/dist/services/registry.test.cjs +40 -33
  236. package/dist/services/registry.test.cjs.map +1 -1
  237. package/dist/services/registry.test.mjs +8 -1
  238. package/dist/services/registry.test.mjs.map +1 -1
  239. package/dist/{skill-manifest-BVUXU0__.mjs → skill-manifest-6XhrhWsG.mjs} +49 -1
  240. package/dist/{skill-manifest--IgY9REK.cjs.map → skill-manifest-6XhrhWsG.mjs.map} +1 -1
  241. package/dist/{skill-manifest--IgY9REK.cjs → skill-manifest-B8znSsym.cjs} +49 -1
  242. package/dist/{skill-manifest-BVUXU0__.mjs.map → skill-manifest-B8znSsym.cjs.map} +1 -1
  243. package/dist/skills/registry.cjs +3 -3
  244. package/dist/skills/registry.cjs.map +1 -1
  245. package/dist/skills/registry.mjs +3 -3
  246. package/dist/skills/registry.mjs.map +1 -1
  247. package/dist/skills/skill-manifest.cjs +1 -1
  248. package/dist/skills/skill-manifest.mjs +1 -1
  249. package/dist/{vi.2VT5v0um-DvC3SVNc.mjs → test.CTcmp4Su-ClCHJ3FA.mjs} +6793 -6403
  250. package/dist/test.CTcmp4Su-ClCHJ3FA.mjs.map +1 -0
  251. package/dist/{vi.2VT5v0um-CRqXre87.cjs → test.CTcmp4Su-DlzTarwH.cjs} +6793 -6403
  252. package/dist/test.CTcmp4Su-DlzTarwH.cjs.map +1 -0
  253. package/dist/track-analytics.cjs +50 -0
  254. package/dist/track-analytics.cjs.map +1 -0
  255. package/dist/track-analytics.d.cts +34 -0
  256. package/dist/track-analytics.d.cts.map +1 -0
  257. package/dist/track-analytics.d.mts +34 -0
  258. package/dist/track-analytics.d.mts.map +1 -0
  259. package/dist/track-analytics.mjs +48 -0
  260. package/dist/track-analytics.mjs.map +1 -0
  261. package/dist/track-analytics.test.cjs +91 -0
  262. package/dist/track-analytics.test.cjs.map +1 -0
  263. package/dist/track-analytics.test.d.cts +1 -0
  264. package/dist/track-analytics.test.d.mts +1 -0
  265. package/dist/track-analytics.test.mjs +92 -0
  266. package/dist/track-analytics.test.mjs.map +1 -0
  267. package/dist/types.cjs +7 -0
  268. package/dist/types.cjs.map +1 -1
  269. package/dist/types.d.cts +12 -2
  270. package/dist/types.d.cts.map +1 -1
  271. package/dist/types.d.mts +12 -2
  272. package/dist/types.d.mts.map +1 -1
  273. package/dist/types.mjs +7 -0
  274. package/dist/types.mjs.map +1 -1
  275. package/dist/validator.test.cjs +15 -15
  276. package/dist/validator.test.cjs.map +1 -1
  277. package/dist/validator.test.mjs +2 -2
  278. package/dist/version-manager.cjs +1 -1
  279. package/dist/version-manager.cjs.map +1 -1
  280. package/dist/version-manager.mjs +1 -1
  281. package/dist/version-manager.mjs.map +1 -1
  282. package/dist/version-manager.test.cjs +40 -38
  283. package/dist/version-manager.test.cjs.map +1 -1
  284. package/dist/version-manager.test.mjs +7 -5
  285. package/dist/version-manager.test.mjs.map +1 -1
  286. package/package.json +4 -4
  287. package/src/__snapshots__/composer.snapshot.test.ts.snap +160 -0
  288. package/src/addon-stack.test.ts +490 -0
  289. package/src/addon-stack.ts +998 -0
  290. package/src/bare-metal-partition.test.ts +4 -3
  291. package/src/composer.test.ts +4 -2
  292. package/src/composer.ts +24 -5
  293. package/src/generate.test.ts +2 -1
  294. package/src/generate.ts +10 -1
  295. package/src/generators/clone-repos.test.ts +154 -0
  296. package/src/generators/clone-repos.ts +159 -0
  297. package/src/generators/postgres-init.ts +17 -0
  298. package/src/generators/scripts.test.ts +52 -4
  299. package/src/generators/scripts.ts +351 -3
  300. package/src/generators/stack-manifest.ts +4 -2
  301. package/src/index.ts +28 -2
  302. package/src/presets/registry.ts +241 -329
  303. package/src/resolver.test.ts +53 -15
  304. package/src/resolver.ts +13 -1
  305. package/src/schema.ts +216 -4
  306. package/src/services/definitions/apptension-saas.ts +84 -0
  307. package/src/services/definitions/boxyhq-saas.ts +84 -0
  308. package/src/services/definitions/browserless.ts +3 -0
  309. package/src/services/definitions/cmsaas-starter.ts +84 -0
  310. package/src/services/definitions/convex.ts +31 -0
  311. package/src/services/definitions/grafana.ts +9 -0
  312. package/src/services/definitions/index.ts +90 -70
  313. package/src/services/definitions/ixartz-saas.ts +84 -0
  314. package/src/services/definitions/meilisearch.ts +9 -0
  315. package/src/services/definitions/minio.ts +2 -0
  316. package/src/services/definitions/mission-control.ts +19 -2
  317. package/src/services/definitions/n8n.ts +9 -0
  318. package/src/services/definitions/ollama.ts +2 -0
  319. package/src/services/definitions/open-saas.ts +79 -0
  320. package/src/services/definitions/qdrant.ts +2 -0
  321. package/src/services/definitions/searxng.ts +3 -0
  322. package/src/services/definitions/uptime-kuma.ts +3 -0
  323. package/src/services/registry.test.ts +8 -0
  324. package/src/services/registry.ts +7 -0
  325. package/src/skills/manifest.json +64 -0
  326. package/src/skills/registry.ts +3 -3
  327. package/src/track-analytics.test.ts +82 -0
  328. package/src/track-analytics.ts +76 -0
  329. package/src/types.ts +29 -0
  330. package/src/version-manager.test.ts +10 -5
  331. package/src/version-manager.ts +1 -1
  332. package/dist/schema-B4c64P8N.d.cts.map +0 -1
  333. package/dist/schema-CXNhYci1.d.mts.map +0 -1
  334. package/dist/vi.2VT5v0um-CRqXre87.cjs.map +0 -1
  335. package/dist/vi.2VT5v0um-DvC3SVNc.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/services/definitions/index.ts"],"sourcesContent":["export { airbyteDefinition } from \"./airbyte.js\";\nexport { airflowDefinition } from \"./airflow.js\";\nexport { anythingLlmDefinition } from \"./anything-llm.js\";\nexport { appflowyDefinition } from \"./appflowy.js\";\nexport { appwriteDefinition } from \"./appwrite.js\";\nexport { autheliaDefinition } from \"./authelia.js\";\nexport { authentikDefinition } from \"./authentik.js\";\nexport { axolotlDefinition } from \"./axolotl.js\";\nexport { beszelDefinition } from \"./beszel.js\";\nexport { browserlessDefinition } from \"./browserless.js\";\nexport { caddyDefinition } from \"./caddy.js\";\nexport { calComDefinition } from \"./cal-com.js\";\nexport { chatwootDefinition } from \"./chatwoot.js\";\nexport { chatwootWorkerDefinition } from \"./chatwoot-worker.js\";\nexport { chromadbDefinition } from \"./chromadb.js\";\nexport { claudeCodeDefinition } from \"./claude-code.js\";\nexport { cockroachdbDefinition } from \"./cockroachdb.js\";\nexport { codeServerDefinition } from \"./code-server.js\";\nexport { codexDefinition } from \"./codex.js\";\nexport { comfyuiDefinition } from \"./comfyui.js\";\nexport { convexDefinition } from \"./convex.js\";\nexport { convexDashboardDefinition } from \"./convex-dashboard.js\";\nexport { coolifyDefinition } from \"./coolify.js\";\nexport { crowdsecDefinition } from \"./crowdsec.js\";\nexport { dagsterDefinition } from \"./dagster.js\";\nexport { desktopEnvironmentDefinition } from \"./desktop-environment.js\";\nexport { difyDefinition } from \"./dify.js\";\nexport { directusDefinition } from \"./directus.js\";\nexport { docsgptDefinition } from \"./docsgpt.js\";\nexport { dragonflyDefinition } from \"./dragonfly.js\";\nexport { dokployDefinition } from \"./dokploy.js\";\nexport { dozzleDefinition } from \"./dozzle.js\";\nexport { duplicatiDefinition } from \"./duplicati.js\";\nexport { elementWebDefinition } from \"./element-web.js\";\nexport { excalidrawDefinition } from \"./excalidraw.js\";\nexport { ffmpegDefinition } from \"./ffmpeg.js\";\nexport { firecrawlDefinition } from \"./firecrawl.js\";\nexport { firecrawlPlaywrightDefinition } from \"./firecrawl-playwright.js\";\nexport { flagsmithDefinition } from \"./flagsmith.js\";\nexport { flowiseDefinition } from \"./flowise.js\";\nexport { fonosterDefinition } from \"./fonoster.js\";\nexport { formbricksDefinition } from \"./formbricks.js\";\nexport { geminiCliDefinition } from \"./gemini-cli.js\";\nexport { ghostDefinition } from \"./ghost.js\";\nexport { giteaDefinition } from \"./gitea.js\";\nexport { gotifyDefinition } from \"./gotify.js\";\nexport { grafanaDefinition } from \"./grafana.js\";\nexport { graylogDefinition } from \"./graylog.js\";\nexport { headscaleDefinition } from \"./headscale.js\";\nexport { hedgedocDefinition } from \"./hedgedoc.js\";\nexport { hexstrikeDefinition } from \"./hexstrike.js\";\nexport { heyformDefinition } from \"./heyform.js\";\nexport { homeassistantDefinition } from \"./homeassistant.js\";\nexport { hoppscotchDefinition } from \"./hoppscotch.js\";\nexport { immichDefinition } from \"./immich.js\";\nexport { infisicalDefinition } from \"./infisical.js\";\nexport { influxdbDefinition } from \"./influxdb.js\";\nexport { jaegerDefinition } from \"./jaeger.js\";\nexport { jitsiMeetDefinition } from \"./jitsi-meet.js\";\nexport { jellyfinDefinition } from \"./jellyfin.js\";\nexport { jenkinsDefinition } from \"./jenkins.js\";\nexport { keycloakDefinition } from \"./keycloak.js\";\nexport { kimiDefinition } from \"./kimi.js\";\nexport { kongDefinition } from \"./kong.js\";\nexport { lagoDefinition } from \"./lago.js\";\nexport { langflowDefinition } from \"./langflow.js\";\nexport { langfuseDefinition } from \"./langfuse.js\";\nexport { lasuiteMeetAgentsDefinition } from \"./lasuite-meet-agents.js\";\nexport { lasuiteMeetBackendDefinition } from \"./lasuite-meet-backend.js\";\nexport { lasuiteMeetFrontendDefinition } from \"./lasuite-meet-frontend.js\";\nexport { librechatDefinition } from \"./librechat.js\";\nexport { lightpandaDefinition } from \"./lightpanda.js\";\nexport { listmonkDefinition } from \"./listmonk.js\";\nexport { litellmDefinition } from \"./litellm.js\";\nexport { livekitDefinition } from \"./livekit.js\";\nexport { lokiDefinition } from \"./loki.js\";\nexport { mariadbDefinition } from \"./mariadb.js\";\nexport { matomoDefinition } from \"./matomo.js\";\nexport { matrixSynapseDefinition } from \"./matrix-synapse.js\";\nexport { mattermostDefinition } from \"./mattermost.js\";\nexport { mauticDefinition } from \"./mautic.js\";\nexport { medusaDefinition } from \"./medusa.js\";\nexport { meilisearchDefinition } from \"./meilisearch.js\";\nexport { milvusDefinition } from \"./milvus.js\";\nexport { minioDefinition } from \"./minio.js\";\nexport { missionControlDefinition } from \"./mission-control.js\";\nexport { mixpostDefinition } from \"./mixpost.js\";\nexport { motionCanvasDefinition } from \"./motion-canvas.js\";\nexport { mysqlDefinition } from \"./mysql.js\";\nexport { n8nDefinition } from \"./n8n.js\";\nexport { neo4jDefinition } from \"./neo4j.js\";\nexport { nextcloudDefinition } from \"./nextcloud.js\";\nexport { nocodbDefinition } from \"./nocodb.js\";\nexport { ntfyDefinition } from \"./ntfy.js\";\nexport { ollamaDefinition } from \"./ollama.js\";\nexport { openWebuiDefinition } from \"./open-webui.js\";\nexport { opencodeDefinition } from \"./opencode.js\";\nexport { openhandsDefinition } from \"./openhands.js\";\nexport { openpanelDefinition } from \"./openpanel.js\";\nexport { opensearchDefinition } from \"./opensearch.js\";\nexport { outlineDefinition } from \"./outline.js\";\nexport { paperlessNgxDefinition } from \"./paperless-ngx.js\";\nexport { pentagiDefinition } from \"./pentagi.js\";\nexport { pentestagentDefinition } from \"./pentestagent.js\";\nexport { playwrightServerDefinition } from \"./playwright-server.js\";\nexport { pocketbaseDefinition } from \"./pocketbase.js\";\nexport { pocketIdDefinition } from \"./pocket-id.js\";\nexport { portainerDefinition } from \"./portainer.js\";\nexport { postgresqlDefinition } from \"./postgresql.js\";\nexport { postizDefinition } from \"./postiz.js\";\nexport { prometheusDefinition } from \"./prometheus.js\";\nexport { qdrantDefinition } from \"./qdrant.js\";\nexport { rabbitmqDefinition } from \"./rabbitmq.js\";\nexport { ragflowDefinition } from \"./ragflow.js\";\nexport { redisDefinition } from \"./redis.js\";\nexport { remotionDefinition } from \"./remotion.js\";\nexport { resticDefinition } from \"./restic.js\";\nexport { revoltDefinition } from \"./revolt.js\";\nexport { rocketchatDefinition } from \"./rocketchat.js\";\nexport { saleorDefinition } from \"./saleor.js\";\nexport { scraplingDefinition } from \"./scrapling.js\";\nexport { searxngDefinition } from \"./searxng.js\";\nexport { sentryDefinition } from \"./sentry.js\";\nexport { signozDefinition } from \"./signoz.js\";\nexport { solidityGuardDefinition } from \"./solidityguard.js\";\nexport { stableDiffusionDefinition } from \"./stable-diffusion.js\";\nexport { steelBrowserDefinition } from \"./steel-browser.js\";\nexport { stirlingPdfDefinition } from \"./stirling-pdf.js\";\nexport { strapiDefinition } from \"./strapi.js\";\nexport { streamGatewayDefinition } from \"./stream-gateway.js\";\nexport { supabaseDefinition } from \"./supabase.js\";\nexport { surrealdbDefinition } from \"./surrealdb.js\";\nexport { tailscaleDefinition } from \"./tailscale.js\";\nexport { tempoDefinition } from \"./tempo.js\";\nexport { temporalDefinition } from \"./temporal.js\";\nexport { timescaledbDefinition } from \"./timescaledb.js\";\nexport { traefikDefinition } from \"./traefik.js\";\nexport { twentyDefinition } from \"./twenty.js\";\nexport { umamiDefinition } from \"./umami.js\";\nexport { uptimeKumaDefinition } from \"./uptime-kuma.js\";\nexport { usesendDefinition } from \"./usesend.js\";\nexport { valkeyDefinition } from \"./valkey.js\";\nexport { vaultDefinition } from \"./vault.js\";\nexport { vectorLogDefinition } from \"./vector-log.js\";\nexport { vaultwardenDefinition } from \"./vaultwarden.js\";\nexport { watchtowerDefinition } from \"./watchtower.js\";\nexport { weaviateDefinition } from \"./weaviate.js\";\nexport { whisperDefinition } from \"./whisper.js\";\nexport { xyopsDefinition } from \"./xyops.js\";\nexport { zulipDefinition } from \"./zulip.js\";\nexport { adguardHomeDefinition } from \"./adguard-home.js\";\nexport { audiobookshelfDefinition } from \"./audiobookshelf.js\";\nexport { baserowDefinition } from \"./baserow.js\";\nexport { calibreWebDefinition } from \"./calibre-web.js\";\nexport { clickhouseDefinition } from \"./clickhouse.js\";\nexport { cloudflaredDefinition } from \"./cloudflared.js\";\nexport { coderDefinition } from \"./coder.js\";\nexport { droneCiDefinition } from \"./drone-ci.js\";\nexport { focalboardDefinition } from \"./focalboard.js\";\nexport { forgejoDefinition } from \"./forgejo.js\";\nexport { invokeAiDefinition } from \"./invoke-ai.js\";\nexport { janDefinition } from \"./jan.js\";\nexport { localAiDefinition } from \"./local-ai.js\";\nexport { metabaseDefinition } from \"./metabase.js\";\nexport { mosquittoDefinition } from \"./mosquitto.js\";\nexport { navidromeDefinition } from \"./navidrome.js\";\nexport { nginxProxyManagerDefinition } from \"./nginx-proxy-manager.js\";\nexport { nodeRedDefinition } from \"./node-red.js\";\nexport { photoprismDefinition } from \"./photoprism.js\";\nexport { piholeDefinition } from \"./pihole.js\";\nexport { piperTtsDefinition } from \"./piper-tts.js\";\nexport { planeDefinition } from \"./plane.js\";\nexport { plausibleDefinition } from \"./plausible.js\";\nexport { posthogDefinition } from \"./posthog.js\";\nexport { sonarqubeDefinition } from \"./sonarqube.js\";\nexport { supersetDefinition } from \"./superset.js\";\nexport { tabbyMlDefinition } from \"./tabby-ml.js\";\nexport { textGenWebuiDefinition } from \"./text-gen-webui.js\";\nexport { vikunjaDefinition } from \"./vikunja.js\";\nexport { wireguardDefinition } from \"./wireguard.js\";\nexport { woodpeckerCiDefinition } from \"./woodpecker-ci.js\";\n\nimport type { ServiceDefinition } from \"../../types.js\";\nimport { airbyteDefinition } from \"./airbyte.js\";\nimport { airflowDefinition } from \"./airflow.js\";\nimport { anythingLlmDefinition } from \"./anything-llm.js\";\nimport { appflowyDefinition } from \"./appflowy.js\";\nimport { appwriteDefinition } from \"./appwrite.js\";\nimport { autheliaDefinition } from \"./authelia.js\";\nimport { authentikDefinition } from \"./authentik.js\";\nimport { axolotlDefinition } from \"./axolotl.js\";\nimport { beszelDefinition } from \"./beszel.js\";\nimport { browserlessDefinition } from \"./browserless.js\";\nimport { caddyDefinition } from \"./caddy.js\";\nimport { calComDefinition } from \"./cal-com.js\";\nimport { chatwootDefinition } from \"./chatwoot.js\";\nimport { chatwootWorkerDefinition } from \"./chatwoot-worker.js\";\nimport { chromadbDefinition } from \"./chromadb.js\";\nimport { claudeCodeDefinition } from \"./claude-code.js\";\nimport { cockroachdbDefinition } from \"./cockroachdb.js\";\nimport { codeServerDefinition } from \"./code-server.js\";\nimport { codexDefinition } from \"./codex.js\";\nimport { comfyuiDefinition } from \"./comfyui.js\";\nimport { convexDefinition } from \"./convex.js\";\nimport { convexDashboardDefinition } from \"./convex-dashboard.js\";\nimport { coolifyDefinition } from \"./coolify.js\";\nimport { crowdsecDefinition } from \"./crowdsec.js\";\nimport { dagsterDefinition } from \"./dagster.js\";\nimport { desktopEnvironmentDefinition } from \"./desktop-environment.js\";\nimport { difyDefinition } from \"./dify.js\";\nimport { directusDefinition } from \"./directus.js\";\nimport { docsgptDefinition } from \"./docsgpt.js\";\nimport { dokployDefinition } from \"./dokploy.js\";\nimport { dragonflyDefinition } from \"./dragonfly.js\";\nimport { dozzleDefinition } from \"./dozzle.js\";\nimport { duplicatiDefinition } from \"./duplicati.js\";\nimport { elementWebDefinition } from \"./element-web.js\";\nimport { excalidrawDefinition } from \"./excalidraw.js\";\nimport { ffmpegDefinition } from \"./ffmpeg.js\";\nimport { firecrawlDefinition } from \"./firecrawl.js\";\nimport { firecrawlPlaywrightDefinition } from \"./firecrawl-playwright.js\";\nimport { flagsmithDefinition } from \"./flagsmith.js\";\nimport { flowiseDefinition } from \"./flowise.js\";\nimport { fonosterDefinition } from \"./fonoster.js\";\nimport { formbricksDefinition } from \"./formbricks.js\";\nimport { geminiCliDefinition } from \"./gemini-cli.js\";\nimport { ghostDefinition } from \"./ghost.js\";\nimport { giteaDefinition } from \"./gitea.js\";\nimport { gotifyDefinition } from \"./gotify.js\";\nimport { grafanaDefinition } from \"./grafana.js\";\nimport { graylogDefinition } from \"./graylog.js\";\nimport { headscaleDefinition } from \"./headscale.js\";\nimport { hedgedocDefinition } from \"./hedgedoc.js\";\nimport { hexstrikeDefinition } from \"./hexstrike.js\";\nimport { heyformDefinition } from \"./heyform.js\";\nimport { homeassistantDefinition } from \"./homeassistant.js\";\nimport { hoppscotchDefinition } from \"./hoppscotch.js\";\nimport { immichDefinition } from \"./immich.js\";\nimport { infisicalDefinition } from \"./infisical.js\";\nimport { influxdbDefinition } from \"./influxdb.js\";\nimport { jaegerDefinition } from \"./jaeger.js\";\nimport { jitsiMeetDefinition } from \"./jitsi-meet.js\";\nimport { jellyfinDefinition } from \"./jellyfin.js\";\nimport { jenkinsDefinition } from \"./jenkins.js\";\nimport { keycloakDefinition } from \"./keycloak.js\";\nimport { kimiDefinition } from \"./kimi.js\";\nimport { kongDefinition } from \"./kong.js\";\nimport { lagoDefinition } from \"./lago.js\";\nimport { langflowDefinition } from \"./langflow.js\";\nimport { langfuseDefinition } from \"./langfuse.js\";\nimport { lasuiteMeetAgentsDefinition } from \"./lasuite-meet-agents.js\";\nimport { lasuiteMeetBackendDefinition } from \"./lasuite-meet-backend.js\";\nimport { lasuiteMeetFrontendDefinition } from \"./lasuite-meet-frontend.js\";\nimport { librechatDefinition } from \"./librechat.js\";\nimport { lightpandaDefinition } from \"./lightpanda.js\";\nimport { listmonkDefinition } from \"./listmonk.js\";\nimport { litellmDefinition } from \"./litellm.js\";\nimport { livekitDefinition } from \"./livekit.js\";\nimport { lokiDefinition } from \"./loki.js\";\nimport { mariadbDefinition } from \"./mariadb.js\";\nimport { matomoDefinition } from \"./matomo.js\";\nimport { matrixSynapseDefinition } from \"./matrix-synapse.js\";\nimport { mattermostDefinition } from \"./mattermost.js\";\nimport { mauticDefinition } from \"./mautic.js\";\nimport { medusaDefinition } from \"./medusa.js\";\nimport { meilisearchDefinition } from \"./meilisearch.js\";\nimport { milvusDefinition } from \"./milvus.js\";\nimport { minioDefinition } from \"./minio.js\";\nimport { missionControlDefinition } from \"./mission-control.js\";\nimport { mixpostDefinition } from \"./mixpost.js\";\nimport { motionCanvasDefinition } from \"./motion-canvas.js\";\nimport { mysqlDefinition } from \"./mysql.js\";\nimport { n8nDefinition } from \"./n8n.js\";\nimport { neo4jDefinition } from \"./neo4j.js\";\nimport { nextcloudDefinition } from \"./nextcloud.js\";\nimport { nocodbDefinition } from \"./nocodb.js\";\nimport { ntfyDefinition } from \"./ntfy.js\";\nimport { ollamaDefinition } from \"./ollama.js\";\nimport { openWebuiDefinition } from \"./open-webui.js\";\nimport { opencodeDefinition } from \"./opencode.js\";\nimport { openhandsDefinition } from \"./openhands.js\";\nimport { openpanelDefinition } from \"./openpanel.js\";\nimport { opensearchDefinition } from \"./opensearch.js\";\nimport { outlineDefinition } from \"./outline.js\";\nimport { paperlessNgxDefinition } from \"./paperless-ngx.js\";\nimport { pentagiDefinition } from \"./pentagi.js\";\nimport { pentestagentDefinition } from \"./pentestagent.js\";\nimport { playwrightServerDefinition } from \"./playwright-server.js\";\nimport { pocketbaseDefinition } from \"./pocketbase.js\";\nimport { pocketIdDefinition } from \"./pocket-id.js\";\nimport { portainerDefinition } from \"./portainer.js\";\nimport { postgresqlDefinition } from \"./postgresql.js\";\nimport { postizDefinition } from \"./postiz.js\";\nimport { prometheusDefinition } from \"./prometheus.js\";\nimport { qdrantDefinition } from \"./qdrant.js\";\nimport { rabbitmqDefinition } from \"./rabbitmq.js\";\nimport { ragflowDefinition } from \"./ragflow.js\";\nimport { redisDefinition } from \"./redis.js\";\nimport { remotionDefinition } from \"./remotion.js\";\nimport { resticDefinition } from \"./restic.js\";\nimport { revoltDefinition } from \"./revolt.js\";\nimport { rocketchatDefinition } from \"./rocketchat.js\";\nimport { saleorDefinition } from \"./saleor.js\";\nimport { scraplingDefinition } from \"./scrapling.js\";\nimport { searxngDefinition } from \"./searxng.js\";\nimport { sentryDefinition } from \"./sentry.js\";\nimport { signozDefinition } from \"./signoz.js\";\nimport { solidityGuardDefinition } from \"./solidityguard.js\";\nimport { stableDiffusionDefinition } from \"./stable-diffusion.js\";\nimport { steelBrowserDefinition } from \"./steel-browser.js\";\nimport { stirlingPdfDefinition } from \"./stirling-pdf.js\";\nimport { strapiDefinition } from \"./strapi.js\";\nimport { streamGatewayDefinition } from \"./stream-gateway.js\";\nimport { supabaseDefinition } from \"./supabase.js\";\nimport { surrealdbDefinition } from \"./surrealdb.js\";\nimport { tailscaleDefinition } from \"./tailscale.js\";\nimport { tempoDefinition } from \"./tempo.js\";\nimport { temporalDefinition } from \"./temporal.js\";\nimport { timescaledbDefinition } from \"./timescaledb.js\";\nimport { traefikDefinition } from \"./traefik.js\";\nimport { twentyDefinition } from \"./twenty.js\";\nimport { umamiDefinition } from \"./umami.js\";\nimport { uptimeKumaDefinition } from \"./uptime-kuma.js\";\nimport { usesendDefinition } from \"./usesend.js\";\nimport { valkeyDefinition } from \"./valkey.js\";\nimport { vaultDefinition } from \"./vault.js\";\nimport { vectorLogDefinition } from \"./vector-log.js\";\nimport { vaultwardenDefinition } from \"./vaultwarden.js\";\nimport { watchtowerDefinition } from \"./watchtower.js\";\nimport { weaviateDefinition } from \"./weaviate.js\";\nimport { whisperDefinition } from \"./whisper.js\";\nimport { xyopsDefinition } from \"./xyops.js\";\nimport { zulipDefinition } from \"./zulip.js\";\nimport { adguardHomeDefinition } from \"./adguard-home.js\";\nimport { audiobookshelfDefinition } from \"./audiobookshelf.js\";\nimport { baserowDefinition } from \"./baserow.js\";\nimport { calibreWebDefinition } from \"./calibre-web.js\";\nimport { clickhouseDefinition } from \"./clickhouse.js\";\nimport { cloudflaredDefinition } from \"./cloudflared.js\";\nimport { coderDefinition } from \"./coder.js\";\nimport { droneCiDefinition } from \"./drone-ci.js\";\nimport { focalboardDefinition } from \"./focalboard.js\";\nimport { forgejoDefinition } from \"./forgejo.js\";\nimport { invokeAiDefinition } from \"./invoke-ai.js\";\nimport { janDefinition } from \"./jan.js\";\nimport { localAiDefinition } from \"./local-ai.js\";\nimport { metabaseDefinition } from \"./metabase.js\";\nimport { mosquittoDefinition } from \"./mosquitto.js\";\nimport { navidromeDefinition } from \"./navidrome.js\";\nimport { nginxProxyManagerDefinition } from \"./nginx-proxy-manager.js\";\nimport { nodeRedDefinition } from \"./node-red.js\";\nimport { photoprismDefinition } from \"./photoprism.js\";\nimport { piholeDefinition } from \"./pihole.js\";\nimport { piperTtsDefinition } from \"./piper-tts.js\";\nimport { planeDefinition } from \"./plane.js\";\nimport { plausibleDefinition } from \"./plausible.js\";\nimport { posthogDefinition } from \"./posthog.js\";\nimport { sonarqubeDefinition } from \"./sonarqube.js\";\nimport { supersetDefinition } from \"./superset.js\";\nimport { tabbyMlDefinition } from \"./tabby-ml.js\";\nimport { textGenWebuiDefinition } from \"./text-gen-webui.js\";\nimport { vikunjaDefinition } from \"./vikunja.js\";\nimport { wireguardDefinition } from \"./wireguard.js\";\nimport { woodpeckerCiDefinition } from \"./woodpecker-ci.js\";\n\nexport const allServiceDefinitions: ServiceDefinition[] = [\n\tredisDefinition,\n\tqdrantDefinition,\n\tn8nDefinition,\n\tffmpegDefinition,\n\tminioDefinition,\n\tpostgresqlDefinition,\n\tcaddyDefinition,\n\ttraefikDefinition,\n\tuptimeKumaDefinition,\n\tgrafanaDefinition,\n\tprometheusDefinition,\n\tbrowserlessDefinition,\n\tfirecrawlDefinition,\n\tfirecrawlPlaywrightDefinition,\n\tsearxngDefinition,\n\tmeilisearchDefinition,\n\topensearchDefinition,\n\tollamaDefinition,\n\twhisperDefinition,\n\tchromadbDefinition,\n\tweaviateDefinition,\n\tvalkeyDefinition,\n\tgotifyDefinition,\n\tntfyDefinition,\n\trabbitmqDefinition,\n\tremotionDefinition,\n\tmotionCanvasDefinition,\n\ttemporalDefinition,\n\toutlineDefinition,\n\tdocsgptDefinition,\n\tpaperlessNgxDefinition,\n\tnocodbDefinition,\n\tappflowyDefinition,\n\tdirectusDefinition,\n\tstirlingPdfDefinition,\n\tstrapiDefinition,\n\tmatrixSynapseDefinition,\n\trocketchatDefinition,\n\tmattermostDefinition,\n\tchatwootDefinition,\n\tchatwootWorkerDefinition,\n\tstableDiffusionDefinition,\n\tcomfyuiDefinition,\n\tplaywrightServerDefinition,\n\topenWebuiDefinition,\n\tlangflowDefinition,\n\tragflowDefinition,\n\thomeassistantDefinition,\n\tnextcloudDefinition,\n\timmichDefinition,\n\tjellyfinDefinition,\n\tvaultwardenDefinition,\n\tmilvusDefinition,\n\tjenkinsDefinition,\n\tappwriteDefinition,\n\tauthentikDefinition,\n\tautheliaDefinition,\n\tcrowdsecDefinition,\n\tghostDefinition,\n\tlokiDefinition,\n\tsignozDefinition,\n\tsupabaseDefinition,\n\tpocketbaseDefinition,\n\tpocketIdDefinition,\n\tlibrechatDefinition,\n\tanythingLlmDefinition,\n\tdifyDefinition,\n\tflowiseDefinition,\n\tlitellmDefinition,\n\tflagsmithDefinition,\n\tgiteaDefinition,\n\tcodeServerDefinition,\n\tportainerDefinition,\n\twatchtowerDefinition,\n\tdozzleDefinition,\n\tbeszelDefinition,\n\tconvexDefinition,\n\tconvexDashboardDefinition,\n\tclaudeCodeDefinition,\n\topencodeDefinition,\n\tcodexDefinition,\n\tgeminiCliDefinition,\n\tkimiDefinition,\n\tpostizDefinition,\n\tmixpostDefinition,\n\tmatomoDefinition,\n\tumamiDefinition,\n\tusesendDefinition,\n\tlistmonkDefinition,\n\tmissionControlDefinition,\n\topenpanelDefinition,\n\tlightpandaDefinition,\n\tsteelBrowserDefinition,\n\tcoolifyDefinition,\n\tdokployDefinition,\n\ttailscaleDefinition,\n\tlivekitDefinition,\n\tinfisicalDefinition,\n\tkeycloakDefinition,\n\tlasuiteMeetBackendDefinition,\n\tlasuiteMeetFrontendDefinition,\n\tlasuiteMeetAgentsDefinition,\n\tdesktopEnvironmentDefinition,\n\tstreamGatewayDefinition,\n\tneo4jDefinition,\n\tcalComDefinition,\n\txyopsDefinition,\n\tscraplingDefinition,\n\thexstrikeDefinition,\n\tsolidityGuardDefinition,\n\tpentagiDefinition,\n\tpentestagentDefinition,\n\theadscaleDefinition,\n\tmysqlDefinition,\n\tmariadbDefinition,\n\t// ── New Services ──────────────────────────────────────────────────────────\n\tlangfuseDefinition,\n\topenhandsDefinition,\n\tairflowDefinition,\n\tairbyteDefinition,\n\tdagsterDefinition,\n\tlagoDefinition,\n\ttwentyDefinition,\n\tmauticDefinition,\n\tformbricksDefinition,\n\theyformDefinition,\n\tkongDefinition,\n\thoppscotchDefinition,\n\tvaultDefinition,\n\tresticDefinition,\n\tduplicatiDefinition,\n\tfonosterDefinition,\n\tmedusaDefinition,\n\tsaleorDefinition,\n\taxolotlDefinition,\n\thedgedocDefinition,\n\texcalidrawDefinition,\n\tjitsiMeetDefinition,\n\tzulipDefinition,\n\telementWebDefinition,\n\trevoltDefinition,\n\tdragonflyDefinition,\n\tsurrealdbDefinition,\n\tinfluxdbDefinition,\n\ttimescaledbDefinition,\n\tcockroachdbDefinition,\n\tsentryDefinition,\n\tjaegerDefinition,\n\ttempoDefinition,\n\tgraylogDefinition,\n\tvectorLogDefinition,\n\t// ── Batch 2: New Service Definitions ──────────────────────────────────\n\tadguardHomeDefinition,\n\taudiobookshelfDefinition,\n\tbaserowDefinition,\n\tcalibreWebDefinition,\n\tclickhouseDefinition,\n\tcloudflaredDefinition,\n\tcoderDefinition,\n\tdroneCiDefinition,\n\tfocalboardDefinition,\n\tforgejoDefinition,\n\tinvokeAiDefinition,\n\tjanDefinition,\n\tlocalAiDefinition,\n\tmetabaseDefinition,\n\tmosquittoDefinition,\n\tnavidromeDefinition,\n\tnginxProxyManagerDefinition,\n\tnodeRedDefinition,\n\tphotoprismDefinition,\n\tpiholeDefinition,\n\tpiperTtsDefinition,\n\tplaneDefinition,\n\tplausibleDefinition,\n\tposthogDefinition,\n\tsonarqubeDefinition,\n\tsupersetDefinition,\n\ttabbyMlDefinition,\n\ttextGenWebuiDefinition,\n\tvikunjaDefinition,\n\twireguardDefinition,\n\twoodpeckerCiDefinition,\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6WA,MAAa,wBAA6C;CACzD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/services/definitions/index.ts"],"sourcesContent":["export { adguardHomeDefinition } from \"./adguard-home.js\";\nexport { airbyteDefinition } from \"./airbyte.js\";\nexport { airflowDefinition } from \"./airflow.js\";\nexport { anythingLlmDefinition } from \"./anything-llm.js\";\nexport { appflowyDefinition } from \"./appflowy.js\";\nexport { appwriteDefinition } from \"./appwrite.js\";\nexport { audiobookshelfDefinition } from \"./audiobookshelf.js\";\nexport { autheliaDefinition } from \"./authelia.js\";\nexport { authentikDefinition } from \"./authentik.js\";\nexport { axolotlDefinition } from \"./axolotl.js\";\nexport { baserowDefinition } from \"./baserow.js\";\nexport { beszelDefinition } from \"./beszel.js\";\nexport { browserlessDefinition } from \"./browserless.js\";\nexport { caddyDefinition } from \"./caddy.js\";\nexport { calComDefinition } from \"./cal-com.js\";\nexport { calibreWebDefinition } from \"./calibre-web.js\";\nexport { chatwootDefinition } from \"./chatwoot.js\";\nexport { chatwootWorkerDefinition } from \"./chatwoot-worker.js\";\nexport { chromadbDefinition } from \"./chromadb.js\";\nexport { claudeCodeDefinition } from \"./claude-code.js\";\nexport { clickhouseDefinition } from \"./clickhouse.js\";\nexport { cloudflaredDefinition } from \"./cloudflared.js\";\nexport { cockroachdbDefinition } from \"./cockroachdb.js\";\nexport { codeServerDefinition } from \"./code-server.js\";\nexport { coderDefinition } from \"./coder.js\";\nexport { codexDefinition } from \"./codex.js\";\nexport { comfyuiDefinition } from \"./comfyui.js\";\nexport { convexDefinition } from \"./convex.js\";\nexport { convexDashboardDefinition } from \"./convex-dashboard.js\";\nexport { coolifyDefinition } from \"./coolify.js\";\nexport { crowdsecDefinition } from \"./crowdsec.js\";\nexport { dagsterDefinition } from \"./dagster.js\";\nexport { desktopEnvironmentDefinition } from \"./desktop-environment.js\";\nexport { difyDefinition } from \"./dify.js\";\nexport { directusDefinition } from \"./directus.js\";\nexport { docsgptDefinition } from \"./docsgpt.js\";\nexport { dokployDefinition } from \"./dokploy.js\";\nexport { dozzleDefinition } from \"./dozzle.js\";\nexport { dragonflyDefinition } from \"./dragonfly.js\";\nexport { droneCiDefinition } from \"./drone-ci.js\";\nexport { duplicatiDefinition } from \"./duplicati.js\";\nexport { elementWebDefinition } from \"./element-web.js\";\nexport { excalidrawDefinition } from \"./excalidraw.js\";\nexport { ffmpegDefinition } from \"./ffmpeg.js\";\nexport { firecrawlDefinition } from \"./firecrawl.js\";\nexport { firecrawlPlaywrightDefinition } from \"./firecrawl-playwright.js\";\nexport { flagsmithDefinition } from \"./flagsmith.js\";\nexport { flowiseDefinition } from \"./flowise.js\";\nexport { focalboardDefinition } from \"./focalboard.js\";\nexport { fonosterDefinition } from \"./fonoster.js\";\nexport { forgejoDefinition } from \"./forgejo.js\";\nexport { formbricksDefinition } from \"./formbricks.js\";\nexport { geminiCliDefinition } from \"./gemini-cli.js\";\nexport { ghostDefinition } from \"./ghost.js\";\nexport { giteaDefinition } from \"./gitea.js\";\nexport { gotifyDefinition } from \"./gotify.js\";\nexport { grafanaDefinition } from \"./grafana.js\";\nexport { graylogDefinition } from \"./graylog.js\";\nexport { headscaleDefinition } from \"./headscale.js\";\nexport { hedgedocDefinition } from \"./hedgedoc.js\";\nexport { hexstrikeDefinition } from \"./hexstrike.js\";\nexport { heyformDefinition } from \"./heyform.js\";\nexport { homeassistantDefinition } from \"./homeassistant.js\";\nexport { hoppscotchDefinition } from \"./hoppscotch.js\";\nexport { immichDefinition } from \"./immich.js\";\nexport { infisicalDefinition } from \"./infisical.js\";\nexport { influxdbDefinition } from \"./influxdb.js\";\nexport { invokeAiDefinition } from \"./invoke-ai.js\";\nexport { jaegerDefinition } from \"./jaeger.js\";\nexport { janDefinition } from \"./jan.js\";\nexport { jellyfinDefinition } from \"./jellyfin.js\";\nexport { jenkinsDefinition } from \"./jenkins.js\";\nexport { jitsiMeetDefinition } from \"./jitsi-meet.js\";\nexport { keycloakDefinition } from \"./keycloak.js\";\nexport { kimiDefinition } from \"./kimi.js\";\nexport { kongDefinition } from \"./kong.js\";\nexport { lagoDefinition } from \"./lago.js\";\nexport { langflowDefinition } from \"./langflow.js\";\nexport { langfuseDefinition } from \"./langfuse.js\";\nexport { lasuiteMeetAgentsDefinition } from \"./lasuite-meet-agents.js\";\nexport { lasuiteMeetBackendDefinition } from \"./lasuite-meet-backend.js\";\nexport { lasuiteMeetFrontendDefinition } from \"./lasuite-meet-frontend.js\";\nexport { librechatDefinition } from \"./librechat.js\";\nexport { lightpandaDefinition } from \"./lightpanda.js\";\nexport { listmonkDefinition } from \"./listmonk.js\";\nexport { litellmDefinition } from \"./litellm.js\";\nexport { livekitDefinition } from \"./livekit.js\";\nexport { localAiDefinition } from \"./local-ai.js\";\nexport { lokiDefinition } from \"./loki.js\";\nexport { mariadbDefinition } from \"./mariadb.js\";\nexport { matomoDefinition } from \"./matomo.js\";\nexport { matrixSynapseDefinition } from \"./matrix-synapse.js\";\nexport { mattermostDefinition } from \"./mattermost.js\";\nexport { mauticDefinition } from \"./mautic.js\";\nexport { medusaDefinition } from \"./medusa.js\";\nexport { meilisearchDefinition } from \"./meilisearch.js\";\nexport { metabaseDefinition } from \"./metabase.js\";\nexport { milvusDefinition } from \"./milvus.js\";\nexport { minioDefinition } from \"./minio.js\";\nexport { missionControlDefinition } from \"./mission-control.js\";\nexport { mixpostDefinition } from \"./mixpost.js\";\nexport { mosquittoDefinition } from \"./mosquitto.js\";\nexport { motionCanvasDefinition } from \"./motion-canvas.js\";\nexport { mysqlDefinition } from \"./mysql.js\";\nexport { n8nDefinition } from \"./n8n.js\";\nexport { navidromeDefinition } from \"./navidrome.js\";\nexport { neo4jDefinition } from \"./neo4j.js\";\nexport { nextcloudDefinition } from \"./nextcloud.js\";\nexport { nginxProxyManagerDefinition } from \"./nginx-proxy-manager.js\";\nexport { nocodbDefinition } from \"./nocodb.js\";\nexport { nodeRedDefinition } from \"./node-red.js\";\nexport { ntfyDefinition } from \"./ntfy.js\";\nexport { ollamaDefinition } from \"./ollama.js\";\nexport { openWebuiDefinition } from \"./open-webui.js\";\nexport { opencodeDefinition } from \"./opencode.js\";\nexport { openhandsDefinition } from \"./openhands.js\";\nexport { openpanelDefinition } from \"./openpanel.js\";\nexport { opensearchDefinition } from \"./opensearch.js\";\nexport { outlineDefinition } from \"./outline.js\";\nexport { paperlessNgxDefinition } from \"./paperless-ngx.js\";\nexport { pentagiDefinition } from \"./pentagi.js\";\nexport { pentestagentDefinition } from \"./pentestagent.js\";\nexport { photoprismDefinition } from \"./photoprism.js\";\nexport { piholeDefinition } from \"./pihole.js\";\nexport { piperTtsDefinition } from \"./piper-tts.js\";\nexport { planeDefinition } from \"./plane.js\";\nexport { plausibleDefinition } from \"./plausible.js\";\nexport { playwrightServerDefinition } from \"./playwright-server.js\";\nexport { pocketIdDefinition } from \"./pocket-id.js\";\nexport { pocketbaseDefinition } from \"./pocketbase.js\";\nexport { portainerDefinition } from \"./portainer.js\";\nexport { postgresqlDefinition } from \"./postgresql.js\";\nexport { posthogDefinition } from \"./posthog.js\";\nexport { postizDefinition } from \"./postiz.js\";\nexport { prometheusDefinition } from \"./prometheus.js\";\nexport { qdrantDefinition } from \"./qdrant.js\";\nexport { rabbitmqDefinition } from \"./rabbitmq.js\";\nexport { ragflowDefinition } from \"./ragflow.js\";\nexport { redisDefinition } from \"./redis.js\";\nexport { remotionDefinition } from \"./remotion.js\";\nexport { resticDefinition } from \"./restic.js\";\nexport { revoltDefinition } from \"./revolt.js\";\nexport { rocketchatDefinition } from \"./rocketchat.js\";\nexport { saleorDefinition } from \"./saleor.js\";\nexport { scraplingDefinition } from \"./scrapling.js\";\nexport { searxngDefinition } from \"./searxng.js\";\nexport { sentryDefinition } from \"./sentry.js\";\nexport { signozDefinition } from \"./signoz.js\";\nexport { solidityGuardDefinition } from \"./solidityguard.js\";\nexport { sonarqubeDefinition } from \"./sonarqube.js\";\nexport { stableDiffusionDefinition } from \"./stable-diffusion.js\";\nexport { steelBrowserDefinition } from \"./steel-browser.js\";\nexport { stirlingPdfDefinition } from \"./stirling-pdf.js\";\nexport { strapiDefinition } from \"./strapi.js\";\nexport { streamGatewayDefinition } from \"./stream-gateway.js\";\nexport { supabaseDefinition } from \"./supabase.js\";\nexport { supersetDefinition } from \"./superset.js\";\nexport { surrealdbDefinition } from \"./surrealdb.js\";\nexport { tabbyMlDefinition } from \"./tabby-ml.js\";\nexport { tailscaleDefinition } from \"./tailscale.js\";\nexport { tempoDefinition } from \"./tempo.js\";\nexport { temporalDefinition } from \"./temporal.js\";\nexport { textGenWebuiDefinition } from \"./text-gen-webui.js\";\nexport { timescaledbDefinition } from \"./timescaledb.js\";\nexport { traefikDefinition } from \"./traefik.js\";\nexport { twentyDefinition } from \"./twenty.js\";\nexport { umamiDefinition } from \"./umami.js\";\nexport { uptimeKumaDefinition } from \"./uptime-kuma.js\";\nexport { usesendDefinition } from \"./usesend.js\";\nexport { valkeyDefinition } from \"./valkey.js\";\nexport { vaultDefinition } from \"./vault.js\";\nexport { vaultwardenDefinition } from \"./vaultwarden.js\";\nexport { vectorLogDefinition } from \"./vector-log.js\";\nexport { vikunjaDefinition } from \"./vikunja.js\";\nexport { watchtowerDefinition } from \"./watchtower.js\";\nexport { weaviateDefinition } from \"./weaviate.js\";\nexport { whisperDefinition } from \"./whisper.js\";\nexport { wireguardDefinition } from \"./wireguard.js\";\nexport { woodpeckerCiDefinition } from \"./woodpecker-ci.js\";\nexport { xyopsDefinition } from \"./xyops.js\";\nexport { zulipDefinition } from \"./zulip.js\";\n\n// ── SaaS Boilerplates ──────────────────────────────────────────────────────\nexport { openSaasDefinition } from \"./open-saas.js\";\nexport { apptensionSaasDefinition } from \"./apptension-saas.js\";\nexport { boxyhqSaasDefinition } from \"./boxyhq-saas.js\";\nexport { ixartzSaasDefinition } from \"./ixartz-saas.js\";\nexport { cmsaasStarterDefinition } from \"./cmsaas-starter.js\";\n\nimport type { ServiceDefinition } from \"../../types.js\";\nimport { adguardHomeDefinition } from \"./adguard-home.js\";\nimport { airbyteDefinition } from \"./airbyte.js\";\nimport { airflowDefinition } from \"./airflow.js\";\nimport { anythingLlmDefinition } from \"./anything-llm.js\";\nimport { appflowyDefinition } from \"./appflowy.js\";\nimport { appwriteDefinition } from \"./appwrite.js\";\nimport { audiobookshelfDefinition } from \"./audiobookshelf.js\";\nimport { autheliaDefinition } from \"./authelia.js\";\nimport { authentikDefinition } from \"./authentik.js\";\nimport { axolotlDefinition } from \"./axolotl.js\";\nimport { baserowDefinition } from \"./baserow.js\";\nimport { beszelDefinition } from \"./beszel.js\";\nimport { browserlessDefinition } from \"./browserless.js\";\nimport { caddyDefinition } from \"./caddy.js\";\nimport { calComDefinition } from \"./cal-com.js\";\nimport { calibreWebDefinition } from \"./calibre-web.js\";\nimport { chatwootDefinition } from \"./chatwoot.js\";\nimport { chatwootWorkerDefinition } from \"./chatwoot-worker.js\";\nimport { chromadbDefinition } from \"./chromadb.js\";\nimport { claudeCodeDefinition } from \"./claude-code.js\";\nimport { clickhouseDefinition } from \"./clickhouse.js\";\nimport { cloudflaredDefinition } from \"./cloudflared.js\";\nimport { cockroachdbDefinition } from \"./cockroachdb.js\";\nimport { codeServerDefinition } from \"./code-server.js\";\nimport { coderDefinition } from \"./coder.js\";\nimport { codexDefinition } from \"./codex.js\";\nimport { comfyuiDefinition } from \"./comfyui.js\";\nimport { convexDefinition } from \"./convex.js\";\nimport { convexDashboardDefinition } from \"./convex-dashboard.js\";\nimport { coolifyDefinition } from \"./coolify.js\";\nimport { crowdsecDefinition } from \"./crowdsec.js\";\nimport { dagsterDefinition } from \"./dagster.js\";\nimport { desktopEnvironmentDefinition } from \"./desktop-environment.js\";\nimport { difyDefinition } from \"./dify.js\";\nimport { directusDefinition } from \"./directus.js\";\nimport { docsgptDefinition } from \"./docsgpt.js\";\nimport { dokployDefinition } from \"./dokploy.js\";\nimport { dozzleDefinition } from \"./dozzle.js\";\nimport { dragonflyDefinition } from \"./dragonfly.js\";\nimport { droneCiDefinition } from \"./drone-ci.js\";\nimport { duplicatiDefinition } from \"./duplicati.js\";\nimport { elementWebDefinition } from \"./element-web.js\";\nimport { excalidrawDefinition } from \"./excalidraw.js\";\nimport { ffmpegDefinition } from \"./ffmpeg.js\";\nimport { firecrawlDefinition } from \"./firecrawl.js\";\nimport { firecrawlPlaywrightDefinition } from \"./firecrawl-playwright.js\";\nimport { flagsmithDefinition } from \"./flagsmith.js\";\nimport { flowiseDefinition } from \"./flowise.js\";\nimport { focalboardDefinition } from \"./focalboard.js\";\nimport { fonosterDefinition } from \"./fonoster.js\";\nimport { forgejoDefinition } from \"./forgejo.js\";\nimport { formbricksDefinition } from \"./formbricks.js\";\nimport { geminiCliDefinition } from \"./gemini-cli.js\";\nimport { ghostDefinition } from \"./ghost.js\";\nimport { giteaDefinition } from \"./gitea.js\";\nimport { gotifyDefinition } from \"./gotify.js\";\nimport { grafanaDefinition } from \"./grafana.js\";\nimport { graylogDefinition } from \"./graylog.js\";\nimport { headscaleDefinition } from \"./headscale.js\";\nimport { hedgedocDefinition } from \"./hedgedoc.js\";\nimport { hexstrikeDefinition } from \"./hexstrike.js\";\nimport { heyformDefinition } from \"./heyform.js\";\nimport { homeassistantDefinition } from \"./homeassistant.js\";\nimport { hoppscotchDefinition } from \"./hoppscotch.js\";\nimport { immichDefinition } from \"./immich.js\";\nimport { infisicalDefinition } from \"./infisical.js\";\nimport { influxdbDefinition } from \"./influxdb.js\";\nimport { invokeAiDefinition } from \"./invoke-ai.js\";\nimport { jaegerDefinition } from \"./jaeger.js\";\nimport { janDefinition } from \"./jan.js\";\nimport { jellyfinDefinition } from \"./jellyfin.js\";\nimport { jenkinsDefinition } from \"./jenkins.js\";\nimport { jitsiMeetDefinition } from \"./jitsi-meet.js\";\nimport { keycloakDefinition } from \"./keycloak.js\";\nimport { kimiDefinition } from \"./kimi.js\";\nimport { kongDefinition } from \"./kong.js\";\nimport { lagoDefinition } from \"./lago.js\";\nimport { langflowDefinition } from \"./langflow.js\";\nimport { langfuseDefinition } from \"./langfuse.js\";\nimport { lasuiteMeetAgentsDefinition } from \"./lasuite-meet-agents.js\";\nimport { lasuiteMeetBackendDefinition } from \"./lasuite-meet-backend.js\";\nimport { lasuiteMeetFrontendDefinition } from \"./lasuite-meet-frontend.js\";\nimport { librechatDefinition } from \"./librechat.js\";\nimport { lightpandaDefinition } from \"./lightpanda.js\";\nimport { listmonkDefinition } from \"./listmonk.js\";\nimport { litellmDefinition } from \"./litellm.js\";\nimport { livekitDefinition } from \"./livekit.js\";\nimport { localAiDefinition } from \"./local-ai.js\";\nimport { lokiDefinition } from \"./loki.js\";\nimport { mariadbDefinition } from \"./mariadb.js\";\nimport { matomoDefinition } from \"./matomo.js\";\nimport { matrixSynapseDefinition } from \"./matrix-synapse.js\";\nimport { mattermostDefinition } from \"./mattermost.js\";\nimport { mauticDefinition } from \"./mautic.js\";\nimport { medusaDefinition } from \"./medusa.js\";\nimport { meilisearchDefinition } from \"./meilisearch.js\";\nimport { metabaseDefinition } from \"./metabase.js\";\nimport { milvusDefinition } from \"./milvus.js\";\nimport { minioDefinition } from \"./minio.js\";\nimport { missionControlDefinition } from \"./mission-control.js\";\nimport { mixpostDefinition } from \"./mixpost.js\";\nimport { mosquittoDefinition } from \"./mosquitto.js\";\nimport { motionCanvasDefinition } from \"./motion-canvas.js\";\nimport { mysqlDefinition } from \"./mysql.js\";\nimport { n8nDefinition } from \"./n8n.js\";\nimport { navidromeDefinition } from \"./navidrome.js\";\nimport { neo4jDefinition } from \"./neo4j.js\";\nimport { nextcloudDefinition } from \"./nextcloud.js\";\nimport { nginxProxyManagerDefinition } from \"./nginx-proxy-manager.js\";\nimport { nocodbDefinition } from \"./nocodb.js\";\nimport { nodeRedDefinition } from \"./node-red.js\";\nimport { ntfyDefinition } from \"./ntfy.js\";\nimport { ollamaDefinition } from \"./ollama.js\";\nimport { openWebuiDefinition } from \"./open-webui.js\";\nimport { opencodeDefinition } from \"./opencode.js\";\nimport { openhandsDefinition } from \"./openhands.js\";\nimport { openpanelDefinition } from \"./openpanel.js\";\nimport { opensearchDefinition } from \"./opensearch.js\";\nimport { outlineDefinition } from \"./outline.js\";\nimport { paperlessNgxDefinition } from \"./paperless-ngx.js\";\nimport { pentagiDefinition } from \"./pentagi.js\";\nimport { pentestagentDefinition } from \"./pentestagent.js\";\nimport { photoprismDefinition } from \"./photoprism.js\";\nimport { piholeDefinition } from \"./pihole.js\";\nimport { piperTtsDefinition } from \"./piper-tts.js\";\nimport { planeDefinition } from \"./plane.js\";\nimport { plausibleDefinition } from \"./plausible.js\";\nimport { playwrightServerDefinition } from \"./playwright-server.js\";\nimport { pocketIdDefinition } from \"./pocket-id.js\";\nimport { pocketbaseDefinition } from \"./pocketbase.js\";\nimport { portainerDefinition } from \"./portainer.js\";\nimport { postgresqlDefinition } from \"./postgresql.js\";\nimport { posthogDefinition } from \"./posthog.js\";\nimport { postizDefinition } from \"./postiz.js\";\nimport { prometheusDefinition } from \"./prometheus.js\";\nimport { qdrantDefinition } from \"./qdrant.js\";\nimport { rabbitmqDefinition } from \"./rabbitmq.js\";\nimport { ragflowDefinition } from \"./ragflow.js\";\nimport { redisDefinition } from \"./redis.js\";\nimport { remotionDefinition } from \"./remotion.js\";\nimport { resticDefinition } from \"./restic.js\";\nimport { revoltDefinition } from \"./revolt.js\";\nimport { rocketchatDefinition } from \"./rocketchat.js\";\nimport { saleorDefinition } from \"./saleor.js\";\nimport { scraplingDefinition } from \"./scrapling.js\";\nimport { searxngDefinition } from \"./searxng.js\";\nimport { sentryDefinition } from \"./sentry.js\";\nimport { signozDefinition } from \"./signoz.js\";\nimport { solidityGuardDefinition } from \"./solidityguard.js\";\nimport { sonarqubeDefinition } from \"./sonarqube.js\";\nimport { stableDiffusionDefinition } from \"./stable-diffusion.js\";\nimport { steelBrowserDefinition } from \"./steel-browser.js\";\nimport { stirlingPdfDefinition } from \"./stirling-pdf.js\";\nimport { strapiDefinition } from \"./strapi.js\";\nimport { streamGatewayDefinition } from \"./stream-gateway.js\";\nimport { supabaseDefinition } from \"./supabase.js\";\nimport { supersetDefinition } from \"./superset.js\";\nimport { surrealdbDefinition } from \"./surrealdb.js\";\nimport { tabbyMlDefinition } from \"./tabby-ml.js\";\nimport { tailscaleDefinition } from \"./tailscale.js\";\nimport { tempoDefinition } from \"./tempo.js\";\nimport { temporalDefinition } from \"./temporal.js\";\nimport { textGenWebuiDefinition } from \"./text-gen-webui.js\";\nimport { timescaledbDefinition } from \"./timescaledb.js\";\nimport { traefikDefinition } from \"./traefik.js\";\nimport { twentyDefinition } from \"./twenty.js\";\nimport { umamiDefinition } from \"./umami.js\";\nimport { uptimeKumaDefinition } from \"./uptime-kuma.js\";\nimport { usesendDefinition } from \"./usesend.js\";\nimport { valkeyDefinition } from \"./valkey.js\";\nimport { vaultDefinition } from \"./vault.js\";\nimport { vaultwardenDefinition } from \"./vaultwarden.js\";\nimport { vectorLogDefinition } from \"./vector-log.js\";\nimport { vikunjaDefinition } from \"./vikunja.js\";\nimport { watchtowerDefinition } from \"./watchtower.js\";\nimport { weaviateDefinition } from \"./weaviate.js\";\nimport { whisperDefinition } from \"./whisper.js\";\nimport { wireguardDefinition } from \"./wireguard.js\";\nimport { woodpeckerCiDefinition } from \"./woodpecker-ci.js\";\nimport { xyopsDefinition } from \"./xyops.js\";\nimport { zulipDefinition } from \"./zulip.js\";\n\n// ── SaaS Boilerplates ──────────────────────────────────────────────────────\nimport { openSaasDefinition } from \"./open-saas.js\";\nimport { apptensionSaasDefinition } from \"./apptension-saas.js\";\nimport { boxyhqSaasDefinition } from \"./boxyhq-saas.js\";\nimport { ixartzSaasDefinition } from \"./ixartz-saas.js\";\nimport { cmsaasStarterDefinition } from \"./cmsaas-starter.js\";\n\nexport const allServiceDefinitions: ServiceDefinition[] = [\n\tredisDefinition,\n\tqdrantDefinition,\n\tn8nDefinition,\n\tffmpegDefinition,\n\tminioDefinition,\n\tpostgresqlDefinition,\n\tcaddyDefinition,\n\ttraefikDefinition,\n\tuptimeKumaDefinition,\n\tgrafanaDefinition,\n\tprometheusDefinition,\n\tbrowserlessDefinition,\n\tfirecrawlDefinition,\n\tfirecrawlPlaywrightDefinition,\n\tsearxngDefinition,\n\tmeilisearchDefinition,\n\topensearchDefinition,\n\tollamaDefinition,\n\twhisperDefinition,\n\tchromadbDefinition,\n\tweaviateDefinition,\n\tvalkeyDefinition,\n\tgotifyDefinition,\n\tntfyDefinition,\n\trabbitmqDefinition,\n\tremotionDefinition,\n\tmotionCanvasDefinition,\n\ttemporalDefinition,\n\toutlineDefinition,\n\tdocsgptDefinition,\n\tpaperlessNgxDefinition,\n\tnocodbDefinition,\n\tappflowyDefinition,\n\tdirectusDefinition,\n\tstirlingPdfDefinition,\n\tstrapiDefinition,\n\tmatrixSynapseDefinition,\n\trocketchatDefinition,\n\tmattermostDefinition,\n\tchatwootDefinition,\n\tchatwootWorkerDefinition,\n\tstableDiffusionDefinition,\n\tcomfyuiDefinition,\n\tplaywrightServerDefinition,\n\topenWebuiDefinition,\n\tlangflowDefinition,\n\tragflowDefinition,\n\thomeassistantDefinition,\n\tnextcloudDefinition,\n\timmichDefinition,\n\tjellyfinDefinition,\n\tvaultwardenDefinition,\n\tmilvusDefinition,\n\tjenkinsDefinition,\n\tappwriteDefinition,\n\tauthentikDefinition,\n\tautheliaDefinition,\n\tcrowdsecDefinition,\n\tghostDefinition,\n\tlokiDefinition,\n\tsignozDefinition,\n\tsupabaseDefinition,\n\tpocketbaseDefinition,\n\tpocketIdDefinition,\n\tlibrechatDefinition,\n\tanythingLlmDefinition,\n\tdifyDefinition,\n\tflowiseDefinition,\n\tlitellmDefinition,\n\tflagsmithDefinition,\n\tgiteaDefinition,\n\tcodeServerDefinition,\n\tportainerDefinition,\n\twatchtowerDefinition,\n\tdozzleDefinition,\n\tbeszelDefinition,\n\tconvexDefinition,\n\tconvexDashboardDefinition,\n\tclaudeCodeDefinition,\n\topencodeDefinition,\n\tcodexDefinition,\n\tgeminiCliDefinition,\n\tkimiDefinition,\n\tpostizDefinition,\n\tmixpostDefinition,\n\tmatomoDefinition,\n\tumamiDefinition,\n\tusesendDefinition,\n\tlistmonkDefinition,\n\tmissionControlDefinition,\n\topenpanelDefinition,\n\tlightpandaDefinition,\n\tsteelBrowserDefinition,\n\tcoolifyDefinition,\n\tdokployDefinition,\n\ttailscaleDefinition,\n\tlivekitDefinition,\n\tinfisicalDefinition,\n\tkeycloakDefinition,\n\tlasuiteMeetBackendDefinition,\n\tlasuiteMeetFrontendDefinition,\n\tlasuiteMeetAgentsDefinition,\n\tdesktopEnvironmentDefinition,\n\tstreamGatewayDefinition,\n\tneo4jDefinition,\n\tcalComDefinition,\n\txyopsDefinition,\n\tscraplingDefinition,\n\thexstrikeDefinition,\n\tsolidityGuardDefinition,\n\tpentagiDefinition,\n\tpentestagentDefinition,\n\theadscaleDefinition,\n\tmysqlDefinition,\n\tmariadbDefinition,\n\t// ── New Services ──────────────────────────────────────────────────────────\n\tlangfuseDefinition,\n\topenhandsDefinition,\n\tairflowDefinition,\n\tairbyteDefinition,\n\tdagsterDefinition,\n\tlagoDefinition,\n\ttwentyDefinition,\n\tmauticDefinition,\n\tformbricksDefinition,\n\theyformDefinition,\n\tkongDefinition,\n\thoppscotchDefinition,\n\tvaultDefinition,\n\tresticDefinition,\n\tduplicatiDefinition,\n\tfonosterDefinition,\n\tmedusaDefinition,\n\tsaleorDefinition,\n\taxolotlDefinition,\n\thedgedocDefinition,\n\texcalidrawDefinition,\n\tjitsiMeetDefinition,\n\tzulipDefinition,\n\telementWebDefinition,\n\trevoltDefinition,\n\tdragonflyDefinition,\n\tsurrealdbDefinition,\n\tinfluxdbDefinition,\n\ttimescaledbDefinition,\n\tcockroachdbDefinition,\n\tsentryDefinition,\n\tjaegerDefinition,\n\ttempoDefinition,\n\tgraylogDefinition,\n\tvectorLogDefinition,\n\t// ── Batch 2: New Service Definitions ──────────────────────────────────\n\tadguardHomeDefinition,\n\taudiobookshelfDefinition,\n\tbaserowDefinition,\n\tcalibreWebDefinition,\n\tclickhouseDefinition,\n\tcloudflaredDefinition,\n\tcoderDefinition,\n\tdroneCiDefinition,\n\tfocalboardDefinition,\n\tforgejoDefinition,\n\tinvokeAiDefinition,\n\tjanDefinition,\n\tlocalAiDefinition,\n\tmetabaseDefinition,\n\tmosquittoDefinition,\n\tnavidromeDefinition,\n\tnginxProxyManagerDefinition,\n\tnodeRedDefinition,\n\tphotoprismDefinition,\n\tpiholeDefinition,\n\tpiperTtsDefinition,\n\tplaneDefinition,\n\tplausibleDefinition,\n\tposthogDefinition,\n\tsonarqubeDefinition,\n\tsupersetDefinition,\n\ttabbyMlDefinition,\n\ttextGenWebuiDefinition,\n\tvikunjaDefinition,\n\twireguardDefinition,\n\twoodpeckerCiDefinition,\n\t// ── SaaS Boilerplates ────────────────────────────────────────────────────\n\topenSaasDefinition,\n\tapptensionSaasDefinition,\n\tboxyhqSaasDefinition,\n\tixartzSaasDefinition,\n\tcmsaasStarterDefinition,\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2XA,MAAa,wBAA6C;CACzD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CACA"}
@@ -0,0 +1,88 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/services/definitions/ixartz-saas.ts
3
+ const ixartzSaasDefinition = {
4
+ id: "ixartz-saas",
5
+ name: "SaaS Boilerplate (Ixartz)",
6
+ description: "Modern Next.js 14 SaaS boilerplate with TypeScript, DrizzleORM, Tailwind CSS, ShadCN UI, Clerk auth, Stripe billing, i18n support, and comprehensive testing.",
7
+ category: "saas-boilerplate",
8
+ icon: "🚀",
9
+ gitSource: {
10
+ repoUrl: "https://github.com/ixartz/SaaS-Boilerplate.git",
11
+ branch: "main",
12
+ postCloneCommands: []
13
+ },
14
+ buildContext: {
15
+ dockerfile: "Dockerfile",
16
+ context: "."
17
+ },
18
+ ports: [{
19
+ host: 3103,
20
+ container: 3e3,
21
+ description: "Ixartz SaaS web application",
22
+ exposed: true
23
+ }],
24
+ volumes: [],
25
+ environment: [
26
+ {
27
+ key: "IXARTZ_SAAS_DB_PASSWORD",
28
+ defaultValue: "",
29
+ secret: true,
30
+ description: "Database password for Ixartz SaaS",
31
+ required: true
32
+ },
33
+ {
34
+ key: "DATABASE_URL",
35
+ defaultValue: "postgresql://ixartzsaas:${IXARTZ_SAAS_DB_PASSWORD}@postgresql:5432/ixartzsaas",
36
+ secret: false,
37
+ description: "PostgreSQL connection string",
38
+ required: true
39
+ },
40
+ {
41
+ key: "CLERK_SECRET_KEY",
42
+ defaultValue: "",
43
+ secret: true,
44
+ description: "Clerk authentication secret key",
45
+ required: true
46
+ },
47
+ {
48
+ key: "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY",
49
+ defaultValue: "",
50
+ secret: false,
51
+ description: "Clerk publishable key (client-side)",
52
+ required: true
53
+ }
54
+ ],
55
+ healthcheck: {
56
+ test: "wget -q --spider http://localhost:3000/ || exit 1",
57
+ interval: "30s",
58
+ timeout: "10s",
59
+ retries: 3,
60
+ startPeriod: "60s"
61
+ },
62
+ dependsOn: ["postgresql"],
63
+ restartPolicy: "unless-stopped",
64
+ networks: ["openclaw-network"],
65
+ skills: [],
66
+ openclawEnvVars: [],
67
+ docsUrl: "https://github.com/ixartz/SaaS-Boilerplate#readme",
68
+ tags: [
69
+ "saas",
70
+ "boilerplate",
71
+ "nextjs",
72
+ "typescript",
73
+ "drizzle",
74
+ "clerk",
75
+ "stripe",
76
+ "tailwind"
77
+ ],
78
+ maturity: "beta",
79
+ requires: ["postgresql"],
80
+ recommends: [],
81
+ conflictsWith: [],
82
+ minMemoryMB: 512,
83
+ gpuRequired: false
84
+ };
85
+ //#endregion
86
+ exports.ixartzSaasDefinition = ixartzSaasDefinition;
87
+
88
+ //# sourceMappingURL=ixartz-saas.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ixartz-saas.cjs","names":[],"sources":["../../../src/services/definitions/ixartz-saas.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const ixartzSaasDefinition: ServiceDefinition = {\n\tid: \"ixartz-saas\",\n\tname: \"SaaS Boilerplate (Ixartz)\",\n\tdescription:\n\t\t\"Modern Next.js 14 SaaS boilerplate with TypeScript, DrizzleORM, Tailwind CSS, ShadCN UI, Clerk auth, Stripe billing, i18n support, and comprehensive testing.\",\n\tcategory: \"saas-boilerplate\",\n\ticon: \"🚀\",\n\n\tgitSource: {\n\t\trepoUrl: \"https://github.com/ixartz/SaaS-Boilerplate.git\",\n\t\tbranch: \"main\",\n\t\tpostCloneCommands: [],\n\t},\n\tbuildContext: {\n\t\tdockerfile: \"Dockerfile\",\n\t\tcontext: \".\",\n\t},\n\n\tports: [\n\t\t{\n\t\t\thost: 3103,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Ixartz SaaS web application\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"IXARTZ_SAAS_DB_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Database password for Ixartz SaaS\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"DATABASE_URL\",\n\t\t\tdefaultValue: \"postgresql://ixartzsaas:${IXARTZ_SAAS_DB_PASSWORD}@postgresql:5432/ixartzsaas\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL connection string\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"CLERK_SECRET_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Clerk authentication secret key\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Clerk publishable key (client-side)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3000/ || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"60s\",\n\t},\n\tdependsOn: [\"postgresql\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://github.com/ixartz/SaaS-Boilerplate#readme\",\n\ttags: [\"saas\", \"boilerplate\", \"nextjs\", \"typescript\", \"drizzle\", \"clerk\", \"stripe\", \"tailwind\"],\n\tmaturity: \"beta\",\n\n\trequires: [\"postgresql\"],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";;AAEA,MAAa,uBAA0C;CACtD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,WAAW;EACV,SAAS;EACT,QAAQ;EACR,mBAAmB,EAAE;EACrB;CACD,cAAc;EACb,YAAY;EACZ,SAAS;EACT;CAED,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa;EACZ;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,CAAC,aAAa;CACzB,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAQ;EAAe;EAAU;EAAc;EAAW;EAAS;EAAU;EAAW;CAC/F,UAAU;CAEV,UAAU,CAAC,aAAa;CACxB,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.cjs";
2
+
3
+ //#region src/services/definitions/ixartz-saas.d.ts
4
+ declare const ixartzSaasDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { ixartzSaasDefinition };
7
+ //# sourceMappingURL=ixartz-saas.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ixartz-saas.d.cts","names":[],"sources":["../../../src/services/definitions/ixartz-saas.ts"],"mappings":";;;cAEa,oBAAA,EAAsB,iBAAA"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.mjs";
2
+
3
+ //#region src/services/definitions/ixartz-saas.d.ts
4
+ declare const ixartzSaasDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { ixartzSaasDefinition };
7
+ //# sourceMappingURL=ixartz-saas.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ixartz-saas.d.mts","names":[],"sources":["../../../src/services/definitions/ixartz-saas.ts"],"mappings":";;;cAEa,oBAAA,EAAsB,iBAAA"}
@@ -0,0 +1,87 @@
1
+ //#region src/services/definitions/ixartz-saas.ts
2
+ const ixartzSaasDefinition = {
3
+ id: "ixartz-saas",
4
+ name: "SaaS Boilerplate (Ixartz)",
5
+ description: "Modern Next.js 14 SaaS boilerplate with TypeScript, DrizzleORM, Tailwind CSS, ShadCN UI, Clerk auth, Stripe billing, i18n support, and comprehensive testing.",
6
+ category: "saas-boilerplate",
7
+ icon: "🚀",
8
+ gitSource: {
9
+ repoUrl: "https://github.com/ixartz/SaaS-Boilerplate.git",
10
+ branch: "main",
11
+ postCloneCommands: []
12
+ },
13
+ buildContext: {
14
+ dockerfile: "Dockerfile",
15
+ context: "."
16
+ },
17
+ ports: [{
18
+ host: 3103,
19
+ container: 3e3,
20
+ description: "Ixartz SaaS web application",
21
+ exposed: true
22
+ }],
23
+ volumes: [],
24
+ environment: [
25
+ {
26
+ key: "IXARTZ_SAAS_DB_PASSWORD",
27
+ defaultValue: "",
28
+ secret: true,
29
+ description: "Database password for Ixartz SaaS",
30
+ required: true
31
+ },
32
+ {
33
+ key: "DATABASE_URL",
34
+ defaultValue: "postgresql://ixartzsaas:${IXARTZ_SAAS_DB_PASSWORD}@postgresql:5432/ixartzsaas",
35
+ secret: false,
36
+ description: "PostgreSQL connection string",
37
+ required: true
38
+ },
39
+ {
40
+ key: "CLERK_SECRET_KEY",
41
+ defaultValue: "",
42
+ secret: true,
43
+ description: "Clerk authentication secret key",
44
+ required: true
45
+ },
46
+ {
47
+ key: "NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY",
48
+ defaultValue: "",
49
+ secret: false,
50
+ description: "Clerk publishable key (client-side)",
51
+ required: true
52
+ }
53
+ ],
54
+ healthcheck: {
55
+ test: "wget -q --spider http://localhost:3000/ || exit 1",
56
+ interval: "30s",
57
+ timeout: "10s",
58
+ retries: 3,
59
+ startPeriod: "60s"
60
+ },
61
+ dependsOn: ["postgresql"],
62
+ restartPolicy: "unless-stopped",
63
+ networks: ["openclaw-network"],
64
+ skills: [],
65
+ openclawEnvVars: [],
66
+ docsUrl: "https://github.com/ixartz/SaaS-Boilerplate#readme",
67
+ tags: [
68
+ "saas",
69
+ "boilerplate",
70
+ "nextjs",
71
+ "typescript",
72
+ "drizzle",
73
+ "clerk",
74
+ "stripe",
75
+ "tailwind"
76
+ ],
77
+ maturity: "beta",
78
+ requires: ["postgresql"],
79
+ recommends: [],
80
+ conflictsWith: [],
81
+ minMemoryMB: 512,
82
+ gpuRequired: false
83
+ };
84
+ //#endregion
85
+ export { ixartzSaasDefinition };
86
+
87
+ //# sourceMappingURL=ixartz-saas.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ixartz-saas.mjs","names":[],"sources":["../../../src/services/definitions/ixartz-saas.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const ixartzSaasDefinition: ServiceDefinition = {\n\tid: \"ixartz-saas\",\n\tname: \"SaaS Boilerplate (Ixartz)\",\n\tdescription:\n\t\t\"Modern Next.js 14 SaaS boilerplate with TypeScript, DrizzleORM, Tailwind CSS, ShadCN UI, Clerk auth, Stripe billing, i18n support, and comprehensive testing.\",\n\tcategory: \"saas-boilerplate\",\n\ticon: \"🚀\",\n\n\tgitSource: {\n\t\trepoUrl: \"https://github.com/ixartz/SaaS-Boilerplate.git\",\n\t\tbranch: \"main\",\n\t\tpostCloneCommands: [],\n\t},\n\tbuildContext: {\n\t\tdockerfile: \"Dockerfile\",\n\t\tcontext: \".\",\n\t},\n\n\tports: [\n\t\t{\n\t\t\thost: 3103,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Ixartz SaaS web application\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"IXARTZ_SAAS_DB_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Database password for Ixartz SaaS\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"DATABASE_URL\",\n\t\t\tdefaultValue: \"postgresql://ixartzsaas:${IXARTZ_SAAS_DB_PASSWORD}@postgresql:5432/ixartzsaas\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"PostgreSQL connection string\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"CLERK_SECRET_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Clerk authentication secret key\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Clerk publishable key (client-side)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3000/ || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"60s\",\n\t},\n\tdependsOn: [\"postgresql\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://github.com/ixartz/SaaS-Boilerplate#readme\",\n\ttags: [\"saas\", \"boilerplate\", \"nextjs\", \"typescript\", \"drizzle\", \"clerk\", \"stripe\", \"tailwind\"],\n\tmaturity: \"beta\",\n\n\trequires: [\"postgresql\"],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,uBAA0C;CACtD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,WAAW;EACV,SAAS;EACT,QAAQ;EACR,mBAAmB,EAAE;EACrB;CACD,cAAc;EACb,YAAY;EACZ,SAAS;EACT;CAED,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa;EACZ;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,CAAC,aAAa;CACzB,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAQ;EAAe;EAAU;EAAc;EAAW;EAAS;EAAU;EAAW;CAC/F,UAAU;CAEV,UAAU,CAAC,aAAa;CACxB,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -71,7 +71,17 @@ const meilisearchDefinition = {
71
71
  recommends: [],
72
72
  conflictsWith: [],
73
73
  minMemoryMB: 256,
74
- gpuRequired: false
74
+ gpuRequired: false,
75
+ capDropCompatible: true,
76
+ proxyPath: "/meilisearch",
77
+ envQuirks: [{
78
+ key: "MEILI_MASTER_KEY",
79
+ issue: "min_length",
80
+ fix: {
81
+ type: "generate_base64url",
82
+ minBytes: 24
83
+ }
84
+ }]
75
85
  };
76
86
  //#endregion
77
87
  exports.meilisearchDefinition = meilisearchDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"meilisearch.cjs","names":[],"sources":["../../../src/services/definitions/meilisearch.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const meilisearchDefinition: ServiceDefinition = {\n\tid: \"meilisearch\",\n\tname: \"Meilisearch\",\n\tdescription:\n\t\t\"Lightning-fast, typo-tolerant full-text search engine with an intuitive API, perfect for building instant search experiences.\",\n\tcategory: \"search\",\n\ticon: \"🔎\",\n\n\timage: \"getmeili/meilisearch\",\n\timageTag: \"v1.35.1\",\n\tports: [\n\t\t{\n\t\t\thost: 7700,\n\t\t\tcontainer: 7700,\n\t\t\tdescription: \"Meilisearch HTTP API\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"meilisearch-data\",\n\t\t\tcontainerPath: \"/meili_data\",\n\t\t\tdescription: \"Persistent Meilisearch index and data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MEILI_MASTER_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Master key for Meilisearch API authentication\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl -sf http://localhost:7700/health || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 5,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MEILISEARCH_HOST\",\n\t\t\tdefaultValue: \"meilisearch\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_PORT\",\n\t\t\tdefaultValue: \"7700\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_MASTER_KEY\",\n\t\t\tdefaultValue: \"${MEILI_MASTER_KEY}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Meilisearch master key for OpenClaw (references service key)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://www.meilisearch.com/docs\",\n\ttags: [\"full-text-search\", \"instant-search\", \"typo-tolerant\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";;AAEA,MAAa,wBAA2C;CACvD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAoB;EAAkB;EAAgB;CAC7D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
1
+ {"version":3,"file":"meilisearch.cjs","names":[],"sources":["../../../src/services/definitions/meilisearch.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const meilisearchDefinition: ServiceDefinition = {\n\tid: \"meilisearch\",\n\tname: \"Meilisearch\",\n\tdescription:\n\t\t\"Lightning-fast, typo-tolerant full-text search engine with an intuitive API, perfect for building instant search experiences.\",\n\tcategory: \"search\",\n\ticon: \"🔎\",\n\n\timage: \"getmeili/meilisearch\",\n\timageTag: \"v1.35.1\",\n\tports: [\n\t\t{\n\t\t\thost: 7700,\n\t\t\tcontainer: 7700,\n\t\t\tdescription: \"Meilisearch HTTP API\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"meilisearch-data\",\n\t\t\tcontainerPath: \"/meili_data\",\n\t\t\tdescription: \"Persistent Meilisearch index and data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MEILI_MASTER_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Master key for Meilisearch API authentication\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl -sf http://localhost:7700/health || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 5,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MEILISEARCH_HOST\",\n\t\t\tdefaultValue: \"meilisearch\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_PORT\",\n\t\t\tdefaultValue: \"7700\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_MASTER_KEY\",\n\t\t\tdefaultValue: \"${MEILI_MASTER_KEY}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Meilisearch master key for OpenClaw (references service key)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://www.meilisearch.com/docs\",\n\ttags: [\"full-text-search\", \"instant-search\", \"typo-tolerant\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n\tcapDropCompatible: true,\n\tproxyPath: \"/meilisearch\",\n\tenvQuirks: [\n\t\t{\n\t\t\tkey: \"MEILI_MASTER_KEY\",\n\t\t\tissue: \"min_length\" as const,\n\t\t\tfix: { type: \"generate_base64url\" as const, minBytes: 24 },\n\t\t},\n\t],\n};\n"],"mappings":";;AAEA,MAAa,wBAA2C;CACvD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAoB;EAAkB;EAAgB;CAC7D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX,WAAW,CACV;EACC,KAAK;EACL,OAAO;EACP,KAAK;GAAE,MAAM;GAA+B,UAAU;GAAI;EAC1D,CACD;CACD"}
@@ -70,7 +70,17 @@ const meilisearchDefinition = {
70
70
  recommends: [],
71
71
  conflictsWith: [],
72
72
  minMemoryMB: 256,
73
- gpuRequired: false
73
+ gpuRequired: false,
74
+ capDropCompatible: true,
75
+ proxyPath: "/meilisearch",
76
+ envQuirks: [{
77
+ key: "MEILI_MASTER_KEY",
78
+ issue: "min_length",
79
+ fix: {
80
+ type: "generate_base64url",
81
+ minBytes: 24
82
+ }
83
+ }]
74
84
  };
75
85
  //#endregion
76
86
  export { meilisearchDefinition };
@@ -1 +1 @@
1
- {"version":3,"file":"meilisearch.mjs","names":[],"sources":["../../../src/services/definitions/meilisearch.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const meilisearchDefinition: ServiceDefinition = {\n\tid: \"meilisearch\",\n\tname: \"Meilisearch\",\n\tdescription:\n\t\t\"Lightning-fast, typo-tolerant full-text search engine with an intuitive API, perfect for building instant search experiences.\",\n\tcategory: \"search\",\n\ticon: \"🔎\",\n\n\timage: \"getmeili/meilisearch\",\n\timageTag: \"v1.35.1\",\n\tports: [\n\t\t{\n\t\t\thost: 7700,\n\t\t\tcontainer: 7700,\n\t\t\tdescription: \"Meilisearch HTTP API\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"meilisearch-data\",\n\t\t\tcontainerPath: \"/meili_data\",\n\t\t\tdescription: \"Persistent Meilisearch index and data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MEILI_MASTER_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Master key for Meilisearch API authentication\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl -sf http://localhost:7700/health || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 5,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MEILISEARCH_HOST\",\n\t\t\tdefaultValue: \"meilisearch\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_PORT\",\n\t\t\tdefaultValue: \"7700\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_MASTER_KEY\",\n\t\t\tdefaultValue: \"${MEILI_MASTER_KEY}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Meilisearch master key for OpenClaw (references service key)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://www.meilisearch.com/docs\",\n\ttags: [\"full-text-search\", \"instant-search\", \"typo-tolerant\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,wBAA2C;CACvD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAoB;EAAkB;EAAgB;CAC7D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
1
+ {"version":3,"file":"meilisearch.mjs","names":[],"sources":["../../../src/services/definitions/meilisearch.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const meilisearchDefinition: ServiceDefinition = {\n\tid: \"meilisearch\",\n\tname: \"Meilisearch\",\n\tdescription:\n\t\t\"Lightning-fast, typo-tolerant full-text search engine with an intuitive API, perfect for building instant search experiences.\",\n\tcategory: \"search\",\n\ticon: \"🔎\",\n\n\timage: \"getmeili/meilisearch\",\n\timageTag: \"v1.35.1\",\n\tports: [\n\t\t{\n\t\t\thost: 7700,\n\t\t\tcontainer: 7700,\n\t\t\tdescription: \"Meilisearch HTTP API\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"meilisearch-data\",\n\t\t\tcontainerPath: \"/meili_data\",\n\t\t\tdescription: \"Persistent Meilisearch index and data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MEILI_MASTER_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Master key for Meilisearch API authentication\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl -sf http://localhost:7700/health || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 5,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MEILISEARCH_HOST\",\n\t\t\tdefaultValue: \"meilisearch\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_PORT\",\n\t\t\tdefaultValue: \"7700\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Meilisearch port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MEILISEARCH_MASTER_KEY\",\n\t\t\tdefaultValue: \"${MEILI_MASTER_KEY}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Meilisearch master key for OpenClaw (references service key)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://www.meilisearch.com/docs\",\n\ttags: [\"full-text-search\", \"instant-search\", \"typo-tolerant\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n\tcapDropCompatible: true,\n\tproxyPath: \"/meilisearch\",\n\tenvQuirks: [\n\t\t{\n\t\t\tkey: \"MEILI_MASTER_KEY\",\n\t\t\tissue: \"min_length\" as const,\n\t\t\tfix: { type: \"generate_base64url\" as const, minBytes: 24 },\n\t\t},\n\t],\n};\n"],"mappings":";AAEA,MAAa,wBAA2C;CACvD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAoB;EAAkB;EAAgB;CAC7D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX,WAAW,CACV;EACC,KAAK;EACL,OAAO;EACP,KAAK;GAAE,MAAM;GAA+B,UAAU;GAAI;EAC1D,CACD;CACD"}
@@ -95,7 +95,9 @@ const minioDefinition = {
95
95
  recommends: [],
96
96
  conflictsWith: [],
97
97
  minMemoryMB: 256,
98
- gpuRequired: false
98
+ gpuRequired: false,
99
+ capDropCompatible: true,
100
+ proxyPath: "/minio"
99
101
  };
100
102
  //#endregion
101
103
  exports.minioDefinition = minioDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"minio.cjs","names":[],"sources":["../../../src/services/definitions/minio.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const minioDefinition: ServiceDefinition = {\n\tid: \"minio\",\n\tname: \"MinIO\",\n\tdescription:\n\t\t\"S3-compatible high-performance object storage for storing assets, backups, and large files with a built-in web console.\",\n\tcategory: \"storage\",\n\ticon: \"💾\",\n\n\timage: \"minio/minio\",\n\timageTag: \"RELEASE.2025-04-22T22-12-26Z\",\n\tports: [\n\t\t{\n\t\t\thost: 9000,\n\t\t\tcontainer: 9000,\n\t\t\tdescription: \"MinIO S3-compatible API\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 9001,\n\t\t\tcontainer: 9001,\n\t\t\tdescription: \"MinIO web console\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"minio-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent MinIO object storage data\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_USER\",\n\t\t\tdefaultValue: \"minioadmin\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO root user (access key)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO root password (secret key, minimum 8 characters)\",\n\t\t\trequired: true,\n\t\t\tvalidation: \"^.{8,}$\",\n\t\t},\n\t],\n\tcommand: \"server /data --console-address ':9001'\",\n\thealthcheck: {\n\t\ttest: \"mc ready local || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"10s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [{ skillId: \"minio-storage\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MINIO_HOST\",\n\t\t\tdefaultValue: \"minio\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_PORT\",\n\t\t\tdefaultValue: \"9000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO API port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ACCESS_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_USER}\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO access key for OpenClaw (references root user)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_SECRET_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO secret key for OpenClaw (references root password)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://min.io/docs/minio/container/index.html\",\n\ttags: [\"s3\", \"object-storage\", \"assets\", \"backup\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";;AAEA,MAAa,kBAAqC;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,EACD;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,YAAY;EACZ,CACD;CACD,SAAS;CACT,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,CAAC;EAAE,SAAS;EAAiB,aAAa;EAAM,CAAC;CACzD,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAM;EAAkB;EAAU;EAAS;CAClD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
1
+ {"version":3,"file":"minio.cjs","names":[],"sources":["../../../src/services/definitions/minio.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const minioDefinition: ServiceDefinition = {\n\tid: \"minio\",\n\tname: \"MinIO\",\n\tdescription:\n\t\t\"S3-compatible high-performance object storage for storing assets, backups, and large files with a built-in web console.\",\n\tcategory: \"storage\",\n\ticon: \"💾\",\n\n\timage: \"minio/minio\",\n\timageTag: \"RELEASE.2025-04-22T22-12-26Z\",\n\tports: [\n\t\t{\n\t\t\thost: 9000,\n\t\t\tcontainer: 9000,\n\t\t\tdescription: \"MinIO S3-compatible API\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 9001,\n\t\t\tcontainer: 9001,\n\t\t\tdescription: \"MinIO web console\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"minio-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent MinIO object storage data\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_USER\",\n\t\t\tdefaultValue: \"minioadmin\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO root user (access key)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO root password (secret key, minimum 8 characters)\",\n\t\t\trequired: true,\n\t\t\tvalidation: \"^.{8,}$\",\n\t\t},\n\t],\n\tcommand: \"server /data --console-address ':9001'\",\n\thealthcheck: {\n\t\ttest: \"mc ready local || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"10s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [{ skillId: \"minio-storage\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MINIO_HOST\",\n\t\t\tdefaultValue: \"minio\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_PORT\",\n\t\t\tdefaultValue: \"9000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO API port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ACCESS_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_USER}\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO access key for OpenClaw (references root user)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_SECRET_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO secret key for OpenClaw (references root password)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://min.io/docs/minio/container/index.html\",\n\ttags: [\"s3\", \"object-storage\", \"assets\", \"backup\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n\tcapDropCompatible: true,\n\tproxyPath: \"/minio\",\n};\n"],"mappings":";;AAEA,MAAa,kBAAqC;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,EACD;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,YAAY;EACZ,CACD;CACD,SAAS;CACT,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,CAAC;EAAE,SAAS;EAAiB,aAAa;EAAM,CAAC;CACzD,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAM;EAAkB;EAAU;EAAS;CAClD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX"}
@@ -94,7 +94,9 @@ const minioDefinition = {
94
94
  recommends: [],
95
95
  conflictsWith: [],
96
96
  minMemoryMB: 256,
97
- gpuRequired: false
97
+ gpuRequired: false,
98
+ capDropCompatible: true,
99
+ proxyPath: "/minio"
98
100
  };
99
101
  //#endregion
100
102
  export { minioDefinition };
@@ -1 +1 @@
1
- {"version":3,"file":"minio.mjs","names":[],"sources":["../../../src/services/definitions/minio.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const minioDefinition: ServiceDefinition = {\n\tid: \"minio\",\n\tname: \"MinIO\",\n\tdescription:\n\t\t\"S3-compatible high-performance object storage for storing assets, backups, and large files with a built-in web console.\",\n\tcategory: \"storage\",\n\ticon: \"💾\",\n\n\timage: \"minio/minio\",\n\timageTag: \"RELEASE.2025-04-22T22-12-26Z\",\n\tports: [\n\t\t{\n\t\t\thost: 9000,\n\t\t\tcontainer: 9000,\n\t\t\tdescription: \"MinIO S3-compatible API\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 9001,\n\t\t\tcontainer: 9001,\n\t\t\tdescription: \"MinIO web console\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"minio-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent MinIO object storage data\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_USER\",\n\t\t\tdefaultValue: \"minioadmin\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO root user (access key)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO root password (secret key, minimum 8 characters)\",\n\t\t\trequired: true,\n\t\t\tvalidation: \"^.{8,}$\",\n\t\t},\n\t],\n\tcommand: \"server /data --console-address ':9001'\",\n\thealthcheck: {\n\t\ttest: \"mc ready local || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"10s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [{ skillId: \"minio-storage\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MINIO_HOST\",\n\t\t\tdefaultValue: \"minio\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_PORT\",\n\t\t\tdefaultValue: \"9000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO API port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ACCESS_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_USER}\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO access key for OpenClaw (references root user)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_SECRET_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO secret key for OpenClaw (references root password)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://min.io/docs/minio/container/index.html\",\n\ttags: [\"s3\", \"object-storage\", \"assets\", \"backup\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,kBAAqC;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,EACD;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,YAAY;EACZ,CACD;CACD,SAAS;CACT,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,CAAC;EAAE,SAAS;EAAiB,aAAa;EAAM,CAAC;CACzD,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAM;EAAkB;EAAU;EAAS;CAClD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
1
+ {"version":3,"file":"minio.mjs","names":[],"sources":["../../../src/services/definitions/minio.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const minioDefinition: ServiceDefinition = {\n\tid: \"minio\",\n\tname: \"MinIO\",\n\tdescription:\n\t\t\"S3-compatible high-performance object storage for storing assets, backups, and large files with a built-in web console.\",\n\tcategory: \"storage\",\n\ticon: \"💾\",\n\n\timage: \"minio/minio\",\n\timageTag: \"RELEASE.2025-04-22T22-12-26Z\",\n\tports: [\n\t\t{\n\t\t\thost: 9000,\n\t\t\tcontainer: 9000,\n\t\t\tdescription: \"MinIO S3-compatible API\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 9001,\n\t\t\tcontainer: 9001,\n\t\t\tdescription: \"MinIO web console\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"minio-data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent MinIO object storage data\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_USER\",\n\t\t\tdefaultValue: \"minioadmin\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO root user (access key)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ROOT_PASSWORD\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO root password (secret key, minimum 8 characters)\",\n\t\t\trequired: true,\n\t\t\tvalidation: \"^.{8,}$\",\n\t\t},\n\t],\n\tcommand: \"server /data --console-address ':9001'\",\n\thealthcheck: {\n\t\ttest: \"mc ready local || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"10s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [{ skillId: \"minio-storage\", autoInstall: true }],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MINIO_HOST\",\n\t\t\tdefaultValue: \"minio\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO hostname for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_PORT\",\n\t\t\tdefaultValue: \"9000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO API port for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ACCESS_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_USER}\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO access key for OpenClaw (references root user)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_SECRET_KEY\",\n\t\t\tdefaultValue: \"${MINIO_ROOT_PASSWORD}\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"MinIO secret key for OpenClaw (references root password)\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://min.io/docs/minio/container/index.html\",\n\ttags: [\"s3\", \"object-storage\", \"assets\", \"backup\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 256,\n\tgpuRequired: false,\n\tcapDropCompatible: true,\n\tproxyPath: \"/minio\",\n};\n"],"mappings":";AAEA,MAAa,kBAAqC;CACjD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,EACD;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,CACR;EACC,MAAM;EACN,eAAe;EACf,aAAa;EACb,CACD;CACD,aAAa,CACZ;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,EACD;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,YAAY;EACZ,CACD;CACD,SAAS;CACT,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,EAAE;CACb,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,CAAC;EAAE,SAAS;EAAiB,aAAa;EAAM,CAAC;CACzD,iBAAiB;EAChB;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;CAED,SAAS;CACT,MAAM;EAAC;EAAM;EAAkB;EAAU;EAAS;CAClD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX"}
@@ -6,8 +6,15 @@ const missionControlDefinition = {
6
6
  description: "Real-time agent oversight dashboard for OpenClaw. Kanban task board, live activity feed, document browser, and message threads — powered by Convex.",
7
7
  category: "dev-tools",
8
8
  icon: "🛸",
9
- image: "ghcr.io/bidewio/mission-control",
10
- imageTag: "latest",
9
+ gitSource: {
10
+ repoUrl: "https://github.com/bidewio/better-openclaw-mission-control.git",
11
+ branch: "main",
12
+ postCloneCommands: []
13
+ },
14
+ buildContext: {
15
+ dockerfile: "Dockerfile",
16
+ context: "."
17
+ },
11
18
  ports: [{
12
19
  host: 3660,
13
20
  container: 3660,
@@ -38,6 +45,13 @@ const missionControlDefinition = {
38
45
  required: true
39
46
  }
40
47
  ],
48
+ healthcheck: {
49
+ test: "wget -q --spider http://localhost:3660/ || exit 1",
50
+ interval: "10s",
51
+ timeout: "5s",
52
+ retries: 3,
53
+ startPeriod: "15s"
54
+ },
41
55
  dependsOn: ["convex"],
42
56
  restartPolicy: "unless-stopped",
43
57
  networks: ["openclaw-network"],
@@ -1 +1 @@
1
- {"version":3,"file":"mission-control.cjs","names":[],"sources":["../../../src/services/definitions/mission-control.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const missionControlDefinition: ServiceDefinition = {\n\tid: \"mission-control\",\n\tname: \"Mission Control\",\n\tdescription:\n\t\t\"Real-time agent oversight dashboard for OpenClaw. Kanban task board, live activity feed, document browser, and message threads — powered by Convex.\",\n\tcategory: \"dev-tools\",\n\ticon: \"🛸\",\n\n\timage: \"ghcr.io/bidewio/mission-control\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3660,\n\t\t\tcontainer: 3660,\n\t\t\tdescription: \"Mission Control Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"VITE_CONVEX_URL\",\n\t\t\tdefaultValue: \"http://127.0.0.1:3210\",\n\t\t\tsecret: false,\n\t\t\tdescription:\n\t\t\t\t\"Convex backend URL as seen from the browser (build-time, embedded in JS bundle)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"CONVEX_SELF_HOSTED_URL\",\n\t\t\tdefaultValue: \"http://convex:3210\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Internal Docker URL for pushing Convex functions during build\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"CONVEX_SELF_HOSTED_ADMIN_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription:\n\t\t\t\t\"Admin key for the self-hosted Convex backend. Generate with: docker compose exec convex ./generate_admin_key.sh\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\tdependsOn: [\"convex\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://github.com/bidewio/better-openclaw/tree/main/packages/mission-control\",\n\tselfHostedDocsUrl:\n\t\t\"https://github.com/bidewio/better-openclaw/tree/main/packages/mission-control\",\n\ttags: [\"openclaw\", \"dashboard\", \"monitoring\", \"agents\", \"analytics\", \"convex\"],\n\tmaturity: \"stable\",\n\n\trequires: [\"convex\"],\n\trecommends: [\"convex-dashboard\"],\n\tconflictsWith: [],\n\tmandatory: true,\n\tremovalWarning:\n\t\t\"Mission Control is the primary dashboard for monitoring your OpenClaw agents. Removing it will eliminate real-time agent oversight, task management, and activity tracking.\",\n\n\tminMemoryMB: 128,\n\tgpuRequired: false,\n};\n"],"mappings":";;AAEA,MAAa,2BAA8C;CAC1D,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa;EACZ;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aACC;GACD,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aACC;GACD,UAAU;GACV;EACD;CACD,WAAW,CAAC,SAAS;CACrB,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,mBACC;CACD,MAAM;EAAC;EAAY;EAAa;EAAc;EAAU;EAAa;EAAS;CAC9E,UAAU;CAEV,UAAU,CAAC,SAAS;CACpB,YAAY,CAAC,mBAAmB;CAChC,eAAe,EAAE;CACjB,WAAW;CACX,gBACC;CAED,aAAa;CACb,aAAa;CACb"}
1
+ {"version":3,"file":"mission-control.cjs","names":[],"sources":["../../../src/services/definitions/mission-control.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const missionControlDefinition: ServiceDefinition = {\n\tid: \"mission-control\",\n\tname: \"Mission Control\",\n\tdescription:\n\t\t\"Real-time agent oversight dashboard for OpenClaw. Kanban task board, live activity feed, document browser, and message threads — powered by Convex.\",\n\tcategory: \"dev-tools\",\n\ticon: \"🛸\",\n\n\t// Pre-built image available at ghcr.io/bidewio/mission-control:latest\n\t// but gitSource is preferred so users always get the latest source\n\tgitSource: {\n\t\trepoUrl: \"https://github.com/bidewio/better-openclaw-mission-control.git\",\n\t\tbranch: \"main\",\n\t\tpostCloneCommands: [],\n\t},\n\tbuildContext: {\n\t\tdockerfile: \"Dockerfile\",\n\t\tcontext: \".\",\n\t},\n\n\tports: [\n\t\t{\n\t\t\thost: 3660,\n\t\t\tcontainer: 3660,\n\t\t\tdescription: \"Mission Control Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"VITE_CONVEX_URL\",\n\t\t\tdefaultValue: \"http://127.0.0.1:3210\",\n\t\t\tsecret: false,\n\t\t\tdescription:\n\t\t\t\t\"Convex backend URL as seen from the browser (build-time, embedded in JS bundle)\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"CONVEX_SELF_HOSTED_URL\",\n\t\t\tdefaultValue: \"http://convex:3210\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Internal Docker URL for pushing Convex functions during build\",\n\t\t\trequired: true,\n\t\t},\n\t\t{\n\t\t\tkey: \"CONVEX_SELF_HOSTED_ADMIN_KEY\",\n\t\t\tdefaultValue: \"\",\n\t\t\tsecret: true,\n\t\t\tdescription:\n\t\t\t\t\"Admin key for the self-hosted Convex backend. Generate with: docker compose exec convex ./generate_admin_key.sh\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3660/ || exit 1\",\n\t\tinterval: \"10s\",\n\t\ttimeout: \"5s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [\"convex\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://github.com/bidewio/better-openclaw/tree/main/packages/mission-control\",\n\tselfHostedDocsUrl:\n\t\t\"https://github.com/bidewio/better-openclaw/tree/main/packages/mission-control\",\n\ttags: [\"openclaw\", \"dashboard\", \"monitoring\", \"agents\", \"analytics\", \"convex\"],\n\tmaturity: \"stable\",\n\n\trequires: [\"convex\"],\n\trecommends: [\"convex-dashboard\"],\n\tconflictsWith: [],\n\tmandatory: true,\n\tremovalWarning:\n\t\t\"Mission Control is the primary dashboard for monitoring your OpenClaw agents. Removing it will eliminate real-time agent oversight, task management, and activity tracking.\",\n\n\tminMemoryMB: 128,\n\tgpuRequired: false,\n};\n"],"mappings":";;AAEA,MAAa,2BAA8C;CAC1D,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAIN,WAAW;EACV,SAAS;EACT,QAAQ;EACR,mBAAmB,EAAE;EACrB;CACD,cAAc;EACb,YAAY;EACZ,SAAS;EACT;CAED,OAAO,CACN;EACC,MAAM;EACN,WAAW;EACX,aAAa;EACb,SAAS;EACT,CACD;CACD,SAAS,EAAE;CACX,aAAa;EACZ;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aACC;GACD,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aAAa;GACb,UAAU;GACV;EACD;GACC,KAAK;GACL,cAAc;GACd,QAAQ;GACR,aACC;GACD,UAAU;GACV;EACD;CACD,aAAa;EACZ,MAAM;EACN,UAAU;EACV,SAAS;EACT,SAAS;EACT,aAAa;EACb;CACD,WAAW,CAAC,SAAS;CACrB,eAAe;CACf,UAAU,CAAC,mBAAmB;CAE9B,QAAQ,EAAE;CACV,iBAAiB,EAAE;CAEnB,SAAS;CACT,mBACC;CACD,MAAM;EAAC;EAAY;EAAa;EAAc;EAAU;EAAa;EAAS;CAC9E,UAAU;CAEV,UAAU,CAAC,SAAS;CACpB,YAAY,CAAC,mBAAmB;CAChC,eAAe,EAAE;CACjB,WAAW;CACX,gBACC;CAED,aAAa;CACb,aAAa;CACb"}
@@ -5,8 +5,15 @@ const missionControlDefinition = {
5
5
  description: "Real-time agent oversight dashboard for OpenClaw. Kanban task board, live activity feed, document browser, and message threads — powered by Convex.",
6
6
  category: "dev-tools",
7
7
  icon: "🛸",
8
- image: "ghcr.io/bidewio/mission-control",
9
- imageTag: "latest",
8
+ gitSource: {
9
+ repoUrl: "https://github.com/bidewio/better-openclaw-mission-control.git",
10
+ branch: "main",
11
+ postCloneCommands: []
12
+ },
13
+ buildContext: {
14
+ dockerfile: "Dockerfile",
15
+ context: "."
16
+ },
10
17
  ports: [{
11
18
  host: 3660,
12
19
  container: 3660,
@@ -37,6 +44,13 @@ const missionControlDefinition = {
37
44
  required: true
38
45
  }
39
46
  ],
47
+ healthcheck: {
48
+ test: "wget -q --spider http://localhost:3660/ || exit 1",
49
+ interval: "10s",
50
+ timeout: "5s",
51
+ retries: 3,
52
+ startPeriod: "15s"
53
+ },
40
54
  dependsOn: ["convex"],
41
55
  restartPolicy: "unless-stopped",
42
56
  networks: ["openclaw-network"],