# Цагдаагийн Мэдэгдэл Систем - ХҮРГЭЛТИЙН БАРИТГАЛАЛТЫН ТҮЛХҮҮР УДИРДАМЖ
# Quick Reference Guide for Production Deployment

**Үүсгэсэн:** 2026-05-15 | **Статус:** ✅ Үйлдвэрлэлд БЭЛЭН

---

## 🎯 ЭХЛЭЛТЭЙ - 5 МИНУТЫН ХӨЛ

### 1️⃣ Төлөөлөгчийг гүйлгүүлэх (Сонголттой - Хохирогч)

```bash
cd deploy
chmod +x setup.sh
./setup.sh
# Эсвэл Windows дээр: setup.bat
```

**Эсвэл гараар хийх:**

```bash
# Хамаарлуудыг суулгах
npm install --production

# .env үүсгэх
cp .env.example .env
nano .env  # Параметрүүдийг оруулна

# Файл салгалт директор үүсгэх
mkdir -p logs backups uploads/{imports,notifications}

# Өгөгдлийн сан үүсгэх
mysql -h localhost -u root -p < database.sql

# Сервер асаалт
npm start
```

---

## 📂 ҮЙЛДВЭРЛЭЛИЙН БАГ - ФАЙЛЫН УДИРДАМЖ

### ✅ ТЭДНИЙ ҮНДСЭН ФАЙЛУУД

| Файл | Зорилго | Статус |
|------|---------|--------|
| `server.js` | Express сервер | ✅ Бэлэн |
| `package.json` | Node.js хамаарлуудын жагсаалт | ✅ Бэлэн |
| `database.sql` | MySQL схем болон өгөгдөл | ✅ Бэлэн |
| `setup-system-settings.js` | Системийн анхны тохиргоо | ✅ Бэлэн |

### ⚙️ ТОХИРГОО ФАЙЛУУД

| Файл | Зорилго | Үйлдэл |
|------|---------|--------|
| `.env.example` | Окружа жишээ | **ХУУЛАХ** `.env` уруу |
| `.env` | Окружа параметрүүд | **та үүсгэх** (хүнээс ажиглахгүй) |
| `ecosystem.config.js` | PM2 сүргүүлэлтийн тохиргоо | PM2 ашиглахыг үед |
| `config/database.js` | Өгөгдлийн санн руу холбоо | Автоматик |

### 🚀 ЭХЛҮҮЛЭХ СКРИПТҮҮД

| Скрипт | OS | Үйлдэл |
|--------|----|----|
| `setup.sh` | Linux/Mac | **Нэг удаа** эхлүүлэлт |
| `setup.bat` | Windows | **Нэг удаа** эхлүүлэлт |
| `backup-db.sh` | Linux/Mac | Өдөр бүрийн **бэкап** |
| `backup-db.bat` | Windows | Өдөр бүрийн **бэкап** |

### 📚 БАРИМТЫН БИЧИГ

| Баримт | Агуулга | Хүмүүс |
|-------|---------|--------|
| `README.md` | **ЭХЛЭЛТЭЙ** - Хурдан мэдээлэл | Новичок |
| `DEPLOYMENT_GUIDE.md` | Нарийвчилсан тохиргоо | Администратор |
| `DEPLOYMENT_CHECKLIST.md` | Шалгалтын жагсаалт | Техничний |
| `DEPLOYMENT_SCRIPTS.md` | Скриптүүдийн гарын авлага | Туршилтан |
| `DEPLOYMENT_COMPLETE.md` | Бүрэн удирдамж | Бүхэлд |

### 📁 СЕРВЕР КОМПОНЕНТҮҮД

| Директор | Агуулга |
|---------|---------|
| `routes/` | API маршруут (auth, users, notifications гэх мэт) |
| `middleware/` | Express middleware (JWT баталгаажуулалт) |
| `utils/` | Утилита функцүүд (email, validators) |
| `config/` | Конфигурация файлууд |
| `public/` | Администратор интерфэйс (index.html) |
| `uploads/` | Файл салгах директори |

### 📁 ТА ҮҮСГЭХ ФАЙЛУУД

| Директор | Зорилго | Команд |
|---------|---------|--------|
| `.env` | Орчин параметрүүдийг | `cp .env.example .env` |
| `logs/` | Логирование | `mkdir -p logs` |
| `backups/` | Өгөгдлийн сан бэкап | `mkdir -p backups` |

---

## ⚡ КОМАНДЫН НӨЛӨӨ

### Хамаарлуудыг суулгах
```bash
npm install --production
```

### Сервер асаалт
```bash
npm start                              # Шууд асаалт
pm2 start ecosystem.config.js          # PM2 ашиглан
```

### Логүүдийг харах
```bash
npm logs                               # PM2 логүүд
pm2 logs --lines 50                    # Сүүлийн 50 мөр
tail -f logs/app.log                   # Файлын логүүдийн жагсаалт
```

### Өгөгдлийн сан
```bash
mysql -h localhost -u root -p < database.sql      # Сан үүсгэх
./backup-db.sh                                     # Бэкап хийх
./backup-db.sh -restore backups/файл.sql          # Сэргээлт
```

### PM2 сүргүүлэлт
```bash
pm2 start ecosystem.config.js          # Эхлүүлэлт
pm2 list                               # Статусны жагсаалт
pm2 monit                              # Мониторинг
pm2 restart all                        # Дахин эхлүүлэлт
pm2 stop all                           # Зогсоолт
```

---

## 🔐 АЮУЛГҮЙ БАЙДЛЫН ЖАГСААЛТ

- [ ] `.env` файл **та үүсгэсэн**
- [ ] `.env`-ны `JWT_SECRET` хүчтэй (32+ үзэгт)
- [ ] `.env` файл **хүний ажиглахгүй** байна (`chmod 600 .env`)
- [ ] MySQL **нууц үг** хүнээс ажиглагддаггүй
- [ ] HCAPTCHA_SECRET оруулсан
- [ ] SMTP параметрүүд оруулсан
- [ ] SSL сертификат суулгасан (HTTPS)

---

## ⚠️ НИЙТЛЭГ АЛДАА

### ❌ "Cannot find module 'express'"
```bash
npm install --production
```

### ❌ "Error: connect ECONNREFUSED"
```bash
# MySQL сервер асаах
mysql.server start  # macOS
sudo systemctl start mysql  # Linux
```

### ❌ "Port 5000 already in use"
```bash
# .env-д PORT өөрчлөх эсвэл
lsof -i :5000 && kill -9 <PID>
```

---

## 📋 ҮЙЛДВЭРЛЭЛИЙН НИЙТЛЭГ ҮЙЛДЭЛ

### 📅 Өдөр бүр
```bash
pm2 status               # Сервер ажиллаж байгаа эсэх
pm2 logs --lines 20     # Сүүлийн логүүдийг харах
```

### 🗓️ Долоо хоног бүр
```bash
./backup-db.sh          # Бэкап хийх
ls -lh backups/         # Бэкап файлүүдийг харах
```

### 📆 Сар бүр
```bash
./backup-db.sh -clean   # Хуучин бэкап устгах (7 өдөрөөс)
pm2 monit               # Үйлдвэрлэлийн үзүүлэлтүүдийг харах
```

---

## 🌐 БРАУЗЕР НЭЭХ

```
http://localhost:5000
```

**Администратор логин:**
- Нэр: `admin`
- Нууц үг: `admin123` (ШИНЭЧЛЭХ!)

---

## 📞 АСУУЛТ ВЭ АСУУДАЛ

### Логүүдийг эхлүүлэх
```bash
pm2 logs police-notification-system --lines 100
```

### Өгөгдлийн сан холболтыг шалгалт
```bash
mysql -h localhost -u root -p -e "SELECT 1"
```

### Процессийн CPU/RAM ашиглалт
```bash
pm2 monit
```

---

## ✅ ЭХЛҮҮЛЭЛТИЙН БАТАЛГААЖУУЛАЛТ

- [ ] Node.js суулгагдсан
- [ ] MySQL суулгагдсан
- [ ] `npm install` амжилттай
- [ ] `.env` файл үүсгэгдсэн
- [ ] `database.sql` байгаа
- [ ] `logs/` болон `backups/` үүсгэгдсэн
- [ ] Сервер асаах `npm start`
- [ ] Браузер: `http://localhost:5000` ✓

---

## 📖 ДҮН УРАН ЗОХИОЛ

```
deploy/
├── README.md                    ← ЭХЛЭЛТЭЙ: Эхлүүлэхээр уших
├── DEPLOYMENT_GUIDE.md          ← Нарийвчилсан гарын авлага
├── DEPLOYMENT_CHECKLIST.md      ← Баталгаажуулалтын жагсаалт  
├── DEPLOYMENT_SCRIPTS.md        ← Скриптүүдийн гарын авлага
└── DEPLOYMENT_COMPLETE.md       ← Бүрэн удирдамж
```

---

## 🎯 ДАРААГИЙН АЛХАМ

1. **`README.md` уншина** - Сонголттой мэдээлэл
2. **`.env.example` хууслаа** → `.env` үүсгэнэ
3. **`.env` засварлаа** - Параметрүүдийг оруулна
4. **Скрипт гүйлгүүлнэ** - `setup.sh` эсвэл `setup.bat`
5. **Сервер асаана** - `npm start`
6. **Браузер нээнэ** - `http://localhost:5000`

---

**Үйлдвэрлэлийн Удирдамжийн Хувилбар:** 1.0.0  
**Сүүлийн Шинэчлэлт:** 2026-05-15  
**Статус:** ✅ Үйлдвэрлэлд БҮРЭН БЭЛЭН

🚀 **Одоо үйлдвэрлэлийн сервер дээр байршуулалттай!**
