Install ClawBoard Pro
on your VPS
One command installs OpenClaw, NemoClaw, and Deep Agents on any Ubuntu 20.04+ server. You'll have a running audit agent in under 5 minutes.
Requirements
Before installing, make sure your VPS meets these minimums:
| Requirement | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 20.04 LTS | Ubuntu 22.04 LTS |
| RAM | 1 GB | 2 GB |
| Storage | 5 GB free | 20 GB |
| Python | 3.11 | 3.11 or 3.12 |
| Port | 3000 open | 3000 + 443 (HTTPS) |
| Docker | Optional | Recommended for full stack |
One-liner install
The fastest way. One command installs Python, uv, clones the repo, installs all dependencies, starts the server, and sets up a daily cron.
$ curl -fsSL https://raw.githubusercontent.com/Get-Second-Step/clawboard-agent/main/install.sh | bash
The installer does the following automatically:
- Installs Python 3.11, uv, git, and Chromium (for PDF generation)
- Clones the repo to
~/clawboard-agent - Installs all Python dependencies via
uv pip install - Creates a systemd service (or nohup fallback) and starts OpenClaw on port 3000
- Opens port 3000 in UFW if active
- Sets up a daily 9am audit cron job
- Adds
clawboardandclawboard-logsshell aliases
http://your-vps-ip:3000 in any browser to start connecting your ad accounts.
Docker Compose (full stack)
Run all three services โ OpenClaw, NemoClaw, and Deep Agents โ in isolated containers with Docker Compose. Recommended for production deployments.
$ git clone https://github.com/Get-Second-Step/clawboard-agent.git && cd clawboard-agent
# 2. Copy and fill credentials
$ cp config/credentials.env.example config/credentials.env
$ nano config/credentials.env
# 3. Start all three services
$ docker compose up -d
# Check status
$ docker compose ps
openclaw running 0.0.0.0:3000->3000/tcp
nemoclaw running 127.0.0.1:8080->8080/tcp
deep-agents running
Service ports
| Service | Port | Access | Purpose |
|---|---|---|---|
| openclaw | 3000 | Public | Web UI, chat, OAuth callbacks |
| nemoclaw | 8080 | Internal only | NeMo Guardrails security layer |
| deep-agents | Internal | Internal only | LangGraph audit engine |
Manual install
For users who want to inspect every step before running anything.
Clone the repo
Review the source code before installing anything.
$ cd clawboard-agent
Install Python dependencies
$ curl -LsSf https://astral.sh/uv/install.sh | sh
$ uv pip install --system -r requirements.txt
Configure credentials
$ nano config/credentials.env
# Or use the web UI at http://your-ip:3000/settings
Generate Google OAuth token
# Opens browser โ approve access โ paste back the token
Start the server
ClawBoard Pro running at http://0.0.0.0:3000
Credentials reference
All credentials live in config/credentials.env. Never commit this file โ it is in .gitignore by default.
| Key | Required | Where to get it |
|---|---|---|
GOOGLE_AI_API_KEY | Recommended | aistudio.google.com โ Get API Key (free tier) |
GOOGLE_ADS_DEVELOPER_TOKEN | Yes | Google Ads โ Tools โ API Center |
GOOGLE_ADS_CUSTOMER_ID | Yes | Your Google Ads account ID (without dashes) |
GOOGLE_CLIENT_ID | Yes | Google Cloud Console โ OAuth 2.0 Client |
GOOGLE_CLIENT_SECRET | Yes | Google Cloud Console โ OAuth 2.0 Client |
GOOGLE_REFRESH_TOKEN | Yes | Run python3 scripts/generate_google_token.py |
META_ACCESS_TOKEN | Optional | Meta OAuth โ set via UI at /connect |
TELEGRAM_BOT_TOKEN | Recommended | @BotFather โ /newbot |
TELEGRAM_CHAT_ID | Recommended | @userinfobot โ /start |
SLACK_WEBHOOK_URL | Optional | Slack App โ Incoming Webhooks |
NemoClaw โ Security layer
NemoClaw is a FastAPI service built on NVIDIA NeMo Guardrails. It sits between the user interface and the LLM, validating every prompt and response.
NemoClaw runs on internal port 8080 inside the Docker network. It is never exposed publicly. OpenClaw and Deep Agents call it via http://nemoclaw:8080/guard/input and /guard/output.
{ "status": "ok", "nemo_available": true, "rails_loaded": true, "mode": "full_guardrails" }
Running audits
From the browser
Open http://your-vps-ip:3000. Go to Agents and click Run Audit. Reports appear in the Reports tab in 2โ3 minutes.
From the command line
$ python3 audit_agent.py "Run a full performance marketing audit"
# Google Ads only
$ python3 audit_agent.py "Audit my Google Ads account"
# Ask a question
$ python3 audit_agent.py "Why did my CPA spike last week?"
Via Telegram
Once your Telegram bot is configured, send a message to your bot:
/audit google_ads
What was my best performing campaign last week?
Troubleshooting
Port 3000 not accessible
Check UFW and confirm the service is running:
$ sudo systemctl status clawboard
# Or check logs:
$ tail -f ~/clawboard-agent/reports/cron.log
Google OAuth: "No refresh token returned"
myaccount.google.com/permissions, then re-authorise. Google only returns a refresh token on the first authorisation, or when you explicitly request offline access again.
Docker: NemoClaw unhealthy
$ docker compose restart nemoclaw
Audit returning sample data
This means your Google Ads credentials are not set correctly. Check config/credentials.env for any fields still containing your_ placeholder values.