4.1 KiB
Website Details - SpeedyFoxAI
Domain: speedyfoxai.com
Hosted on: deb2 (10.0.0.39)
Web Root: /root/html/ (Nginx serves from here, NOT /var/www/html/)
Created: February 13, 2026
Created by: Kimi (OpenClaw + Ollama) via SSH
Critical Discovery
Nginx config (/etc/nginx/sites-enabled/default) sets root /root/html;
This means /var/www/html/ is NOT the live document root - /root/html/ is.
Visitor Counter System
Current Status
- Count: 288 (restored from Feb 13 backup)
- Location:
/root/html/count.txt - Persistent storage:
/root/html/.counter_total - Script:
/root/html/update_count_persistent.sh
Why It Reset
Old script read from nginx access.log which gets rotated by logrotate. When logs rotate, count drops to near zero. Lost ~350 visits (was ~400+, dropped to 46).
Fix Applied
New persistent counter that:
- Stores total in
.counter_totalfile - Tracks last log line counted in
.counter_last_line - Only adds NEW visits since last run
- Handles log rotation gracefully
Site Versions
Current Live Version
- File:
/root/html/index.html(served by nginx) - Source:
/var/www/html/index.html(edit here, copy to /root/html/) - Style: Simple HTML/CSS (Rob's Tech Lab theme)
- Features: Visitor counter, 3 embedded YouTube videos
Backup Version (Full Featured)
- Location:
/root/html_backup/20260213_155707/index.html - Style: Tailwind CSS, full SpeedyFoxAI branding
- Features: Dark mode, FAQ section, navigation, full counter
YouTube Channel
Name: SpeedyFoxAI
URL: https://www.youtube.com/@SpeedyFoxAi
Stats: 5K+ subscribers, 51+ videos
Embedded Videos
- DIY AI Assistant Setup (kz-4l5roK6k)
- Self-Hosted Tools Deep Dive (9IYNGK44EyM)
- OpenClaw + Ollama Workflow (8Fncc5Sg2yg)
File Structure
/root/html/ # LIVE site (nginx root)
├── index.html # Main page
├── count.txt # Visitor count (288)
├── .counter_total # Persistent count storage
├── .counter_last_line # Log line tracking
├── update_count_persistent.sh # Counter script
├── websitememory.md # Documentation
├── downloads.html
├── fox720.jpg
└── favicon.png
/root/html_backup/ # Backups with timestamps
├── 20260214_071243/ # Pre-counter-script backup
├── 20260214_070713/ # Before counter fix
├── 20260214_070536/ # Full backup
└── 20260213_155707/ # Full version with counter
/var/www/html/ # Edit source (copy to /root/html/)
└── index.html
Technical Details
Counter JavaScript
fetch("/count.txt?t=" + Date.now())
.then(r => r.text())
.then(n => {
document.getElementById("visit-count").textContent =
parseInt(n || 0).toString().padStart(6, "0");
});
Counter Display
- Location: Footer
- Format: "Visitors: 000288"
- Style: 10px font, opacity 0.5
Backup Strategy
DT=$(date +%Y%m%d_%H%M%S)
mkdir -p /root/html_backup/${DT}
cp -r /root/html/* /root/html_backup/${DT}/
cp /var/www/html/* /root/html_backup/${DT}/
SEO & Content
- Title: Rob's Tech Lab | Local AI & Self-Hosted Tools
- Meta: None (simple version)
- Schema: None (simple version)
- Full version has: Schema.org FAQPage, structured data
Social Links
- YouTube: @SpeedyFoxAi
- Discord: mdkrush
- GitHub: mdkrush
- Twitter: mdkrush
Creator
Name: Rob
Brand: SpeedyFoxAI
Focus: Self-hosting, local AI, automation tools
Personality: Comical/structured humor
Status
- Counter: Working (shows 000288)
- HTML: Valid structure, no misaligned code
- Backups: Multiple timestamps available
- Documentation: /root/html/websitememory.md
Stored: February 14, 2026
Relationship to YouTube
The SpeedyFoxAI.com website complements the YouTube channel @SpeedyFoxAi. It serves as a hub for video content, resources, and contact info, with embedded videos linking directly to the channel. Design and branding are consistent across both platforms.