fix bug
This commit is contained in:
@@ -25,21 +25,13 @@ Dashboard giám sát camera IP gọn nhẹ chạy trên Orange Pi, dựa trên M
|
||||
|
||||
## Chạy dev (máy dev)
|
||||
|
||||
### 0) Tạo file .env
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Sửa các biến trong `.env` theo IP/port thực tế (MediaMTX, recordings, CORS).
|
||||
|
||||
### 1) Chạy backend
|
||||
|
||||
```bash
|
||||
python3 -m venv api/.venv
|
||||
source api/.venv/bin/activate
|
||||
pip install -r api/requirements.txt
|
||||
python3 api/run.py
|
||||
python3 -m api.run
|
||||
```
|
||||
|
||||
### 2) Chạy frontend
|
||||
@@ -53,29 +45,42 @@ Frontend dev server đã được cấu hình proxy `/api` và `/videos` sang `h
|
||||
|
||||
## Cấu hình
|
||||
|
||||
Khuyến nghị cấu hình bằng file `.env` (copy từ `.env.example`).
|
||||
|
||||
Backend tự tạo file cấu hình tại `api/data/config.json` khi chạy lần đầu.
|
||||
Backend chỉ dùng file `api/data/config.json` (không đọc `.env`).
|
||||
|
||||
- `mediamtx_api_url`: ví dụ `http://127.0.0.1:9997`
|
||||
- `mediamtx_webrtc_url`: ví dụ `http://127.0.0.1:8889`
|
||||
- `recordings_dir`: ví dụ `/recordings`
|
||||
- `mediamtx_api_user`: username API (nếu bật auth trong MediaMTX)
|
||||
- `mediamtx_api_pass`: password API (nếu bật auth trong MediaMTX)
|
||||
- `recordings_dir`: ví dụ `./mediamtx/recordings` (cùng máy) hoặc đường dẫn mount NFS/SMB
|
||||
- `api_port`: cổng chạy backend (mặc định `8008`)
|
||||
- `cameras`: danh sách camera (name + rtsp_url)
|
||||
- `schedule`: lịch ghi hình
|
||||
|
||||
Có thể override WebRTC base URL ở frontend bằng biến môi trường `VITE_MEDIAMTX_WEBRTC_URL`.
|
||||
Ví dụ `config.json`:
|
||||
|
||||
Có thể set giá trị mặc định khi chạy lần đầu bằng ENV (backend):
|
||||
|
||||
- `MEDIAMTX_API_URL` (ví dụ `http://192.168.88.10:9997`)
|
||||
- `MEDIAMTX_WEBRTC_URL` (ví dụ `http://192.168.88.10:8889`)
|
||||
- `RECORDINGS_DIR` (ví dụ `/recordings` hoặc đường dẫn mount NFS/SMB)
|
||||
```json
|
||||
{
|
||||
"mediamtx_api_url": "http://127.0.0.1:9997",
|
||||
"mediamtx_webrtc_url": "http://127.0.0.1:8889",
|
||||
"mediamtx_api_user": null,
|
||||
"mediamtx_api_pass": null,
|
||||
"recordings_dir": "/mnt/ssd/IPCam_OrangePi_Dashboard/mediamtx/recordings",
|
||||
"api_port": 8008,
|
||||
"cameras": [],
|
||||
"schedule": {
|
||||
"enabled": true,
|
||||
"weekdays_from": "18:00",
|
||||
"weekdays_to": "08:00",
|
||||
"weekend_all_day": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Chạy tách 2 thiết bị (cùng LAN)
|
||||
|
||||
- Máy A (MediaMTX + ổ lưu recordings): chạy MediaMTX, mở cổng `9997/tcp`, `8889/tcp`, `8189/udp`, `8554/tcp`
|
||||
- Máy B (Dashboard backend + frontend): chạy FastAPI + serve web UI
|
||||
- Playback: máy B cần đọc được thư mục recordings của máy A (khuyến nghị mount NFS/SMB về `RECORDINGS_DIR`)
|
||||
- Playback: máy B cần đọc được thư mục recordings của máy A (khuyến nghị mount NFS/SMB và set `recordings_dir` trong `api/data/config.json`)
|
||||
|
||||
Chi tiết xem `INSTALL.md`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user