🔐 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 (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 - Mục "Public Domain qua Nginx Proxy Manager"
Tóm tắt:
- Trỏ DNS A record về IP Nginx Proxy Manager
- Tạo Proxy Host trong NPM: forward 3000 → domain
- Enable Let's Encrypt SSL + Force SSL
📝 Tài liệu
- DEPLOYMENT_GUIDE.md - Hướng dẫn triển khai (Tiếng Việt)
- package.json - Dependencies
- docker-compose.yml - Dev config
- 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 ✅