# 📁 QBPOS Help Website - Workspace Organization > **Project**: QuickBooks POS 2019 Help Documentation > > **URL**: > > **Last Updated**: January 10, 2026 --- ## 📂 Folder Structure ``` QBPOS_Help_Web/ ├── QB_Help_Web/ # 🌐 LIVE WEBSITE (DO NOT MODIFY DIRECTLY) │ ├── POS_Help.html # Main entry point (frameset) │ └── POS_Help/ # All help content (939 pages) │ ├── ___dtree.js # Navigation logic │ ├── ___dtree.css # Tree styles │ ├── ___left.htm # Left navigation panel │ ├── responsive.css # Responsive design (NEW) │ └── qbpos_*/ # Content folders │ ├── scripts/ # 🔧 Shell Scripts ├── python/ # 🐍 Python Scripts ├── config/ # ⚙️ Configuration Files ├── docs/ # 📚 Documentation ├── backups/ # 💾 Backup Files └── archives/ # 📦 Old/Archive Files ``` --- ## 🔧 scripts/ - Shell Scripts | Script | Purpose | Usage | |--------|---------|-------| | **backup_site.sh** | Daily automated backup | Run manually or via cron | | **monitor_logs.sh** | Security monitoring | `./scripts/monitor_logs.sh` | | **validate_frontend.sh** | Frontend validation tests | `./scripts/validate_frontend.sh` | | **deploy_nginx.sh** | Deploy nginx configuration | Setup only | | **install_service.sh** | Install systemd service | Setup only | | **setup_https.sh** | SSL/HTTPS setup | Setup only | | **setup_ssl.sh** | SSL certificate setup | Setup only | | **check_dns_and_ssl.sh** | DNS/SSL verification | Diagnostics | | **get_ssl_cert.sh** | Get SSL certificate | Setup only | | **health_check.sh** | Server health check | Monitoring | | add_mobile_*.sh | Mobile nav scripts (OLD) | Archived | **Active Scripts:** ```bash # Run daily security monitoring ./scripts/monitor_logs.sh # Validate frontend changes ./scripts/validate_frontend.sh # Manual backup ./scripts/backup_site.sh ``` --- ## 🐍 python/ - Python Scripts | Script | Purpose | Status | |--------|---------|--------| | **fix_inline_styles.py** | Force 13pt fonts on all pages | ✅ Used (one-time) | | **inject_style.py** | Inject CSS into HTML files | ✅ Used (one-time) | | **move_styles.py** | CSS organization | ✅ Used (one-time) | | **production_server.py** | Python HTTP server | 🗄️ Archived (using nginx) | | **secure_production_server.py** | Secure Python server | 🗄️ Archived (using nginx) | | **server.py** | Simple HTTP server | 🗄️ Archived (using nginx) | | **fix_navbar.py** | Fix navigation bar | 🗄️ Archived | | **rebuild_left_nav.py** | Rebuild left panel | 🗄️ Archived | | ****pycache**/** | Python cache | Auto-generated | **Note:** All Python servers are archived. Website now runs on nginx. --- ## ⚙️ config/ - Configuration Files | File | Purpose | Location | |------|---------|----------| | **qbpos-help.service** | Systemd service (archived) | Not in use | | **qbpos-health-check.service** | Health check service | Not in use | | **qbpos-health-check.timer** | Health check timer | Not in use | | **qbpos-help-final.conf** | Final nginx config | 🗄️ Archived | | **qbpos-help-ssl.conf** | SSL nginx config | 🗄️ Archived | | **qbpos-help-http-temp.conf** | Temp HTTP config | 🗄️ Archived | | **nginx_setup.conf** | Initial nginx setup | 🗄️ Archived | **Active Config:** - **Live nginx config**: `/etc/nginx/sites-available/qbpos-help` - **Symlink**: `/etc/nginx/sites-enabled/qbpos-help` To edit active config: ```bash sudo nano /etc/nginx/sites-available/qbpos-help sudo nginx -t # Test sudo systemctl restart nginx # Apply ``` --- ## 📚 docs/ - Documentation | Document | Description | |----------|-------------| | **README_SECURITY.md** | Security features & maintenance | | **FRONTEND_FIXES.md** | Frontend improvements (detailed) | | **FRONTEND_QUICK_REF.md** | Frontend fixes (quick reference) | | **DEPLOYMENT_GUIDE.md** | Full deployment guide | | **AUTO_START_GUIDE.md** | Auto-start service guide | | **MOBILE_RESPONSIVE_SUMMARY.md** | Mobile responsiveness summary | | **QUICK_REFERENCE.txt** | Quick commands reference | | **STATUS_REPORT.txt** | Project status report | **Read First:** 1. [README_SECURITY.md](docs/README_SECURITY.md) - Security & monitoring 2. [FRONTEND_QUICK_REF.md](docs/FRONTEND_QUICK_REF.md) - Frontend status 3. [QUICK_REFERENCE.txt](docs/QUICK_REFERENCE.txt) - Common commands --- ## 💾 backups/ - Backup Files Automated backups are stored in: `/home/pts/backups/qbpos_help/` This folder contains: - `backup_html_20260109_181143/` - Manual HTML backup - `backup_html_20260109_181155/` - Manual HTML backup - `ORIGINAL_FILES_BACKUP/` - Original files before modifications **Active Backup System:** - **Schedule**: Daily at 2:00 AM - **Location**: `/home/pts/backups/qbpos_help/` - **Retention**: 7 days - **Script**: `scripts/backup_site.sh` View backups: ```bash ls -lh /home/pts/backups/qbpos_help/ ``` --- ## 📦 archives/ - Old/Archive Files | File | Description | |------|-------------| | **QB_Help_Web_CURRENT_BROKEN_20260109_200109.tar.gz** | Backup before mobile fix | | **server.log** | Old server logs | --- ## 🌐 QB_Help_Web/ - Live Website **⚠️ CRITICAL: This is the LIVE website served by nginx** ``` QB_Help_Web/ ├── POS_Help.html # Entry point (desktop: frameset, mobile: redirect) └── POS_Help/ ├── ___dtree.js # Navigation tree logic (mobile detection) ├── ___dtree.css # Tree base styles ├── ___left.htm # Left navigation panel (ARIA + semantic HTML) ├── responsive.css # Responsive design (mobile/tablet/desktop) ├── qbpos.css # Legacy styles ├── prompttech-header.css # Header styles ├── ehlpdhtm.js # Legacy help system └── qbpos_*/ # 939 content pages (all with 13pt fonts) ``` **DO NOT:** - Delete files without backup - Edit ___dtree.js without testing - Change file permissions - Remove cache-busting parameters **Nginx Root:** ``` /home/pts/Documents/QBPOS_Help_Web/QB_Help_Web ``` --- ## 🚀 Quick Commands ### Security & Monitoring ```bash # View security status ./scripts/monitor_logs.sh # Check fail2ban sudo fail2ban-client status # View backups ls -lh /home/pts/backups/qbpos_help/ # SSL certificate info sudo certbot certificates ``` ### Nginx Management ```bash # Test config sudo nginx -t # Restart nginx sudo systemctl restart nginx # View logs sudo tail -f /var/log/nginx/qbpos-access.log sudo tail -f /var/log/nginx/qbpos-error.log ``` ### Frontend Testing ```bash # Validate frontend ./scripts/validate_frontend.sh # Test site curl -I https://quickbookposhelp.access.ly ``` ### Backup & Restore ```bash # Manual backup ./scripts/backup_site.sh # Restore from backup cd /home/pts/backups/qbpos_help/ tar -xzf qbpos_help_YYYYMMDD_HHMMSS.tar.gz ``` --- ## 📊 System Status ### ✅ Production Ready - **Website**: - **Status**: Online (HTTP 200) - **Response Time**: ~0.11s - **SSL**: Valid until April 9, 2026 - **Security Score**: 9.2/10 ### 🔒 Security Features - ✅ fail2ban (5 nginx jails) - ✅ Security headers (X-Frame-Options, CSP, etc.) - ✅ SSL/TLS encryption - ✅ Daily automated backups - ✅ Log monitoring ### 📱 Frontend Features - ✅ Responsive (mobile/tablet/desktop) - ✅ WCAG 2.1 AA accessibility - ✅ Dark mode support - ✅ 44x44px touch targets - ✅ ARIA labels & semantic HTML - ✅ Error handling in JavaScript - ✅ Cache control (no-cache for dynamic files) --- ## 🛠️ Maintenance Tasks ### Daily - Check backup logs: `tail /var/log/qbpos_backup.log` - Review security: `./scripts/monitor_logs.sh` ### Weekly - Check fail2ban: `sudo fail2ban-client status` - Review nginx logs for suspicious activity ### Monthly - Verify backups working - Update system packages: `sudo apt update && sudo apt upgrade` - Review disk space: `df -h` ### Quarterly - Test backup restoration - Security audit - SSL certificate check (auto-renews 30 days before expiry) --- ## 📞 Troubleshooting ### Issue: Site not loading ```bash sudo systemctl status nginx sudo nginx -t sudo tail -f /var/log/nginx/error.log ``` ### Issue: SSL certificate error ```bash sudo certbot certificates sudo certbot renew --dry-run sudo systemctl restart nginx ``` ### Issue: Mobile links opening in new tabs ```bash # Clear browser cache completely # Hard refresh: Ctrl+Shift+R or Cmd+Shift+R ``` ### Issue: Backup failed ```bash tail -f /var/log/qbpos_backup.log ./scripts/backup_site.sh # Run manually ``` --- ## 🎯 Project Overview **What This Is:** - QuickBooks POS 2019 Desktop Help Documentation - 939 HTML pages converted from CHM format - Fully responsive (mobile, tablet, desktop) - WCAG 2.1 AA accessible - Production-grade security **Key Features:** - 13pt fonts on all pages (user request) - Mobile: Single-page navigation, same-tab links - Desktop: Frameset layout (left nav + content) - Welcome box from PromptTech Solution - No online services, no subscription required **Technologies:** - nginx 1.24+ (web server) - Let's Encrypt SSL (HTTPS) - fail2ban (intrusion prevention) - JavaScript tree navigation (dTree) - Responsive CSS (mobile-first) --- ## 📧 Support **PromptTech Solution** - Website: - Documentation: See `docs/` folder - Security: See `docs/README_SECURITY.md` --- **Last Updated**: January 10, 2026 **Version**: 1.0.0 (Production) **Status**: ✅ All Features Complete