# 📝 WiFi Guardian - Cheat Sheet

أوامر سريعة للعمليات اليومية

---

## 🖥️ أوامر السيرفر

### إدارة Nginx

```bash
# إعادة تشغيل Nginx
sudo systemctl restart nginx

# التحقق من حالة Nginx
sudo systemctl status nginx

# اختبار تكوين Nginx
sudo nginx -t

# إعادة تحميل التكوين بدون إيقاف
sudo systemctl reload nginx

# مراقبة Logs
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log
```

### إدارة PHP-FPM

```bash
# إعادة تشغيل PHP-FPM
sudo systemctl restart php8.2-fpm

# التحقق من حالة PHP-FPM
sudo systemctl status php8.2-fpm

# مراقبة PHP Logs
sudo tail -f /var/log/php8.2-fpm.log
```

### إدارة MySQL

```bash
# الدخول إلى MySQL
sudo mysql -u root -p
# أو
mysql -u wifi_guardian_user -p wifi_guardian

# Backup قاعدة البيانات
mysqldump -u wifi_guardian_user -p wifi_guardian > backup_$(date +%Y%m%d).sql

# استعادة Backup
mysql -u wifi_guardian_user -p wifi_guardian < backup.sql

# التحقق من حالة MySQL
sudo systemctl status mysql

# إعادة تشغيل MySQL
sudo systemctl restart mysql
```

### إدارة Queue Worker

```bash
# التحقق من حالة Worker
sudo systemctl status wifi-guardian-worker

# إعادة تشغيل Worker
sudo systemctl restart wifi-guardian-worker

# إيقاف Worker
sudo systemctl stop wifi-guardian-worker

# تشغيل Worker
sudo systemctl start wifi-guardian-worker

# مراقبة Worker Logs
sudo journalctl -u wifi-guardian-worker -f
```

---

## 🔧 أوامر Laravel

### صيانة التطبيق

```bash
# الانتقال لمجلد المشروع
cd /var/www/wifi-guardian-backend

# تحديث Dependencies
composer install --no-dev --optimize-autoloader

# تشغيل Migrations
php artisan migrate --force

# إعادة بناء Cache
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

# مسح Cache
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan cache:clear

# تحسين Autoloader
composer dump-autoload -o
```

### مراقبة التطبيق

```bash
# مراقبة Laravel Logs
tail -f storage/logs/laravel.log

# عرض آخر 100 سطر من الـ Log
tail -n 100 storage/logs/laravel.log

# مراقبة Query Logs (في .env ضع DB_LOG_QUERIES=true)
tail -f storage/logs/query.log
```

### Database Operations

```bash
# تشغيل Migration جديد
php artisan migrate --force

# التراجع عن آخر Migration
php artisan migrate:rollback --step=1

# إعادة بناء Database من الصفر (حذف كل البيانات!)
php artisan migrate:fresh --force

# إعادة بناء مع Seeders
php artisan migrate:fresh --seed --force

# التحقق من حالة Migrations
php artisan migrate:status
```

### Queue Operations

```bash
# عرض Failed Jobs
php artisan queue:failed

# إعادة محاولة Failed Job محدد
php artisan queue:retry JOB_ID

# إعادة محاولة جميع Failed Jobs
php artisan queue:retry all

# حذف Failed Jobs
php artisan queue:flush

# تشغيل Queue يدوياً (للاختبار)
php artisan queue:work --once
```

### Routes & Controllers

```bash
# عرض جميع Routes
php artisan route:list

# عرض Routes محددة
php artisan route:list --name=auth

# عرض Routes API فقط
php artisan route:list --path=api

# إنشاء Controller جديد
php artisan make:controller Api/NewController
```

---

## 🔐 أوامر الأمان

### Firewall (UFW)

```bash
# التحقق من حالة Firewall
sudo ufw status

# السماح بـ Port محدد
sudo ufw allow 8080

# منع Port
sudo ufw deny 8080

# حذف قاعدة
sudo ufw delete allow 8080

# إعادة تعيين Firewall
sudo ufw reset
```

### SSL/Certbot

```bash
# الحصول على SSL Certificate
sudo certbot --nginx -d api.yourdomain.com

# تجديد Certificates
sudo certbot renew

# تجديد تلقائي (dry run)
sudo certbot renew --dry-run

# عرض Certificates المثبتة
sudo certbot certificates

# حذف Certificate
sudo certbot delete --cert-name api.yourdomain.com
```

### Fail2Ban

```bash
# التحقق من حالة Fail2Ban
sudo systemctl status fail2ban

# عرض IPs المحظورة
sudo fail2ban-client status nginx-http-auth

# إلغاء حظر IP
sudo fail2ban-client set nginx-http-auth unbanip 192.168.1.100
```

---

## 📱 أوامر Flutter

### Development

```bash
# تشغيل على Emulator
flutter run

# تشغيل على جهاز محدد
flutter devices
flutter run -d DEVICE_ID

# Hot Reload
# اضغط r في Terminal

# Hot Restart
# اضغط R في Terminal
```

### Building

```bash
# بناء APK للإنتاج
flutter build apk --release

# بناء APK للتطوير
flutter build apk --debug

# بناء App Bundle
flutter build appbundle --release

# بناء لأجهزة محددة (arm64 فقط)
flutter build apk --target-platform android-arm64 --release

# بناء Split APKs (حجم أصغر)
flutter build apk --split-per-abi --release
```

### Testing & Analysis

```bash
# تشغيل Tests
flutter test

# تشغيل مع Coverage
flutter test --coverage

# تحليل الكود
flutter analyze

# تنسيق الكود
flutter format .

# التحقق من Dependencies المحدثة
flutter pub outdated
```

### Maintenance

```bash
# تنظيف البناء
flutter clean

# تحديث Dependencies
flutter pub get

# ترقية Dependencies
flutter pub upgrade

# إعادة بناء كاملة
flutter clean && flutter pub get && flutter build apk --release
```

---

## 🔄 تحديث المشروع

### Backend Update

```bash
cd /var/www/wifi-guardian-backend

# Pull آخر التحديثات
sudo -u www-data git pull origin main

# تحديث Dependencies
sudo -u www-data composer install --no-dev --optimize-autoloader

# تشغيل Migrations الجديدة
sudo -u www-data php artisan migrate --force

# إعادة بناء Cache
sudo -u www-data php artisan config:cache
sudo -u www-data php artisan route:cache
sudo -u www-data php artisan view:cache

# إعادة تشغيل Services
sudo systemctl restart nginx
sudo systemctl restart wifi-guardian-worker
```

### Frontend Update

```bash
cd /path/to/wifi-guardian-frontend

# Pull آخر التحديثات
git pull origin main

# تحديث Dependencies
flutter pub get

# بناء APK جديد
flutter clean
flutter build apk --release
```

---

## 💾 Backup & Restore

### Backup كامل

```bash
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups/wifi-guardian"

# إنشاء مجلد Backup
mkdir -p $BACKUP_DIR

# Database Backup
mysqldump -u wifi_guardian_user -p wifi_guardian | gzip > $BACKUP_DIR/db_$DATE.sql.gz

# Files Backup
tar -czf $BACKUP_DIR/files_$DATE.tar.gz /var/www/wifi-guardian-backend \
    --exclude=/var/www/wifi-guardian-backend/vendor \
    --exclude=/var/www/wifi-guardian-backend/node_modules \
    --exclude=/var/www/wifi-guardian-backend/storage/logs

# حذف Backups أقدم من 7 أيام
find $BACKUP_DIR -type f -mtime +7 -delete
```

### Restore من Backup

```bash
# Database Restore
gunzip < /var/backups/wifi-guardian/db_20260513_120000.sql.gz | mysql -u wifi_guardian_user -p wifi_guardian

# Files Restore
tar -xzf /var/backups/wifi-guardian/files_20260513_120000.tar.gz -C /
```

---

## 📊 مراقبة الأداء

### Server Resources

```bash
# استخدام CPU & RAM
htop
# أو
top

# استخدام Disk
df -h

# استخدام المجلدات
du -sh /var/www/*

# Network Traffic
iftop
```

### Application Performance

```bash
# عدد Requests في Nginx
sudo tail -n 10000 /var/log/nginx/access.log | wc -l

# أكثر Routes استخداماً
sudo tail -n 10000 /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -10

# Response Times
sudo tail -n 1000 /var/log/nginx/access.log | awk '{print $10}' | sort -n | tail -20
```

---

## 🐛 استكشاف الأخطاء

### Laravel Debugging

```bash
# تفعيل Debug Mode
# في .env ضع:
APP_DEBUG=true
APP_ENV=local

# ثم:
php artisan config:cache

# لا تنسى إعادته للـ Production:
APP_DEBUG=false
APP_ENV=production
```

### Permission Issues

```bash
# إعادة تعيين الصلاحيات
cd /var/www/wifi-guardian-backend
sudo chown -R www-data:www-data .
sudo chmod -R 755 .
sudo chmod -R 775 storage bootstrap/cache
```

### 500 Error Debugging

```bash
# تحقق من Laravel Log
tail -f /var/www/wifi-guardian-backend/storage/logs/laravel.log

# تحقق من Nginx Error Log
sudo tail -f /var/log/nginx/error.log

# تحقق من PHP-FPM Log
sudo tail -f /var/log/php8.2-fpm.log
```

---

## 🎯 One-Liners مفيدة

```bash
# عرض أكبر 10 ملفات في Laravel
du -a /var/www/wifi-guardian-backend | sort -n -r | head -n 10

# عد عدد سطور الكود
find . -name '*.php' | xargs wc -l | tail -1

# إيجاد ملفات كبيرة في Storage
find /var/www/wifi-guardian-backend/storage -type f -size +10M

# عرض أحدث 20 Log Entry
tail -n 20 /var/www/wifi-guardian-backend/storage/logs/laravel.log

# عد الـ Users في Database
mysql -u wifi_guardian_user -p wifi_guardian -e "SELECT COUNT(*) FROM users;"
```

---

## 📝 ملاحظات

- استبدل `wifi_guardian_user` و `wifi_guardian` بأسماء Database الخاصة بك
- استبدل `/var/www/wifi-guardian-backend` بمسار المشروع الخاص بك
- استخدم `sudo` عند الحاجة
- احفظ هذا الملف كـ reference سريع!

---

**💡 نصيحة**: أضف الأوامر المتكررة كـ aliases في `~/.bashrc`:

```bash
alias wg-logs='tail -f /var/www/wifi-guardian-backend/storage/logs/laravel.log'
alias wg-restart='sudo systemctl restart nginx && sudo systemctl restart wifi-guardian-worker'
alias wg-update='cd /var/www/wifi-guardian-backend && sudo -u www-data git pull && sudo -u www-data composer install --no-dev && sudo -u www-data php artisan migrate --force && sudo -u www-data php artisan config:cache'
```
