HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/rms.naniguide.com/CPANEL_INSTALL.md
# Cài đặt Hotel RMS trên cPanel

## 1. Yêu cầu hosting

- PHP 8.2 trở lên
- MySQL hoặc MariaDB
- Extension PHP thường cần cho Laravel: `pdo_mysql`, `mbstring`, `openssl`, `tokenizer`, `ctype`, `fileinfo`, `json`, `xml`, `curl`
- Có thể chạy không cần Node/NPM vì giao diện dùng Tailwind CDN và CSS trong `public/css/rms.css`

## 2. Upload source

Cách ổn định nhất:

1. Upload toàn bộ source vào thư mục project, ví dụ `/home/user/hotel-rms`.
2. Trỏ Document Root của domain/subdomain về `/home/user/hotel-rms/public`.
3. Nếu không đổi được Document Root, upload source vào `public_html`; file `.htaccess` gốc sẽ tự rewrite request vào thư mục `public`.

Source hiện có sẵn thư mục `vendor`. Nếu bạn xóa `vendor` trước khi upload thì hosting phải có SSH/Composer để chạy `composer install`.

Không đặt file `.env` trong thư mục `public`.

## 3. Tạo database

Trong cPanel:

1. Mở MySQL Databases.
2. Tạo database.
3. Tạo database user.
4. Gán user vào database với quyền `ALL PRIVILEGES`.

## 4. Import SQL

Mở phpMyAdmin, chọn database vừa tạo, import file:

```text
database/install-cpanel.sql
```

File này tạo đầy đủ bảng Laravel và RMS, đồng thời thêm dữ liệu mẫu.

## 5. Tạo file `.env`

Copy `.env.cpanel.example` thành `.env`, sau đó sửa:

```env
APP_URL=https://your-domain.com
DB_DATABASE=cpanel_database_name
DB_USERNAME=cpanel_database_user
DB_PASSWORD=cpanel_database_password
MAIL_HOST=mail.your-domain.com
[email protected]
MAIL_PASSWORD=mail_password
```

## 6. Phân quyền thư mục

Trong File Manager hoặc SSH, đảm bảo hai thư mục này ghi được:

```text
storage
bootstrap/cache
```

Quyền thường dùng trên cPanel:

```text
755 cho thư mục
644 cho file
```

Nếu log/cache không ghi được, đặt riêng `storage` và `bootstrap/cache` là `775`.

## 7. Đăng nhập

Tài khoản demo sau khi import SQL:

```text
[email protected] / password
[email protected] / password
[email protected] / password
```

Đổi mật khẩu ngay sau khi cài production.

## 8. URL chính

- `/login`
- `/dashboard`
- `/hotel-configuration`
- `/booking-data`
- `/pricing`
- `/competitors`
- `/reports`
- `/admin`

## 9. API

- `GET /api/hotels/1/kpis`
- `GET /api/hotels/1/forecast?granularity=daily`
- `GET /api/hotels/1/reservations`
- `GET /api/hotels/1/ai-recommendations`
- `POST /api/room-types/1/recommended-rate`