@better-openclaw/core 1.0.14 → 1.0.16

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 (83) hide show
  1. package/dist/{manifest-BjK4ALvr.mjs → manifest-B8UDsVlR.mjs} +39 -13
  2. package/dist/manifest-B8UDsVlR.mjs.map +1 -0
  3. package/dist/resolver.mjs.map +1 -1
  4. package/dist/services/definitions/authentik.d.mts +7 -0
  5. package/dist/services/definitions/authentik.d.mts.map +1 -0
  6. package/dist/services/definitions/authentik.mjs +105 -0
  7. package/dist/services/definitions/authentik.mjs.map +1 -0
  8. package/dist/services/definitions/crowdsec.d.mts +7 -0
  9. package/dist/services/definitions/crowdsec.d.mts.map +1 -0
  10. package/dist/services/definitions/crowdsec.mjs +62 -0
  11. package/dist/services/definitions/crowdsec.mjs.map +1 -0
  12. package/dist/services/definitions/ghost.d.mts +7 -0
  13. package/dist/services/definitions/ghost.d.mts.map +1 -0
  14. package/dist/services/definitions/ghost.mjs +58 -0
  15. package/dist/services/definitions/ghost.mjs.map +1 -0
  16. package/dist/services/definitions/headscale.d.mts +7 -0
  17. package/dist/services/definitions/headscale.d.mts.map +1 -0
  18. package/dist/services/definitions/headscale.mjs +71 -0
  19. package/dist/services/definitions/headscale.mjs.map +1 -0
  20. package/dist/services/definitions/homeassistant.d.mts +7 -0
  21. package/dist/services/definitions/homeassistant.d.mts.map +1 -0
  22. package/dist/services/definitions/homeassistant.mjs +61 -0
  23. package/dist/services/definitions/homeassistant.mjs.map +1 -0
  24. package/dist/services/definitions/immich.d.mts +7 -0
  25. package/dist/services/definitions/immich.d.mts.map +1 -0
  26. package/dist/services/definitions/immich.mjs +92 -0
  27. package/dist/services/definitions/immich.mjs.map +1 -0
  28. package/dist/services/definitions/index.d.mts +15 -1
  29. package/dist/services/definitions/index.d.mts.map +1 -1
  30. package/dist/services/definitions/index.mjs +30 -2
  31. package/dist/services/definitions/index.mjs.map +1 -1
  32. package/dist/services/definitions/jellyfin.d.mts +7 -0
  33. package/dist/services/definitions/jellyfin.d.mts.map +1 -0
  34. package/dist/services/definitions/jellyfin.mjs +62 -0
  35. package/dist/services/definitions/jellyfin.mjs.map +1 -0
  36. package/dist/services/definitions/jenkins.d.mts +7 -0
  37. package/dist/services/definitions/jenkins.d.mts.map +1 -0
  38. package/dist/services/definitions/jenkins.mjs +62 -0
  39. package/dist/services/definitions/jenkins.mjs.map +1 -0
  40. package/dist/services/definitions/loki.d.mts +7 -0
  41. package/dist/services/definitions/loki.d.mts.map +1 -0
  42. package/dist/services/definitions/loki.mjs +51 -0
  43. package/dist/services/definitions/loki.mjs.map +1 -0
  44. package/dist/services/definitions/milvus.d.mts +7 -0
  45. package/dist/services/definitions/milvus.d.mts.map +1 -0
  46. package/dist/services/definitions/milvus.mjs +75 -0
  47. package/dist/services/definitions/milvus.mjs.map +1 -0
  48. package/dist/services/definitions/nextcloud.d.mts +7 -0
  49. package/dist/services/definitions/nextcloud.d.mts.map +1 -0
  50. package/dist/services/definitions/nextcloud.mjs +80 -0
  51. package/dist/services/definitions/nextcloud.mjs.map +1 -0
  52. package/dist/services/definitions/signoz.d.mts +7 -0
  53. package/dist/services/definitions/signoz.d.mts.map +1 -0
  54. package/dist/services/definitions/signoz.mjs +54 -0
  55. package/dist/services/definitions/signoz.mjs.map +1 -0
  56. package/dist/services/definitions/supabase.d.mts +7 -0
  57. package/dist/services/definitions/supabase.d.mts.map +1 -0
  58. package/dist/services/definitions/supabase.mjs +69 -0
  59. package/dist/services/definitions/supabase.mjs.map +1 -0
  60. package/dist/services/definitions/vaultwarden.d.mts +7 -0
  61. package/dist/services/definitions/vaultwarden.d.mts.map +1 -0
  62. package/dist/services/definitions/vaultwarden.mjs +63 -0
  63. package/dist/services/definitions/vaultwarden.mjs.map +1 -0
  64. package/dist/skills/skill-manifest.mjs +1 -1
  65. package/package.json +1 -1
  66. package/src/resolver.ts +10 -10
  67. package/src/services/definitions/authentik.ts +106 -0
  68. package/src/services/definitions/crowdsec.ts +66 -0
  69. package/src/services/definitions/ghost.ts +60 -0
  70. package/src/services/definitions/headscale.ts +72 -0
  71. package/src/services/definitions/homeassistant.ts +65 -0
  72. package/src/services/definitions/immich.ts +93 -0
  73. package/src/services/definitions/index.ts +42 -0
  74. package/src/services/definitions/jellyfin.ts +66 -0
  75. package/src/services/definitions/jenkins.ts +67 -0
  76. package/src/services/definitions/loki.ts +53 -0
  77. package/src/services/definitions/milvus.ts +84 -0
  78. package/src/services/definitions/nextcloud.ts +81 -0
  79. package/src/services/definitions/signoz.ts +54 -0
  80. package/src/services/definitions/supabase.ts +73 -0
  81. package/src/services/definitions/vaultwarden.ts +68 -0
  82. package/src/skills/manifest.json +63 -12
  83. package/dist/manifest-BjK4ALvr.mjs.map +0 -1
@@ -0,0 +1,51 @@
1
+ //#region src/services/definitions/loki.ts
2
+ const lokiDefinition = {
3
+ id: "loki",
4
+ name: "Loki",
5
+ description: "Like Prometheus, but for logs. A highly available, multi-tenant log aggregation system.",
6
+ category: "monitoring",
7
+ icon: "🪵",
8
+ image: "grafana/loki",
9
+ imageTag: "latest",
10
+ ports: [{
11
+ host: 3100,
12
+ container: 3100,
13
+ description: "Loki HTTP API interface",
14
+ exposed: true
15
+ }],
16
+ volumes: [{
17
+ name: "loki_data",
18
+ containerPath: "/loki",
19
+ description: "Loki logs and chunks storage"
20
+ }],
21
+ environment: [],
22
+ healthcheck: {
23
+ test: "wget -q --spider http://localhost:3100/ready || exit 1",
24
+ interval: "30s",
25
+ timeout: "10s",
26
+ retries: 3,
27
+ startPeriod: "15s"
28
+ },
29
+ dependsOn: [],
30
+ restartPolicy: "unless-stopped",
31
+ networks: ["openclaw-network"],
32
+ skills: [],
33
+ openclawEnvVars: [],
34
+ docsUrl: "https://grafana.com/docs/loki/latest/",
35
+ tags: [
36
+ "logs",
37
+ "aggregation",
38
+ "observability",
39
+ "grafana"
40
+ ],
41
+ maturity: "stable",
42
+ requires: [],
43
+ recommends: ["grafana", "prometheus"],
44
+ conflictsWith: [],
45
+ minMemoryMB: 512,
46
+ gpuRequired: false
47
+ };
48
+
49
+ //#endregion
50
+ export { lokiDefinition };
51
+ //# sourceMappingURL=loki.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loki.mjs","names":[],"sources":["../../../src/services/definitions/loki.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const lokiDefinition: ServiceDefinition = {\n\tid: \"loki\",\n\tname: \"Loki\",\n\tdescription:\n\t\t\"Like Prometheus, but for logs. A highly available, multi-tenant log aggregation system.\",\n\tcategory: \"monitoring\",\n\ticon: \"🪵\",\n\n\timage: \"grafana/loki\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3100,\n\t\t\tcontainer: 3100,\n\t\t\tdescription: \"Loki HTTP API interface\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"loki_data\",\n\t\t\tcontainerPath: \"/loki\",\n\t\t\tdescription: \"Loki logs and chunks storage\",\n\t\t},\n\t],\n\tenvironment: [],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3100/ready || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://grafana.com/docs/loki/latest/\",\n\ttags: [\"logs\", \"aggregation\", \"observability\", \"grafana\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [\"grafana\", \"prometheus\"],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,iBAAoC;CAChD,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,EAAE;CACf,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,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAQ;EAAe;EAAiB;EAAU;CACzD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,CAAC,WAAW,aAAa;CACrC,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.mjs";
2
+
3
+ //#region src/services/definitions/milvus.d.ts
4
+ declare const milvusDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { milvusDefinition };
7
+ //# sourceMappingURL=milvus.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milvus.d.mts","names":[],"sources":["../../../src/services/definitions/milvus.ts"],"mappings":";;;cAEa,gBAAA,EAAkB,iBAAA"}
@@ -0,0 +1,75 @@
1
+ //#region src/services/definitions/milvus.ts
2
+ const milvusDefinition = {
3
+ id: "milvus",
4
+ name: "Milvus",
5
+ description: "Open-source vector database built for scalable similarity search and AI applications.",
6
+ category: "vector-db",
7
+ icon: "🗄️",
8
+ image: "milvusdb/milvus",
9
+ imageTag: "latest",
10
+ command: "milvus run standalone",
11
+ ports: [{
12
+ host: 19530,
13
+ container: 19530,
14
+ description: "Milvus gRPC/REST API",
15
+ exposed: true
16
+ }, {
17
+ host: 9091,
18
+ container: 9091,
19
+ description: "Milvus Management/Prometheus Metrics",
20
+ exposed: false
21
+ }],
22
+ volumes: [{
23
+ name: "milvus_volumes",
24
+ containerPath: "/var/lib/milvus",
25
+ description: "Milvus persistent data storage"
26
+ }],
27
+ environment: [{
28
+ key: "ETCD_ENDPOINTS",
29
+ defaultValue: "etcd:2379",
30
+ secret: false,
31
+ description: "etcd endpoints (standalone uses local if not provided, but explicit is better if split)",
32
+ required: false
33
+ }, {
34
+ key: "MINIO_ADDRESS",
35
+ defaultValue: "minio:9000",
36
+ secret: false,
37
+ description: "MinIO endpoint for object storage",
38
+ required: false
39
+ }],
40
+ healthcheck: {
41
+ test: "curl -f http://localhost:9091/healthz || exit 1",
42
+ interval: "30s",
43
+ timeout: "20s",
44
+ retries: 3,
45
+ startPeriod: "60s"
46
+ },
47
+ dependsOn: [],
48
+ restartPolicy: "unless-stopped",
49
+ networks: ["openclaw-network"],
50
+ skills: [],
51
+ openclawEnvVars: [{
52
+ key: "MILVUS_URI",
53
+ defaultValue: "http://milvus:19530",
54
+ secret: false,
55
+ description: "Milvus connection URI for OpenClaw",
56
+ required: true
57
+ }],
58
+ docsUrl: "https://milvus.io/docs",
59
+ tags: [
60
+ "vector-db",
61
+ "similarity-search",
62
+ "embeddings",
63
+ "ai"
64
+ ],
65
+ maturity: "stable",
66
+ requires: [],
67
+ recommends: [],
68
+ conflictsWith: [],
69
+ minMemoryMB: 2048,
70
+ gpuRequired: false
71
+ };
72
+
73
+ //#endregion
74
+ export { milvusDefinition };
75
+ //# sourceMappingURL=milvus.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"milvus.mjs","names":[],"sources":["../../../src/services/definitions/milvus.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const milvusDefinition: ServiceDefinition = {\n\tid: \"milvus\",\n\tname: \"Milvus\",\n\tdescription:\n\t\t\"Open-source vector database built for scalable similarity search and AI applications.\",\n\tcategory: \"vector-db\",\n\ticon: \"🗄️\",\n\n\timage: \"milvusdb/milvus\",\n\timageTag: \"latest\",\n\tcommand: \"milvus run standalone\",\n\tports: [\n\t\t{\n\t\t\thost: 19530,\n\t\t\tcontainer: 19530,\n\t\t\tdescription: \"Milvus gRPC/REST API\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 9091,\n\t\t\tcontainer: 9091,\n\t\t\tdescription: \"Milvus Management/Prometheus Metrics\",\n\t\t\texposed: false,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"milvus_volumes\",\n\t\t\tcontainerPath: \"/var/lib/milvus\",\n\t\t\tdescription: \"Milvus persistent data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"ETCD_ENDPOINTS\",\n\t\t\tdefaultValue: \"etcd:2379\",\n\t\t\tsecret: false,\n\t\t\tdescription:\n\t\t\t\t\"etcd endpoints (standalone uses local if not provided, but explicit is better if split)\",\n\t\t\trequired: false, // Standalone defaults handles this, but good practice to show\n\t\t},\n\t\t{\n\t\t\tkey: \"MINIO_ADDRESS\",\n\t\t\tdefaultValue: \"minio:9000\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"MinIO endpoint for object storage\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl -f http://localhost:9091/healthz || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"20s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"60s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [\n\t\t{\n\t\t\tkey: \"MILVUS_URI\",\n\t\t\tdefaultValue: \"http://milvus:19530\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Milvus connection URI for OpenClaw\",\n\t\t\trequired: true,\n\t\t},\n\t],\n\n\tdocsUrl: \"https://milvus.io/docs\",\n\ttags: [\"vector-db\", \"similarity-search\", \"embeddings\", \"ai\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 2048,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,mBAAsC;CAClD,IAAI;CACJ,MAAM;CACN,aACC;CACD,UAAU;CACV,MAAM;CAEN,OAAO;CACP,UAAU;CACV,SAAS;CACT,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,aACC;EACD,UAAU;EACV,EACD;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,CAChB;EACC,KAAK;EACL,cAAc;EACd,QAAQ;EACR,aAAa;EACb,UAAU;EACV,CACD;CAED,SAAS;CACT,MAAM;EAAC;EAAa;EAAqB;EAAc;EAAK;CAC5D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.mjs";
2
+
3
+ //#region src/services/definitions/nextcloud.d.ts
4
+ declare const nextcloudDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { nextcloudDefinition };
7
+ //# sourceMappingURL=nextcloud.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextcloud.d.mts","names":[],"sources":["../../../src/services/definitions/nextcloud.ts"],"mappings":";;;cAEa,mBAAA,EAAqB,iBAAA"}
@@ -0,0 +1,80 @@
1
+ //#region src/services/definitions/nextcloud.ts
2
+ const nextcloudDefinition = {
3
+ id: "nextcloud",
4
+ name: "Nextcloud",
5
+ description: "Self-hosted productivity platform that keeps you in control.",
6
+ category: "storage",
7
+ icon: "☁️",
8
+ image: "nextcloud",
9
+ imageTag: "latest",
10
+ ports: [{
11
+ host: 8080,
12
+ container: 80,
13
+ description: "Nextcloud Web Interface",
14
+ exposed: true
15
+ }],
16
+ volumes: [{
17
+ name: "nextcloud_data",
18
+ containerPath: "/var/www/html",
19
+ description: "Persistent Nextcloud data storage"
20
+ }],
21
+ environment: [
22
+ {
23
+ key: "MYSQL_DATABASE",
24
+ defaultValue: "nextcloud",
25
+ secret: false,
26
+ description: "Database name",
27
+ required: false
28
+ },
29
+ {
30
+ key: "MYSQL_USER",
31
+ defaultValue: "nextcloud",
32
+ secret: false,
33
+ description: "Database user",
34
+ required: false
35
+ },
36
+ {
37
+ key: "MYSQL_PASSWORD",
38
+ defaultValue: "nextcloud_secret",
39
+ secret: true,
40
+ description: "Database password",
41
+ required: false
42
+ },
43
+ {
44
+ key: "MYSQL_HOST",
45
+ defaultValue: "postgres",
46
+ secret: false,
47
+ description: "Database hostname",
48
+ required: false
49
+ }
50
+ ],
51
+ healthcheck: {
52
+ test: "curl --fail http://localhost:80/status.php || exit 1",
53
+ interval: "30s",
54
+ timeout: "10s",
55
+ retries: 3,
56
+ startPeriod: "30s"
57
+ },
58
+ dependsOn: ["postgresql"],
59
+ restartPolicy: "unless-stopped",
60
+ networks: ["openclaw-network"],
61
+ skills: [],
62
+ openclawEnvVars: [],
63
+ docsUrl: "https://nextcloud.com/",
64
+ tags: [
65
+ "storage",
66
+ "cloud",
67
+ "productivity",
68
+ "collaboration"
69
+ ],
70
+ maturity: "stable",
71
+ requires: [],
72
+ recommends: ["postgresql"],
73
+ conflictsWith: [],
74
+ minMemoryMB: 512,
75
+ gpuRequired: false
76
+ };
77
+
78
+ //#endregion
79
+ export { nextcloudDefinition };
80
+ //# sourceMappingURL=nextcloud.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextcloud.mjs","names":[],"sources":["../../../src/services/definitions/nextcloud.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const nextcloudDefinition: ServiceDefinition = {\n\tid: \"nextcloud\",\n\tname: \"Nextcloud\",\n\tdescription: \"Self-hosted productivity platform that keeps you in control.\",\n\tcategory: \"storage\",\n\ticon: \"☁️\",\n\n\timage: \"nextcloud\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 8080,\n\t\t\tcontainer: 80,\n\t\t\tdescription: \"Nextcloud Web Interface\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"nextcloud_data\",\n\t\t\tcontainerPath: \"/var/www/html\",\n\t\t\tdescription: \"Persistent Nextcloud data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"MYSQL_DATABASE\",\n\t\t\tdefaultValue: \"nextcloud\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Database name\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"MYSQL_USER\",\n\t\t\tdefaultValue: \"nextcloud\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Database user\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"MYSQL_PASSWORD\",\n\t\t\tdefaultValue: \"nextcloud_secret\",\n\t\t\tsecret: true,\n\t\t\tdescription: \"Database password\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"MYSQL_HOST\",\n\t\t\tdefaultValue: \"postgres\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Database hostname\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl --fail http://localhost:80/status.php || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"30s\",\n\t},\n\tdependsOn: [\"postgresql\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://nextcloud.com/\",\n\ttags: [\"storage\", \"cloud\", \"productivity\", \"collaboration\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [\"postgresql\"],\n\tconflictsWith: [],\n\n\tminMemoryMB: 512,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,sBAAyC;CACrD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,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;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;EAAW;EAAS;EAAgB;EAAgB;CAC3D,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,CAAC,aAAa;CAC1B,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.mjs";
2
+
3
+ //#region src/services/definitions/signoz.d.ts
4
+ declare const signozDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { signozDefinition };
7
+ //# sourceMappingURL=signoz.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signoz.d.mts","names":[],"sources":["../../../src/services/definitions/signoz.ts"],"mappings":";;;cAEa,gBAAA,EAAkB,iBAAA"}
@@ -0,0 +1,54 @@
1
+ //#region src/services/definitions/signoz.ts
2
+ const signozDefinition = {
3
+ id: "signoz",
4
+ name: "SigNoz",
5
+ description: "Open-source observability platform serving as a lighter alternative to DataDog.",
6
+ category: "monitoring",
7
+ icon: "📈",
8
+ image: "signoz/signoz-frontend",
9
+ imageTag: "latest",
10
+ ports: [{
11
+ host: 3301,
12
+ container: 3301,
13
+ description: "SigNoz Web UI",
14
+ exposed: true
15
+ }],
16
+ volumes: [],
17
+ environment: [{
18
+ key: "FRONTEND_PUBLIC_TELEMETRY",
19
+ defaultValue: "false",
20
+ secret: false,
21
+ description: "Enable anonymized usage telemetry",
22
+ required: false
23
+ }],
24
+ healthcheck: {
25
+ test: "wget -q --spider http://localhost:3301 || exit 1",
26
+ interval: "30s",
27
+ timeout: "10s",
28
+ retries: 3,
29
+ startPeriod: "15s"
30
+ },
31
+ dependsOn: [],
32
+ restartPolicy: "unless-stopped",
33
+ networks: ["openclaw-network"],
34
+ skills: [],
35
+ openclawEnvVars: [],
36
+ docsUrl: "https://signoz.io/docs/",
37
+ tags: [
38
+ "observability",
39
+ "metrics",
40
+ "traces",
41
+ "logs",
42
+ "opentelemetry"
43
+ ],
44
+ maturity: "stable",
45
+ requires: [],
46
+ recommends: [],
47
+ conflictsWith: [],
48
+ minMemoryMB: 1024,
49
+ gpuRequired: false
50
+ };
51
+
52
+ //#endregion
53
+ export { signozDefinition };
54
+ //# sourceMappingURL=signoz.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signoz.mjs","names":[],"sources":["../../../src/services/definitions/signoz.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const signozDefinition: ServiceDefinition = {\n\tid: \"signoz\",\n\tname: \"SigNoz\",\n\tdescription: \"Open-source observability platform serving as a lighter alternative to DataDog.\",\n\tcategory: \"monitoring\",\n\ticon: \"📈\",\n\n\timage: \"signoz/signoz-frontend\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3301,\n\t\t\tcontainer: 3301,\n\t\t\tdescription: \"SigNoz Web UI\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"FRONTEND_PUBLIC_TELEMETRY\",\n\t\t\tdefaultValue: \"false\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Enable anonymized usage telemetry\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3301 || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://signoz.io/docs/\",\n\ttags: [\"observability\", \"metrics\", \"traces\", \"logs\", \"opentelemetry\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 1024,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,mBAAsC;CAClD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,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,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,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAiB;EAAW;EAAU;EAAQ;EAAgB;CACrE,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,EAAE;CACd,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -0,0 +1,7 @@
1
+ import { ServiceDefinition } from "../../types.mjs";
2
+
3
+ //#region src/services/definitions/supabase.d.ts
4
+ declare const supabaseDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { supabaseDefinition };
7
+ //# sourceMappingURL=supabase.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.d.mts","names":[],"sources":["../../../src/services/definitions/supabase.ts"],"mappings":";;;cAEa,kBAAA,EAAoB,iBAAA"}
@@ -0,0 +1,69 @@
1
+ //#region src/services/definitions/supabase.ts
2
+ const supabaseDefinition = {
3
+ id: "supabase",
4
+ name: "Supabase",
5
+ description: "The open source Firebase alternative. Build production-grade backends instantly.",
6
+ category: "database",
7
+ icon: "⚡",
8
+ image: "supabase/studio",
9
+ imageTag: "latest",
10
+ ports: [{
11
+ host: 3e3,
12
+ container: 3e3,
13
+ description: "Supabase Studio Web Dashboard",
14
+ exposed: true
15
+ }, {
16
+ host: 8e3,
17
+ container: 8e3,
18
+ description: "Supabase API Gateway",
19
+ exposed: true
20
+ }],
21
+ volumes: [{
22
+ name: "supabase_db",
23
+ containerPath: "/var/lib/postgresql/data",
24
+ description: "Supabase Postgres database storage"
25
+ }],
26
+ environment: [{
27
+ key: "STUDIO_DEFAULT_ORGANIZATION",
28
+ defaultValue: "Default Organization",
29
+ secret: false,
30
+ description: "Default organization name",
31
+ required: false
32
+ }, {
33
+ key: "STUDIO_DEFAULT_PROJECT",
34
+ defaultValue: "Default Project",
35
+ secret: false,
36
+ description: "Default project name",
37
+ required: false
38
+ }],
39
+ healthcheck: {
40
+ test: "wget -q --spider http://localhost:3000/api/profile || exit 1",
41
+ interval: "30s",
42
+ timeout: "10s",
43
+ retries: 3,
44
+ startPeriod: "30s"
45
+ },
46
+ dependsOn: ["postgresql"],
47
+ restartPolicy: "unless-stopped",
48
+ networks: ["openclaw-network"],
49
+ skills: [],
50
+ openclawEnvVars: [],
51
+ docsUrl: "https://supabase.com/docs/guides/self-hosting",
52
+ tags: [
53
+ "database",
54
+ "auth",
55
+ "storage",
56
+ "realtime",
57
+ "edge-functions"
58
+ ],
59
+ maturity: "stable",
60
+ requires: ["postgresql"],
61
+ recommends: [],
62
+ conflictsWith: [],
63
+ minMemoryMB: 2048,
64
+ gpuRequired: false
65
+ };
66
+
67
+ //#endregion
68
+ export { supabaseDefinition };
69
+ //# sourceMappingURL=supabase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabase.mjs","names":[],"sources":["../../../src/services/definitions/supabase.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const supabaseDefinition: ServiceDefinition = {\n\tid: \"supabase\",\n\tname: \"Supabase\",\n\tdescription: \"The open source Firebase alternative. Build production-grade backends instantly.\",\n\tcategory: \"database\",\n\ticon: \"⚡\",\n\n\timage: \"supabase/studio\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 3000,\n\t\t\tcontainer: 3000,\n\t\t\tdescription: \"Supabase Studio Web Dashboard\",\n\t\t\texposed: true,\n\t\t},\n\t\t{\n\t\t\thost: 8000,\n\t\t\tcontainer: 8000,\n\t\t\tdescription: \"Supabase API Gateway\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"supabase_db\",\n\t\t\tcontainerPath: \"/var/lib/postgresql/data\",\n\t\t\tdescription: \"Supabase Postgres database storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"STUDIO_DEFAULT_ORGANIZATION\",\n\t\t\tdefaultValue: \"Default Organization\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Default organization name\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"STUDIO_DEFAULT_PROJECT\",\n\t\t\tdefaultValue: \"Default Project\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Default project name\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"wget -q --spider http://localhost:3000/api/profile || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"30s\",\n\t},\n\tdependsOn: [\"postgresql\"],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://supabase.com/docs/guides/self-hosting\",\n\ttags: [\"database\", \"auth\", \"storage\", \"realtime\", \"edge-functions\"],\n\tmaturity: \"stable\",\n\n\trequires: [\"postgresql\"],\n\trecommends: [],\n\tconflictsWith: [],\n\n\tminMemoryMB: 2048,\n\tgpuRequired: false,\n};\n"],"mappings":";AAEA,MAAa,qBAAwC;CACpD,IAAI;CACJ,MAAM;CACN,aAAa;CACb,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,CACD;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;EAAY;EAAQ;EAAW;EAAY;EAAiB;CACnE,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.mjs";
2
+
3
+ //#region src/services/definitions/vaultwarden.d.ts
4
+ declare const vaultwardenDefinition: ServiceDefinition;
5
+ //#endregion
6
+ export { vaultwardenDefinition };
7
+ //# sourceMappingURL=vaultwarden.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultwarden.d.mts","names":[],"sources":["../../../src/services/definitions/vaultwarden.ts"],"mappings":";;;cAEa,qBAAA,EAAuB,iBAAA"}
@@ -0,0 +1,63 @@
1
+ //#region src/services/definitions/vaultwarden.ts
2
+ const vaultwardenDefinition = {
3
+ id: "vaultwarden",
4
+ name: "Vaultwarden",
5
+ description: "Unofficial Bitwarden compatible server written in Rust, perfect for self-hosted deployments.",
6
+ category: "security",
7
+ icon: "🔐",
8
+ image: "vaultwarden/server",
9
+ imageTag: "latest",
10
+ ports: [{
11
+ host: 80,
12
+ container: 80,
13
+ description: "Vaultwarden Web Interface / API",
14
+ exposed: true
15
+ }],
16
+ volumes: [{
17
+ name: "vaultwarden_data",
18
+ containerPath: "/data",
19
+ description: "Persistent Vaultwarden data storage"
20
+ }],
21
+ environment: [{
22
+ key: "WEBSOCKET_ENABLED",
23
+ defaultValue: "true",
24
+ secret: false,
25
+ description: "Enable WebSocket notifications",
26
+ required: false
27
+ }, {
28
+ key: "SIGNUPS_ALLOWED",
29
+ defaultValue: "true",
30
+ secret: false,
31
+ description: "Allow new user signups",
32
+ required: false
33
+ }],
34
+ healthcheck: {
35
+ test: "curl --fail http://localhost:80/alive || exit 1",
36
+ interval: "30s",
37
+ timeout: "10s",
38
+ retries: 3,
39
+ startPeriod: "15s"
40
+ },
41
+ dependsOn: [],
42
+ restartPolicy: "unless-stopped",
43
+ networks: ["openclaw-network"],
44
+ skills: [],
45
+ openclawEnvVars: [],
46
+ docsUrl: "https://github.com/dani-garcia/vaultwarden/wiki",
47
+ tags: [
48
+ "security",
49
+ "passwords",
50
+ "bitwarden",
51
+ "secrets"
52
+ ],
53
+ maturity: "stable",
54
+ requires: [],
55
+ recommends: ["caddy", "traefik"],
56
+ conflictsWith: [],
57
+ minMemoryMB: 128,
58
+ gpuRequired: false
59
+ };
60
+
61
+ //#endregion
62
+ export { vaultwardenDefinition };
63
+ //# sourceMappingURL=vaultwarden.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaultwarden.mjs","names":[],"sources":["../../../src/services/definitions/vaultwarden.ts"],"sourcesContent":["import type { ServiceDefinition } from \"../../types.js\";\n\nexport const vaultwardenDefinition: ServiceDefinition = {\n\tid: \"vaultwarden\",\n\tname: \"Vaultwarden\",\n\tdescription:\n\t\t\"Unofficial Bitwarden compatible server written in Rust, perfect for self-hosted deployments.\",\n\tcategory: \"security\",\n\ticon: \"🔐\",\n\n\timage: \"vaultwarden/server\",\n\timageTag: \"latest\",\n\tports: [\n\t\t{\n\t\t\thost: 80, // User should probably proxy this or change it to avoid conflicts\n\t\t\tcontainer: 80,\n\t\t\tdescription: \"Vaultwarden Web Interface / API\",\n\t\t\texposed: true,\n\t\t},\n\t],\n\tvolumes: [\n\t\t{\n\t\t\tname: \"vaultwarden_data\",\n\t\t\tcontainerPath: \"/data\",\n\t\t\tdescription: \"Persistent Vaultwarden data storage\",\n\t\t},\n\t],\n\tenvironment: [\n\t\t{\n\t\t\tkey: \"WEBSOCKET_ENABLED\",\n\t\t\tdefaultValue: \"true\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Enable WebSocket notifications\",\n\t\t\trequired: false,\n\t\t},\n\t\t{\n\t\t\tkey: \"SIGNUPS_ALLOWED\",\n\t\t\tdefaultValue: \"true\",\n\t\t\tsecret: false,\n\t\t\tdescription: \"Allow new user signups\",\n\t\t\trequired: false,\n\t\t},\n\t],\n\thealthcheck: {\n\t\ttest: \"curl --fail http://localhost:80/alive || exit 1\",\n\t\tinterval: \"30s\",\n\t\ttimeout: \"10s\",\n\t\tretries: 3,\n\t\tstartPeriod: \"15s\",\n\t},\n\tdependsOn: [],\n\trestartPolicy: \"unless-stopped\",\n\tnetworks: [\"openclaw-network\"],\n\n\tskills: [],\n\topenclawEnvVars: [],\n\n\tdocsUrl: \"https://github.com/dani-garcia/vaultwarden/wiki\",\n\ttags: [\"security\", \"passwords\", \"bitwarden\", \"secrets\"],\n\tmaturity: \"stable\",\n\n\trequires: [],\n\trecommends: [\"caddy\", \"traefik\"],\n\tconflictsWith: [],\n\n\tminMemoryMB: 128,\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,EACD;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,EAAE;CAEnB,SAAS;CACT,MAAM;EAAC;EAAY;EAAa;EAAa;EAAU;CACvD,UAAU;CAEV,UAAU,EAAE;CACZ,YAAY,CAAC,SAAS,UAAU;CAChC,eAAe,EAAE;CAEjB,aAAa;CACb,aAAa;CACb"}
@@ -1,4 +1,4 @@
1
- import { t as manifest_default } from "../manifest-BjK4ALvr.mjs";
1
+ import { t as manifest_default } from "../manifest-B8UDsVlR.mjs";
2
2
 
3
3
  //#region src/skills/skill-manifest.ts
4
4
  const manifestData = manifest_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@better-openclaw/core",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "private": false,
5
5
  "description": "Core logic for better-openclaw: schemas, service registry, resolver, composer, validators and more",
6
6
  "packageManager": "pnpm@9.15.4",
package/src/resolver.ts CHANGED
@@ -241,16 +241,16 @@ export function resolve(input: ResolverInput): ResolverOutput {
241
241
  const isValid = errors.length === 0;
242
242
 
243
243
  return {
244
- services,
245
- addedDependencies,
246
- removedConflicts: [],
247
- warnings,
248
- errors,
249
- isValid,
250
- estimatedMemoryMB,
251
- aiProviders: input.aiProviders ?? [],
252
- gsdRuntimes: []
253
- };
244
+ services,
245
+ addedDependencies,
246
+ removedConflicts: [],
247
+ warnings,
248
+ errors,
249
+ isValid,
250
+ estimatedMemoryMB,
251
+ aiProviders: input.aiProviders ?? [],
252
+ gsdRuntimes: [],
253
+ };
254
254
  }
255
255
 
256
256
  /**
@@ -0,0 +1,106 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const authentikDefinition: ServiceDefinition = {
4
+ id: "authentik",
5
+ name: "Authentik",
6
+ description: "The open-source Identity Provider that unifies your identity infrastructure.",
7
+ category: "security",
8
+ icon: "🛡️",
9
+
10
+ image: "ghcr.io/goauthentik/server",
11
+ imageTag: "latest",
12
+ ports: [
13
+ {
14
+ host: 9000,
15
+ container: 9000,
16
+ description: "Authentik HTTP Interface",
17
+ exposed: true,
18
+ },
19
+ {
20
+ host: 9443,
21
+ container: 9443,
22
+ description: "Authentik HTTPS Interface",
23
+ exposed: false,
24
+ },
25
+ ],
26
+ volumes: [
27
+ {
28
+ name: "authentik_media",
29
+ containerPath: "/media",
30
+ description: "Authentik media storage",
31
+ },
32
+ {
33
+ name: "authentik_custom_templates",
34
+ containerPath: "/templates",
35
+ description: "Authentik custom templates",
36
+ },
37
+ ],
38
+ environment: [
39
+ {
40
+ key: "AUTHENTIK_REDIS__HOST",
41
+ defaultValue: "redis",
42
+ secret: false,
43
+ description: "Redis server hostname",
44
+ required: true,
45
+ },
46
+ {
47
+ key: "AUTHENTIK_POSTGRESQL__HOST",
48
+ defaultValue: "postgres",
49
+ secret: false,
50
+ description: "Postgres database hostname",
51
+ required: true,
52
+ },
53
+ {
54
+ key: "AUTHENTIK_POSTGRESQL__USER",
55
+ defaultValue: "postgres",
56
+ secret: false,
57
+ description: "Postgres database user",
58
+ required: true,
59
+ },
60
+ {
61
+ key: "AUTHENTIK_POSTGRESQL__NAME",
62
+ defaultValue: "authentik",
63
+ secret: false,
64
+ description: "Postgres database name",
65
+ required: true,
66
+ },
67
+ {
68
+ key: "AUTHENTIK_POSTGRESQL__PASSWORD",
69
+ defaultValue: "postgres",
70
+ secret: true,
71
+ description: "Postgres database password",
72
+ required: true,
73
+ },
74
+ {
75
+ key: "AUTHENTIK_SECRET_KEY",
76
+ defaultValue: "authentik_secret_replace_me_in_production",
77
+ secret: true,
78
+ description: "Secret key used for cookie signing",
79
+ required: true,
80
+ },
81
+ ],
82
+ healthcheck: {
83
+ test: "curl --fail http://localhost:9000/-/health/live/ || exit 1",
84
+ interval: "30s",
85
+ timeout: "5s",
86
+ retries: 3,
87
+ startPeriod: "30s",
88
+ },
89
+ dependsOn: ["postgresql", "redis"],
90
+ restartPolicy: "unless-stopped",
91
+ networks: ["openclaw-network"],
92
+
93
+ skills: [],
94
+ openclawEnvVars: [],
95
+
96
+ docsUrl: "https://docs.goauthentik.io/",
97
+ tags: ["identity", "sso", "saml", "oidc", "oauth2", "security"],
98
+ maturity: "stable",
99
+
100
+ requires: ["postgresql", "redis"],
101
+ recommends: [],
102
+ conflictsWith: [],
103
+
104
+ minMemoryMB: 2048,
105
+ gpuRequired: false,
106
+ };