Files

1 line
4.7 KiB
JSON

{"repo": "chainchopper/nirvana-skills", "files": {"devops/agent-provisioning/templates/docker-compose.api-agent.yml": {"c0be4f9e82d64e5e335e47950a16b423dd3284e9": {"t": 1785747398.8131914, "n": 1818, "h": "96b17e5109e1157f", "c": "# API-ONLY Agent — Windows Docker Compose\n# Platform: API Server (no messaging)\n#\n# Copy this template, replace <placeholders>, and deploy:\n# docker compose down -v && docker compose up -d\n\nservices:\n <name>:\n image: nousresearch/hermes-agent:latest\n container_name: nirvana-<name>\n restart: unless-stopped\n\n labels:\n - \"nirvana.agent=<name>\"\n - \"nirvana.role=<role>\"\n - \"nirvana.platform=windows\"\n\n env_file:\n - .env\n\n environment:\n - HERMES_HOME=/opt/data\n - HERMES_ALLOW_ROOT_GATEWAY=1\n # API server MUST bind 0.0.0.0 — Docker can't forward 127.0.0.1\n - API_SERVER_HOST=0.0.0.0\n\n ports:\n # API server listens on 8642 (not 8000 — that's the gateway internal port)\n - \"127.0.0.1:<port>:8642\"\n\n volumes:\n - nirvana-data-<name>:/opt/data\n - ./SOUL.md:/opt/data/SOUL.md:ro\n\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - |\n echo \"[<NAME>] Writing config...\"\n mkdir -p /opt/data\n cat > /opt/data/config.yaml << 'YAMLEOF'\n model:\n default: deepseek-v4-pro\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n gateway:\n platforms:\n api_server:\n enabled: true\n YAMLEOF\n echo \"[<NAME>] Starting gateway...\"\n exec hermes gateway run --no-supervise\n\nvolumes:\n nirvana-data-<name>:\n\n# ── Required files ──\n# .env:\n# DEEPSEEK_API_KEY=sk-...\n# API_SERVER_KEY=<any-string> # REQUIRED — even for loopback-only binds\n#\n# SOUL.md:\n# Agent identity/personality (auto-loaded from HERMES_HOME/SOUL.md)\n#\n# ── Verification ──\n# docker exec <container> cat /opt/data/gateway_state.json\n# curl -s http://127.0.0.1:<port>/health\n# docker exec <container> grep \"api_server\" /opt/data/logs/gateway.log | tail -3\n"}}, "devops/agent-provisioning/templates/docker-compose.photon-agent.yml": {"c0be4f9e82d64e5e335e47950a16b423dd3284e9": {"t": 1785747399.2028174, "n": 2318, "h": "c726e2dfcaa82542", "c": "# PHOTON Agent — Windows Docker Compose\n# Platform: Photon (iMessage)\n#\n# Requires sidecar-index.mjs alongside compose (see references/photon-sidecar-docker-fix.md)\n#\n# Copy this template, replace <placeholders>, and deploy:\n# docker compose down -v && docker compose up -d\n\nservices:\n photon-agent:\n image: nousresearch/hermes-agent:latest\n container_name: nirvana-<name>\n restart: unless-stopped\n\n labels:\n - \"nirvana.agent=<name>\"\n - \"nirvana.role=<role>\"\n - \"nirvana.platform=windows\"\n\n env_file:\n - .env\n\n environment:\n - HERMES_HOME=/opt/data\n - HERMES_ALLOW_ROOT_GATEWAY=1\n\n ports:\n - \"127.0.0.1:<port>:8000\"\n\n volumes:\n - nirvana-data-<name>:/opt/data\n - ./SOUL.md:/opt/data/SOUL.md:ro\n # Overlay working sidecar (Docker image ships a stale version)\n - ./sidecar-index.mjs:/opt/hermes/plugins/platforms/photon/sidecar/index.mjs:ro\n\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - |\n echo \"[<NAME>] Writing config...\"\n mkdir -p /opt/data\n cat > /opt/data/config.yaml << 'YAMLEOF'\n model:\n default: deepseek-v4-pro\n provider: deepseek\n base_url: https://api.deepseek.com/v1\n gateway:\n platforms:\n photon:\n enabled: true\n YAMLEOF\n echo \"[<NAME>] Installing Photon sidecar deps...\"\n cd /opt/hermes/plugins/platforms/photon/sidecar && npm install --silent 2>&1\n echo \"[<NAME>] Starting gateway...\"\n exec hermes gateway run --no-supervise\n\nvolumes:\n nirvana-data-<name>:\n\n# ── Required files ──\n# .env:\n# DEEPSEEK_API_KEY=sk-...\n# PHOTON_PROJECT_ID=<spectrumProjectId>\n# PHOTON_PROJECT_SECRET=<projectSecret>\n# PHOTON_ALLOWED_USERS=<phone> # or * for SMS receptionist\n# PHOTON_HOME_CHANNEL=<phone>\n#\n# SOUL.md:\n# Agent identity/personality (auto-loaded from HERMES_HOME/SOUL.md)\n#\n# sidecar-index.mjs:\n# Copy from host: cp ~/.hermes/hermes-agent/plugins/platforms/photon/sidecar/index.mjs .\n# The Docker image ships a stale version — this mount overrides it.\n#\n# ── Verification ──\n# docker exec <container> cat /opt/data/gateway_state.json\n# docker exec <container> grep \"photon\" /opt/data/logs/gateway.log | tail -5\n# Look for: \"✓ photon connected\" and \"Spectrum started\"\n"}}}}