128 lines
3.8 KiB
Markdown
128 lines
3.8 KiB
Markdown
|
|
# 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:
|
||
|
|
1. Stores total in `.counter_total` file
|
||
|
|
2. Tracks last log line counted in `.counter_last_line`
|
||
|
|
3. Only adds NEW visits since last run
|
||
|
|
4. 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
|
||
|
|
1. DIY AI Assistant Setup (kz-4l5roK6k)
|
||
|
|
2. Self-Hosted Tools Deep Dive (9IYNGK44EyM)
|
||
|
|
3. 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
|
||
|
|
```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
|
||
|
|
```bash
|
||
|
|
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
|