# PGS15 Scanner Backup Restore Guide **Project:** PGS15 Compliance Scanner v2.0 **Backup Date:** May 22, 2026 **Last Modified:** May 18, 2026 (Rekenmethodieken) **Backup Location:** Google Drive (tijdelijk) **Target Location:** `/root/projects/jg/2026-PM-PilotPlant/` --- ## πŸ“‹ Prerequisite Checks **VΓ³Γ³rdat je start:** - βœ… VPS geΓ―nstalleerd en opgestart - βœ… Python 3.10+ geΓ―nstalleerd - βœ… PM2 geΓ―nstalleerd (`npm install -g pm2`) - βœ… PGS15 Scanner backup gedownload van Google Drive - βœ… Database `pgs15.db` is LEEG (dient opnieuw aangemaakt) --- ## πŸš€ Restore Procedure ### STEP 1: Project Map Preparation ```bash # Ga naar het project directory cd /root/projects/jg/2026-PM-PilotPlant # Maak de pgs15-scanner directory (indien niet bestaat) mkdir -p pgs15-scanner cd pgs15-scanner ``` ### STEP 2: Extract the Backup ```bash # Extract de tar.gz file tar -xzf ../pgs15-scanner-20260522.tar.gz # Controleer de structure ls -lah ``` **Verwachte output:** ``` app.py rules_engine_v3.py vision_module.py advisor/ templates/ static/ ... ``` ### STEP 3: Python Dependencies Installatie ```bash # Ga naar de scanner directory cd /root/projects/jg/2026-PM-PilotPlant/pgs15-scanner # Maak een virtual environment (optioneel, maar aanbevolen) python3 -m venv venv source venv/bin/activate # Install dependencies (controleer requirements.txt of installeer handmatig) pip install flask==2.3.0 pip install flask-cors==4.0.0 pip install opencv-python-headless==4.8.0 pip install Pillow==10.0.0 pip install numpy==1.24.3 ``` ### STEP 4: Database Aanmaken ```bash # Database aanmaken (leeg bestand is OK, wordt gevuld bij gebruik) cd /root/projects/jg/2026-PM-PilotPlant/pgs15-scanner/data touch pgs15.db # Controleer ls -lah pgs15.db ``` ### STEP 5: PM2 Configuration ```bash # PM2 service starten cd /root/projects/jg/2026-PM-PilotPlant/pgs15-scanner pm2 start app.py --name pgs15-scanner # Controleer status pm2 list # Save PM2 config pm2 save ``` **Verwachte output:** ``` β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ id β”‚ name β”‚ namespace β”‚ version β”‚ mode β”‚ pid β”‚ uptime β”‚ β†Ί β”‚ status β”‚ β”œβ”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 5 β”‚ pgs15-scanner β”‚ default β”‚ 2.0.1 β”‚ fork β”‚ 1697 β”‚ 0s β”‚ 0 β”‚ online β”‚ β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### STEP 6: URL Verification ```bash # Controleer of de applicatie draait curl http://localhost:5053 # Of open je browser # URL: https://mescalinerabbit.shop/pgs15-scanner/ ``` --- ## βœ… Final Verification Checklist - [ ] `pm2 list` toont `pgs15-scanner` als `online` - [ ] PM2 process uptime > 1 minuut - [ ] Geen errors in `pm2 logs pgs15-scanner` - [ ] Website accessible via browser - [ ] Database aangemaakt (ook al leeg) - [ ] Rekenmethodieken geladen (rules_engine_v3.py) --- ## πŸ”§ Troubleshooting ### Issue 1: ModuleNotFoundError **Problem:** Python modules missing **Solution:** ```bash cd /root/projects/jg/2026-PM-PilotPlant/pgs15-scanner source venv/bin/activate pip install -r requirements.txt ``` ### Issue 2: PM2 status "stopped" **Problem:** PM2 service gestopt **Solution:** ```bash pm2 restart pgs15-scanner pm2 save ``` ### Issue 3: Port 5053 already in use **Problem:** Already another process listening **Solution:** ```bash # Find process on port 5053 lsof -i :5053 # Kill process (indien nodig) kill -9 # Start PM2 pm2 start app.py --name pgs15-scanner ``` ### Issue 4: Database permission error **Problem:** Cannot write to database **Solution:** ```bash chmod 777 /root/projects/jg/2026-PM-PilotPlant/pgs15-scanner/data/pgs15.db ``` --- ## πŸ“Š What's Protected in This Backup | Component | Details | Status | |-----------|---------|--------| | **app.py** | Volledige webapp (302 KB) | βœ… GeΓ―mplementeerd | | **rules_engine_v3.py** | **RECHENMETHODIEKEN PGS 15:2025** | βœ… GeΓ―mplementeerd | | **vision_module.py** | Computer vision module | βœ… GeΓ―mplementeerd | | **advisor/** | Expert advies system | βœ… GeΓ―mplementeerd | | **templates/** | HTML templates | βœ… GeΓ―mplementeerd | | **static/** | CSS, JS, assets | βœ… GeΓ―mplementeerd | | **data/pgs15.db** | Database (leeg, wordt gevuld) | βœ… Aangemaakt | **Last Updated:** May 18, 2026 (Rekenmethodieken) **Compliance:** PGS 15:2025 fully compliant --- ## 🎯 After Restore **1. Test de scanner:** - Ga naar `https://mescalinerabbit.shop/pgs15-scanner/` - Test een PGS 15 scan - Verify that rekenmethodieken work correctly **2. Update changelog:** ```bash cd /root/projects/jg/2026-PM-PilotPlant/pgs15-scanner echo "$(date): Restore van PGS15 Scanner v2.0" >> CHANGELOG.md ``` **3. Monitor:** ```bash pm2 logs pgs15-scanner --lines 100 pm2 monit ``` --- ## πŸ“ž Support **Bij problemen:** 1. Check PM2 logs: `pm2 logs pgs15-scanner` 2. Check Flask app: `python3 app.py` (dev mode) 3. Verify database: `sqlite3 pgs15.db "SELECT * FROM pg15_settings"` --- **Document Created:** May 22, 2026 **Author:** Kas (OpenClaw) **Status:** βœ… Ready for VPS Restore