@better-openclaw/core 1.0.14 → 1.0.15
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/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/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 +14 -1
- package/dist/services/definitions/index.d.mts.map +1 -1
- package/dist/services/definitions/index.mjs +27 -1
- 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/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/homeassistant.ts +65 -0
- package/src/services/definitions/immich.ts +93 -0
- package/src/services/definitions/index.ts +39 -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
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/package.json
CHANGED
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
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
+
};
|
|
@@ -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,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
|
+
};
|