@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,66 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const crowdsecDefinition: ServiceDefinition = {
4
+ id: "crowdsec",
5
+ name: "CrowdSec",
6
+ description:
7
+ "Free, open-source and collaborative IPS designed to protect servers, services, and containers.",
8
+ category: "security",
9
+ icon: "⚔️",
10
+
11
+ image: "crowdsecurity/crowdsec",
12
+ imageTag: "latest",
13
+ ports: [
14
+ {
15
+ host: 8080,
16
+ container: 8080,
17
+ description: "CrowdSec Local API Interface",
18
+ exposed: true,
19
+ },
20
+ ],
21
+ volumes: [
22
+ {
23
+ name: "crowdsec_data",
24
+ containerPath: "/v/lib/crowdsec/data",
25
+ description: "CrowdSec persistent SQLite data",
26
+ },
27
+ {
28
+ name: "crowdsec_config",
29
+ containerPath: "/etc/crowdsec",
30
+ description: "CrowdSec configurations",
31
+ },
32
+ ],
33
+ environment: [
34
+ {
35
+ key: "COLLECTIONS",
36
+ defaultValue: "crowdsecurity/linux crowdsecurity/sshd",
37
+ secret: false,
38
+ description: "Default collections to install",
39
+ required: false,
40
+ },
41
+ ],
42
+ healthcheck: {
43
+ test: "cscli metrics || exit 1",
44
+ interval: "30s",
45
+ timeout: "10s",
46
+ retries: 3,
47
+ startPeriod: "15s",
48
+ },
49
+ dependsOn: [],
50
+ restartPolicy: "unless-stopped",
51
+ networks: ["openclaw-network"],
52
+
53
+ skills: [],
54
+ openclawEnvVars: [],
55
+
56
+ docsUrl: "https://docs.crowdsec.net/",
57
+ tags: ["ips", "ids", "firewall", "security", "threat-intelligence"],
58
+ maturity: "stable",
59
+
60
+ requires: [],
61
+ recommends: [],
62
+ conflictsWith: [],
63
+
64
+ minMemoryMB: 256,
65
+ gpuRequired: false,
66
+ };
@@ -0,0 +1,60 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const ghostDefinition: ServiceDefinition = {
4
+ id: "ghost",
5
+ name: "Ghost",
6
+ description: "The world's most popular modern open-source publishing platform.",
7
+ category: "social-media",
8
+ icon: "👻",
9
+
10
+ image: "ghost",
11
+ imageTag: "latest",
12
+ ports: [
13
+ {
14
+ host: 2368,
15
+ container: 2368,
16
+ description: "Ghost Public Interface",
17
+ exposed: true,
18
+ },
19
+ ],
20
+ volumes: [
21
+ {
22
+ name: "ghost_content",
23
+ containerPath: "/var/lib/ghost/content",
24
+ description: "Ghost images, themes, and content storage",
25
+ },
26
+ ],
27
+ environment: [
28
+ {
29
+ key: "url",
30
+ defaultValue: "http://localhost:2368",
31
+ secret: false,
32
+ description: "The URL of the Ghost install",
33
+ required: true,
34
+ },
35
+ ],
36
+ healthcheck: {
37
+ test: "curl --fail http://localhost:2368/ghost/ || exit 1",
38
+ interval: "30s",
39
+ timeout: "10s",
40
+ retries: 3,
41
+ startPeriod: "30s",
42
+ },
43
+ dependsOn: [],
44
+ restartPolicy: "unless-stopped",
45
+ networks: ["openclaw-network"],
46
+
47
+ skills: [],
48
+ openclawEnvVars: [],
49
+
50
+ docsUrl: "https://ghost.org/docs/",
51
+ tags: ["blog", "publishing", "writing", "cms", "content"],
52
+ maturity: "stable",
53
+
54
+ requires: [],
55
+ recommends: [],
56
+ conflictsWith: [],
57
+
58
+ minMemoryMB: 512,
59
+ gpuRequired: false,
60
+ };
@@ -0,0 +1,72 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const headscaleDefinition: ServiceDefinition = {
4
+ id: "headscale",
5
+ name: "Headscale",
6
+ description: "An open source, self-hosted implementation of the Tailscale control server.",
7
+ category: "dev-tools",
8
+ icon: "🌐",
9
+ image: "headscale/headscale",
10
+ imageTag: "latest",
11
+ command: "headscale serve",
12
+ ports: [
13
+ {
14
+ host: 8080,
15
+ container: 8080,
16
+ description: "Headscale API and Web UI",
17
+ exposed: true,
18
+ },
19
+ {
20
+ host: 9090,
21
+ container: 9090,
22
+ description: "Headscale metrics",
23
+ exposed: false,
24
+ },
25
+ ],
26
+ volumes: [
27
+ {
28
+ name: "headscale-data",
29
+ containerPath: "/var/lib/headscale",
30
+ description: "Headscale database and configurations",
31
+ },
32
+ {
33
+ name: "headscale-config",
34
+ containerPath: "/etc/headscale",
35
+ description: "Headscale configuration files",
36
+ },
37
+ ],
38
+ environment: [
39
+ {
40
+ key: "HEADSCALE_SERVER_URL",
41
+ defaultValue: "http://localhost:8080",
42
+ secret: false,
43
+ description: "The URL where the headscale server will be accessible",
44
+ required: true,
45
+ },
46
+ {
47
+ key: "HEADSCALE_METRICS_LISTEN_ADDR",
48
+ defaultValue: "0.0.0.0:9090",
49
+ secret: false,
50
+ description: "Metrics listen address",
51
+ required: false,
52
+ },
53
+ ],
54
+ healthcheck: {
55
+ test: "curl -f http://localhost:8080/health",
56
+ interval: "30s",
57
+ timeout: "5s",
58
+ retries: 3,
59
+ },
60
+ docsUrl: "https://github.com/juanfont/headscale",
61
+ tags: ["vpn", "networking", "tailscale", "mesh-network"],
62
+ dependsOn: [],
63
+ restartPolicy: "unless-stopped",
64
+ networks: [],
65
+ skills: [],
66
+ openclawEnvVars: [],
67
+ maturity: "stable",
68
+ requires: [],
69
+ recommends: [],
70
+ conflictsWith: [],
71
+ gpuRequired: false
72
+ };
@@ -0,0 +1,65 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const homeassistantDefinition: ServiceDefinition = {
4
+ id: "homeassistant",
5
+ name: "Home Assistant",
6
+ description: "Open source home automation that puts local control and privacy first.",
7
+ category: "automation",
8
+ icon: "🏠",
9
+
10
+ image: "ghcr.io/home-assistant/home-assistant",
11
+ imageTag: "stable",
12
+ ports: [
13
+ {
14
+ host: 8123,
15
+ container: 8123,
16
+ description: "Home Assistant Web Interface",
17
+ exposed: true,
18
+ },
19
+ ],
20
+ volumes: [
21
+ {
22
+ name: "homeassistant_config",
23
+ containerPath: "/config",
24
+ description: "Home Assistant configuration directory",
25
+ },
26
+ {
27
+ name: "/etc/localtime",
28
+ containerPath: "/etc/localtime",
29
+ description: "Timezone sync",
30
+ },
31
+ ],
32
+ environment: [
33
+ {
34
+ key: "TZ",
35
+ defaultValue: "UTC",
36
+ secret: false,
37
+ description: "Timezone mapping",
38
+ required: false,
39
+ },
40
+ ],
41
+ healthcheck: {
42
+ test: "curl --fail http://localhost:8123/ || exit 1",
43
+ interval: "30s",
44
+ timeout: "10s",
45
+ retries: 3,
46
+ startPeriod: "30s",
47
+ },
48
+ dependsOn: [],
49
+ restartPolicy: "unless-stopped",
50
+ networks: ["openclaw-network"],
51
+
52
+ skills: [],
53
+ openclawEnvVars: [],
54
+
55
+ docsUrl: "https://www.home-assistant.io/docs/",
56
+ tags: ["smarthome", "automation", "iot", "local-first"],
57
+ maturity: "stable",
58
+
59
+ requires: [],
60
+ recommends: [],
61
+ conflictsWith: [],
62
+
63
+ minMemoryMB: 1024,
64
+ gpuRequired: false,
65
+ };
@@ -0,0 +1,93 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const immichDefinition: ServiceDefinition = {
4
+ id: "immich",
5
+ name: "Immich",
6
+ description: "High performance self-hosted photo and video management solution.",
7
+ category: "media",
8
+ icon: "📸",
9
+
10
+ image: "ghcr.io/immich-app/immich-server",
11
+ imageTag: "release",
12
+ ports: [
13
+ {
14
+ host: 2283,
15
+ container: 2283,
16
+ description: "Immich Web Interface",
17
+ exposed: true,
18
+ },
19
+ ],
20
+ volumes: [
21
+ {
22
+ name: "immich_upload",
23
+ containerPath: "/usr/src/app/upload",
24
+ description: "Persistent Immich photos/videos storage",
25
+ },
26
+ {
27
+ name: "/etc/localtime",
28
+ containerPath: "/etc/localtime",
29
+ description: "Host timezone synchronization",
30
+ },
31
+ ],
32
+ environment: [
33
+ {
34
+ key: "DB_HOSTNAME",
35
+ defaultValue: "postgres",
36
+ secret: false,
37
+ description: "Database hostname",
38
+ required: true,
39
+ },
40
+ {
41
+ key: "DB_USERNAME",
42
+ defaultValue: "postgres",
43
+ secret: false,
44
+ description: "Database user",
45
+ required: true,
46
+ },
47
+ {
48
+ key: "DB_PASSWORD",
49
+ defaultValue: "postgres",
50
+ secret: true,
51
+ description: "Database password",
52
+ required: true,
53
+ },
54
+ {
55
+ key: "DB_DATABASE_NAME",
56
+ defaultValue: "immich",
57
+ secret: false,
58
+ description: "Database name",
59
+ required: true,
60
+ },
61
+ {
62
+ key: "REDIS_HOSTNAME",
63
+ defaultValue: "redis",
64
+ secret: false,
65
+ description: "Redis hostname",
66
+ required: true,
67
+ },
68
+ ],
69
+ healthcheck: {
70
+ test: "curl --fail http://localhost:2283/api/server-info/ping || exit 1",
71
+ interval: "30s",
72
+ timeout: "10s",
73
+ retries: 3,
74
+ startPeriod: "30s",
75
+ },
76
+ dependsOn: ["postgresql", "redis"],
77
+ restartPolicy: "unless-stopped",
78
+ networks: ["openclaw-network"],
79
+
80
+ skills: [],
81
+ openclawEnvVars: [],
82
+
83
+ docsUrl: "https://immich.app/docs/overview/introduction",
84
+ tags: ["media", "photos", "videos", "gallery", "backup"],
85
+ maturity: "stable",
86
+
87
+ requires: ["postgresql", "redis"],
88
+ recommends: [],
89
+ conflictsWith: [],
90
+
91
+ minMemoryMB: 1024,
92
+ gpuRequired: false,
93
+ };
@@ -1,5 +1,6 @@
1
1
  export { anythingLlmDefinition } from "./anything-llm.js";
2
2
  export { appflowyDefinition } from "./appflowy.js";
3
+ export { authentikDefinition } from "./authentik.js";
3
4
  export { beszelDefinition } from "./beszel.js";
4
5
  export { browserlessDefinition } from "./browserless.js";
5
6
  export { caddyDefinition } from "./caddy.js";
@@ -12,6 +13,7 @@ export { comfyuiDefinition } from "./comfyui.js";
12
13
  export { convexDefinition } from "./convex.js";
13
14
  export { convexDashboardDefinition } from "./convex-dashboard.js";
14
15
  export { coolifyDefinition } from "./coolify.js";
16
+ export { crowdsecDefinition } from "./crowdsec.js";
15
17
  export { desktopEnvironmentDefinition } from "./desktop-environment.js";
16
18
  export { difyDefinition } from "./dify.js";
17
19
  export { docsgptDefinition } from "./docsgpt.js";
@@ -20,10 +22,16 @@ export { dozzleDefinition } from "./dozzle.js";
20
22
  export { ffmpegDefinition } from "./ffmpeg.js";
21
23
  export { flowiseDefinition } from "./flowise.js";
22
24
  export { geminiCliDefinition } from "./gemini-cli.js";
25
+ export { ghostDefinition } from "./ghost.js";
23
26
  export { giteaDefinition } from "./gitea.js";
24
27
  export { gotifyDefinition } from "./gotify.js";
25
28
  export { grafanaDefinition } from "./grafana.js";
29
+ export { headscaleDefinition } from "./headscale.js";
26
30
  export { hexstrikeDefinition } from "./hexstrike.js";
31
+ export { homeassistantDefinition } from "./homeassistant.js";
32
+ export { immichDefinition } from "./immich.js";
33
+ export { jellyfinDefinition } from "./jellyfin.js";
34
+ export { jenkinsDefinition } from "./jenkins.js";
27
35
  export { kimiDefinition } from "./kimi.js";
28
36
  export { lasuiteMeetAgentsDefinition } from "./lasuite-meet-agents.js";
29
37
  export { lasuiteMeetBackendDefinition } from "./lasuite-meet-backend.js";
@@ -32,16 +40,19 @@ export { librechatDefinition } from "./librechat.js";
32
40
  export { lightpandaDefinition } from "./lightpanda.js";
33
41
  export { litellmDefinition } from "./litellm.js";
34
42
  export { livekitDefinition } from "./livekit.js";
43
+ export { lokiDefinition } from "./loki.js";
35
44
  export { matomoDefinition } from "./matomo.js";
36
45
  export { matrixSynapseDefinition } from "./matrix-synapse.js";
37
46
  export { mattermostDefinition } from "./mattermost.js";
38
47
  export { meilisearchDefinition } from "./meilisearch.js";
48
+ export { milvusDefinition } from "./milvus.js";
39
49
  export { minioDefinition } from "./minio.js";
40
50
  export { missionControlDefinition } from "./mission-control.js";
41
51
  export { mixpostDefinition } from "./mixpost.js";
42
52
  export { motionCanvasDefinition } from "./motion-canvas.js";
43
53
  export { n8nDefinition } from "./n8n.js";
44
54
  export { neo4jDefinition } from "./neo4j.js";
55
+ export { nextcloudDefinition } from "./nextcloud.js";
45
56
  export { nocodbDefinition } from "./nocodb.js";
46
57
  export { ntfyDefinition } from "./ntfy.js";
47
58
  export { ollamaDefinition } from "./ollama.js";
@@ -63,10 +74,12 @@ export { remotionDefinition } from "./remotion.js";
63
74
  export { rocketchatDefinition } from "./rocketchat.js";
64
75
  export { scraplingDefinition } from "./scrapling.js";
65
76
  export { searxngDefinition } from "./searxng.js";
77
+ export { signozDefinition } from "./signoz.js";
66
78
  export { solidityGuardDefinition } from "./solidityguard.js";
67
79
  export { stableDiffusionDefinition } from "./stable-diffusion.js";
68
80
  export { steelBrowserDefinition } from "./steel-browser.js";
69
81
  export { streamGatewayDefinition } from "./stream-gateway.js";
82
+ export { supabaseDefinition } from "./supabase.js";
70
83
  export { tailscaleDefinition } from "./tailscale.js";
71
84
  export { temporalDefinition } from "./temporal.js";
72
85
  export { traefikDefinition } from "./traefik.js";
@@ -74,6 +87,7 @@ export { umamiDefinition } from "./umami.js";
74
87
  export { uptimeKumaDefinition } from "./uptime-kuma.js";
75
88
  export { usesendDefinition } from "./usesend.js";
76
89
  export { valkeyDefinition } from "./valkey.js";
90
+ export { vaultwardenDefinition } from "./vaultwarden.js";
77
91
  export { watchtowerDefinition } from "./watchtower.js";
78
92
  export { weaviateDefinition } from "./weaviate.js";
79
93
  export { whisperDefinition } from "./whisper.js";
@@ -82,6 +96,7 @@ export { xyopsDefinition } from "./xyops.js";
82
96
  import type { ServiceDefinition } from "../../types.js";
83
97
  import { anythingLlmDefinition } from "./anything-llm.js";
84
98
  import { appflowyDefinition } from "./appflowy.js";
99
+ import { authentikDefinition } from "./authentik.js";
85
100
  import { beszelDefinition } from "./beszel.js";
86
101
  import { browserlessDefinition } from "./browserless.js";
87
102
  import { caddyDefinition } from "./caddy.js";
@@ -94,6 +109,7 @@ import { comfyuiDefinition } from "./comfyui.js";
94
109
  import { convexDefinition } from "./convex.js";
95
110
  import { convexDashboardDefinition } from "./convex-dashboard.js";
96
111
  import { coolifyDefinition } from "./coolify.js";
112
+ import { crowdsecDefinition } from "./crowdsec.js";
97
113
  import { desktopEnvironmentDefinition } from "./desktop-environment.js";
98
114
  import { difyDefinition } from "./dify.js";
99
115
  import { docsgptDefinition } from "./docsgpt.js";
@@ -102,10 +118,16 @@ import { dozzleDefinition } from "./dozzle.js";
102
118
  import { ffmpegDefinition } from "./ffmpeg.js";
103
119
  import { flowiseDefinition } from "./flowise.js";
104
120
  import { geminiCliDefinition } from "./gemini-cli.js";
121
+ import { ghostDefinition } from "./ghost.js";
105
122
  import { giteaDefinition } from "./gitea.js";
106
123
  import { gotifyDefinition } from "./gotify.js";
107
124
  import { grafanaDefinition } from "./grafana.js";
125
+ import { headscaleDefinition } from "./headscale.js";
108
126
  import { hexstrikeDefinition } from "./hexstrike.js";
127
+ import { homeassistantDefinition } from "./homeassistant.js";
128
+ import { immichDefinition } from "./immich.js";
129
+ import { jellyfinDefinition } from "./jellyfin.js";
130
+ import { jenkinsDefinition } from "./jenkins.js";
109
131
  import { kimiDefinition } from "./kimi.js";
110
132
  import { lasuiteMeetAgentsDefinition } from "./lasuite-meet-agents.js";
111
133
  import { lasuiteMeetBackendDefinition } from "./lasuite-meet-backend.js";
@@ -114,16 +136,19 @@ import { librechatDefinition } from "./librechat.js";
114
136
  import { lightpandaDefinition } from "./lightpanda.js";
115
137
  import { litellmDefinition } from "./litellm.js";
116
138
  import { livekitDefinition } from "./livekit.js";
139
+ import { lokiDefinition } from "./loki.js";
117
140
  import { matomoDefinition } from "./matomo.js";
118
141
  import { matrixSynapseDefinition } from "./matrix-synapse.js";
119
142
  import { mattermostDefinition } from "./mattermost.js";
120
143
  import { meilisearchDefinition } from "./meilisearch.js";
144
+ import { milvusDefinition } from "./milvus.js";
121
145
  import { minioDefinition } from "./minio.js";
122
146
  import { missionControlDefinition } from "./mission-control.js";
123
147
  import { mixpostDefinition } from "./mixpost.js";
124
148
  import { motionCanvasDefinition } from "./motion-canvas.js";
125
149
  import { n8nDefinition } from "./n8n.js";
126
150
  import { neo4jDefinition } from "./neo4j.js";
151
+ import { nextcloudDefinition } from "./nextcloud.js";
127
152
  import { nocodbDefinition } from "./nocodb.js";
128
153
  import { ntfyDefinition } from "./ntfy.js";
129
154
  import { ollamaDefinition } from "./ollama.js";
@@ -145,10 +170,12 @@ import { remotionDefinition } from "./remotion.js";
145
170
  import { rocketchatDefinition } from "./rocketchat.js";
146
171
  import { scraplingDefinition } from "./scrapling.js";
147
172
  import { searxngDefinition } from "./searxng.js";
173
+ import { signozDefinition } from "./signoz.js";
148
174
  import { solidityGuardDefinition } from "./solidityguard.js";
149
175
  import { stableDiffusionDefinition } from "./stable-diffusion.js";
150
176
  import { steelBrowserDefinition } from "./steel-browser.js";
151
177
  import { streamGatewayDefinition } from "./stream-gateway.js";
178
+ import { supabaseDefinition } from "./supabase.js";
152
179
  import { tailscaleDefinition } from "./tailscale.js";
153
180
  import { temporalDefinition } from "./temporal.js";
154
181
  import { traefikDefinition } from "./traefik.js";
@@ -156,6 +183,7 @@ import { umamiDefinition } from "./umami.js";
156
183
  import { uptimeKumaDefinition } from "./uptime-kuma.js";
157
184
  import { usesendDefinition } from "./usesend.js";
158
185
  import { valkeyDefinition } from "./valkey.js";
186
+ import { vaultwardenDefinition } from "./vaultwarden.js";
159
187
  import { watchtowerDefinition } from "./watchtower.js";
160
188
  import { weaviateDefinition } from "./weaviate.js";
161
189
  import { whisperDefinition } from "./whisper.js";
@@ -198,6 +226,19 @@ export const allServiceDefinitions: ServiceDefinition[] = [
198
226
  comfyuiDefinition,
199
227
  playwrightServerDefinition,
200
228
  openWebuiDefinition,
229
+ homeassistantDefinition,
230
+ nextcloudDefinition,
231
+ immichDefinition,
232
+ jellyfinDefinition,
233
+ vaultwardenDefinition,
234
+ milvusDefinition,
235
+ jenkinsDefinition,
236
+ authentikDefinition,
237
+ crowdsecDefinition,
238
+ ghostDefinition,
239
+ lokiDefinition,
240
+ signozDefinition,
241
+ supabaseDefinition,
201
242
  librechatDefinition,
202
243
  anythingLlmDefinition,
203
244
  difyDefinition,
@@ -242,4 +283,5 @@ export const allServiceDefinitions: ServiceDefinition[] = [
242
283
  solidityGuardDefinition,
243
284
  pentagiDefinition,
244
285
  pentestagentDefinition,
286
+ headscaleDefinition,
245
287
  ];
@@ -0,0 +1,66 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const jellyfinDefinition: ServiceDefinition = {
4
+ id: "jellyfin",
5
+ name: "Jellyfin",
6
+ description:
7
+ "The Free Software Media System. It puts you in control of managing and streaming your media.",
8
+ category: "media",
9
+ icon: "🎬",
10
+
11
+ image: "jellyfin/jellyfin",
12
+ imageTag: "latest",
13
+ ports: [
14
+ {
15
+ host: 8096,
16
+ container: 8096,
17
+ description: "Jellyfin Web Interface",
18
+ exposed: true,
19
+ },
20
+ ],
21
+ volumes: [
22
+ {
23
+ name: "jellyfin_config",
24
+ containerPath: "/config",
25
+ description: "Jellyfin configuration storage",
26
+ },
27
+ {
28
+ name: "jellyfin_cache",
29
+ containerPath: "/cache",
30
+ description: "Jellyfin cache storage",
31
+ },
32
+ ],
33
+ environment: [
34
+ {
35
+ key: "JELLYFIN_PublishedServerUrl",
36
+ defaultValue: "http://localhost",
37
+ secret: false,
38
+ description: "Published server URL for clients",
39
+ required: false,
40
+ },
41
+ ],
42
+ healthcheck: {
43
+ test: "curl --fail http://localhost:8096/health || exit 1",
44
+ interval: "30s",
45
+ timeout: "10s",
46
+ retries: 3,
47
+ startPeriod: "30s",
48
+ },
49
+ dependsOn: [],
50
+ restartPolicy: "unless-stopped",
51
+ networks: ["openclaw-network"],
52
+
53
+ skills: [],
54
+ openclawEnvVars: [],
55
+
56
+ docsUrl: "https://jellyfin.org/docs/",
57
+ tags: ["media", "streaming", "movies", "tv-shows", "music"],
58
+ maturity: "stable",
59
+
60
+ requires: [],
61
+ recommends: [],
62
+ conflictsWith: [],
63
+
64
+ minMemoryMB: 512,
65
+ gpuRequired: false,
66
+ };
@@ -0,0 +1,67 @@
1
+ import type { ServiceDefinition } from "../../types.js";
2
+
3
+ export const jenkinsDefinition: ServiceDefinition = {
4
+ id: "jenkins",
5
+ name: "Jenkins",
6
+ description:
7
+ "The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.",
8
+ category: "dev-tools",
9
+ icon: "🏗️",
10
+
11
+ image: "jenkins/jenkins",
12
+ imageTag: "lts",
13
+ ports: [
14
+ {
15
+ host: 8080,
16
+ container: 8080,
17
+ description: "Jenkins Web Interface",
18
+ exposed: true,
19
+ },
20
+ {
21
+ host: 50000,
22
+ container: 50000,
23
+ description: "Jenkins inbound agent port",
24
+ exposed: false,
25
+ },
26
+ ],
27
+ volumes: [
28
+ {
29
+ name: "jenkins_home",
30
+ containerPath: "/var/jenkins_home",
31
+ description: "Persistent Jenkins home directory",
32
+ },
33
+ ],
34
+ environment: [
35
+ {
36
+ key: "JAVA_OPTS",
37
+ defaultValue: "-Djenkins.install.runSetupWizard=false",
38
+ secret: false,
39
+ description: "Optional setup wrapper arguments",
40
+ required: false,
41
+ },
42
+ ],
43
+ healthcheck: {
44
+ test: "curl --fail http://localhost:8080/login || exit 1",
45
+ interval: "30s",
46
+ timeout: "10s",
47
+ retries: 3,
48
+ startPeriod: "60s",
49
+ },
50
+ dependsOn: [],
51
+ restartPolicy: "unless-stopped",
52
+ networks: ["openclaw-network"],
53
+
54
+ skills: [],
55
+ openclawEnvVars: [],
56
+
57
+ docsUrl: "https://www.jenkins.io/doc/",
58
+ tags: ["ci-cd", "automation", "build", "pipeline"],
59
+ maturity: "stable",
60
+
61
+ requires: [],
62
+ recommends: [],
63
+ conflictsWith: [],
64
+
65
+ minMemoryMB: 1024,
66
+ gpuRequired: false,
67
+ };