@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.
- package/dist/{manifest-BjK4ALvr.mjs → manifest-B8UDsVlR.mjs} +39 -13
- package/dist/manifest-B8UDsVlR.mjs.map +1 -0
- package/dist/resolver.mjs.map +1 -1
- package/dist/services/definitions/authentik.d.mts +7 -0
- package/dist/services/definitions/authentik.d.mts.map +1 -0
- package/dist/services/definitions/authentik.mjs +105 -0
- package/dist/services/definitions/authentik.mjs.map +1 -0
- package/dist/services/definitions/crowdsec.d.mts +7 -0
- package/dist/services/definitions/crowdsec.d.mts.map +1 -0
- package/dist/services/definitions/crowdsec.mjs +62 -0
- package/dist/services/definitions/crowdsec.mjs.map +1 -0
- package/dist/services/definitions/ghost.d.mts +7 -0
- package/dist/services/definitions/ghost.d.mts.map +1 -0
- package/dist/services/definitions/ghost.mjs +58 -0
- package/dist/services/definitions/ghost.mjs.map +1 -0
- package/dist/services/definitions/headscale.d.mts +7 -0
- package/dist/services/definitions/headscale.d.mts.map +1 -0
- package/dist/services/definitions/headscale.mjs +71 -0
- package/dist/services/definitions/headscale.mjs.map +1 -0
- package/dist/services/definitions/homeassistant.d.mts +7 -0
- package/dist/services/definitions/homeassistant.d.mts.map +1 -0
- package/dist/services/definitions/homeassistant.mjs +61 -0
- package/dist/services/definitions/homeassistant.mjs.map +1 -0
- package/dist/services/definitions/immich.d.mts +7 -0
- package/dist/services/definitions/immich.d.mts.map +1 -0
- package/dist/services/definitions/immich.mjs +92 -0
- package/dist/services/definitions/immich.mjs.map +1 -0
- package/dist/services/definitions/index.d.mts +15 -1
- package/dist/services/definitions/index.d.mts.map +1 -1
- package/dist/services/definitions/index.mjs +30 -2
- package/dist/services/definitions/index.mjs.map +1 -1
- package/dist/services/definitions/jellyfin.d.mts +7 -0
- package/dist/services/definitions/jellyfin.d.mts.map +1 -0
- package/dist/services/definitions/jellyfin.mjs +62 -0
- package/dist/services/definitions/jellyfin.mjs.map +1 -0
- package/dist/services/definitions/jenkins.d.mts +7 -0
- package/dist/services/definitions/jenkins.d.mts.map +1 -0
- package/dist/services/definitions/jenkins.mjs +62 -0
- package/dist/services/definitions/jenkins.mjs.map +1 -0
- package/dist/services/definitions/loki.d.mts +7 -0
- package/dist/services/definitions/loki.d.mts.map +1 -0
- package/dist/services/definitions/loki.mjs +51 -0
- package/dist/services/definitions/loki.mjs.map +1 -0
- package/dist/services/definitions/milvus.d.mts +7 -0
- package/dist/services/definitions/milvus.d.mts.map +1 -0
- package/dist/services/definitions/milvus.mjs +75 -0
- package/dist/services/definitions/milvus.mjs.map +1 -0
- package/dist/services/definitions/nextcloud.d.mts +7 -0
- package/dist/services/definitions/nextcloud.d.mts.map +1 -0
- package/dist/services/definitions/nextcloud.mjs +80 -0
- package/dist/services/definitions/nextcloud.mjs.map +1 -0
- package/dist/services/definitions/signoz.d.mts +7 -0
- package/dist/services/definitions/signoz.d.mts.map +1 -0
- package/dist/services/definitions/signoz.mjs +54 -0
- package/dist/services/definitions/signoz.mjs.map +1 -0
- package/dist/services/definitions/supabase.d.mts +7 -0
- package/dist/services/definitions/supabase.d.mts.map +1 -0
- package/dist/services/definitions/supabase.mjs +69 -0
- package/dist/services/definitions/supabase.mjs.map +1 -0
- package/dist/services/definitions/vaultwarden.d.mts +7 -0
- package/dist/services/definitions/vaultwarden.d.mts.map +1 -0
- package/dist/services/definitions/vaultwarden.mjs +63 -0
- package/dist/services/definitions/vaultwarden.mjs.map +1 -0
- package/dist/skills/skill-manifest.mjs +1 -1
- package/package.json +1 -1
- package/src/resolver.ts +10 -10
- package/src/services/definitions/authentik.ts +106 -0
- package/src/services/definitions/crowdsec.ts +66 -0
- package/src/services/definitions/ghost.ts +60 -0
- package/src/services/definitions/headscale.ts +72 -0
- package/src/services/definitions/homeassistant.ts +65 -0
- package/src/services/definitions/immich.ts +93 -0
- package/src/services/definitions/index.ts +42 -0
- package/src/services/definitions/jellyfin.ts +66 -0
- package/src/services/definitions/jenkins.ts +67 -0
- package/src/services/definitions/loki.ts +53 -0
- package/src/services/definitions/milvus.ts +84 -0
- package/src/services/definitions/nextcloud.ts +81 -0
- package/src/services/definitions/signoz.ts +54 -0
- package/src/services/definitions/supabase.ts +73 -0
- package/src/services/definitions/vaultwarden.ts +68 -0
- package/src/skills/manifest.json +63 -12
- 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
|
+
};
|