Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/bobo070314_igp-infrastructure.json
T

1 line
12 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"repo": "bobo070314/igp-infrastructure", "files": {"docker/docker-compose.yml": {"660099d122ad51345a1e3464f5510a4e6509a818": {"t": 1785746992.6153007, "n": 5124, "h": "4d355ce843b50109", "c": "# IGP 国际集团 — Docker Compose 部署方案\n#\n# 对标:OpenClaw \"一台Ubuntu + Docker长期运行\"\n# 方案:docker-compose.yml + .env + 生产级安全加固\n#\n# 服务构成:\n# openclaw-gateway → 主 Gateway(端口 18791,国际版)\n# igp-api → IGP HTTP API + 硅胶体记忆(端口 8080)\n# cloudflared → Cloudflare Tunnel(可选,见 cloudflare/)\n# postgres → 记忆持久化(可选,生产环境)\n# metamcp → MCP 聚合代理(可选,见 metamcp/)\n#\n# 使用方式:\n# docker compose up -d # 启动全部服务\n# docker compose exec openclaw-gateway openclaw onboard # 首次配置\n# docker compose logs -f # 查看日志\n# docker compose down # 停止\n\nversion: \"3.8\"\n\nx-logging: &default-logging\n driver: \"json-file\"\n options:\n max-size: \"10m\"\n max-file: \"3\"\n\nservices:\n # ====================================================================\n # 1. 主 Gateway — 集团总部神经中枢\n # ====================================================================\n openclaw-gateway:\n image: openclaw/openclaw:latest\n container_name: igp-gateway\n restart: unless-stopped\n # 生产建议:固定 tag,不要用 latest\n # image: openclaw/openclaw:2026.7.1\n ports:\n # 只绑定 127.0.0.1,不暴露公网\n - \"127.0.0.1:18791:18789\"\n environment:\n - NODE_ENV=production\n # Gateway Token — 来自 .env\n - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN:?err}\n # 模型 API Key\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:?err}\n # 可选 fallback\n # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}\n # - OPENAI_API_KEY=${OPENAI_API_KEY:-}\n volumes:\n # 状态持久化 — 指向宿主机 data 目录\n - ./data/gateway:/home/node/.openclaw\n # 配置文件\n - ./config/openclaw.json:/app/openclaw.json:ro\n # 工作区\n - ./workspace:/workspace\n shm_size: \"1gb\"\n mem_limit: \"4g\"\n mem_reservation: \"2g\"\n cpus: \"2.0\"\n logging: *default-logging\n healthcheck:\n test: [\"CMD\", \"node\", \"openclaw.mjs\", \"gateway\", \"--version\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 60s\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n cap_add:\n - NET_BIND_SERVICE\n user: \"node:node\"\n\n # ====================================================================\n # 2. IGP API — 自研 HTTP API + 硅胶体记忆\n # ====================================================================\n igp-api:\n build:\n context: .\n dockerfile: Dockerfile.igp-api\n container_name: igp-api\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8080:8080\"\n environment:\n - PYTHONUNBUFFERED=1\n - PYTHONIOENCODING=utf-8\n volumes:\n - ./data/igp:/app/data\n # 映射 IGP 代码\n - ../../family-corp-teams/v5/v6:/app/v6:ro\n mem_limit: \"1g\"\n mem_reservation: \"512m\"\n cpus: \"1.0\"\n logging: *default-logging\n healthcheck:\n test: [\"CMD\", \"python\", \"-c\", \"import urllib.request; urllib.request.urlopen('http://localhost:8080/health')\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 30s\n depends_on:\n openclaw-gateway:\n condition: service_healthy\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n user: \"node:node\"\n\n # ====================================================================\n # 3. Cloudflare Tunnel — 园区围墙(可选)\n # 启用方式: 设置 CF_TUNNEL_TOKEN 环境变量\n # ====================================================================\n cloudflared:\n image: cloudflare/cloudflared:latest\n container_name: igp-cloudflared\n restart: unless-stopped\n command: tunnel --no-autoupdate run\n environment:\n - TUNNEL_TOKEN=${CF_TUNNEL_TOKEN:-}\n profiles:\n - tunnel\n mem_limit: \"128m\"\n cpus: \"0.25\"\n logging: *default-logging\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n\n # ====================================================================\n # 4. PostgreSQL — 生产级持久化(可选)\n # ====================================================================\n postgres:\n image: postgres:16-alpine\n container_name: igp-postgres\n restart: unless-stopped\n environment:\n POSTGRES_USER: ${PG_USER:-igp}\n POSTGRES_PASSWORD: ${PG_PASSWORD:?err}\n POSTGRES_DB: ${PG_DB:-igp_memory}\n volumes:\n - ./data/postgres:/var/lib/postgresql/data\n profiles:\n - prod\n mem_limit: \"512m\"\n cpus: \"1.0\"\n logging: *default-logging\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${PG_USER:-igp}\"]\n interval: 10s\n timeout: 5s\n retries: 5\n\n # ====================================================================\n # 5. MetaMCP — MCP 聚合代理(可选)\n # ====================================================================\n metamcp:\n image: metamcp/metamcp:latest\n container_name: igp-metamcp\n restart: unless-stopped\n ports:\n - \"127.0.0.1:12008:12008\"\n environment:\n - MCP_ENDPOINT=http://igp-api:8080/mcp\n profiles:\n - full\n mem_limit: \"256m\"\n cpus: \"0.5\"\n logging: *default-logging\n depends_on:\n igp-api:\n condition: service_healthy\n\nvolumes:\n gateway-state:\n igp-data:\n pg-data:\n\nnetworks:\n default:\n driver: bridge\n ipam:\n config:\n - subnet: 172.20.0.0/16\n"}, "13cc751354c0f383bdd9f6ead46f78b1119546e8": {"t": 1785769578.7305145, "n": 5124, "h": "4d355ce843b50109", "c": "# IGP 国际集团 — Docker Compose 部署方案\n#\n# 对标:OpenClaw \"一台Ubuntu + Docker长期运行\"\n# 方案:docker-compose.yml + .env + 生产级安全加固\n#\n# 服务构成:\n# openclaw-gateway → 主 Gateway(端口 18791,国际版)\n# igp-api → IGP HTTP API + 硅胶体记忆(端口 8080)\n# cloudflared → Cloudflare Tunnel(可选,见 cloudflare/)\n# postgres → 记忆持久化(可选,生产环境)\n# metamcp → MCP 聚合代理(可选,见 metamcp/)\n#\n# 使用方式:\n# docker compose up -d # 启动全部服务\n# docker compose exec openclaw-gateway openclaw onboard # 首次配置\n# docker compose logs -f # 查看日志\n# docker compose down # 停止\n\nversion: \"3.8\"\n\nx-logging: &default-logging\n driver: \"json-file\"\n options:\n max-size: \"10m\"\n max-file: \"3\"\n\nservices:\n # ====================================================================\n # 1. 主 Gateway — 集团总部神经中枢\n # ====================================================================\n openclaw-gateway:\n image: openclaw/openclaw:latest\n container_name: igp-gateway\n restart: unless-stopped\n # 生产建议:固定 tag,不要用 latest\n # image: openclaw/openclaw:2026.7.1\n ports:\n # 只绑定 127.0.0.1,不暴露公网\n - \"127.0.0.1:18791:18789\"\n environment:\n - NODE_ENV=production\n # Gateway Token — 来自 .env\n - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN:?err}\n # 模型 API Key\n - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:?err}\n # 可选 fallback\n # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}\n # - OPENAI_API_KEY=${OPENAI_API_KEY:-}\n volumes:\n # 状态持久化 — 指向宿主机 data 目录\n - ./data/gateway:/home/node/.openclaw\n # 配置文件\n - ./config/openclaw.json:/app/openclaw.json:ro\n # 工作区\n - ./workspace:/workspace\n shm_size: \"1gb\"\n mem_limit: \"4g\"\n mem_reservation: \"2g\"\n cpus: \"2.0\"\n logging: *default-logging\n healthcheck:\n test: [\"CMD\", \"node\", \"openclaw.mjs\", \"gateway\", \"--version\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 60s\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n cap_add:\n - NET_BIND_SERVICE\n user: \"node:node\"\n\n # ====================================================================\n # 2. IGP API — 自研 HTTP API + 硅胶体记忆\n # ====================================================================\n igp-api:\n build:\n context: .\n dockerfile: Dockerfile.igp-api\n container_name: igp-api\n restart: unless-stopped\n ports:\n - \"127.0.0.1:8080:8080\"\n environment:\n - PYTHONUNBUFFERED=1\n - PYTHONIOENCODING=utf-8\n volumes:\n - ./data/igp:/app/data\n # 映射 IGP 代码\n - ../../family-corp-teams/v5/v6:/app/v6:ro\n mem_limit: \"1g\"\n mem_reservation: \"512m\"\n cpus: \"1.0\"\n logging: *default-logging\n healthcheck:\n test: [\"CMD\", \"python\", \"-c\", \"import urllib.request; urllib.request.urlopen('http://localhost:8080/health')\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 30s\n depends_on:\n openclaw-gateway:\n condition: service_healthy\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n user: \"node:node\"\n\n # ====================================================================\n # 3. Cloudflare Tunnel — 园区围墙(可选)\n # 启用方式: 设置 CF_TUNNEL_TOKEN 环境变量\n # ====================================================================\n cloudflared:\n image: cloudflare/cloudflared:latest\n container_name: igp-cloudflared\n restart: unless-stopped\n command: tunnel --no-autoupdate run\n environment:\n - TUNNEL_TOKEN=${CF_TUNNEL_TOKEN:-}\n profiles:\n - tunnel\n mem_limit: \"128m\"\n cpus: \"0.25\"\n logging: *default-logging\n security_opt:\n - no-new-privileges:true\n cap_drop:\n - ALL\n\n # ====================================================================\n # 4. PostgreSQL — 生产级持久化(可选)\n # ====================================================================\n postgres:\n image: postgres:16-alpine\n container_name: igp-postgres\n restart: unless-stopped\n environment:\n POSTGRES_USER: ${PG_USER:-igp}\n POSTGRES_PASSWORD: ${PG_PASSWORD:?err}\n POSTGRES_DB: ${PG_DB:-igp_memory}\n volumes:\n - ./data/postgres:/var/lib/postgresql/data\n profiles:\n - prod\n mem_limit: \"512m\"\n cpus: \"1.0\"\n logging: *default-logging\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U ${PG_USER:-igp}\"]\n interval: 10s\n timeout: 5s\n retries: 5\n\n # ====================================================================\n # 5. MetaMCP — MCP 聚合代理(可选)\n # ====================================================================\n metamcp:\n image: metamcp/metamcp:latest\n container_name: igp-metamcp\n restart: unless-stopped\n ports:\n - \"127.0.0.1:12008:12008\"\n environment:\n - MCP_ENDPOINT=http://igp-api:8080/mcp\n profiles:\n - full\n mem_limit: \"256m\"\n cpus: \"0.5\"\n logging: *default-logging\n depends_on:\n igp-api:\n condition: service_healthy\n\nvolumes:\n gateway-state:\n igp-data:\n pg-data:\n\nnetworks:\n default:\n driver: bridge\n ipam:\n config:\n - subnet: 172.20.0.0/16\n"}}}}