Files
ManagerAccount/README.md
2026-04-02 11:16:18 +07:00

197 lines
5.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔐 AccManager
Hệ thống quản lý tài khoản và ứng dụng tập trung, cho phép quản lý người dùng, danh mục ứng dụng, và gán tài khoản truy cập.
## ✨ Tính năng
- ✅ Xác thực người dùng (login/register)
- ✅ Quản lý người dùng và vai trò (admin/guest)
- ✅ Quản lý danh mục ứng dụng
- ✅ Gán tài khoản cho mỗi người dùng/ứng dụng
- ✅ Mã hóa mật khẩu bằng bcrypt (bcrypt hashing)
- ✅ Migration tự động: plain text → bcrypt
- ✅ Audit log truy cập
## 🛠️ Công nghệ
| Thành phần | Công nghệ |
|-----------|----------|
| Backend | Node.js 20 + Express.js |
| Database | SQL Server 2022 |
| Frontend | HTML5 + Tailwind CSS + Vanilla JS |
| Container | Docker + Docker Compose |
| Reverse Proxy | Nginx Proxy Manager |
| Password Hashing | bcrypt |
## 📦 Cấu trúc dự án
\\\
├── backend/
│ └── server.js # Main server (Express + mssql)
├── public/ # Static files (HTML, CSS, JS)
│ ├── index.html
│ ├── pages/ # Login, dashboard, etc.
│ ├── js/
│ │ └── app.js # Frontend logic
│ └── css/
│ ├── main.css # Tailwind compiled
│ └── tailwind.css # Tailwind source
├── database/
│ └── setup.sql # Database schema
├── Dockerfile # Docker image config
├── docker-compose.yml # Local development
├── docker-compose.image.yml # Production deployment
├── .env # Environment variables
├── deploy-dev.ps1 # Build & push script
├── deploy-server.sh # Pull & deploy script
└── DEPLOYMENT_GUIDE.md # Detailed deployment guide (Vietnamese)
\\\
## 🚀 Khởi động nhanh
### Phát triển local
\\\ash
npm install
npm start
\\\
Truy cập: http://localhost:3000
### Chạy bằng Docker
\\\ash
docker compose build
docker compose up -d
\\\
## 🐳 Triển khai với Docker
### Máy DEV: Build & Push
\\\powershell
cd D:\RoboticsSource\AccManager
.\deploy-dev.ps1 -Tag "1.0.1"
\\\
### Máy Server: Deploy
\\\ash
ssh robotics@172.20.235.176
cd ~/accmanager
bash deploy-server.sh
\\\
**Xem chi tiết**: [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) (Tiếng Việt)
## 🔐 Bảo mật
- Mật khẩu được mã hóa bằng bcrypt (12 rounds)
- Migration tự động từ plain text sang bcrypt
- Không lưu credential trong source control
- Sử dụng .env để cấu hình biến sensitive
- SQL Server connection sử dụng SSL/TLS tùy chọn
**Lưu ý:**
- Thay đổi mật khẩu admin mặc định (\dmin\/\dmin\) ngay sau khi đăng nhập lần đầu
- Không commit \.env\ thực tế lên git
## 📚 API Endpoints
### Authentication
- POST \/api/auth/login\ - Đăng nhập
- POST \/api/auth/register\ - Đăng ký
### Users (Admin)
- GET \/api/users\ - Lấy danh sách người dùng
- GET \/api/users/:id\ - Lấy thông tin người dùng
- POST \/api/users\ - Tạo người dùng mới
- PUT \/api/users/:id\ - Cập nhật người dùng
- DELETE \/api/users/:id\ - Xóa người dùng
### Applications
- GET \/api/applications\ - Danh sách ứng dụng
- POST \/api/applications\ - Tạo ứng dụng
### Accounts
- GET \/api/accounts/user/:userId\ - Tài khoản của người dùng
- POST \/api/accounts\ - Tạo tài khoản
## 🔧 Cấu hình
### .env (Development)
\\\env
NODE_ENV=production
APP_PORT=3000
DOCKER_IMAGE=toiiiiday/accmanager:1.0.1
# Container
PORT=3000
# Database
DB_SERVER=172.20.235.176
DB_USER=sa
DB_PASSWORD=robotics@2022
DB_NAME=AccManager
DB_ENCRYPT=false
DB_TRUST_CERTIFICATE=true
DB_CONNECT_TIMEOUT=30000
# Security
BCRYPT_ROUNDS=12
\\\
## 🌐 Triển khai Public với Domain
Xem: [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) - Mục "Public Domain qua Nginx Proxy Manager"
**Tóm tắt:**
1. Trỏ DNS A record về IP Nginx Proxy Manager
2. Tạo Proxy Host trong NPM: forward 3000 → domain
3. Enable Let's Encrypt SSL + Force SSL
## 📝 Tài liệu
- [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md) - Hướng dẫn triển khai (Tiếng Việt)
- [package.json](package.json) - Dependencies
- [docker-compose.yml](docker-compose.yml) - Dev config
- [docker-compose.image.yml](docker-compose.image.yml) - Prod config
## 📦 Build & Run Scripts
**Windows PowerShell (DEV):**
\\\powershell
.\deploy-dev.ps1 -Tag "1.0.1"
\\\
**Linux/Mac (SERVER):**
\\\ash
bash deploy-server.sh
\\\
## 🆘 Troubleshoot
**Container không start?**
\\\ash
docker compose -f docker-compose.image.yml logs --tail=100 accmanager
\\\
**Image pull fail?**
- Kiểm tra Docker Hub credentials
- Kiểm tra image đã push: https://hub.docker.com/r/toiiiiday/accmanager
**Database connection fail?**
- Kiểm tra .env (DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME)
- Ping server: \ping 172.20.235.176\
## 📄 License
MIT
---
**Phiên bản:** 2.0.0
**Cập nhật:** Tháng 4 năm 2026
**Trạng thái:** Production-ready ✅