Cài đặt
Yêu cầu hệ thống
| Thành phần | Phiên bản tối thiểu |
|---|---|
| Rust | 1.80+ |
| Node.js | 20+ |
| PostgreSQL | 15+ |
| Redis | 7+ |
| Docker | 24+ |
Cài đặt nhanh với Docker Compose
Cách đơn giản nhất để chạy toàn bộ stack:
git clone https://github.com/vielang/vielang.git
cd vielang
# Copy config mẫu
cp config/vielang.toml.example config/vielang.toml
cp .env.example .env
# Khởi động
docker compose up -dSau khi khởi động:
| Dịch vụ | URL |
|---|---|
| Dashboard | http://localhost:3000 |
| REST API | http://localhost:8080 |
| Swagger UI | http://localhost:8080/swagger-ui |
| BFF | http://localhost:4000 |
Tài khoản mặc định
| Vai trò | Mật khẩu | |
|---|---|---|
| System Admin | sysadmin@vielang.io | sysadmin |
| Tenant Admin | tenant@vielang.io | tenant |
Bảo mật: Đổi mật khẩu ngay sau khi đăng nhập lần đầu.
Cài đặt từ source
1. Clone repository
git clone https://github.com/vielang/vielang.git
cd vielang2. Cài đặt PostgreSQL và Redis
# macOS
brew install postgresql@15 redis
brew services start postgresql@15
brew services start redis
# Ubuntu/Debian
sudo apt install postgresql-15 redis-server
sudo systemctl start postgresql redis3. Khởi tạo database
createdb vielang
export DATABASE_URL="postgresql://localhost/vielang"
cargo install sqlx-cli
sqlx migrate run --source migrations/4. Chạy Rust backend
# Copy config
cp config/vielang.toml.example config/vielang.toml
# Chạy API server (port 8080)
cargo run --release -p vl-api
# Chạy MQTT broker (port 1883)
cargo run --release -p vl-transport5. Chạy BFF
cd vielang-ui/vielang-axum
cp .env.example .env
cargo run --release -p vl-bff-api6. Chạy Next.js
cd vielang-ui/vielang-admin
pnpm install
pnpm devCài đặt production (Kubernetes)
Xem hướng dẫn triển khai AWS để cài đặt production trên EKS với:
- RDS PostgreSQL Multi-AZ
- ElastiCache Redis
- ALB Ingress + TLS
- Auto-scaling
Cấu hình nhanh
File config/vielang.toml:
[server]
host = "0.0.0.0"
port = 8080
[database]
url = "postgresql://postgres:password@localhost/vielang"
max_connections = 20
[redis]
url = "redis://localhost:6379"
[jwt]
secret = "your-secret-key-min-32-chars"
access_token_ttl_secs = 9000 # 2.5 giờ
refresh_token_ttl_secs = 604800 # 7 ngày
[mqtt]
host = "0.0.0.0"
port = 1883Override bằng biến môi trường (prefix VL__):
VL__SERVER__PORT=9090
VL__DATABASE__URL=postgresql://user:pass@host/db
VL__JWT__SECRET=my-secret