Tài liệu này hướng dẫn cách thiết lập và chạy backend (siams-be) và frontend (siams-fe) trên máy phát triển (Windows PowerShell). Bao gồm ví dụ .env cho Docker và Node.js, các lệnh phổ biến để chạy ở chế độ development/production, và một số lưu ý môi trường (CORS, symlink .env, dịch vụ Docker sẵn có).
- Node.js (LTS)
- npm hoặc yarn
- Docker & Docker Compose (nếu muốn chạy bằng Docker)
- PowerShell (Windows)
siams-be/— backend (Node.js / TypeScript)siams-fe/— frontend (Vite / React / TypeScript)docker-compose.yml— cấu hình docker-compose cho toàn bộ hệ thống
-
.envcho Docker (ở thư mục gốc)Tạo file
.envở thư mục gốc theo content.env.example. Ví dụ:# Các biến sau là bắt buộc JWT_SECRET= MQTT_URL=mqtt://127.0.0.1:1883 DB_USER= DB_PASSWORD= DB_NAME=
-
.envcho Node.js /siams-be(backend đã sử dụng env từsiams-be/../.env)
Lưu ý copy hoặc tạo symlink đến env ở root cho db-migrate
-
.envchosiams-fe(chạy local)Tạo file
.envở thư mục gốc theo content.env.example. Ví dụ:# siams-fe/.env PORT=33445 #đặt theo cors policy ở backend VITE_API_URL=http://localhost:44556/api/v1 #đặt theo url backend (mặc định)
-
CORS: Backend hiện chỉ cho phép CORS từ các origin sau:
http://localhost:33445vàhttp://127.0.0.1:33445. Nếu bạn chạy frontend trên cổng khác hoặc truy cập từ host khác, cập nhật cấu hình CORS trên backend hoặc thay đổiVITE_API_URLtương ứng. -
.env symlink: repository dùng symlink cho file
.envở backend để trợ giúpdb-migratetìm env do nó không phụ thuộc vào file env :# Ví dụ: tạo symlink siams-be\.env -> ..\shared-envs\siams-be.e ln -s .env siams-be/.env
-
Docker Compose: hiện tại
docker-compose.ymlđã thiết lập hai service chính là:emqx— MQTT broker (EMQX)postgresdb— PostgreSQL
Các image/service khác trong
docker-compose.ymlcó thể đang trong quá trình phát triển (chỉ là placeholder hoặc chưa sẵn sàng). Kiểm tradocker-compose.ymltrước khi phụ thuộc vào chúng.
-
Đảm bảo Docker đang chạy.
-
Ở thư mục gốc của repo, chỉnh
.envnếu cần.cd C:\Users\dn200\repos\siams docker compose up -d emqx db -
Vào thư mục backend, cài phụ thuộc:
cd C:\Users\dn200\repos\siams\siams-be npm install -
chạy migration cho database:
npm run migrate:up
-
Biên dịch và chạy:
npm run start
- Hoặc chạy chế độ development (watch):
npm run dev
Kiểm tra
package.jsontrongsiams-be/để biết các script cụ thể (build,start,dev).
-
Cài phụ thuộc
cd C:\Users\dn200\repos\siams\siams-fe npm install -
Chạy development (hot-reload)
npm run dev
-
Build production và serve tĩnh (optional)
npm run build # Dùng một static server để phục vụ thư mục dist npm install -g serve serve -s dist -l 3001
- Đảm bảo
VITE_API_URL(hoặc biến frontend tương đương) trỏ tới backend. - Nếu backend chạy trong Docker, hãy map port ra host (ví dụ 3000) để frontend truy cập.
- Thiếu biến môi trường: kiểm tra
.envhoặc biến hệ thống. - Cổng bị chiếm: kiểm tra port đang dùng.
- MQTT không kết nối: kiểm tra
MQTT_URLvà broker (EMQX) có đang chạy.
Khởi động broker EMQX bằng Docker:
docker compose up -d emqx