style: lint code
This commit is contained in:
@@ -8,27 +8,27 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
#! Example service structure:
|
||||
# ! Example service structure:
|
||||
services:
|
||||
service-name:
|
||||
<<: *defaults
|
||||
#! Use ${GLOBAL_REGISTRY} for a global registry prefix if defined
|
||||
#! If not pulls from Docker Hub by default, use ${GHCR_REGISTRY} for GitHub Container Registry, etc.
|
||||
#! e.g. ${GLOBAL_REGISTRY:-}httpd:${APACHE_VERSION:-2.4.62-alpine3.20}
|
||||
#! Use ${SERVICE_NAME_VERSION} to specify the image version, e.g., 3.2.1
|
||||
# ! Use ${GLOBAL_REGISTRY} for a global registry prefix if defined
|
||||
# ! If not pulls from Docker Hub by default, use ${GHCR_REGISTRY} for GitHub Container Registry, etc.
|
||||
# ! e.g. ${GLOBAL_REGISTRY:-}httpd:${APACHE_VERSION:-2.4.62-alpine3.20}
|
||||
# ! Use ${SERVICE_NAME_VERSION} to specify the image version, e.g., 3.2.1
|
||||
image: ${GLOBAL_REGISTRY:-}service-image:${SERVICE_NAME_VERSION:-3.2.1}
|
||||
#! Do not add container_name to allow scaling and avoid name conflicts
|
||||
# ! Do not add container_name to allow scaling and avoid name conflicts
|
||||
ports:
|
||||
- "${SERVICE_NAME_PORT_OVERRIDE:-8080}:8080"
|
||||
- '${SERVICE_NAME_PORT_OVERRIDE:-8080}:8080'
|
||||
volumes:
|
||||
- service_name_data:/data
|
||||
environment:
|
||||
- TZ=${TZ:-UTC} #! Set timezone, default to UTC
|
||||
- TZ=${TZ:-UTC} # ! Set timezone, default to UTC
|
||||
- ENV_VAR=${ENV_VAR:-default_value}
|
||||
healthcheck:
|
||||
test: ["CMD", "command", "to", "check", "health"]
|
||||
test: [CMD, command, to, check, health]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# Node.js
|
||||
node_modules/
|
||||
|
||||
# Env
|
||||
.env
|
||||
.env.*
|
||||
|
||||
4
.vscode/extensions.json
vendored
4
.vscode/extensions.json
vendored
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"yzhang.markdown-all-in-one",
|
||||
"DavidAnson.vscode-markdownlint",
|
||||
"redhat.vscode-yaml"
|
||||
"dbaeumer.vscode-eslint",
|
||||
"ms-azuretools.vscode-containers"
|
||||
]
|
||||
}
|
||||
|
||||
91
.vscode/settings.json
vendored
91
.vscode/settings.json
vendored
@@ -1,6 +1,9 @@
|
||||
{
|
||||
// Disable Prettier, use ESLint for formatting instead
|
||||
"prettier.enable": false,
|
||||
// Disable default formatOnSave, use ESLint fixOnSave
|
||||
"editor.formatOnSave": false,
|
||||
// Markdown settings
|
||||
"[markdown]": {
|
||||
"editor.wordWrap": "on",
|
||||
"editor.formatOnSave": true,
|
||||
@@ -13,15 +16,97 @@
|
||||
"strings": "off"
|
||||
}
|
||||
},
|
||||
// YAML settings: auto-fix ESLint issues on save
|
||||
"[yaml]": {
|
||||
"editor.formatOnSave": true
|
||||
"editor.formatOnSave": false,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "explicit"
|
||||
}
|
||||
},
|
||||
"[dockerfile]": {
|
||||
"editor.formatOnSave": true
|
||||
},
|
||||
// Docker Compose settings
|
||||
"[dockercompose]": {
|
||||
"editor.formatOnSave": true
|
||||
"editor.formatOnSave": false,
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "explicit"
|
||||
}
|
||||
},
|
||||
// File EOL configuration
|
||||
"files.eol": "\n",
|
||||
"cSpell.enabled": false
|
||||
// Disable spell checking
|
||||
"cSpell.enabled": false,
|
||||
// ESLint settings: auto-fix on save
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "explicit",
|
||||
"source.organizeImports": "never"
|
||||
},
|
||||
// Silent stylistic rules in IDE but still auto-fix them
|
||||
"eslint.rules.customizations": [
|
||||
{
|
||||
"rule": "style/*",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "format/*",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*-indent",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*-spacing",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*-spaces",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*-order",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*-dangle",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*-newline",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*quotes",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
},
|
||||
{
|
||||
"rule": "*semi",
|
||||
"severity": "off",
|
||||
"fixable": true
|
||||
}
|
||||
],
|
||||
// Enable ESLint for supported languages
|
||||
"eslint.validate": [
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"vue",
|
||||
"html",
|
||||
"markdown",
|
||||
"json",
|
||||
"jsonc",
|
||||
"yaml",
|
||||
"dockercompose"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ These services require building custom Docker images from source.
|
||||
| [Odoo](./src/odoo) | 19.0 |
|
||||
| [Ollama](./src/ollama) | 0.14.3 |
|
||||
| [Open WebUI](./src/open-webui) | main |
|
||||
| [Phoenix (Arize)](./src/phoenix) | 12.31.2-nonroot |
|
||||
| [Phoenix (Arize)](./src/phoenix) | 12.35.0-nonroot |
|
||||
| [Pingora Proxy Manager](./src/pingora-proxy-manager) | v1.0.3 |
|
||||
| [Open WebUI Rust](./src/open-webui-rust) | latest |
|
||||
| [OpenCode](./src/opencode) | 1.1.27 |
|
||||
|
||||
@@ -105,7 +105,7 @@ Compose Anything 通过提供一组高质量的 Docker Compose 配置文件,
|
||||
| [Odoo](./src/odoo) | 19.0 |
|
||||
| [Ollama](./src/ollama) | 0.14.3 |
|
||||
| [Open WebUI](./src/open-webui) | main |
|
||||
| [Phoenix (Arize)](./src/phoenix) | 12.31.2-nonroot |
|
||||
| [Phoenix (Arize)](./src/phoenix) | 12.35.0-nonroot |
|
||||
| [Pingora Proxy Manager](./src/pingora-proxy-manager) | v1.0.3 |
|
||||
| [Open WebUI Rust](./src/open-webui-rust) | latest |
|
||||
| [OpenCode](./src/opencode) | 1.1.27 |
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
bolt-diy:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}stackblitz/bolt:${BOLT_DIY_VERSION:-latest}
|
||||
ports:
|
||||
- "${BOLT_DIY_PORT_OVERRIDE:-5173}:5173"
|
||||
- '${BOLT_DIY_PORT_OVERRIDE:-5173}:5173'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- VITE_LOG_LEVEL=${VITE_LOG_LEVEL:-info}
|
||||
@@ -26,14 +26,13 @@ services:
|
||||
memory: ${BOLT_DIY_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:5173/",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:5173/'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -8,7 +8,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
redis:
|
||||
@@ -18,7 +18,7 @@ services:
|
||||
- TZ=${TZ:-UTC}
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
||||
ports:
|
||||
- "${REDIS_PORT_OVERRIDE:-6379}:6379"
|
||||
- '${REDIS_PORT_OVERRIDE:-6379}:6379'
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
command: >
|
||||
@@ -30,7 +30,7 @@ services:
|
||||
fi
|
||||
'
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "redis-cli -a $$REDIS_PASSWORD ping 2>/dev/null || redis-cli ping"]
|
||||
test: [CMD-SHELL, 'redis-cli -a $$REDIS_PASSWORD ping 2>/dev/null || redis-cli ping']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -54,11 +54,11 @@ services:
|
||||
- POSTGRES_DB=${DB_DATABASE:-buildingai}
|
||||
- PGDATA=/var/lib/postgresql/data/pgdata
|
||||
ports:
|
||||
- "${POSTGRES_PORT_OVERRIDE:-5432}:5432"
|
||||
- '${POSTGRES_PORT_OVERRIDE:-5432}:5432'
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME:-postgres}"]
|
||||
test: [CMD-SHELL, 'pg_isready -U ${DB_USERNAME:-postgres}']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -93,11 +93,11 @@ services:
|
||||
- REDIS_PORT=6379
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
|
||||
ports:
|
||||
- "${BUILDINGAI_PORT_OVERRIDE:-4090}:${SERVER_PORT:-4090}"
|
||||
- '${BUILDINGAI_PORT_OVERRIDE:-4090}:${SERVER_PORT:-4090}'
|
||||
volumes:
|
||||
- buildingai_data:/app/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:${SERVER_PORT:-4090}/consoleapi/health || exit 1"]
|
||||
test: [CMD-SHELL, 'curl -f http://localhost:${SERVER_PORT:-4090}/consoleapi/health || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
DeepTutor is an AI-powered personalized learning assistant that transforms any document into an interactive learning experience with multi-agent intelligence. It helps you solve problems, generate questions, conduct research, collaborate on writing, organize notes, and guides you through learning paths.
|
||||
|
||||
**Project:** <https://github.com/HKUDS/DeepTutor>
|
||||
**License:** Apache-2.0
|
||||
**Project:** <https://github.com/HKUDS/DeepTutor>
|
||||
**License:** Apache-2.0
|
||||
**Documentation:** <https://hkuds.github.io/DeepTutor/>
|
||||
|
||||
## Features
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
DeepTutor 是一个 AI 驱动的个性化学习助手,通过多智能体系统将任何文档转化为交互式学习体验。它可以帮助您解决问题、生成题目、进行研究、协作写作、整理笔记,并引导您完成学习路径。
|
||||
|
||||
**项目地址:** <https://github.com/HKUDS/DeepTutor>
|
||||
**许可证:** Apache-2.0
|
||||
**项目地址:** <https://github.com/HKUDS/DeepTutor>
|
||||
**许可证:** Apache-2.0
|
||||
**文档:** <https://hkuds.github.io/DeepTutor/>
|
||||
|
||||
## 功能特性
|
||||
|
||||
@@ -8,15 +8,15 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
deeptutor:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-ghcr.io}/hkuds/deeptutor:${DEEPTUTOR_VERSION:-latest}
|
||||
ports:
|
||||
- "${DEEPTUTOR_BACKEND_PORT_OVERRIDE:-8001}:${BACKEND_PORT:-8001}"
|
||||
- "${DEEPTUTOR_FRONTEND_PORT_OVERRIDE:-3782}:${FRONTEND_PORT:-3782}"
|
||||
- '${DEEPTUTOR_BACKEND_PORT_OVERRIDE:-8001}:${BACKEND_PORT:-8001}'
|
||||
- '${DEEPTUTOR_FRONTEND_PORT_OVERRIDE:-3782}:${FRONTEND_PORT:-3782}'
|
||||
volumes:
|
||||
- deeptutor_data:/app/data
|
||||
- ./config:/app/config:ro
|
||||
@@ -42,15 +42,14 @@ services:
|
||||
- PGID=${PGID:-1000}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"curl",
|
||||
"-f",
|
||||
"http://localhost:${BACKEND_PORT:-8001}/health",
|
||||
"||",
|
||||
"exit",
|
||||
"1",
|
||||
]
|
||||
- CMD
|
||||
- curl
|
||||
- -f
|
||||
- 'http://localhost:${BACKEND_PORT:-8001}/health'
|
||||
- '||'
|
||||
- exit
|
||||
- '1'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
dify-api:
|
||||
@@ -41,14 +41,13 @@ services:
|
||||
memory: ${DIFY_API_MEMORY_RESERVATION:-1G}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:5001/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:5001/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -98,7 +97,7 @@ services:
|
||||
- NEXT_PUBLIC_API_URL=${DIFY_API_URL:-http://localhost:5001}
|
||||
- NEXT_PUBLIC_APP_URL=${DIFY_APP_URL:-http://localhost:3000}
|
||||
ports:
|
||||
- "${DIFY_PORT_OVERRIDE:-3000}:3000"
|
||||
- '${DIFY_PORT_OVERRIDE:-3000}:3000'
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -128,7 +127,7 @@ services:
|
||||
cpus: ${DIFY_DB_CPU_RESERVATION:-0.25}
|
||||
memory: ${DIFY_DB_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
|
||||
test: [CMD-SHELL, pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -151,7 +150,7 @@ services:
|
||||
cpus: ${DIFY_REDIS_CPU_RESERVATION:-0.1}
|
||||
memory: ${DIFY_REDIS_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
test: [CMD, redis-cli, ping]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
@@ -181,14 +180,13 @@ services:
|
||||
memory: ${DIFY_WEAVIATE_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:8080/v1/.well-known/ready",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:8080/v1/.well-known/ready'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -62,7 +62,7 @@ If you need to mount the Prisma database files:
|
||||
```yaml
|
||||
volumes:
|
||||
- easy_dataset_db:/app/local-db
|
||||
- easy_dataset_prisma:/app/prisma # Uncomment this line
|
||||
- easy_dataset_prisma:/app/prisma # Uncomment this line
|
||||
```
|
||||
|
||||
3. Start the service:
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
```yaml
|
||||
volumes:
|
||||
- easy_dataset_db:/app/local-db
|
||||
- easy_dataset_prisma:/app/prisma # 取消此行注释
|
||||
- easy_dataset_prisma:/app/prisma # 取消此行注释
|
||||
```
|
||||
|
||||
3. 启动服务:
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
easy-dataset:
|
||||
<<: *defaults
|
||||
image: ${GHCR_IO_REGISTRY:-ghcr.io}/conardli/easy-dataset:${EASY_DATASET_VERSION:-1.5.1}
|
||||
ports:
|
||||
- "${EASY_DATASET_PORT_OVERRIDE:-1717}:1717"
|
||||
- '${EASY_DATASET_PORT_OVERRIDE:-1717}:1717'
|
||||
volumes:
|
||||
- easy_dataset_db:/app/local-db
|
||||
# Uncomment the following line if you need to mount Prisma database files
|
||||
@@ -29,7 +29,7 @@ services:
|
||||
cpus: ${EASY_DATASET_CPU_RESERVATION:-0.5}
|
||||
memory: ${EASY_DATASET_MEMORY_RESERVATION:-1G}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:1717"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:1717']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -218,7 +218,7 @@ For production deployments:
|
||||
```bash
|
||||
# Generate a secure key
|
||||
python -c "from secrets import token_urlsafe; print(token_urlsafe(32))"
|
||||
|
||||
|
||||
# Add to .env
|
||||
LANGFLOW_SECRET_KEY=<generated-key>
|
||||
```
|
||||
|
||||
@@ -218,7 +218,7 @@ curl -X POST http://localhost:7860/api/v1/run/{flow_id} \
|
||||
```bash
|
||||
# 生成安全密钥
|
||||
python -c "from secrets import token_urlsafe; print(token_urlsafe(32))"
|
||||
|
||||
|
||||
# 添加到 .env
|
||||
LANGFLOW_SECRET_KEY=<生成的密钥>
|
||||
```
|
||||
|
||||
@@ -31,14 +31,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: ${LOG_MAX_SIZE:-100m}
|
||||
max-file: "${LOG_MAX_FILE:-3}"
|
||||
max-file: '${LOG_MAX_FILE:-3}'
|
||||
|
||||
services:
|
||||
langflow:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}langflowai/langflow:${LANGFLOW_VERSION:-1.1.1}
|
||||
ports:
|
||||
- "${LANGFLOW_PORT_OVERRIDE:-7860}:7860"
|
||||
- '${LANGFLOW_PORT_OVERRIDE:-7860}:7860'
|
||||
environment:
|
||||
# Database configuration
|
||||
- LANGFLOW_DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
|
||||
@@ -82,7 +82,7 @@ services:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:7860/health_check', timeout=5)"]
|
||||
test: [CMD, python, -c, "import requests; requests.get('http://localhost:7860/health_check', timeout=5)"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@@ -90,11 +90,11 @@ services:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${LANGFLOW_CPU_LIMIT:-2.0}"
|
||||
memory: "${LANGFLOW_MEMORY_LIMIT:-2G}"
|
||||
cpus: '${LANGFLOW_CPU_LIMIT:-2.0}'
|
||||
memory: '${LANGFLOW_MEMORY_LIMIT:-2G}'
|
||||
reservations:
|
||||
cpus: "${LANGFLOW_CPU_RESERVATION:-0.5}"
|
||||
memory: "${LANGFLOW_MEMORY_RESERVATION:-512M}"
|
||||
cpus: '${LANGFLOW_CPU_RESERVATION:-0.5}'
|
||||
memory: '${LANGFLOW_MEMORY_RESERVATION:-512M}'
|
||||
|
||||
postgres:
|
||||
<<: *defaults
|
||||
@@ -108,7 +108,7 @@ services:
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-langflow} -d ${POSTGRES_DB:-langflow}"]
|
||||
test: [CMD-SHELL, 'pg_isready -U ${POSTGRES_USER:-langflow} -d ${POSTGRES_DB:-langflow}']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -116,11 +116,11 @@ services:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${POSTGRES_CPU_LIMIT:-1.0}"
|
||||
memory: "${POSTGRES_MEMORY_LIMIT:-1G}"
|
||||
cpus: '${POSTGRES_CPU_LIMIT:-1.0}'
|
||||
memory: '${POSTGRES_MEMORY_LIMIT:-1G}'
|
||||
reservations:
|
||||
cpus: "${POSTGRES_CPU_RESERVATION:-0.25}"
|
||||
memory: "${POSTGRES_MEMORY_RESERVATION:-256M}"
|
||||
cpus: '${POSTGRES_CPU_RESERVATION:-0.25}'
|
||||
memory: '${POSTGRES_MEMORY_RESERVATION:-256M}'
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
@@ -93,7 +93,7 @@ This service deploys Langfuse, an open-source LLM engineering platform for obser
|
||||
All services have configurable CPU and memory limits:
|
||||
|
||||
- **langfuse-worker**: 2 CPU cores, 2GB RAM
|
||||
- **langfuse-web**: 2 CPU cores, 2GB RAM
|
||||
- **langfuse-web**: 2 CPU cores, 2GB RAM
|
||||
- **clickhouse**: 2 CPU cores, 4GB RAM
|
||||
- **minio**: 1 CPU core, 1GB RAM
|
||||
- **redis**: 1 CPU core, 512MB RAM
|
||||
|
||||
@@ -13,7 +13,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
langfuse-worker:
|
||||
@@ -89,14 +89,13 @@ services:
|
||||
memory: ${LANGFUSE_WORKER_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://127.0.0.1:3030/api/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://127.0.0.1:3030/api/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -107,7 +106,7 @@ services:
|
||||
image: ${GLOBAL_REGISTRY:-}langfuse/langfuse:${LANGFUSE_VERSION:-3.143.0}
|
||||
depends_on: *langfuse-depends-on
|
||||
ports:
|
||||
- "${LANGFUSE_PORT_OVERRIDE:-3000}:3000"
|
||||
- '${LANGFUSE_PORT_OVERRIDE:-3000}:3000'
|
||||
environment:
|
||||
<<: *langfuse-worker-env
|
||||
HOSTNAME: ${HOSTNAME:-0.0.0.0}
|
||||
@@ -131,14 +130,13 @@ services:
|
||||
memory: ${LANGFUSE_WEB_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://127.0.0.1:3000/api/public/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://127.0.0.1:3000/api/public/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -149,7 +147,7 @@ services:
|
||||
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${CLICKHOUSE_VERSION:-latest}
|
||||
profiles:
|
||||
- ${COMPOSE_PROFILES:-}
|
||||
user: "101:101"
|
||||
user: '101:101'
|
||||
environment:
|
||||
CLICKHOUSE_DB: default
|
||||
CLICKHOUSE_USER: ${CLICKHOUSE_USER:-clickhouse}
|
||||
@@ -191,7 +189,7 @@ services:
|
||||
volumes:
|
||||
- langfuse_minio_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
test: [CMD, mc, ready, local]
|
||||
interval: 1s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -214,7 +212,7 @@ services:
|
||||
--requirepass ${REDIS_AUTH:-myredissecret}
|
||||
--maxmemory-policy noeviction
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
test: [CMD, redis-cli, ping]
|
||||
interval: 3s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
@@ -241,7 +239,7 @@ services:
|
||||
volumes:
|
||||
- langfuse_postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
test: [CMD-SHELL, pg_isready -U postgres]
|
||||
interval: 3s
|
||||
timeout: 3s
|
||||
retries: 10
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
n8n:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}n8nio/n8n:${N8N_VERSION:-1.114.0}
|
||||
ports:
|
||||
- "${N8N_PORT:-5678}:5678"
|
||||
- '${N8N_PORT:-5678}:5678'
|
||||
volumes:
|
||||
- n8n_data:/home/node/.n8n
|
||||
environment:
|
||||
@@ -48,7 +48,7 @@ services:
|
||||
cpus: ${N8N_CPU_RESERVATION:-0.5}
|
||||
memory: ${N8N_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5678/healthz"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:5678/healthz']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
nanobot:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-ghcr.io/}hkuds/nanobot:${NANOBOT_VERSION:-v0.1.3.post4}
|
||||
ports:
|
||||
- "${NANOBOT_PORT_OVERRIDE:-18790}:18790"
|
||||
- '${NANOBOT_PORT_OVERRIDE:-18790}:18790'
|
||||
volumes:
|
||||
- nanobot_config:/root/.nanobot
|
||||
- nanobot_workspace:/root/.nanobot/workspace
|
||||
@@ -57,7 +57,7 @@ services:
|
||||
- NANOBOT_GATEWAY__PORT=${GATEWAY_PORT:-18790}
|
||||
command: ${NANOBOT_COMMAND:-gateway}
|
||||
healthcheck:
|
||||
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]
|
||||
test: [CMD, python, -c, import sys; sys.exit(0)]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -26,7 +26,7 @@ OpenClaw is a personal AI assistant that runs on your own devices. It integrates
|
||||
```bash
|
||||
# Using OpenSSL
|
||||
openssl rand -hex 32
|
||||
|
||||
|
||||
# Or using Python
|
||||
python3 -c "import secrets; print(secrets.token_hex(32))"
|
||||
```
|
||||
|
||||
@@ -26,7 +26,7 @@ OpenClaw 是一个运行在你自己设备上的个人 AI 助手。它集成了
|
||||
```bash
|
||||
# 使用 OpenSSL
|
||||
openssl rand -hex 32
|
||||
|
||||
|
||||
# 或使用 Python
|
||||
python3 -c "import secrets; print(secrets.token_hex(32))"
|
||||
```
|
||||
|
||||
@@ -8,7 +8,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
openclaw-gateway:
|
||||
@@ -33,18 +33,18 @@ services:
|
||||
- openclaw_config:/home/node/.openclaw
|
||||
- openclaw_workspace:/home/node/openclaw-workspace
|
||||
ports:
|
||||
- "${OPENCLAW_GATEWAY_PORT_OVERRIDE:-18789}:18789"
|
||||
- "${OPENCLAW_BRIDGE_PORT_OVERRIDE:-18790}:18790"
|
||||
- '${OPENCLAW_GATEWAY_PORT_OVERRIDE:-18789}:18789'
|
||||
- '${OPENCLAW_BRIDGE_PORT_OVERRIDE:-18790}:18790'
|
||||
command:
|
||||
- node
|
||||
- dist/index.js
|
||||
- gateway
|
||||
- --bind
|
||||
- "${OPENCLAW_GATEWAY_BIND:-lan}"
|
||||
- '${OPENCLAW_GATEWAY_BIND:-lan}'
|
||||
- --port
|
||||
- "18789"
|
||||
- '18789'
|
||||
healthcheck:
|
||||
test: ["CMD", "node", "dist/index.js", "health", "--port", "18789"]
|
||||
test: [CMD, node, dist/index.js, health, --port, '18789']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -74,7 +74,7 @@ services:
|
||||
- moltbot_workspace:/home/node/clawd
|
||||
stdin_open: true
|
||||
tty: true
|
||||
entrypoint: ["node", "dist/index.js"]
|
||||
entrypoint: [node, dist/index.js]
|
||||
profiles:
|
||||
- cli
|
||||
deploy:
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
# Note: OpenCoze is a complex platform that requires multiple services.
|
||||
|
||||
@@ -70,7 +70,7 @@ npm install openlit
|
||||
```typescript
|
||||
import Openlit from 'openlit';
|
||||
|
||||
Openlit.init({
|
||||
Openlit.init({
|
||||
otlpEndpoint: 'http://localhost:4318'
|
||||
});
|
||||
```
|
||||
|
||||
@@ -70,7 +70,7 @@ npm install openlit
|
||||
```typescript
|
||||
import Openlit from 'openlit';
|
||||
|
||||
Openlit.init({
|
||||
Openlit.init({
|
||||
otlpEndpoint: 'http://localhost:4318'
|
||||
});
|
||||
```
|
||||
|
||||
@@ -9,7 +9,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
clickhouse:
|
||||
@@ -24,10 +24,10 @@ services:
|
||||
volumes:
|
||||
- clickhouse_data:/var/lib/clickhouse
|
||||
ports:
|
||||
- "${CLICKHOUSE_HTTP_PORT_OVERRIDE:-8123}:8123"
|
||||
- "${CLICKHOUSE_NATIVE_PORT_OVERRIDE:-9000}:9000"
|
||||
- '${CLICKHOUSE_HTTP_PORT_OVERRIDE:-8123}:8123'
|
||||
- '${CLICKHOUSE_NATIVE_PORT_OVERRIDE:-9000}:9000'
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "clickhouse-client --user=$${CLICKHOUSE_USER} --password=$${CLICKHOUSE_PASSWORD} --query='SELECT 1' || exit 1"]
|
||||
test: [CMD-SHELL, "clickhouse-client --user=$${CLICKHOUSE_USER} --password=$${CLICKHOUSE_PASSWORD} --query='SELECT 1' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 10
|
||||
@@ -69,16 +69,16 @@ services:
|
||||
- OPAMP_TLS_MAX_VERSION=${OPAMP_TLS_MAX_VERSION:-1.3}
|
||||
- OPAMP_LOG_LEVEL=${OPAMP_LOG_LEVEL:-info}
|
||||
ports:
|
||||
- "${OPENLIT_PORT_OVERRIDE:-3000}:${OPENLIT_INTERNAL_PORT:-3000}"
|
||||
- "${OPENLIT_OTLP_GRPC_PORT_OVERRIDE:-4317}:4317"
|
||||
- "${OPENLIT_OTLP_HTTP_PORT_OVERRIDE:-4318}:4318"
|
||||
- '${OPENLIT_PORT_OVERRIDE:-3000}:${OPENLIT_INTERNAL_PORT:-3000}'
|
||||
- '${OPENLIT_OTLP_GRPC_PORT_OVERRIDE:-4317}:4317'
|
||||
- '${OPENLIT_OTLP_HTTP_PORT_OVERRIDE:-4318}:4318'
|
||||
depends_on:
|
||||
clickhouse:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- openlit_data:/app/client/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:${OPENLIT_INTERNAL_PORT:-3000}/health"]
|
||||
test: [CMD, wget, --quiet, --tries=1, --spider, 'http://localhost:${OPENLIT_INTERNAL_PORT:-3000}/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -8,14 +8,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
openobserve:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-public.ecr.aws/zinclabs/}openobserve:${OPENOBSERVE_VERSION:-v0.50.0}
|
||||
ports:
|
||||
- "${OPENOBSERVE_PORT_OVERRIDE:-5080}:5080"
|
||||
- '${OPENOBSERVE_PORT_OVERRIDE:-5080}:5080'
|
||||
volumes:
|
||||
- openobserve_data:/data
|
||||
environment:
|
||||
@@ -29,7 +29,7 @@ services:
|
||||
- ZO_S3_ACCESS_KEY=${ZO_S3_ACCESS_KEY:-}
|
||||
- ZO_S3_SECRET_KEY=${ZO_S3_SECRET_KEY:-}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5080/healthz"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:5080/healthz']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -22,15 +22,15 @@ network_mode = "bridge"
|
||||
# Security hardening options
|
||||
# Drop dangerous capabilities
|
||||
drop_capabilities = [
|
||||
"AUDIT_WRITE",
|
||||
"MKNOD",
|
||||
"NET_ADMIN",
|
||||
"NET_RAW",
|
||||
"SYS_ADMIN",
|
||||
"SYS_MODULE",
|
||||
"SYS_PTRACE",
|
||||
"SYS_TIME",
|
||||
"SYS_TTY_CONFIG"
|
||||
"AUDIT_WRITE",
|
||||
"MKNOD",
|
||||
"NET_ADMIN",
|
||||
"NET_RAW",
|
||||
"SYS_ADMIN",
|
||||
"SYS_MODULE",
|
||||
"SYS_PTRACE",
|
||||
"SYS_TIME",
|
||||
"SYS_TTY_CONFIG"
|
||||
]
|
||||
|
||||
# Prevent privilege escalation inside containers
|
||||
|
||||
@@ -8,14 +8,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
opensandbox-server:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}opensandbox/server:${OPENSANDBOX_SERVER_VERSION:-v1.0.5}
|
||||
ports:
|
||||
- "${OPENSANDBOX_SERVER_PORT_OVERRIDE:-8080}:8080"
|
||||
- '${OPENSANDBOX_SERVER_PORT_OVERRIDE:-8080}:8080'
|
||||
volumes:
|
||||
# Mount Docker socket to enable sandbox creation
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
@@ -30,7 +30,7 @@ services:
|
||||
# Docker runtime settings (override config.toml via env vars if needed)
|
||||
- DOCKER_HOST=${DOCKER_HOST:-unix:///var/run/docker.sock}
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
||||
test: [CMD, curl, -f, 'http://localhost:8080/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -8,14 +8,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: ${LOG_MAX_SIZE:-100m}
|
||||
max-file: "${LOG_MAX_FILE:-3}"
|
||||
max-file: '${LOG_MAX_FILE:-3}'
|
||||
|
||||
services:
|
||||
simstudio:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}ghcr.io/simstudioai/simstudio:${SIM_VERSION:-latest}
|
||||
ports:
|
||||
- "${SIM_PORT_OVERRIDE:-3000}:3000"
|
||||
- '${SIM_PORT_OVERRIDE:-3000}:3000'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- NODE_ENV=production
|
||||
@@ -37,7 +37,7 @@ services:
|
||||
realtime:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "--quiet", "http://127.0.0.1:3000"]
|
||||
test: [CMD, wget, --spider, --quiet, 'http://127.0.0.1:3000']
|
||||
interval: 90s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -55,7 +55,7 @@ services:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}ghcr.io/simstudioai/realtime:${SIM_REALTIME_VERSION:-latest}
|
||||
ports:
|
||||
- "${SIM_REALTIME_PORT_OVERRIDE:-3002}:3002"
|
||||
- '${SIM_REALTIME_PORT_OVERRIDE:-3002}:3002'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@db:5432/${POSTGRES_DB:-simstudio}
|
||||
@@ -66,7 +66,7 @@ services:
|
||||
db:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "--quiet", "http://127.0.0.1:3002/health"]
|
||||
test: [CMD, wget, --spider, --quiet, 'http://127.0.0.1:3002/health']
|
||||
interval: 90s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -89,13 +89,13 @@ services:
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
command: ["bun", "run", "db:migrate"]
|
||||
restart: "no"
|
||||
command: [bun, run, 'db:migrate']
|
||||
restart: no
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: ${LOG_MAX_SIZE:-100m}
|
||||
max-file: "${LOG_MAX_FILE:-3}"
|
||||
max-file: '${LOG_MAX_FILE:-3}'
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -109,7 +109,7 @@ services:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}pgvector/pgvector:${PGVECTOR_VERSION:-pg17}
|
||||
ports:
|
||||
- "${POSTGRES_PORT_OVERRIDE:-5432}:5432"
|
||||
- '${POSTGRES_PORT_OVERRIDE:-5432}:5432'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
@@ -118,7 +118,7 @@ services:
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"]
|
||||
test: [CMD-SHELL, 'pg_isready -U ${POSTGRES_USER:-postgres}']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
stable-diffusion-webui:
|
||||
<<: *defaults
|
||||
image: ${GHCR_IO_REGISTRY:-ghcr.io}/absolutelyludicrous/sdnext:${SD_WEBUI_VERSION:-latest}
|
||||
ports:
|
||||
- "${SD_WEBUI_PORT_OVERRIDE:-7860}:7860"
|
||||
- '${SD_WEBUI_PORT_OVERRIDE:-7860}:7860'
|
||||
environment:
|
||||
TZ: ${TZ:-UTC}
|
||||
CLI_ARGS: ${CLI_ARGS:---listen --api --skip-version-check}
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
count: ${GPU_COUNT:-1}
|
||||
capabilities: [gpu]
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:7860/"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:7860/']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
stirling-pdf:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}stirlingtools/stirling-pdf:${STIRLING_VERSION:-latest}
|
||||
ports:
|
||||
- "${PORT_OVERRIDE:-8080}:8080"
|
||||
- '${PORT_OVERRIDE:-8080}:8080'
|
||||
volumes:
|
||||
- stirling_trainingData:/usr/share/tessdata
|
||||
- stirling_configs:/configs
|
||||
@@ -44,7 +44,7 @@ services:
|
||||
cpus: ${STIRLING_CPU_RESERVATION:-1.0}
|
||||
memory: ${STIRLING_MEMORY_RESERVATION:-2G}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:8080/']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -7,7 +7,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
dind:
|
||||
@@ -26,14 +26,14 @@ services:
|
||||
- INSTALL_NVIDIA_TOOLKIT=${INSTALL_NVIDIA_TOOLKIT:-false}
|
||||
privileged: true
|
||||
ports:
|
||||
- "${DIND_PORT_OVERRIDE:-2375}:2375"
|
||||
- '${DIND_PORT_OVERRIDE:-2375}:2375'
|
||||
volumes:
|
||||
- dind_data:/var/lib/docker
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- DOCKER_TLS_CERTDIR=${DOCKER_TLS_CERTDIR:-}
|
||||
healthcheck:
|
||||
test: ["CMD", "docker", "info"]
|
||||
test: [CMD, docker, info]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -64,7 +64,7 @@ services:
|
||||
- INSTALL_NVIDIA_TOOLKIT=true
|
||||
privileged: true
|
||||
ports:
|
||||
- "${DIND_PORT_OVERRIDE:-2375}:2375"
|
||||
- '${DIND_PORT_OVERRIDE:-2375}:2375'
|
||||
volumes:
|
||||
- dind_gpu_data:/var/lib/docker
|
||||
environment:
|
||||
@@ -73,7 +73,7 @@ services:
|
||||
- NVIDIA_VISIBLE_DEVICES=all
|
||||
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||||
healthcheck:
|
||||
test: ["CMD", "docker", "info"]
|
||||
test: [CMD, docker, info]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -8,7 +8,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: ${GOOSE_LOG_MAX_SIZE:-100m}
|
||||
max-file: "${GOOSE_LOG_MAX_FILE:-3}"
|
||||
max-file: '${GOOSE_LOG_MAX_FILE:-3}'
|
||||
|
||||
services:
|
||||
goose:
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
io-paint:
|
||||
@@ -40,7 +40,7 @@ services:
|
||||
device_ids: ['0']
|
||||
capabilities: [compute, utility]
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:8080/']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -8,7 +8,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
k3s:
|
||||
@@ -28,15 +28,15 @@ services:
|
||||
- k3s_data:/var/lib/rancher/k3s
|
||||
- docker_data:/var/lib/docker
|
||||
ports:
|
||||
- "${K3S_API_PORT_OVERRIDE:-6443}:6443" # Kubernetes API server
|
||||
- "${DOCKER_TLS_PORT_OVERRIDE:-2376}:2376" # Docker daemon TLS port
|
||||
- '${K3S_API_PORT_OVERRIDE:-6443}:6443' # Kubernetes API server
|
||||
- '${DOCKER_TLS_PORT_OVERRIDE:-2376}:2376' # Docker daemon TLS port
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- K3S_TOKEN=${K3S_TOKEN:-}
|
||||
- K3S_DISABLE_SERVICES=${K3S_DISABLE_SERVICES:-traefik}
|
||||
- K3S_NODE_NAME=${K3S_NODE_NAME:-k3s-server}
|
||||
healthcheck:
|
||||
test: ["CMD", "k3s", "kubectl", "get", "--raw", "/healthz"]
|
||||
test: [CMD, k3s, kubectl, get, --raw, /healthz]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
@@ -8,7 +8,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
microsandbox:
|
||||
@@ -25,7 +25,7 @@ services:
|
||||
- MICROSANDBOX_AUTO_PULL_IMAGES=${MICROSANDBOX_AUTO_PULL_IMAGES:-true}
|
||||
image: ${GLOBAL_REGISTRY:-ghcr.io}/zerocore-ai/microsandbox:${MICROSANDBOX_VERSION:-latest}
|
||||
ports:
|
||||
- "${MICROSANDBOX_PORT_OVERRIDE:-5555}:${MICROSANDBOX_PORT:-5555}"
|
||||
- '${MICROSANDBOX_PORT_OVERRIDE:-5555}:${MICROSANDBOX_PORT:-5555}'
|
||||
# Privileged mode and relaxed security profiles are required for KVM access
|
||||
# This provides hardware-level isolation inside the container
|
||||
# See README.md for security considerations
|
||||
@@ -58,7 +58,7 @@ services:
|
||||
exec server start --host 0.0.0.0 --port $${MICROSANDBOX_PORT:-5555} $${DEV_FLAG};
|
||||
working_dir: /workspace
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "msb --version || exit 1"]
|
||||
test: [CMD-SHELL, 'msb --version || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
x-mineru-vllm: &mineru-vllm
|
||||
<<: *defaults
|
||||
@@ -25,21 +25,21 @@ x-mineru-vllm: &mineru-vllm
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "16.0"
|
||||
cpus: '16.0'
|
||||
memory: 32G
|
||||
reservations:
|
||||
cpus: "8.0"
|
||||
cpus: '8.0'
|
||||
memory: 16G
|
||||
devices:
|
||||
- driver: nvidia
|
||||
device_ids: ["0"]
|
||||
device_ids: ['0']
|
||||
capabilities: [gpu]
|
||||
|
||||
services:
|
||||
mineru-openai-server:
|
||||
<<: *mineru-vllm
|
||||
profiles:
|
||||
- "openai-server"
|
||||
- openai-server
|
||||
- ${COMPOSE_PROFILES:-}
|
||||
ports:
|
||||
- ${MINERU_PORT_OVERRIDE_VLLM:-30000}:30000
|
||||
@@ -50,7 +50,7 @@ services:
|
||||
# --data-parallel-size 2 # If using multiple GPUs, increase throughput using vllm's multi-GPU parallel mode
|
||||
# --gpu-memory-utilization 0.9 # If running on a single GPU and encountering VRAM shortage, reduce the KV cache size by this parameter, if VRAM issues persist, try lowering it further to `0.4` or below.
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:30000/health || exit 1"]
|
||||
test: [CMD-SHELL, 'curl -f http://localhost:30000/health || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -58,7 +58,7 @@ services:
|
||||
|
||||
mineru-api:
|
||||
<<: *mineru-vllm
|
||||
profiles: ["api"]
|
||||
profiles: [api]
|
||||
ports:
|
||||
- ${MINERU_PORT_OVERRIDE_API:-8000}:8000
|
||||
entrypoint: mineru-api
|
||||
@@ -70,14 +70,13 @@ services:
|
||||
# --gpu-memory-utilization 0.5 # If running on a single GPU and encountering VRAM shortage, reduce the KV cache size by this parameter, if VRAM issues persist, try lowering it further to `0.4` or below.
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:8000/docs",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:8000/docs'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -85,7 +84,7 @@ services:
|
||||
|
||||
mineru-gradio:
|
||||
<<: *mineru-vllm
|
||||
profiles: ["gradio"]
|
||||
profiles: [gradio]
|
||||
ports:
|
||||
- ${MINERU_PORT_OVERRIDE_GRADIO:-7860}:7860
|
||||
entrypoint: mineru-gradio
|
||||
@@ -99,14 +98,13 @@ services:
|
||||
# --gpu-memory-utilization 0.5 # If running on a single GPU and encountering VRAM shortage, reduce the KV cache size by this parameter, if VRAM issues persist, try lowering it further to `0.4` or below.
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:7860/",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:7860/'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
26
eslint.config.mjs
Normal file
26
eslint.config.mjs
Normal file
@@ -0,0 +1,26 @@
|
||||
import antfu from '@antfu/eslint-config'
|
||||
|
||||
export default antfu({
|
||||
// Enable YAML support
|
||||
yaml: true,
|
||||
// Disable other language support we don't need
|
||||
typescript: false,
|
||||
vue: false,
|
||||
react: false,
|
||||
svelte: false,
|
||||
astro: false,
|
||||
toml: false,
|
||||
// Enable stylistic formatting
|
||||
stylistic: {
|
||||
indent: 2,
|
||||
quotes: 'single',
|
||||
semi: false,
|
||||
},
|
||||
// Files to ignore
|
||||
ignores: [
|
||||
'**/node_modules/**',
|
||||
'**/.git/**',
|
||||
],
|
||||
// Lint readme files
|
||||
markdown: true,
|
||||
})
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-api-gateway:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_API_GATEWAY_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_API_GATEWAY_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-arxiv:
|
||||
@@ -15,11 +15,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_ARXIV_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_ARXIV_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- arxiv_data:/data/papers
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-basic-memory:
|
||||
@@ -14,11 +14,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_BASIC_MEMORY_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_BASIC_MEMORY_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- basic_memory_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-clickhouse:
|
||||
@@ -17,9 +17,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_CLICKHOUSE_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_CLICKHOUSE_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-docker:
|
||||
@@ -15,11 +15,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_DOCKER_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_DOCKER_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
dockerhub:
|
||||
@@ -17,9 +17,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${DOCKERHUB_MCP_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${DOCKERHUB_MCP_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-e2b:
|
||||
@@ -15,9 +15,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_E2B_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_E2B_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -3,8 +3,8 @@ x-defaults: &defaults
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "100m"
|
||||
max-file: "3"
|
||||
max-size: 100m
|
||||
max-file: '3'
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -23,9 +23,9 @@ services:
|
||||
- TZ=${TZ:-UTC}
|
||||
- ELEVENLABS_API_KEY=${ELEVENLABS_API_KEY}
|
||||
ports:
|
||||
- "${MCP_ELEVENLABS_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_ELEVENLABS_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --quiet, --tries=1, --spider, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-fetch:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_FETCH_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_FETCH_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-filesystem:
|
||||
@@ -14,11 +14,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_FILESYSTEM_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_FILESYSTEM_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- ${DATA_DIR:-./data}:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -3,8 +3,8 @@ x-defaults: &defaults
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "100m"
|
||||
max-file: "3"
|
||||
max-size: 100m
|
||||
max-file: '3'
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -23,9 +23,9 @@ services:
|
||||
- TZ=${TZ:-UTC}
|
||||
- FIRECRAWL_API_KEY=${FIRECRAWL_API_KEY}
|
||||
ports:
|
||||
- "${MCP_FIRECRAWL_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_FIRECRAWL_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --quiet, --tries=1, --spider, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-grafana:
|
||||
@@ -16,12 +16,12 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_GRAFANA_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_GRAFANA_PORT_OVERRIDE:-8000}:8000'
|
||||
depends_on:
|
||||
grafana:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -45,13 +45,13 @@ services:
|
||||
- GF_SERVER_ROOT_URL=${GRAFANA_ROOT_URL:-http://localhost:3000}
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${GRAFANA_PORT_OVERRIDE:-3000}:3000"
|
||||
- '${GRAFANA_PORT_OVERRIDE:-3000}:3000'
|
||||
volumes:
|
||||
- grafana_data:/var/lib/grafana
|
||||
- grafana_config:/etc/grafana
|
||||
- grafana_logs:/var/log/grafana
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000/api/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:3000/api/health']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-markdownify:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_MARKDOWNIFY_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_MARKDOWNIFY_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-markitdown:
|
||||
@@ -14,11 +14,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_MARKITDOWN_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_MARKITDOWN_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- ${DATA_DIR:-./data}:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-memory:
|
||||
@@ -14,11 +14,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_MEMORY_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_MEMORY_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- memory_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-mongodb:
|
||||
@@ -16,12 +16,12 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_MONGODB_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_MONGODB_PORT_OVERRIDE:-8000}:8000'
|
||||
depends_on:
|
||||
mongodb:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -44,12 +44,12 @@ services:
|
||||
- MONGO_INITDB_DATABASE=${MONGODB_DATABASE:-mcp_db}
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MONGODB_PORT_OVERRIDE:-27017}:27017"
|
||||
- '${MONGODB_PORT_OVERRIDE:-27017}:27017'
|
||||
volumes:
|
||||
- mongodb_data:/data/db
|
||||
- mongodb_config:/data/configdb
|
||||
healthcheck:
|
||||
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
|
||||
test: [CMD, mongosh, --eval, "db.adminCommand('ping')"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-neo4j-cypher:
|
||||
@@ -17,9 +17,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_NEO4J_CYPHER_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_NEO4J_CYPHER_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-neo4j-memory:
|
||||
@@ -17,9 +17,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_NEO4J_MEMORY_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_NEO4J_MEMORY_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-notion:
|
||||
@@ -15,9 +15,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_NOTION_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_NOTION_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-openapi-schema:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_OPENAPI_SCHEMA_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_OPENAPI_SCHEMA_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-openapi:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_OPENAPI_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_OPENAPI_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-openweather:
|
||||
@@ -15,9 +15,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_OPENWEATHER_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_OPENWEATHER_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-paper-search:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_PAPER_SEARCH_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_PAPER_SEARCH_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
playwright:
|
||||
@@ -14,11 +14,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${PLAYWRIGHT_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${PLAYWRIGHT_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- playwright_data:/app/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
memory: 512M
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
shm_size: '2gb'
|
||||
shm_size: 2gb
|
||||
|
||||
volumes:
|
||||
playwright_data:
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp:
|
||||
@@ -16,12 +16,12 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_PORT_OVERRIDE:-8000}:8000'
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -40,13 +40,13 @@ services:
|
||||
image: ${GLOBAL_REGISTRY:-}redis:${REDIS_VERSION:-7-alpine}
|
||||
command: redis-server --appendonly yes
|
||||
ports:
|
||||
- "${REDIS_PORT_OVERRIDE:-6379}:6379"
|
||||
- '${REDIS_PORT_OVERRIDE:-6379}:6379'
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
test: [CMD, redis-cli, ping]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
rust-mcp-filesystem:
|
||||
@@ -15,14 +15,14 @@ services:
|
||||
- ALLOWED_PATHS=${ALLOWED_PATHS:-/projects}
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${RUST_MCP_FILESYSTEM_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${RUST_MCP_FILESYSTEM_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
# 挂载需要访问的目录到 /projects 下
|
||||
- ${HOST_WORKSPACE_PATH:-./workspace}:/projects/workspace:ro
|
||||
# 如果需要写入权限,移除 :ro 标志
|
||||
# - ${HOST_DATA_PATH:-./data}:/projects/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-sequentialthinking:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_SEQUENTIALTHINKING_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_SEQUENTIALTHINKING_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-sqlite:
|
||||
@@ -14,11 +14,11 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_SQLITE_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_SQLITE_PORT_OVERRIDE:-8000}:8000'
|
||||
volumes:
|
||||
- ${DATA_DIR:-./data}:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
tavily:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- TAVILY_API_KEY=${TAVILY_API_KEY}
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${TAVILY_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${TAVILY_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-text-to-graphql:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_TEXT_TO_GRAPHQL_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_TEXT_TO_GRAPHQL_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-time:
|
||||
@@ -14,9 +14,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_TIME_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_TIME_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
mcp-wolfram-alpha:
|
||||
@@ -15,9 +15,9 @@ services:
|
||||
- MCP_HOST=0.0.0.0
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_WOLFRAM_ALPHA_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_WOLFRAM_ALPHA_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --spider, -q, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -3,8 +3,8 @@ x-defaults: &defaults
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: "100m"
|
||||
max-file: "3"
|
||||
max-size: 100m
|
||||
max-file: '3'
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
@@ -22,9 +22,9 @@ services:
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
ports:
|
||||
- "${MCP_YOUTUBE_TRANSCRIPT_PORT_OVERRIDE:-8000}:8000"
|
||||
- '${MCP_YOUTUBE_TRANSCRIPT_PORT_OVERRIDE:-8000}:8000'
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8000/health"]
|
||||
test: [CMD, wget, --quiet, --tries=1, --spider, 'http://localhost:8000/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
23
package.json
Normal file
23
package.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "compose-anything",
|
||||
"version": "1.0.0",
|
||||
"packageManager": "pnpm@10.25.0",
|
||||
"description": "Deploy anything with Docker Compose",
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"keywords": [
|
||||
"compose",
|
||||
"docker",
|
||||
"deployment"
|
||||
],
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"lint:fix": "eslint . --fix",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@antfu/eslint-config": "^7.4.3",
|
||||
"eslint": "^10.0.1"
|
||||
}
|
||||
}
|
||||
2673
pnpm-lock.yaml
generated
Normal file
2673
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,17 +5,17 @@ binds:
|
||||
- policies:
|
||||
cors:
|
||||
allowOrigins:
|
||||
- "*"
|
||||
- '*'
|
||||
allowHeaders:
|
||||
- mcp-protocol-version
|
||||
- content-type
|
||||
- cache-control
|
||||
exposeHeaders:
|
||||
- "Mcp-Session-Id"
|
||||
- Mcp-Session-Id
|
||||
backends:
|
||||
- mcp:
|
||||
targets:
|
||||
- name: everything
|
||||
stdio:
|
||||
cmd: npx
|
||||
args: ["@modelcontextprotocol/server-everything"]
|
||||
args: ['@modelcontextprotocol/server-everything']
|
||||
|
||||
@@ -4,23 +4,23 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
agentgateway:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}cr.agentgateway.dev/agentgateway:${AGENTGATEWAY_VERSION:-0.11.2}
|
||||
ports:
|
||||
- "${AGENTGATEWAY_PORT_OVERRIDE:-3000}:3000"
|
||||
- "127.0.0.1:${AGENTGATEWAY_ADMIN_PORT_OVERRIDE:-15000}:15000"
|
||||
- '${AGENTGATEWAY_PORT_OVERRIDE:-3000}:3000'
|
||||
- '127.0.0.1:${AGENTGATEWAY_ADMIN_PORT_OVERRIDE:-15000}:15000'
|
||||
volumes:
|
||||
- ./config.yaml:/config.yaml:ro
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- ADMIN_ADDR=${AGENTGATEWAY_ADMIN_ADDR:-0.0.0.0:15000}
|
||||
command: ["-f", "/config.yaml"]
|
||||
command: [-f, /config.yaml]
|
||||
healthcheck:
|
||||
test: ["CMD", "agentgateway", "--version"]
|
||||
test: [CMD, agentgateway, --version]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,15 +4,15 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
apache:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}httpd:${APACHE_VERSION:-2.4.62-alpine3.20}
|
||||
ports:
|
||||
- "${APACHE_HTTP_PORT_OVERRIDE:-80}:80"
|
||||
- "${APACHE_HTTPS_PORT_OVERRIDE:-443}:443"
|
||||
- '${APACHE_HTTP_PORT_OVERRIDE:-80}:80'
|
||||
- '${APACHE_HTTPS_PORT_OVERRIDE:-443}:443'
|
||||
volumes:
|
||||
- apache_logs:/usr/local/apache2/logs
|
||||
- ./htdocs:/usr/local/apache2/htdocs:ro
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
cpus: ${APACHE_CPU_RESERVATION:-0.25}
|
||||
memory: ${APACHE_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test: ["CMD", "httpd", "-t"]
|
||||
test: [CMD, httpd, -t]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -129,14 +129,14 @@ apisix:
|
||||
|
||||
etcd:
|
||||
host:
|
||||
- "http://etcd:2379"
|
||||
prefix: "/apisix"
|
||||
- 'http://etcd:2379'
|
||||
prefix: /apisix
|
||||
timeout: 30
|
||||
|
||||
plugin_attr:
|
||||
prometheus:
|
||||
export_addr:
|
||||
ip: "0.0.0.0"
|
||||
ip: 0.0.0.0
|
||||
port: 9091
|
||||
```
|
||||
|
||||
|
||||
@@ -129,14 +129,14 @@ apisix:
|
||||
|
||||
etcd:
|
||||
host:
|
||||
- "http://etcd:2379"
|
||||
prefix: "/apisix"
|
||||
- 'http://etcd:2379'
|
||||
prefix: /apisix
|
||||
timeout: 30
|
||||
|
||||
plugin_attr:
|
||||
prometheus:
|
||||
export_addr:
|
||||
ip: "0.0.0.0"
|
||||
ip: 0.0.0.0
|
||||
port: 9091
|
||||
```
|
||||
|
||||
|
||||
@@ -4,16 +4,16 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
apisix:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}apache/apisix:${APISIX_VERSION:-3.13.0-debian}
|
||||
ports:
|
||||
- "${APISIX_HTTP_PORT_OVERRIDE:-9080}:9080"
|
||||
- "${APISIX_HTTPS_PORT_OVERRIDE:-9443}:9443"
|
||||
- "${APISIX_ADMIN_PORT_OVERRIDE:-9180}:9180"
|
||||
- '${APISIX_HTTP_PORT_OVERRIDE:-9080}:9080'
|
||||
- '${APISIX_HTTPS_PORT_OVERRIDE:-9443}:9443'
|
||||
- '${APISIX_ADMIN_PORT_OVERRIDE:-9180}:9180'
|
||||
volumes:
|
||||
- apisix_logs:/usr/local/apisix/logs
|
||||
|
||||
@@ -36,7 +36,7 @@ services:
|
||||
memory: ${APISIX_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD-SHELL", "curl -f http://localhost:9080/apisix/status || exit 1"]
|
||||
[CMD-SHELL, 'curl -f http://localhost:9080/apisix/status || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -46,7 +46,7 @@ services:
|
||||
<<: *defaults
|
||||
image: quay.io/coreos/etcd:${ETCD_VERSION:-v3.6.0}
|
||||
ports:
|
||||
- "${ETCD_CLIENT_PORT_OVERRIDE:-2379}:2379"
|
||||
- '${ETCD_CLIENT_PORT_OVERRIDE:-2379}:2379'
|
||||
volumes:
|
||||
- etcd_data:/etcd-data
|
||||
environment:
|
||||
@@ -90,7 +90,7 @@ services:
|
||||
cpus: ${ETCD_CPU_RESERVATION:-0.1}
|
||||
memory: ${ETCD_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test: ["CMD", "etcdctl", "endpoint", "health"]
|
||||
test: [CMD, etcdctl, endpoint, health]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -101,7 +101,7 @@ services:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}apache/apisix-dashboard:${APISIX_DASHBOARD_VERSION:-3.0.1-alpine}
|
||||
ports:
|
||||
- "${APISIX_DASHBOARD_PORT_OVERRIDE:-9000}:9000"
|
||||
- '${APISIX_DASHBOARD_PORT_OVERRIDE:-9000}:9000'
|
||||
volumes:
|
||||
- dashboard_conf:/usr/local/apisix-dashboard/conf
|
||||
environment:
|
||||
|
||||
@@ -2,7 +2,7 @@ global:
|
||||
scrape_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'bifrost'
|
||||
metrics_path: '/metrics'
|
||||
- job_name: bifrost
|
||||
metrics_path: /metrics
|
||||
static_configs:
|
||||
- targets: ['bifrost:8080']
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
bifrost:
|
||||
@@ -13,7 +13,7 @@ services:
|
||||
volumes:
|
||||
- bifrost_data:/app/data
|
||||
ports:
|
||||
- "${BIFROST_PORT:-28080}:8080"
|
||||
- '${BIFROST_PORT:-28080}:8080'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
deploy:
|
||||
@@ -26,14 +26,13 @@ services:
|
||||
memory: ${BIFROST_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:8080/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:8080/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -42,27 +41,26 @@ services:
|
||||
prometheus:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}prom/prometheus:${PROMETHEUS_VERSION:-v3.8.1}
|
||||
profiles: ["telemetry"]
|
||||
profiles: [telemetry]
|
||||
volumes:
|
||||
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
|
||||
- prometheus_data:/prometheus
|
||||
command:
|
||||
- "--config.file=/etc/prometheus/prometheus.yml"
|
||||
- "--storage.tsdb.path=/prometheus"
|
||||
- "--web.console.libraries=/usr/share/prometheus/console_libraries"
|
||||
- "--web.console.templates=/usr/share/prometheus/consoles"
|
||||
- --config.file=/etc/prometheus/prometheus.yml
|
||||
- --storage.tsdb.path=/prometheus
|
||||
- --web.console.libraries=/usr/share/prometheus/console_libraries
|
||||
- --web.console.templates=/usr/share/prometheus/consoles
|
||||
ports:
|
||||
- "${PROMETHEUS_PORT:-29090}:9090"
|
||||
- '${PROMETHEUS_PORT:-29090}:9090'
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:9090/-/healthy",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:9090/-/healthy'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -79,7 +77,7 @@ services:
|
||||
grafana:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}grafana/grafana:${GRAFANA_VERSION:-12.3.1}
|
||||
profiles: ["telemetry"]
|
||||
profiles: [telemetry]
|
||||
volumes:
|
||||
- ./config/grafana/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml
|
||||
- grafana_data:/var/lib/grafana
|
||||
@@ -88,17 +86,16 @@ services:
|
||||
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
|
||||
- GF_USERS_ALLOW_SIGN_UP=false
|
||||
ports:
|
||||
- "${GRAFANA_PORT:-23000}:3000"
|
||||
- '${GRAFANA_PORT:-23000}:3000'
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:3000/api/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:3000/api/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -31,7 +31,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
budibase:
|
||||
@@ -39,7 +39,7 @@ services:
|
||||
image: ${GLOBAL_REGISTRY:-}budibase/budibase:${BUDIBASE_VERSION:-3.23.0}
|
||||
container_name: budibase
|
||||
ports:
|
||||
- "${BUDIBASE_PORT_OVERRIDE:-10000}:80"
|
||||
- '${BUDIBASE_PORT_OVERRIDE:-10000}:80'
|
||||
environment:
|
||||
# Core settings
|
||||
- APP_PORT=${BUDIBASE_APP_PORT:-4002}
|
||||
@@ -75,14 +75,13 @@ services:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--quiet",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --quiet
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -90,11 +89,11 @@ services:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${BUDIBASE_CPU_LIMIT:-2.0}"
|
||||
memory: "${BUDIBASE_MEMORY_LIMIT:-2G}"
|
||||
cpus: '${BUDIBASE_CPU_LIMIT:-2.0}'
|
||||
memory: '${BUDIBASE_MEMORY_LIMIT:-2G}'
|
||||
reservations:
|
||||
cpus: "${BUDIBASE_CPU_RESERVATION:-0.5}"
|
||||
memory: "${BUDIBASE_MEMORY_RESERVATION:-512M}"
|
||||
cpus: '${BUDIBASE_CPU_RESERVATION:-0.5}'
|
||||
memory: '${BUDIBASE_MEMORY_RESERVATION:-512M}'
|
||||
|
||||
redis:
|
||||
<<: *defaults
|
||||
@@ -104,18 +103,18 @@ services:
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
test: [CMD, redis-cli, ping]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${REDIS_CPU_LIMIT:-0.5}"
|
||||
memory: "${REDIS_MEMORY_LIMIT:-512M}"
|
||||
cpus: '${REDIS_CPU_LIMIT:-0.5}'
|
||||
memory: '${REDIS_MEMORY_LIMIT:-512M}'
|
||||
reservations:
|
||||
cpus: "${REDIS_CPU_RESERVATION:-0.1}"
|
||||
memory: "${REDIS_MEMORY_RESERVATION:-128M}"
|
||||
cpus: '${REDIS_CPU_RESERVATION:-0.1}'
|
||||
memory: '${REDIS_MEMORY_RESERVATION:-128M}'
|
||||
|
||||
volumes:
|
||||
budibase_data:
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
bytebot-desktop:
|
||||
<<: *defaults
|
||||
image: ${GHCR_IO_REGISTRY:-ghcr.io}/bytebot-ai/bytebot-desktop:${BYTEBOT_VERSION:-edge}
|
||||
ports:
|
||||
- "${BYTEBOT_DESKTOP_PORT_OVERRIDE:-9990}:9990"
|
||||
- '${BYTEBOT_DESKTOP_PORT_OVERRIDE:-9990}:9990'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
shm_size: 2gb
|
||||
@@ -25,14 +25,13 @@ services:
|
||||
memory: ${BYTEBOT_DESKTOP_MEMORY_RESERVATION:-2G}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:9990/",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:9990/'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -47,7 +46,7 @@ services:
|
||||
bytebot-db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "${BYTEBOT_AGENT_PORT_OVERRIDE:-9991}:9991"
|
||||
- '${BYTEBOT_AGENT_PORT_OVERRIDE:-9991}:9991'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- BYTEBOTD_URL=http://bytebot-desktop:9990
|
||||
@@ -65,14 +64,13 @@ services:
|
||||
memory: ${BYTEBOT_AGENT_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:9991/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:9991/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -85,7 +83,7 @@ services:
|
||||
bytebot-agent:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "${BYTEBOT_UI_PORT_OVERRIDE:-9992}:9992"
|
||||
- '${BYTEBOT_UI_PORT_OVERRIDE:-9992}:9992'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
- BYTEBOT_AGENT_BASE_URL=http://localhost:9991
|
||||
@@ -100,14 +98,13 @@ services:
|
||||
memory: ${BYTEBOT_UI_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--no-verbose",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:9992/",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --no-verbose
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:9992/'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -133,7 +130,7 @@ services:
|
||||
cpus: ${BYTEBOT_DB_CPU_RESERVATION:-0.25}
|
||||
memory: ${BYTEBOT_DB_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
|
||||
test: [CMD-SHELL, pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -57,7 +57,7 @@ Please modify the `.env` file as needed for your use case.
|
||||
|
||||
```sql
|
||||
-- Create a keyspace
|
||||
CREATE KEYSPACE test_keyspace
|
||||
CREATE KEYSPACE test_keyspace
|
||||
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
|
||||
|
||||
-- Use the keyspace
|
||||
@@ -71,7 +71,7 @@ CREATE TABLE users (
|
||||
);
|
||||
|
||||
-- Insert data
|
||||
INSERT INTO users (id, name, email)
|
||||
INSERT INTO users (id, name, email)
|
||||
VALUES (uuid(), 'John Doe', 'john@example.com');
|
||||
|
||||
-- Query data
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
```sql
|
||||
-- 创建键空间
|
||||
CREATE KEYSPACE test_keyspace
|
||||
CREATE KEYSPACE test_keyspace
|
||||
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
|
||||
|
||||
-- 使用键空间
|
||||
@@ -71,7 +71,7 @@ CREATE TABLE users (
|
||||
);
|
||||
|
||||
-- 插入数据
|
||||
INSERT INTO users (id, name, email)
|
||||
INSERT INTO users (id, name, email)
|
||||
VALUES (uuid(), 'John Doe', 'john@example.com');
|
||||
|
||||
-- 查询数据
|
||||
|
||||
@@ -4,15 +4,15 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
cassandra:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}cassandra:${CASSANDRA_VERSION:-5.0.2}
|
||||
ports:
|
||||
- "${CASSANDRA_CQL_PORT_OVERRIDE:-9042}:9042"
|
||||
- "${CASSANDRA_THRIFT_PORT_OVERRIDE:-9160}:9160"
|
||||
- '${CASSANDRA_CQL_PORT_OVERRIDE:-9042}:9042'
|
||||
- '${CASSANDRA_THRIFT_PORT_OVERRIDE:-9160}:9160'
|
||||
volumes:
|
||||
- cassandra_data:/var/lib/cassandra
|
||||
- cassandra_logs:/var/log/cassandra
|
||||
@@ -39,7 +39,7 @@ services:
|
||||
cpus: ${CASSANDRA_CPU_RESERVATION:-0.50}
|
||||
memory: ${CASSANDRA_MEMORY_RESERVATION:-1G}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "cqlsh -e 'DESCRIBE CLUSTER'"]
|
||||
test: [CMD-SHELL, "cqlsh -e 'DESCRIBE CLUSTER'"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
@@ -4,15 +4,15 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
clash:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}centralx/clash:${CLASH_VERSION:-1.18.0}
|
||||
ports:
|
||||
- "7880:80"
|
||||
- "7890:7890"
|
||||
- '7880:80'
|
||||
- '7890:7890'
|
||||
volumes:
|
||||
- ./config.yaml:/home/runner/.config/clash/config.yaml
|
||||
environment:
|
||||
@@ -26,7 +26,7 @@ services:
|
||||
cpus: ${CLASH_CPU_RESERVATION:-0.25}
|
||||
memory: ${CLASH_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:80/"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:80/']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
clickhouse:
|
||||
@@ -24,10 +24,10 @@ services:
|
||||
# - ./config.xml:/etc/clickhouse-server/config.d/config.xml
|
||||
# - ./users.xml:/etc/clickhouse-server/users.d/users.xml
|
||||
ports:
|
||||
- "${CLICKHOUSE_HTTP_PORT_OVERRIDE:-8123}:8123"
|
||||
- "${CLICKHOUSE_NATIVE_PORT_OVERRIDE:-9000}:9000"
|
||||
- "${CLICKHOUSE_MYSQL_PORT_OVERRIDE:-9004}:9004"
|
||||
- "${CLICKHOUSE_POSTGRES_PORT_OVERRIDE:-9005}:9005"
|
||||
- '${CLICKHOUSE_HTTP_PORT_OVERRIDE:-8123}:8123'
|
||||
- '${CLICKHOUSE_NATIVE_PORT_OVERRIDE:-9000}:9000'
|
||||
- '${CLICKHOUSE_MYSQL_PORT_OVERRIDE:-9004}:9004'
|
||||
- '${CLICKHOUSE_POSTGRES_PORT_OVERRIDE:-9005}:9005'
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 262144
|
||||
@@ -42,10 +42,9 @@ services:
|
||||
memory: ${CLICKHOUSE_MEMORY_RESERVATION:-1G}
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1",
|
||||
]
|
||||
- CMD-SHELL
|
||||
- 'wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -29,7 +29,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
conductor-server:
|
||||
@@ -40,8 +40,8 @@ services:
|
||||
dockerfile: Dockerfile
|
||||
container_name: conductor-server
|
||||
ports:
|
||||
- "${CONDUCTOR_SERVER_PORT_OVERRIDE:-8080}:8080"
|
||||
- "${CONDUCTOR_UI_PORT_OVERRIDE:-5000}:5000"
|
||||
- '${CONDUCTOR_SERVER_PORT_OVERRIDE:-8080}:8080'
|
||||
- '${CONDUCTOR_UI_PORT_OVERRIDE:-5000}:5000'
|
||||
environment:
|
||||
# Database configuration
|
||||
- spring.datasource.url=jdbc:postgresql://postgres:5432/${POSTGRES_DB}
|
||||
@@ -67,14 +67,13 @@ services:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"wget",
|
||||
"--quiet",
|
||||
"--tries=1",
|
||||
"--spider",
|
||||
"http://localhost:8080/health",
|
||||
]
|
||||
- CMD
|
||||
- wget
|
||||
- --quiet
|
||||
- --tries=1
|
||||
- --spider
|
||||
- 'http://localhost:8080/health'
|
||||
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@@ -82,11 +81,11 @@ services:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${CONDUCTOR_CPU_LIMIT:-2.0}"
|
||||
memory: "${CONDUCTOR_MEMORY_LIMIT:-2G}"
|
||||
cpus: '${CONDUCTOR_CPU_LIMIT:-2.0}'
|
||||
memory: '${CONDUCTOR_MEMORY_LIMIT:-2G}'
|
||||
reservations:
|
||||
cpus: "${CONDUCTOR_CPU_RESERVATION:-0.5}"
|
||||
memory: "${CONDUCTOR_MEMORY_RESERVATION:-512M}"
|
||||
cpus: '${CONDUCTOR_CPU_RESERVATION:-0.5}'
|
||||
memory: '${CONDUCTOR_MEMORY_RESERVATION:-512M}'
|
||||
|
||||
postgres:
|
||||
<<: *defaults
|
||||
@@ -102,21 +101,20 @@ services:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"pg_isready -U ${POSTGRES_USER:-conductor} -d ${POSTGRES_DB:-conductor}",
|
||||
]
|
||||
- CMD-SHELL
|
||||
- 'pg_isready -U ${POSTGRES_USER:-conductor} -d ${POSTGRES_DB:-conductor}'
|
||||
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${POSTGRES_CPU_LIMIT:-1.0}"
|
||||
memory: "${POSTGRES_MEMORY_LIMIT:-1G}"
|
||||
cpus: '${POSTGRES_CPU_LIMIT:-1.0}'
|
||||
memory: '${POSTGRES_MEMORY_LIMIT:-1G}'
|
||||
reservations:
|
||||
cpus: "${POSTGRES_CPU_RESERVATION:-0.25}"
|
||||
memory: "${POSTGRES_MEMORY_RESERVATION:-256M}"
|
||||
cpus: '${POSTGRES_CPU_RESERVATION:-0.25}'
|
||||
memory: '${POSTGRES_MEMORY_RESERVATION:-256M}'
|
||||
|
||||
elasticsearch:
|
||||
<<: *defaults
|
||||
@@ -131,7 +129,7 @@ services:
|
||||
- elasticsearch_data:/usr/share/elasticsearch/data
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health || exit 1"]
|
||||
[CMD-SHELL, 'curl -f http://localhost:9200/_cluster/health || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@@ -139,11 +137,11 @@ services:
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "${ELASTICSEARCH_CPU_LIMIT:-2.0}"
|
||||
memory: "${ELASTICSEARCH_MEMORY_LIMIT:-2G}"
|
||||
cpus: '${ELASTICSEARCH_CPU_LIMIT:-2.0}'
|
||||
memory: '${ELASTICSEARCH_MEMORY_LIMIT:-2G}'
|
||||
reservations:
|
||||
cpus: "${ELASTICSEARCH_CPU_RESERVATION:-0.5}"
|
||||
memory: "${ELASTICSEARCH_MEMORY_RESERVATION:-1G}"
|
||||
cpus: '${ELASTICSEARCH_CPU_RESERVATION:-0.5}'
|
||||
memory: '${ELASTICSEARCH_MEMORY_RESERVATION:-1G}'
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
@@ -4,18 +4,18 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
consul:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}consul:${CONSUL_VERSION:-1.20.3}
|
||||
ports:
|
||||
- "${CONSUL_HTTP_PORT_OVERRIDE:-8500}:8500"
|
||||
- "${CONSUL_DNS_PORT_OVERRIDE:-8600}:8600/udp"
|
||||
- "${CONSUL_SERF_LAN_PORT_OVERRIDE:-8301}:8301"
|
||||
- "${CONSUL_SERF_WAN_PORT_OVERRIDE:-8302}:8302"
|
||||
- "${CONSUL_SERVER_RPC_PORT_OVERRIDE:-8300}:8300"
|
||||
- '${CONSUL_HTTP_PORT_OVERRIDE:-8500}:8500'
|
||||
- '${CONSUL_DNS_PORT_OVERRIDE:-8600}:8600/udp'
|
||||
- '${CONSUL_SERF_LAN_PORT_OVERRIDE:-8301}:8301'
|
||||
- '${CONSUL_SERF_WAN_PORT_OVERRIDE:-8302}:8302'
|
||||
- '${CONSUL_SERVER_RPC_PORT_OVERRIDE:-8300}:8300'
|
||||
volumes:
|
||||
- consul_data:/consul/data
|
||||
- consul_config:/consul/config
|
||||
@@ -44,7 +44,7 @@ services:
|
||||
cpus: ${CONSUL_CPU_RESERVATION:-0.25}
|
||||
memory: ${CONSUL_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "consul members"]
|
||||
test: [CMD-SHELL, consul members]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
dnsmasq:
|
||||
@@ -13,8 +13,8 @@ services:
|
||||
volumes:
|
||||
- ./dnsmasq.conf:/etc/dnsmasq.conf:ro
|
||||
ports:
|
||||
- "${DNSMASQ_DNS_PORT_OVERRIDE:-53}:53/udp"
|
||||
- "${DNSMASQ_DNS_PORT_OVERRIDE:-53}:53/tcp"
|
||||
- '${DNSMASQ_DNS_PORT_OVERRIDE:-53}:53/udp'
|
||||
- '${DNSMASQ_DNS_PORT_OVERRIDE:-53}:53/tcp'
|
||||
environment:
|
||||
- TZ=${TZ:-UTC}
|
||||
cap_drop:
|
||||
@@ -23,7 +23,7 @@ services:
|
||||
- NET_ADMIN
|
||||
- NET_BIND_SERVICE
|
||||
healthcheck:
|
||||
test: ["CMD", "nslookup", "-timeout=1", "localhost", "127.0.0.1"]
|
||||
test: [CMD, nslookup, -timeout=1, localhost, 127.0.0.1]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,15 +4,15 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
docker_android:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}halimqarroum/docker-android:${DOCKER_ANDROID_VERSION:-api-33}
|
||||
ports:
|
||||
- "${DOCKER_ANDROID_ADB_PORT_OVERRIDE:-5555}:5555"
|
||||
- "${DOCKER_ANDROID_CONSOLE_PORT_OVERRIDE:-5554}:5554"
|
||||
- '${DOCKER_ANDROID_ADB_PORT_OVERRIDE:-5555}:5555'
|
||||
- '${DOCKER_ANDROID_CONSOLE_PORT_OVERRIDE:-5554}:5554'
|
||||
volumes:
|
||||
- docker_android_data:/data
|
||||
- ${DOCKER_ANDROID_KEYS_DIR:-./keys}:/keys:ro
|
||||
@@ -24,9 +24,9 @@ services:
|
||||
- MEMORY=${DOCKER_ANDROID_MEMORY:-8192}
|
||||
- CORES=${DOCKER_ANDROID_CORES:-4}
|
||||
devices:
|
||||
- "${DOCKER_ANDROID_KVM_DEVICE:-/dev/kvm}:/dev/kvm"
|
||||
- '${DOCKER_ANDROID_KVM_DEVICE:-/dev/kvm}:/dev/kvm'
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "adb devices 2>/dev/null | grep -q emulator"]
|
||||
test: [CMD-SHELL, 'adb devices 2>/dev/null | grep -q emulator']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@@ -46,8 +46,8 @@ services:
|
||||
- gpu
|
||||
image: ${GLOBAL_REGISTRY:-}halimqarroum/docker-android:${DOCKER_ANDROID_GPU_VERSION:-api-33-cuda}
|
||||
ports:
|
||||
- "${DOCKER_ANDROID_ADB_PORT_OVERRIDE:-5555}:5555"
|
||||
- "${DOCKER_ANDROID_CONSOLE_PORT_OVERRIDE:-5554}:5554"
|
||||
- '${DOCKER_ANDROID_ADB_PORT_OVERRIDE:-5555}:5555'
|
||||
- '${DOCKER_ANDROID_CONSOLE_PORT_OVERRIDE:-5554}:5554'
|
||||
volumes:
|
||||
- docker_android_data:/data
|
||||
- ${DOCKER_ANDROID_KEYS_DIR:-./keys}:/keys:ro
|
||||
@@ -59,9 +59,9 @@ services:
|
||||
- MEMORY=${DOCKER_ANDROID_MEMORY:-8192}
|
||||
- CORES=${DOCKER_ANDROID_CORES:-4}
|
||||
devices:
|
||||
- "${DOCKER_ANDROID_KVM_DEVICE:-/dev/kvm}:/dev/kvm"
|
||||
- '${DOCKER_ANDROID_KVM_DEVICE:-/dev/kvm}:/dev/kvm'
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "adb devices 2>/dev/null | grep -q emulator"]
|
||||
test: [CMD-SHELL, 'adb devices 2>/dev/null | grep -q emulator']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
@@ -4,7 +4,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
registry:
|
||||
@@ -33,7 +33,7 @@ services:
|
||||
cpus: ${REGISTRY_CPU_RESERVATION:-0.1}
|
||||
memory: ${REGISTRY_MEMORY_RESERVATION:-128M}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5000/"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:5000/']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -4,14 +4,14 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
dockge:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}louislam/dockge:${DOCKGE_VERSION:-1}
|
||||
ports:
|
||||
- "${PORT_OVERRIDE:-5001}:5001"
|
||||
- '${PORT_OVERRIDE:-5001}:5001'
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- dockge_data:/app/data
|
||||
@@ -30,7 +30,7 @@ services:
|
||||
cpus: ${DOCKGE_CPU_RESERVATION:-0.25}
|
||||
memory: ${DOCKGE_MEMORY_RESERVATION:-256M}
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:5001/"]
|
||||
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://localhost:5001/']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
@@ -8,7 +8,7 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
# Doris Frontend (FE) node
|
||||
@@ -17,10 +17,10 @@ services:
|
||||
image: ${GLOBAL_REGISTRY:-}apache/doris:${DORIS_VERSION:-3.0.0}-fe-x86_64
|
||||
hostname: doris-fe
|
||||
ports:
|
||||
- "${DORIS_FE_QUERY_PORT_OVERRIDE:-9030}:9030"
|
||||
- "${DORIS_FE_HTTP_PORT_OVERRIDE:-8030}:8030"
|
||||
- "${DORIS_FE_RPC_PORT_OVERRIDE:-9020}:9020"
|
||||
- "${DORIS_FE_EDIT_LOG_PORT_OVERRIDE:-9010}:9010"
|
||||
- '${DORIS_FE_QUERY_PORT_OVERRIDE:-9030}:9030'
|
||||
- '${DORIS_FE_HTTP_PORT_OVERRIDE:-8030}:8030'
|
||||
- '${DORIS_FE_RPC_PORT_OVERRIDE:-9020}:9020'
|
||||
- '${DORIS_FE_EDIT_LOG_PORT_OVERRIDE:-9010}:9010'
|
||||
volumes:
|
||||
- doris_fe_data:/opt/apache-doris/fe/doris-meta
|
||||
environment:
|
||||
@@ -28,7 +28,7 @@ services:
|
||||
- FE_SERVERS=doris-fe:9010
|
||||
- FRONTEND_REPLICAS=1
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -sf http://localhost:8030/api/v2/system/info || exit 1"]
|
||||
test: [CMD-SHELL, 'curl -sf http://localhost:8030/api/v2/system/info || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@@ -48,9 +48,9 @@ services:
|
||||
image: ${GLOBAL_REGISTRY:-}apache/doris:${DORIS_VERSION:-3.0.0}-be-x86_64
|
||||
hostname: doris-be
|
||||
ports:
|
||||
- "${DORIS_BE_HEARTBEAT_PORT_OVERRIDE:-9050}:9050"
|
||||
- "${DORIS_BE_THRIFT_RPC_PORT_OVERRIDE:-9060}:9060"
|
||||
- "${DORIS_BE_HTTP_PORT_OVERRIDE:-8040}:8040"
|
||||
- '${DORIS_BE_HEARTBEAT_PORT_OVERRIDE:-9050}:9050'
|
||||
- '${DORIS_BE_THRIFT_RPC_PORT_OVERRIDE:-9060}:9060'
|
||||
- '${DORIS_BE_HTTP_PORT_OVERRIDE:-8040}:8040'
|
||||
volumes:
|
||||
- doris_be_data:/opt/apache-doris/be/storage
|
||||
environment:
|
||||
@@ -60,7 +60,7 @@ services:
|
||||
doris-fe:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -sf http://localhost:8040/api/health || exit 1"]
|
||||
test: [CMD-SHELL, 'curl -sf http://localhost:8040/api/health || exit 1']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
@@ -4,13 +4,13 @@ x-defaults: &defaults
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
max-file: '3'
|
||||
|
||||
services:
|
||||
duckdb:
|
||||
<<: *defaults
|
||||
image: ${GLOBAL_REGISTRY:-}davidgasquez/duckdb:${DUCKDB_VERSION:-v1.1.3}
|
||||
command: ["duckdb", "/data/duckdb.db"]
|
||||
command: [duckdb, /data/duckdb.db]
|
||||
stdin_open: true
|
||||
tty: true
|
||||
environment:
|
||||
@@ -28,7 +28,7 @@ services:
|
||||
cpus: ${DUCKDB_CPU_RESERVATION:-0.5}
|
||||
memory: ${DUCKDB_MEMORY_RESERVATION:-512M}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "duckdb /data/duckdb.db -c 'SELECT 1' || exit 1"]
|
||||
test: [CMD-SHELL, "duckdb /data/duckdb.db -c 'SELECT 1' || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user