# 7D Project Hub — ຄູ່ມືຜູ້ດູແລລະບົບ (ສະບັບສົມບູນ)

ເອກະສານນີ້ຄອບຄຸມທຸກຢ່າງທີ່ຜູ້ດູແລລະບົບຕ້ອງຮູ້: ຕິດຕັ້ງໃໝ່ · ຕັ້ງຄ່າ ·
ອັບເດດຈາກໜ້າເວັບ · ຍ້ອນກັບເມື່ອມີບັນຫາ · ສຳຮອງຂໍ້ມູນ · ແກ້ບັນຫາທີ່ພົບເລື້ອຍ

ສະບັບກົງກັບເວີຊັນ: **1.0.21** (ເບິ່ງເລກເວີຊັນປັດຈຸບັນໄດ້ທີ່ທ້າຍທຸກໜ້າຂອງລະບົບ)

---

## 1. ຮູ້ຈັກລະບົບກ່ອນ

7D Project Hub ເປັນເວັບແອັບ PHP + MySQL/MariaDB ທຳມະດາ — ບໍ່ຕ້ອງມີ Node,
ບໍ່ຕ້ອງມີ Docker, ບໍ່ຕ້ອງມີ service ພິເສດໃດໆ (OnlyOffice ເປັນທາງເລືອກເສີມ).

ສິ່ງທີ່ຜູ້ດູແລຕ້ອງຈື່ມີ 3 ຢ່າງ:

| ສິ່ງ | ຢູ່ໃສ | ໝາຍເຫດ |
|---|---|---|
| **config.php** | ໂຟນເດີຮາກຂອງເວັບ | ກຸນແຈຕູ້ນິລະໄພ + ລະຫັດຖານຂໍ້ມູນ — **ຫ້າມລຶບ/ຫ້າມທັບ** ການອັບເດດຈະບໍ່ແຕະໄຟລ໌ນີ້ເດັດຂາດ |
| **ໂຟນເດີ uploads/** | ໂຟນເດີຮາກ (ຫຼືບ່ອນທີ່ config ຊີ້ໄປ) | ໄຟລ໌ທັງໝົດຂອງຜູ້ໃຊ້ + snapshot ຂອງລະບົບອັບເດດ — ການອັບເດດຈະບໍ່ແຕະເຊັ່ນກັນ |
| **ຖານຂໍ້ມູນ** | MySQL/MariaDB ຊື່ `edl_ebill_hub` | ຂໍ້ມູນທຸກຢ່າງຢູ່ນີ້ |

ສຳຮອງ 3 ຢ່າງນີ້ໄວ້ = ກູ້ລະບົບຄືນໄດ້ສະເໝີ 100%.

ໄຟລ໌ອື່ນທີ່ຄວນຮູ້:

- `VERSION` — ເລກເວີຊັນ + ບັນທຶກການປ່ຽນແປງທຸກລຸ້ນ + ຄຳແນະນຳອັບເກຣດ
- `install.sql` — ໂຄງສ້າງຕາຕະລາງທັງໝົດ (ໃຊ້ຕອນຕິດຕັ້ງໃໝ່ເທົ່ານັ້ນ)
- `upgrade_v2.sql … upgrade_v35.sql` — ໄຟລ໌ອັບເກຣດຖານຂໍ້ມູນທີລະຂັ້ນ
  (ຕັ້ງແຕ່ v19 ຂຶ້ນໄປ **ຮັນຊ້ຳໄດ້ບໍ່ເສຍຫາຍ** — ໜ້າອັບເດດໃນເວັບຮັນໃຫ້ອັດຕະໂນມັດ)
- `OO-SETUP.md` — ຄູ່ມືຕິດຕັ້ງ OnlyOffice (ແກ້ໄຂເອກະສານໃນເວັບ — ທາງເລືອກເສີມ)

---

## 2. ຄວາມຕ້ອງການຂອງເຊີບເວີ

| ອົງປະກອບ | ຂັ້ນຕ່ຳ | ແນະນຳ |
|---|---|---|
| PHP | 8.0 | 8.2 ຂຶ້ນໄປ |
| Extension PHP | `pdo_mysql`, `mysqli`, `zip`, `mbstring` | + `gd`, `curl`, `openssl` |
| ຖານຂໍ້ມູນ | MySQL 5.7 / MariaDB 10.3 | MariaDB 10.6 ຂຶ້ນໄປ |
| Web server | Apache ຫຼື Nginx | Apache + mod_php ຫຼື php-fpm |
| ພື້ນທີ່ດິສ | 1 GB | 5 GB ຂຶ້ນໄປ (ໄຟລ໌ແນບ + snapshot) |
| HTTPS | — | **ແນະນຳແຮງ** (ຈຳເປັນສຳລັບປຸ່ມຕິດຕັ້ງແອັບ PWA) |

ກວດ extension ດ້ວຍຄຳສັ່ງ:

```bash
php -m | grep -E "pdo_mysql|mysqli|zip|mbstring|gd|curl"
```

ຕິດຕັ້ງທີ່ຂາດ (Ubuntu/Debian):

```bash
sudo apt install php-mysql php-zip php-mbstring php-gd php-curl
sudo systemctl reload apache2
```

---

## 3. ຕິດຕັ້ງໃໝ່ (ເຄື່ອງເປົ່າ) — ທີລະຂັ້ນ

### 3.1 ກຽມເຊີບເວີ (Ubuntu/Debian)

```bash
sudo apt update
sudo apt install apache2 mariadb-server php php-mysql php-zip php-mbstring php-gd php-curl unzip
sudo mysql_secure_installation        # ຕັ້ງລະຫັດ root ຖານຂໍ້ມູນ
```

### 3.2 ສ້າງຖານຂໍ້ມູນ + ຜູ້ໃຊ້

```sql
sudo mysql
CREATE DATABASE edl_ebill_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'hub'@'localhost' IDENTIFIED BY 'ລະຫັດຍາວໆທີ່ເດົາຍາກ';
GRANT ALL PRIVILEGES ON edl_ebill_hub.* TO 'hub'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```

### 3.3 ວາງໄຟລ໌ລະບົບ

```bash
cd /var/www
sudo unzip 7d-project-hub-v1.0.21.zip
sudo mv 7d-project-hub-v1.0.21 7d-hub
sudo chown -R www-data:www-data /var/www/7d-hub
```

> ໂຟນເດີຮາກຕ້ອງໃຫ້ www-data ຂຽນໄດ້ — ທັງຕອນຕິດຕັ້ງ (ສ້າງ config.php)
> ແລະ ຕອນໃຊ້ **ໜ້າອັບເດດລະບົບ** (ຂຽນທັບໄຟລ໌ໂປຣແກຣມ). ຖ້າຢາກປິດສິດຂຽນ
> ເພື່ອຄວາມປອດໄພສູງສຸດກໍ່ໄດ້ — ແຕ່ຕ້ອງເປີດຄືນຊົ່ວຄາວທຸກຄັ້ງກ່ອນອັບເດດ.

### 3.4 ຊີ້ Apache ໃສ່ໂຟນເດີ

```apache
# /etc/apache2/sites-available/7d-hub.conf
<VirtualHost *:80>
    ServerName hub.yourcompany.la
    DocumentRoot /var/www/7d-hub
    <Directory /var/www/7d-hub>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
```

```bash
sudo a2ensite 7d-hub && sudo a2enmod rewrite && sudo systemctl reload apache2
```

### 3.5 ຮັນໜ້າຕິດຕັ້ງ

1. ເປີດ `http://hub.yourcompany.la/install/`
2. ເຮັດຕາມ 5 ຂັ້ນ: ກວດເຄື່ອງ → ຕໍ່ຖານຂໍ້ມູນ (ໃສ່ `hub` + ລະຫັດຈາກຂໍ້ 3.2) →
   ສ້າງຕາຕະລາງ → ຕັ້ງບັນຊີຜູ້ດູແລ → ສຳເລັດ
3. ໜ້າຕິດຕັ້ງຈະຂຽນ `config.php` ໃຫ້ເອງ ພ້ອມ **ກຸນແຈຕູ້ນິລະໄພ (VAULT_KEY)
   ທີ່ສ້າງໃໝ່ສະເພາະເຄື່ອງນີ້** — ສຳຮອງ config.php ໄວ້ທັນທີ ເພາະກຸນແຈນີ້
   ຖ້າເສຍ ຂໍ້ມູນໃນຕູ້ນິລະໄພຈະເປີດບໍ່ໄດ້ອີກ
4. ຂັ້ນສຸດທ້າຍ ກົດປຸ່ມ **"ລຶບໂຟນເດີ install"** — ຫ້າມຂ້າມ

### 3.6 ຫຼັງເຂົ້າລະບົບຄັ້ງທຳອິດ

ໄປ **ຕັ້ງຄ່າ (Settings)** ແລ້ວຕັ້ງຕາມລຳດັບ:

1. **app_url** — URL ຈິງຂອງລະບົບ ເຊັ່ນ `https://hub.yourcompany.la`
   (ສຳຄັນ! ລິ້ງໃນອີເມວ, QR ແຈ້ງບັນຫາ, ແລະ OnlyOffice ໃຊ້ຄ່ານີ້)
2. ຊື່ລະບົບ / ໂລໂກ້ / ສີແບຣນ
3. SMTP — ໃຫ້ລະບົບສົ່ງອີເມວແຈ້ງເຕືອນ + ລືມລະຫັດຜ່ານໄດ້
4. ເປີດ 2FA ໃຫ້ບັນຊີ admin ທຸກຄົນ (ໜ້າ ບັນຊີຂອງຂ້ອຍ → 2FA)

---

## 4. ເປີດ HTTPS (ແນະນຳແຮງ)

ມີໂດເມນຈິງ + ເຊີບເວີອອກອິນເຕີເນັດໄດ້ → ໃຊ້ Let's Encrypt ຟຣີ:

```bash
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d hub.yourcompany.la
```

ລະບົບພາຍໃນ (intranet) ທີ່ບໍ່ອອກເນັດ → ອອກໃບຢັ້ງຢືນເອງ ຫຼື ໃຊ້ CA ພາຍໃນ
ຂອງອົງກອນ ແລ້ວແຈກໃບຢັ້ງຢືນໃຫ້ເຄື່ອງພະນັກງານ.

ເປີດ HTTPS ແລ້ວ:

- ໄປຕັ້ງ **app_url** ເປັນ `https://...`
- ເບຣົາເຊີຈຶ່ງຈະສະເໜີປຸ່ມ **"ຕິດຕັ້ງແອັບ" (PWA)** — ມືຖືກົດ Add to Home Screen
  ເປີດເຕັມຈໍຄືແອັບແທ້

---

## 5. ອັບເດດລະບົບ — ຈາກໜ້າເວັບ (ວິທີຫຼັກ)

> ເມນູ: **ລະບົບ → ອັບເດດລະບົບ** (ເຫັນສະເພາະ admin)

### 5.1 ຂັ້ນຕອນ (3 ກົດ)

1. **ອັບໂຫຼດ** ໄຟລ໌ຊຸດອັບເດດ `7d-project-hub-vX.X.X.zip` → ກົດ "ອັບໂຫຼດ ແລະ ກວດກ່ອນ"
2. ອ່ານ **ຜົນກວດ** — ລະບົບກວດໃຫ້ວ່າ: ZIP ຖືກຕ້ອງ, ເປັນຊຸດຂອງ 7D Project Hub ແທ້,
   ເວີຊັນໃໝ່ກວ່າປັດຈຸບັນ, ພື້ນທີ່ດິສພໍ, ໂຟນເດີຂຽນໄດ້ — **ຂັ້ນນີ້ຍັງບໍ່ມີຫຍັງຖືກປ່ຽນ**
3. ພິມ **ລະຫັດຜ່ານ admin** ຢືນຢັນ → ກົດ "ຕິດຕັ້ງອັບເດດ" → ລໍຖ້າບໍ່ຮອດ 1 ນາທີ

### 5.2 ລະບົບເຮັດຫຍັງແດ່ (ອັດຕະໂນມັດທັງໝົດ)

| ຂັ້ນ | ການກະທຳ | ຖ້າຜິດພາດ |
|---|---|---|
| 1 | ເປີດໜ້າປິດປັບປຸງ (maintenance) ຊົ່ວຄາວ | — |
| 2 | **ສຳຮອງໄຟລ໌ໂປຣແກຣມທຸກໄຟລ໌ + dump ຖານຂໍ້ມູນທັງກ້ອນ** ໄວ້ໃນ snapshot | ຢຸດທັນທີ — ຍັງບໍ່ມີຫຍັງປ່ຽນ |
| 3 | ແຕກ ZIP ໃສ່ບ່ອນຊົ່ວຄາວ ກວດຄວາມຄົບຖ້ວນ | ຢຸດ — ຍັງບໍ່ມີຫຍັງປ່ຽນ |
| 4 | ຄັດລອກໄຟລ໌ໃໝ່ທັບ (ຂ້າມ config.php ແລະ uploads/) | **ກູ້ໄຟລ໌ຈາກ snapshot ຄືນເອງອັດຕະໂນມັດ** |
| 5 | ຮັນ SQL ອັບເກຣດ (upgrade_v19+) ຄົບທຸກໄຟລ໌ | ກູ້ຄືນອັດຕະໂນມັດເຊັ່ນກັນ |
| 6 | ກວດຢືນຢັນເລກເວີຊັນ → ປິດ maintenance | ກູ້ຄືນອັດຕະໂນມັດເຊັ່ນກັນ |

ທຸກຂັ້ນມີ **log** ສະແດງເທິງໜ້າຈໍ ແລະ ເກັບໄວ້ໃນປະຫວັດ (ກົດ 📄 log ເບິ່ງຄືນໄດ້).

### 5.3 ຕິດຕັ້ງຊ້ຳ / ສ້ອມແປງໄຟລ໌

ຕິກ **"ຕິດຕັ້ງແມ້ເວີຊັນບໍ່ໃໝ່ກວ່າ"** ແລ້ວອັບໂຫຼດ ZIP ເວີຊັນດຽວກັນ —
ໃຊ້ເວລາໄຟລ໌ໃດໄຟລ໌ໜຶ່ງເສຍ/ຖືກແກ້ຜິດ ຢາກໃຫ້ກັບເປັນຂອງແທ້ຈາກຊຸດຕິດຕັ້ງ.

---

## 6. ຍ້ອນກັບ (Rollback) — ເມື່ອອັບເດດແລ້ວມີບັນຫາ

> ໜ້າດຽວກັນ: **ລະບົບ → ອັບເດດລະບົບ → ກອບ "ຍ້ອນກັບ"**

ທຸກຄັ້ງທີ່ອັບເດດ ລະບົບເກັບ **snapshot** (ໄຟລ໌ທຸກໄຟລ໌ + dump ຖານຂໍ້ມູນ) ໄວ້ໃຫ້ແລ້ວ —
ເລືອກຈຸດທີ່ຈະກັບໄປ, ເລືອກຮູບແບບ, ພິມລະຫັດຜ່ານ admin, ກົດຢືນຢັນ. ມີ 2 ຮູບແບບ:

| ຮູບແບບ | ເຮັດຫຍັງ | ຂໍ້ມູນຜູ້ໃຊ້ | ໃຊ້ເມື່ອ |
|---|---|---|---|
| **ກູ້ສະເພາະໄຟລ໌ (ແນະນຳ)** | ເອົາໄຟລ໌ໂປຣແກຣມເວີຊັນເກົ່າກັບຄືນ | **ຢູ່ຄົບທຸກຢ່າງ** | ເວີຊັນໃໝ່ມີບັນຫາ ຢາກກັບໄປເວີຊັນເກົ່າກ່ອນ |
| **ກູ້ໄຟລ໌ + ຖານຂໍ້ມູນ** | ຄືນທັງໄຟລ໌ ແລະ ຖານຂໍ້ມູນທັງກ້ອນ | ⚠️ **ຂໍ້ມູນຫຼັງຈຸດ snapshot ຫາຍທັງໝົດ** | ຖານຂໍ້ມູນເສຍຫາຍໜັກ ຈຳເປັນຕ້ອງກູ້ທັງກ້ອນ |

> ເປັນຫຍັງ "ກູ້ສະເພາະໄຟລ໌" ຈຶ່ງພຽງພໍເກືອບທຸກກໍລະນີ?
> ເພາະ SQL ອັບເກຣດຂອງລະບົບນີ້ **ມີແຕ່ "ເພີ່ມ"** (ຕາຕະລາງ/ຖັນໃໝ່) ບໍ່ມີ "ລຶບ/ແກ້" —
> ໂປຣແກຣມເວີຊັນເກົ່າຈຶ່ງໃຊ້ຖານຂໍ້ມູນທີ່ຜ່ານການອັບເກຣດແລ້ວໄດ້ຕາມປົກກະຕິ.

### 6.1 ກູ້ດ້ວຍມື (ກໍລະນີເປີດເວັບບໍ່ໄດ້ເລີຍ)

snapshot ຢູ່ທີ່ `uploads/sysupdate/snap-<ເວີຊັນ>-<ວັນເວລາ>/`

```bash
# 1) ກູ້ໄຟລ໌ໂປຣແກຣມ
sudo cp -r /var/www/7d-hub/uploads/sysupdate/snap-1.0.20-20260825-130959/files/* /var/www/7d-hub/
sudo chown -R www-data:www-data /var/www/7d-hub

# 2) (ສະເພາະເມື່ອຈຳເປັນ) ກູ້ຖານຂໍ້ມູນ — ຂໍ້ມູນຫຼັງ snapshot ຈະຫາຍ
mysql -u hub -p edl_ebill_hub < /var/www/7d-hub/uploads/sysupdate/snap-1.0.20-20260825-130959/db.sql

# 3) ຖ້າໜ້າຈໍຄ້າງຢູ່ "ປິດປັບປຸງ"
mysql -u hub -p edl_ebill_hub -e "UPDATE settings SET svalue='0' WHERE skey='maintenance_mode'"
```

### 6.2 ອັບເດດດ້ວຍມື (ທາງສຳຮອງ ຖ້າບໍ່ໃຊ້ໜ້າເວັບ)

```bash
# 1) ສຳຮອງກ່ອນສະເໝີ (ເບິ່ງຂໍ້ 7)
# 2) ແຕກ ZIP ທັບ — config.php ແລະ uploads ບໍ່ຢູ່ໃນ ZIP ຢູ່ແລ້ວ ຈຶ່ງບໍ່ຖືກທັບ
cd /tmp && unzip 7d-project-hub-v1.0.21.zip
sudo cp -r 7d-project-hub-v1.0.21/* /var/www/7d-hub/
sudo chown -R www-data:www-data /var/www/7d-hub
# 3) ຮັນ SQL ຕາມທີ່ໄຟລ໌ VERSION ບອກ (ຮັນຊ້ຳໄຟລ໌ເກົ່າກໍ່ບໍ່ເສຍຫາຍ)
mysql -u hub -p edl_ebill_hub < /var/www/7d-hub/upgrade_v35.sql
```

---

## 7. ສຳຮອງຂໍ້ມູນ (Backup)

### 7.1 ໃນລະບົບເອງ

**ຕັ້ງຄ່າ → ສຳຮອງຂໍ້ມູນ** — ສ້າງໄຟລ໌ ZIP ສຳຮອງ (ຖານຂໍ້ມູນ + ໄຟລ໌ແນບ ເລືອກໄດ້)
ດາວໂຫຼດເກັບໄວ້ນອກເຄື່ອງໄດ້ທັນທີ. ລະບົບຍັງສຳຮອງເອງຕາມຮອບ ແລະ ສົ່ງຂຶ້ນ
Google Drive ໄດ້ຖ້າຕັ້ງໄວ້.

### 7.2 ນອກລະບົບ (cron — ແນະນຳໃຫ້ມີຄວບຄູ່)

```bash
# /etc/cron.d/7d-hub-backup — ທຸກຄືນຕີ 2
0 2 * * * root mysqldump -u hub -pລະຫັດ edl_ebill_hub | gzip > /backup/hub-db-$(date +\%F).sql.gz
30 2 * * * root tar czf /backup/hub-uploads-$(date +\%F).tar.gz -C /var/www/7d-hub uploads config.php
```

ຈື່ໄວ້: **ຖານຂໍ້ມູນ + uploads + config.php = ກູ້ຄືນໄດ້ 100%**
ເກັບສຳເນົາໄວ້ຕ່າງເຄື່ອງ/ຕ່າງສະຖານທີ່ຢ່າງໜ້ອຍ 1 ຊຸດສະເໝີ.

---

## 8. ລະບົບເສີມ

- **OnlyOffice** (ແກ້ Word/Excel/PowerPoint ໃນເວັບ + version history):
  ຕິດຕັ້ງຕາມ `OO-SETUP.md` ແລ້ວຕັ້ງ URL + JWT Secret ໃນ ຕັ້ງຄ່າ → ຄັງໄຟລ໌
- **ຈຸດຮັບແຈ້ງ QR ປະຈຳແຂວງ**: Helpdesk → ຈຸດຮັບແຈ້ງ QR — ພິມໂປສເຕີ A4,
  ຕັ້ງລະຫັດຜ່ານຕໍ່ຈຸດໄດ້, ອອກລິ້ງ/QR ໃໝ່ໄດ້ (ອັນເກົ່າຈະໃຊ້ບໍ່ໄດ້ທັນທີ)
  — ຢ່າລືມຕັ້ງ **app_url** ກ່ອນພິມໂປສເຕີ ບໍ່ດັ່ງນັ້ນ QR ຈະຊີ້ຜິດເຄື່ອງ
- **reCAPTCHA** ໜ້າ login/ຟອມ public: ຕັ້ງຄ່າ → ຄວາມປອດໄພ
- **ແຈ້ງເຕືອນອີເມວ**: ຕັ້ງ SMTP ກ່ອນ ແລ້ວເປີດກົດແຈ້ງເຕືອນທີລະເຫດການ

---

## 9. ແກ້ບັນຫາທີ່ພົບເລື້ອຍ

| ອາການ | ສາເຫດ | ວິທີແກ້ |
|---|---|---|
| ເຂົ້າລະບົບບໍ່ໄດ້ — ລືມລະຫັດ admin ແລະ ບໍ່ມີ SMTP | — | `php -r "echo password_hash('ລະຫັດໃໝ່', PASSWORD_DEFAULT);"` ແລ້ວ `UPDATE users SET password_hash='<ຄ່າທີ່ໄດ້>' WHERE username='admin';` |
| ເສຍມືຖືທີ່ມີແອັບ 2FA | ເຂົ້າລະບົບບໍ່ໄດ້ຍ້ອນລະຫັດ OTP | admin ຄົນອື່ນ: ໜ້າຜູ້ໃຊ້ → ລິ້ງ reset 2FA · ຖ້າເປັນ admin ຄົນດຽວ: `UPDATE users SET totp_secret=NULL WHERE username='admin';` |
| ໜ້າຈໍຄ້າງ "ປິດປັບປຸງ" | maintenance ຄ້າງ | `UPDATE settings SET svalue='0' WHERE skey='maintenance_mode';` |
| Error 500 + ຂໍ້ຄວາມ "ຖານຂໍ້ມູນຍັງອັບເກຣດບໍ່ຄົບ" | ອັບເດດໄຟລ໌ແລ້ວ ແຕ່ຍັງບໍ່ໄດ້ຮັນ SQL | ໜ້າ error ບອກຊື່ໄຟລ໌ສຸດທ້າຍເອງ — ຮັນ upgrade ທີ່ເຫຼືອຕາມລຳດັບ (ຮັນຊ້ຳໄດ້) |
| "ໂຟນເດີໂປຣແກຣມຂຽນບໍ່ໄດ້" ໃນໜ້າອັບເດດ | ສິດໄຟລ໌ | `sudo chown -R www-data:www-data /var/www/7d-hub` |
| ຕໍ່ຖານຂໍ້ມູນບໍ່ໄດ້ (ໜ້າຂາວ/DB error) | ລະຫັດ/host ໃນ config.php ຜິດ ຫຼື MariaDB ດັບ | ກວດ `systemctl status mariadb` + ຄ່າ `DB_*` ໃນ config.php |
| ອັບໂຫຼດໄຟລ໌ໃຫຍ່ບໍ່ໄດ້ | limit ຂອງ PHP | ໃນ php.ini: `upload_max_filesize=100M` `post_max_size=110M` ແລ້ວ reload apache |
| QR ໂປສເຕີຊີ້ໄປ localhost / ຜິດເຄື່ອງ | ຍັງບໍ່ໄດ້ຕັ້ງ app_url | ຕັ້ງຄ່າ → app_url ແລ້ວພິມໂປສເຕີໃໝ່ |
| ບໍ່ມີປຸ່ມ "ຕິດຕັ້ງແອັບ" (PWA) | ເວັບບໍ່ແມ່ນ HTTPS | ເປີດ HTTPS (ຂໍ້ 4) |
| ອີເມວບໍ່ອອກ | SMTP ປິດ/ຕັ້ງຜິດ | ຕັ້ງຄ່າ → SMTP → ປຸ່ມທົດສອບສົ່ງ · ເບິ່ງເຫດຜົນໃນ ຕັ້ງຄ່າ → notification log |
| ຢາກຍ້າຍເຄື່ອງ | — | ຕິດຕັ້ງ PHP/MariaDB ເຄື່ອງໃໝ່ → ວາງໄຟລ໌ຊຸດຕິດຕັ້ງ → ກູ້ dump ຖານຂໍ້ມູນ → ຄັດລອກ uploads + config.php ເກົ່າໄປວາງ → ຕັ້ງ app_url ໃໝ່ |

ບັນທຶກເຫດການທັງໝົດຂອງລະບົບເບິ່ງໄດ້ທີ່ **ລະບົບ → ບັນທຶກກິດຈະກຳ** —
ການອັບເດດ/ຍ້ອນກັບທຸກຄັ້ງຖືກບັນທຶກເປັນລະດັບ critical ຄົ້ນຫາງ່າຍ.

---

## 10. ຄວາມປອດໄພ — ສິ່ງທີ່ຄວນເຮັດສະເໝີ

1. ລຶບໂຟນເດີ `install/` ຫຼັງຕິດຕັ້ງ (ໜ້າຕິດຕັ້ງມີປຸ່ມໃຫ້)
2. ເປີດ **2FA** ໃຫ້ admin ທຸກຄົນ
3. ໃຊ້ **HTTPS** ສະເໝີ + ຕັ້ງ app_url ເປັນ https
4. ຢ່າໃຊ້ບັນຊີ `manager`/`staff` ຈາກ seed.sql ໃນເຄື່ອງຈິງ (ຖ້າເຜີຮັນ seed —
   ປິດສອງບັນຊີນັ້ນທັນທີ)
5. ສຳຮອງ config.php ໄວ້ບ່ອນປອດໄພ — ກຸນແຈຕູ້ນິລະໄພຢູ່ໃນນັ້ນ
6. ກວດໜ້າ **ລະບົບ → ສະພາບລະບົບ** ເປັນປະຈຳ (ພື້ນທີ່ດິສ, ຄິວອີເມວ, ສຳຮອງຫຼ້າສຸດ)
7. ລຶບ snapshot ເກົ່າຫຼາຍໆລຸ້ນອອກແດ່ ເມື່ອແນ່ໃຈວ່າເວີຊັນໃໝ່ນິ້ງແລ້ວ
   (ໜ້າອັບເດດ → ປະຫວັດ → 🗑)

---

## 11. ເສັ້ນທາງອັບເກຣດຖານຂໍ້ມູນ (ອ້າງອີງ)

ໜ້າອັບເດດໃນເວັບຮັນທຸກໄຟລ໌ v19 ຂຶ້ນໄປໃຫ້ອັດຕະໂນມັດຢູ່ແລ້ວ —
ຕາຕະລາງນີ້ໃຊ້ສະເພາະເວລາອັບເກຣດດ້ວຍມື:

| ອັບເກຣດຈາກ | ຮັນໄຟລ໌ |
|---|---|
| 1.0.20 | `upgrade_v35.sql` |
| 1.0.19 | `upgrade_v34.sql` → `upgrade_v35.sql` |
| 1.0.16 – 1.0.18 | `upgrade_v33.sql` → `upgrade_v35.sql` |
| 1.0.15 | `upgrade_v32.sql` → `upgrade_v35.sql` |
| 1.0.12 – 1.0.14 | `upgrade_v31.sql` → `upgrade_v35.sql` |
| ເກົ່າກວ່ານັ້ນ | ເບິ່ງລາຍລະອຽດໃນໄຟລ໌ `VERSION` |

ທຸກໄຟລ໌ v19 ຂຶ້ນໄປ **ຮັນຊ້ຳໄດ້** — ຮັນເກີນ ບໍ່ເສຍຫາຍ, ຮັນຂາດ ລະບົບຈະຟ້ອງເອງ
ພ້ອມບອກຊື່ໄຟລ໌ທີ່ຍັງເຫຼືອ.

---

*ຄູ່ມືນີ້ຢູ່ໃນຊຸດຕິດຕັ້ງທຸກລຸ້ນ (ໄຟລ໌ `ADMIN-GUIDE.md`) — ສະບັບ Word (.docx)
ຂໍໄດ້ຈາກທີມພັດທະນາ ຫຼື ເປີດໄຟລ໌ນີ້ດ້ວຍໂປຣແກຣມອ່ານ Markdown ໃດກໍ່ໄດ້.*
