Appearance
Open Intel — Project Reference
Auto-published VitePress site powered by OpenClaw daily scrapes, deployed to cPanel via FTP.
Architecture
OpenClaw (WSL, heartbeat every 30min)
→ scrapes web daily for defined topics
→ writes/updates markdown in ~/repos/open-intel/docs/
→ git commit + push to GitHub (main)
→ GitHub Actions: npm ci → vitepress build → FTP upload
→ Live at: https://omnes.pro/open-intel/Current State (2026-02-16)
| Component | Status | Details |
|---|---|---|
| VitePress site | Deployed | omnes.pro/open-intel/ |
| GitHub repo | Private | richardtheshannon/open-intel |
| GitHub Actions | Auto-deploy on push | FTP to cPanel public_html/open-intel/ |
| WSL clone | ~/repos/open-intel | OpenClaw reads/writes here |
| Windows copy | D:\_dev\priori-dev\open-intel | Dev copy, git pull to sync |
| WSL git auth | gh CLI | Installed + authenticated |
| WSL git identity | Configured | richard@salesfield.net / Richard Shannon |
| HEARTBEAT.md | Configured | Daily security scrape + commit + push |
| Scrape topic: Security | Active | docs/security/best-practices.md |
Key Decisions Made
- Repo name:
open-intel - Visibility: Private
- Hosting: cPanel (omnes.pro) via GitHub Actions FTP
- Push model: Auto-push to main (no PR review)
- FTP protocol: Plain FTP (port 21) — FTPS caused FIN packet errors
- VitePress base:
/open-intel/(required for subdirectory deploy)
File Locations
| File | Location | Purpose |
|---|---|---|
| VitePress config | docs/.vitepress/config.js | Site config, auto-sidebar, base path |
| VitePress theme | docs/.vitepress/theme/ | Custom theme (Layout, EditButton, EditorModal, PinGate) |
| Homepage | docs/index.md | Landing page |
| Security topic | docs/security/best-practices.md | OpenClaw security intelligence |
| Deploy workflow | .github/workflows/deploy.yml | GitHub Actions → FTP to cPanel |
| .gitignore | .gitignore | Excludes: node_modules, cache, dist, _TEMP, .claude |
| package.json | package.json | name: open-intel, vitepress ^2.0.0-alpha.16 |
| HEARTBEAT.md | ~/.openclaw/workspace/HEARTBEAT.md (WSL) | OpenClaw daily task config |
| This file | D:\_open-claw\_TEMP\SCRAPE-SITE.md | Project reference |
GitHub Secrets (configured)
| Secret | Purpose |
|---|---|
FTP_SERVER | cPanel FTP hostname |
FTP_USERNAME | FTP account username |
FTP_PASSWORD | FTP account password |
Config Notes
VitePress config.js — key settings
js
base: '/open-intel/', // subdirectory deploy
title: 'Open Intel',
sidebar: auto-generated from docs/ subfoldersdeploy.yml — key settings
yaml
on: push to main + workflow_dispatch
build: npm ci → npm run build
deploy: FTP-Deploy-Action v4.3.5
server-dir: /open-intel/ # relative to FTP root (which is public_html/)
local-dir: ./docs/.vitepress/dist/
protocol: ftp (not ftps)
port: 21Auto-sidebar
The sidebar auto-generates from folder structure in docs/. Any new folder with .md files appears automatically — no config changes needed.
HEARTBEAT.md (what OpenClaw runs daily)
OpenClaw searches for "OpenClaw security risks", "OpenClaw vulnerabilities", "AI agent security best practices" and updates ~/repos/open-intel/docs/security/best-practices.md:
- New findings added at top of "Actionable Security Items" section
- Existing items preserved, duplicates removed
- Timestamp updated
- Then:
git add docs/ && git commit && git push origin main - Constraints: only touches
docs/, no force push, no config changes
Development Guidelines
- Minimal edits — use existing systems, avoid new dependencies
- Warn before breaking changes — especially anything affecting layout or deploy
- No unsolicited docs — don't create guides/READMEs unless asked
- Windows ↔ WSL sync — Windows copy is for dev, WSL copy is for OpenClaw. Use
git pullto sync either side - Adding topics — create a new folder in
docs/, add.mdfile, update HEARTBEAT.md in WSL - Testing locally —
npm run buildin Windows copy to verify VitePress builds
TODO
- [ ] Add more scrape topics (AI news, dev tools, etc.)
- [ ] Custom VitePress theme/branding
- [ ] RSS feed generation
- [ ] Notification on failed pushes (via OpenClaw channel)
- [ ] Clean up stale
public_html/public_html/directory on cPanel
Gotchas
- FTP path: FTP account root is
public_html/, soserver-dirin workflow is/open-intel/not/public_html/open-intel/ - FTPS doesn't work: Server rejects TLS — use plain
ftpprotocol - VitePress base path: Must set
base: '/open-intel/'or all assets 404 - WSL sudo: Prompts for password can't be entered from Claude Code — run
sudocommands in a WSL terminal directly - gh CLI: Installed in WSL for git auth — handles credentials automatically