{"id":44691515,"url":"https://github.com/milkbotai/claw-install","last_synced_at":"2026-02-15T07:13:04.905Z","repository":{"id":337149479,"uuid":"1152490762","full_name":"milkbotai/claw-install","owner":"milkbotai","description":"Production installer for OpenClaw -- autonomous AI coding agent on Ubuntu 24.04 LTS","archived":false,"fork":false,"pushed_at":"2026-02-08T09:25:58.000Z","size":163,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-08T09:39:53.953Z","etag":null,"topics":["ai","autonomous-agents","bash","devops","installer","llm","monitoring","streamlit","systemd","ubuntu"],"latest_commit_sha":null,"homepage":"https://github.com/milkbotai/Milkbot","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/milkbotai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-08T00:19:05.000Z","updated_at":"2026-02-08T09:26:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/milkbotai/claw-install","commit_stats":null,"previous_names":["milkbotai/claw-install"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/milkbotai/claw-install","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milkbotai%2Fclaw-install","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milkbotai%2Fclaw-install/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milkbotai%2Fclaw-install/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milkbotai%2Fclaw-install/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/milkbotai","download_url":"https://codeload.github.com/milkbotai/claw-install/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/milkbotai%2Fclaw-install/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29472879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T06:58:05.414Z","status":"ssl_error","status_checked_at":"2026-02-15T06:58:05.085Z","response_time":118,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","autonomous-agents","bash","devops","installer","llm","monitoring","streamlit","systemd","ubuntu"],"created_at":"2026-02-15T07:13:04.263Z","updated_at":"2026-02-15T07:13:04.898Z","avatar_url":"https://github.com/milkbotai.png","language":"Shell","readme":"[![CI](https://img.shields.io/github/actions/workflow/status/milkbotai/claw-install/ci.yml?branch=main\u0026label=CI\u0026cacheSeconds=3600)](https://github.com/milkbotai/claw-install/actions)\n[![Release](https://img.shields.io/github/v/release/milkbotai/claw-install?display_name=tag\u0026sort=semver\u0026cacheSeconds=3600)](https://github.com/milkbotai/claw-install/releases)\n[![License: MIT](https://img.shields.io/github/license/milkbotai/claw-install?cacheSeconds=86400)](LICENSE)\n[![Last Commit](https://img.shields.io/github/last-commit/milkbotai/claw-install?cacheSeconds=3600)](https://github.com/milkbotai/claw-install/commits/main)\n[![Stars](https://img.shields.io/github/stars/milkbotai/claw-install?style=social)](https://github.com/milkbotai/claw-install)\n\n# MilkBotClaw Installer\n\nProduction deployment system for an autonomous AI coding agent on Ubuntu 24.04 LTS. Single command installs and configures MilkBotClaw with multi-provider LLM routing, system monitoring, automated backups, and Telegram alerts.\n\n## What This Does\n\nThis installer sets up a complete autonomous AI agent environment:\n\n- **MilkBotClaw Agent** - AI coding agent (v2026.2.14) that reads workspace instructions, routes tasks to LLM providers, and manages its own memory\n- **Multi-Provider LLM Routing** - MiniMax M2.5 (primary coding), Kimi K2.5 via OpenRouter (thinking/planning + validation)\n- **Search \u0026 Research** - Brave Search (quick lookups), Perplexity Pro (deep research)\n- **Redis \u0026 PostgreSQL** - Inter-agent communication (pub/sub), task queues, heartbeats, and persistent state\n- **Monitoring Dashboard** - Streamlit dashboard with real-time system metrics, crew status, mission control, log viewer, and mobile responsive layout\n- **Automated Backups** - Workspace and config backed up to Google Drive every 6 hours (token-based Python upload, gdrive, or rclone; 30 local copies)\n- **Health Checks** - Service, API, disk, memory, and workspace validation every 30 minutes with circuit breaker auto-recovery\n- **Twitter/X Integration** - Post tweets and monitor mentions for @MilkBot_ai (OAuth2 PKCE, 1500 tweets/mo)\n- **Webhook Receiver** - HTTP event ingestion on localhost:8502 with HMAC-SHA256 signature validation\n- **Daily Digest** - Rich Telegram status summary at 8 AM (system metrics, missions, backups, model performance)\n- **Discord + Telegram Bot Commander** - Interactive `/status` command with multi-section dashboard (DEFCON, services, missions, budget, system)\n- **Telegram Alerts** - Rate-limited notifications for health issues, backup status, circuit breaker events\n- **Cloudflare Tunnel** - Public access to the dashboard at dashboard.milkbot.ai\n- **Security Hardening** - Dedicated service user (`milkbot`), whitelisted sudo access, 640 permissions on secrets\n\n## System Requirements\n\n| Resource | Minimum |\n|----------|---------|\n| OS | Ubuntu 24.04 LTS |\n| CPU | 2 cores |\n| RAM | 4 GB |\n| Disk | 50 GB free |\n| Network | Internet access |\n\n## API Keys Required\n\nThe installer wizard will prompt for each key interactively:\n\n| Provider | Purpose | Signup |\n|----------|---------|--------|\n| MiniMax | Primary coding LLM — M2.5 (Coding Plan Plus) | [minimax.io](https://www.minimax.io) |\n| OpenRouter | Kimi K2.5 (thinking + validation) | [openrouter.ai](https://openrouter.ai) |\n| Brave Search | Web search API | [brave.com/search/api](https://brave.com/search/api) |\n| Perplexity | Deep research API | [perplexity.ai](https://www.perplexity.ai) |\n| Telegram | Bot alerts (create via @BotFather) | [t.me/BotFather](https://t.me/BotFather) |\n| Cloudflare | Tunnel for dashboard | [cloudflare.com](https://www.cloudflare.com) |\n\n## Quick Start\n\n```bash\ngit clone https://github.com/milkbotai/claw-install.git\ncd claw-install\nsudo ./installer/install.sh\n```\n\nThe installer runs 14 steps in order:\n\n1. **Pre-flight validation** - OS, CPU, RAM, disk, network, required packages\n2. **VPS security hardening** - SSH key-only auth, UFW firewall, automatic security updates\n3. **Swap configuration** - 4GB swap file for long-running agent stability\n4. **Service user setup** - Creates `milkbot` with whitelisted sudo access\n5. **API key configuration** - Interactive wizard for all provider keys\n6. **Integration setup** - GitHub SSH, Gmail app password, Google Drive OAuth\n7. **MilkBotClaw installation** - Node.js (via NodeSource), npm, `openclaw@latest`\n8. **Redis \u0026 PostgreSQL** - Inter-agent communication, task queues, persistent state\n9. **Workspace deployment** - Agent identity files, onboarding templates, memory\n10. **Dashboard \u0026 monitoring** - Streamlit dashboard, Python venv, resource monitor\n11. **Backup configuration** - Google Drive upload via gdrive/rclone, 6-hour schedule\n12. **Cloudflare tunnel** - Public dashboard exposure at dashboard.milkbot.ai\n13. **Systemd services** - openclaw, dashboard, health timer, backup timer\n14. **Post-install validation** - Verifies all components are running\n\nThe installer is **resume-aware** -- if interrupted, re-run the same command and it skips completed steps.\n\n## Post-Installation\n\n```bash\n# Check agent status\nsystemctl status openclaw\n\n# Follow live logs\njournalctl -u openclaw -f\n\n# Dashboard (local)\nhttp://localhost:8501\n\n# Run health check manually\nsudo -u milkbot /opt/openclaw/scripts/health-check.sh\n\n# Run validation suite\nsudo ./installer/validate.sh\n```\n\n## Directory Structure\n\n```\n/opt/openclaw/                  # Installation root\n  config/\n    .env                        # API keys (640 permissions)\n    providers/                  # LLM provider configs (JSON)\n    context-limits.json         # Per-provider context window limits\n    failover.json               # Model failover rules (400/429/500+)\n  scripts/\n    health-check.sh             # API + system health validation\n    alert-telegram.sh           # Rate-limited Telegram notifications\n    backup-to-drive.sh          # Google Drive backup upload\n    auto-resume.sh              # Task detection on restart\n    resource-monitor.sh         # Disk/RAM/CPU threshold alerts\n    memory-prune.sh             # Agent memory file management\n    github-commit.sh            # Automated workspace commits\n    context-optimizer.sh        # Context overflow monitoring\n    mission-worker.sh           # Mission step polling and execution\n    event-reactor.sh            # Event-driven rule matching\n    heartbeat-bridge.sh         # Redis liveness bridge\n    outcome-learner.sh          # Daily outcome analysis\n    daily-digest.sh             # Telegram status summary (8 AM)\n    twitter-post.sh             # Post tweets to @MilkBot_ai\n    twitter-monitor.sh          # Monitor Twitter mentions\n    webhook-receiver.py         # HTTP event ingestion (port 8502)\n    google-drive-upload.py      # Token-based Drive upload\n    google-oauth.py             # Google OAuth flow setup\n  workspace/                    # Agent personality \u0026 state\n    SOUL.md, IDENTITY.md        # Core identity files\n    MEMORY.md                   # Agent memory (auto-managed)\n    AGENTS.md, TOOLS.md         # Capabilities and tool access\n    EMPLOYEE_*.md               # Agent onboarding and identity files\n    AGENT_COMMUNICATION.md      # Redis-based inter-agent protocol\n  dashboard/\n    app.py                      # Streamlit Bloomberg-style dashboard\n    pages/                      # Multi-page dashboard (Mission Queue, Learning, Agents, ROI)\n  logs/                         # Service and health logs\n  backups/                      # Local backup archives\n```\n\n## Systemd Services\n\n| Service | Type | Schedule |\n|---------|------|----------|\n| `openclaw.service` | Long-running | Always on |\n| `openclaw-dashboard.service` | Long-running | Always on |\n| `openclaw-atlas.service` | Long-running | Always on |\n| `openclaw-scout.service` | Long-running | Always on |\n| `openclaw-mission-worker.service` | Long-running | Always on |\n| `openclaw-event-reactor.service` | Long-running | Always on |\n| `openclaw-heartbeat-bridge.service` | Long-running | Always on |\n| `openclaw-twitter-monitor.service` | Long-running | Always on (optional) |\n| `openclaw-webhook.service` | Long-running | Always on (optional) |\n| `openclaw-bot-commander.service` | Long-running | Always on (optional) |\n| `openclaw-health.timer` | Oneshot | Every 30 minutes |\n| `openclaw-backup.timer` | Oneshot | Every 6 hours |\n| `openclaw-learning.timer` | Oneshot | Daily at 2:00 AM |\n| `cloudflared.service` | Long-running | Always on |\n\n## Uninstalling\n\n```bash\nsudo ./installer/uninstall.sh\n```\n\nThis stops all services, removes `/opt/openclaw`, the `milkbot` user, sudoers config, systemd units, and logrotate config.\n\n## Testing\n\n```bash\n# Static analysis (~520 tests)\nbash tests/test_bash_scripts.sh\n\n# Behavioral unit tests (48 tests)\nbash tests/test_unit_functions.sh\n\n# Integration tests (18 tests)\nbash tests/test_integration.sh\n\n# Dashboard tests (~194 tests, requires venv)\npython3 -m venv /tmp/test-venv\n/tmp/test-venv/bin/pip install pytest pyyaml\n/tmp/test-venv/bin/pytest tests/test_dashboard.py -v\n\n# Live API integration tests (requires .env.test with real keys)\nbash tests/test_live_integration.sh\n\n# Shellcheck\nshellcheck -x installer/*.sh scripts/*.sh\n```\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| [API Setup](docs/API_SETUP.md) | How to obtain and configure each API key |\n| [Architecture](docs/ARCHITECTURE.md) | System components, provider routing, limitations |\n| [Troubleshooting](docs/TROUBLESHOOTING.md) | Common issues and fixes |\n| [Monitoring](docs/MONITORING.md) | Health checks, alerts, resource thresholds |\n| [Runbook](docs/RUNBOOK.md) | Operational procedures |\n| [Disaster Recovery](docs/DISASTER_RECOVERY.md) | Backup restoration, service recovery |\n| [Upgrading](docs/UPGRADING.md) | Version upgrade procedures |\n| [Mission System](docs/MISSION_SYSTEM.md) | Task queue and agent coordination |\n| [Outcome Learning](docs/OUTCOME_LEARNING.md) | Automated performance analysis |\n| [Agent Communication](docs/AGENT_COMMUNICATION.md) | Redis-based inter-agent protocol |\n| [Developer Guide](docs/DEVELOPER.md) | Repository structure and development |\n| [Deploy Guide](docs/DEPLOY.md) | Production deployment procedures |\n| [Changelog](docs/CHANGELOG.md) | Release history |\n| [SLA](docs/SLA.md) | Service level agreements |\n\n## Support\n\n- **Issues:** [GitHub Issues](https://github.com/milkbotai/claw-install/issues)\n- **Troubleshooting:** [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)\n- **Runbook:** [docs/RUNBOOK.md](docs/RUNBOOK.md)\n\n## License\n\n[MIT](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilkbotai%2Fclaw-install","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmilkbotai%2Fclaw-install","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmilkbotai%2Fclaw-install/lists"}