# 🚀 ҮЙЛДВЭРЛЭЛИЙН БЭЛТГЭЛИЙГ ДУУСГАСАН
# Цагдаагийн Мэдэгдэл Систем - Үйлдвэрлэлийн Баг

---

## ✅ Үйлдвэрлэлийн ФАЙЛУУД ЭХЛҮҮЛЭХЭНИЙГ БҮРЭН БЭЛЭН

**Үүсгэсэн огноо:** 2026-05-15  
**Статус:** ✅ Үйлдвэрлэлд бэлэн

---

## 📦 ҮЙЛДВЭРЛЭЛИЙН БАГ БҮТЭЦ

```
deploy/
├── ⚙️ ҮНДСЭН СЕРВЕР ФАЙЛУУД
│   ├── server.js
│   ├── package.json
│   ├── package-lock.json
│   └── setup-system-settings.js
│
├── 🗄️ ӨГӨГДЛИЙН САН
│   ├── database.sql (Бүх таблицуудын схем болон анхны өгөгдөл)
│   ├── backup-db.sh (Linux/Mac бэкап скрипт)
│   └── backup-db.bat (Windows бэкап скрипт)
│
├── ⚙️ ТОХИРГОО ФАЙЛУУД
│   ├── .env.example (ЗААВАЛ: .env-ээр хууслаж сөргүүлэх)
│   ├── ecosystem.config.js (PM2 сүргүүлэлт)
│   └── config/database.js (Өгөгдлийн санн руу холбоо)
│
├── 🚀 ЭХЛҮҮЛЭХ СКРИПТҮҮД
│   ├── setup.sh (Linux/Mac - автоматик эхлүүлэлт)
│   └── setup.bat (Windows - автоматик эхлүүлэлт)
│
├── 📚 БАРИМТЫН БИЧИГ
│   ├── README.md (ЭХЛЭЛТЭЙ: Хурдан мэдээлэл болон файл жагсаалт)
│   ├── DEPLOYMENT_GUIDE.md (Нарийвчилсан тохиргооны гарын авлага)
│   ├── DEPLOYMENT_CHECKLIST.md (Баталгаажуулалтын жагсаалт)
│   ├── DEPLOYMENT_SCRIPTS.md (Үйлдвэрлэлийн скриптүүдийн гарын авлага)
│   └── DEPLOYMENT_COMPLETE.md (Энэ файл)
│
├── 🛠️ СЕРВЕР КОМПОНЕНТУУД
│   ├── routes/ (API маршруут)
│   ├── middleware/ (Express middleware)
│   ├── utils/ (Утилита функцүүд)
│   ├── config/ (Конфигурация файлууд)
│   ├── public/ (Администратор интерфэйс)
│   └── uploads/ (Файл салгах директори)
│
└── 📁 ТА ҮҮСГЭХ ФАЙЛУУД
    ├── .env (Үйлдвэрлэлийн орчин - та үүсгэх!)
    ├── logs/ (Логирование)
    └── backups/ (Өгөгдлийн сан бэкап)
```

---

## 🚀 ЭХЛҮҮЛЭЛТИЙН АЛХАМУУД

### АЛХАМ 1: Хамаарлуудыг суулгах

```bash
cd deploy
npm install --production
```

### АЛХАМ 2: .env файл үүсгэх

```bash
cp .env.example .env
# Текст редакторд нээж параметрүүдийг оруулна
```

**Заавал оруулах параметрүүд:**
- `DB_HOST`, `DB_USER`, `DB_PASSWORD` - MySQL холбоо
- `JWT_SECRET` - 32+ үзэгтэй сүр салдан
- `HCAPTCHA_SECRET` - Captcha сервис
- `SMTP_*` - Имэйл параметрүүд
- `APP_BASE_URL` - Сервер домэйн

### АЛХАМ 3: Аль хэдийнээ файлуудыг үүсгэх

```bash
mkdir -p logs backups uploads/imports uploads/notifications
chmod -R 755 logs backups uploads
```

### АЛХАМ 4: Өгөгдлийн сан үүсгэх

```bash
mysql -h localhost -u root -p < database.sql
```

### АЛХАМ 5: Сервер асаах

```bash
# Опцион 1: Шууд асаалт
npm start

# Опцион 2: PM2 ашиглан (зөвхөн нэгээс олон үйлдвэрлэлтийн үед)
npm install -g pm2
pm2 start ecosystem.config.js
pm2 startup
pm2 save
```

---

## 📖 БАРИМТЫН БИЧГҮҮДИЙН ХЭРЭГЛЭЭ

| Баримтын Бичиг | Агуулга | Хүмүүс |
|---|---|---|
| **README.md** | Хурдан мэдээлэл, файлын жагсаалт | Новичок |
| **DEPLOYMENT_GUIDE.md** | Алхам алхамаар нарийвчилсан тохиргоо | Администратор |
| **DEPLOYMENT_CHECKLIST.md** | Үйлдвэрлэл явах ёстой шалгалт | Техникийн аль |
| **DEPLOYMENT_SCRIPTS.md** | Автоматик скриптүүдийн хэрэглээ | Туршилтан |

---

## 🔑 ТҮЛХҮҮР ФАЙЛУУД

### 📄 server.js
**Зорилго:** Express.js сервер  
**Хэрэгцээ:** Үйлдвэрлэл тугжээр хөл биширээ  
**Статус:** ✅ Бэлэн

### 📄 database.sql
**Зорилго:** MySQL схем болон анхны өгөгдөл  
**Агуулга:**
- districts (Дүүрэг)
- khoroos (Хороо)
- users (Хэрэглэгчид)
- notifications (Мэдэгдлүүд)
- registration_requests (Бүртгэлийн хүсэлтүүд)
- system_settings (Системийн тохиргоо)
- гэх мэт

**Статус:** ✅ Бэлэн

### 📄 .env.example
**Зорилго:** Окружа параметрүүдийн жишээ  
**Заавал:** Та .env руу хууслаж оруулах  
**Статус:** ✅ Бэлэн

### 🔧 setup.sh / setup.bat
**Зорилго:** Автоматик эхлүүлэлт  
**Сүргүүлэх:** Нэг удаа эхлүүлэлтийн үед  
**Статус:** ✅ Бэлэн

### 💾 backup-db.sh / backup-db.bat
**Зорилго:** Өгөгдлийн сан бэкап/сэргээлт  
**Сүргүүлэх:** Үе үе (долоо хоног бүр)  
**Статус:** ✅ Бэлэн

---

## ⚙️ ҮЙЛДВЭРЛЭЛИЙН ОРЧИН

### Системийн Шаардлага

| Компонент | Хамгийн Бага | Санал Болгож Буй |
|-----------|---|---|
| Node.js | v14+ | v18 LTS |
| npm | 6+ | 8+ |
| MySQL | 5.7+ | 8.0+ |
| RAM | 2 GB | 4-8 GB |
| Диск | 20 GB | 100 GB+ |

### Үйлдвэрлэлийн OS

- ✅ Ubuntu 20.04 / 22.04 LTS
- ✅ CentOS 7 / 8
- ✅ Debian 10 / 11
- ✅ Windows Server 2019 / 2022
- ✅ Amazon Linux 2
- ✅ macOS 10.15+

---

## 📞 ХҮРГЭЛТЭД БАЙХАД

### 🆘 Өгөгдлийн Санн руу холбоо ямар байхгүй

```bash
# MySQL сервер ажиллаж байгаа эсэх шалгалт
mysql -h localhost -u root -p -e "SELECT 1"

# .env параметрүүдийг баталгаажуулалт
cat .env | grep DB_
```

### 🆘 Port 5000 аль хэдийн ашиглагдаж байна

```bash
# Linux/Mac
lsof -i :5000

# Windows
netstat -ano | findstr :5000

# .env-д PORT-ыг өөрчлөх
echo "PORT=8000" >> .env
```

### 🆘 JWT_SECRET алдаа

```bash
# Хүчтэй JWT_SECRET үүсгэх
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

# Үр дүнг .env-д оруулна
```

---

## ✅ БАТАЛГААЖУУЛАЛТ

Дараах зүйлүүдийг баталгаажуулна уу:

- [ ] Node.js суулгагдсан: `node --version`
- [ ] npm суулгагдсан: `npm --version`
- [ ] MySQL суулгагдсан: `mysql --version`
- [ ] MySQL сервер ажиллаж байгаа: `mysqladmin ping`
- [ ] `npm install` амжилттай: `npm list --depth=0`
- [ ] Бүх директор үүсгэгдсэн: `ls -la logs backups uploads`
- [ ] database.sql байгаа: `ls database.sql`
- [ ] .env байгаа: `ls .env`

---

## 🎯 ДАРААГИЙН ҮЕҮҮД

### 1. Серверийг үйлдвэрлэл ЭХЛҮҮЛЭХ

```bash
npm start
# эсвэл PM2-ээр
pm2 start ecosystem.config.js
```

### 2. БРАУЗЕР дээр нээх

```
http://localhost:5000
```

### 3. АДМИНИСТРАТОР ЛОГИН

- **Хэрэглэгч:** admin
- **Нууц үг:** admin123 (ШИНЭЧЛЭХ!)

### 4. ЛОГҮҮДИЙГ СҮРГҮҮЛЭХ

```bash
pm2 logs
# эсвэл
tail -f logs/app.log
```

### 5. БАЙХАД МОНИТОРИНГ

```bash
pm2 monit
```

---

## 📋 ҮЙЛДВЭРЛЭЛИЙН УДИРДЛАГА

### Өдөр бүр
- ✅ Сервер статусын шалгалт
- ✅ Логүүдийн шалгалт

### Долоо хоног бүр
- ✅ Өгөгдлийн сан бэкап хийх
- ✅ Серверийн гүйцэтгэлийг сүргүүлэх

### Сар бүр
- ✅ Node.js шинэчлэлтийг шалгалт
- ✅ Хуучин бэкапыг цэвэрлэх
- ✅ Үйлдвэрлэлийн үзүүлэлтүүдийн шинэчлэлт

---

## 🔐 АЮУЛГҮЙ БАЙДАЛ

### ⚠️ ЧУХАЛ

1. **.env файл хүний ажиглахгүй байна!**
   ```bash
   chmod 600 .env  # Linux/Mac
   ```

2. **JWT_SECRET нь 32+ үзэгт байна**

3. **SSL сертификат суулгах (HTTPS)**
   ```bash
   certbot --nginx -d your_domain.com
   ```

4. **.env-ыг git-гүй git-н .gitignore-д оруулах**

---

## 🎉 ДУУСГАСАН!

**✅ Системийн үйлдвэрлэлийн баг эхлүүлэхэнд БҮРЭН БЭЛЭН**

### Дараагийн Алхам:
1. `README.md` уншина
2. `DEPLOYMENT_GUIDE.md` дагана
3. `setup.sh` / `setup.bat` гүйлгүүлна
4. Сервер асаана: `npm start`
5. Браузер: `http://localhost:5000`

---

**Үйлдвэрлэлийн Паккет Хувилбар:** 1.0.0  
**Сүүлийн Шинэчлэлт:** 2026-05-15  
**Төлөв:** ✅ Үйлдвэрлэлд бэлэн  
**Баталгаажуулалт:** ✅ Бүрэн дуусчээ
