readme
This commit is contained in:
2
.env
2
.env
@@ -7,7 +7,7 @@ NODE_ENV=production
|
|||||||
APP_PORT=3000
|
APP_PORT=3000
|
||||||
|
|
||||||
# Image used for server pull deployment
|
# Image used for server pull deployment
|
||||||
DOCKER_IMAGE=toiiiiday/accmanager:1.0.2
|
DOCKER_IMAGE=toiiiiday/accmanager:1.0.3
|
||||||
|
|
||||||
# Container app port
|
# Container app port
|
||||||
PORT=3000
|
PORT=3000
|
||||||
|
|||||||
214
README.md
214
README.md
@@ -1,196 +1,56 @@
|
|||||||
# 🔐 AccManager
|
# 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.
|
AccManager là hệ thống giúp quản lý tập trung tài khoản truy cập cho nhân sự trong tổ chức.
|
||||||
|
|
||||||
## ✨ Tính năng
|
Thay vì lưu rải rác tài khoản ứng dụng ở nhiều nơi, AccManager gom tất cả về một màn hình để dễ tìm, dễ phân quyền và dễ kiểm soát.
|
||||||
|
|
||||||
- ✅ Xác thực người dùng (login/register)
|
## Dự án này dùng để làm gì
|
||||||
- ✅ 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ệ
|
- Quản lý danh sách người dùng trong nội bộ.
|
||||||
|
- Quản lý danh sách ứng dụng đang sử dụng trong công ty.
|
||||||
|
- Gán tài khoản truy cập ứng dụng cho từng người dùng.
|
||||||
|
- Theo dõi thông tin tài khoản rõ ràng, tránh thất lạc.
|
||||||
|
|
||||||
| Thành phần | Công nghệ |
|
## Ai sẽ sử dụng
|
||||||
|-----------|----------|
|
|
||||||
| 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
|
- Quản trị viên: tạo người dùng, tạo ứng dụng, cấp tài khoản, cập nhật thông tin.
|
||||||
|
- Người dùng thông thường: xem các tài khoản được cấp cho mình.
|
||||||
|
|
||||||
\\\
|
## Cách sử dụng nhanh
|
||||||
├── 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
|
1. Đăng nhập vào hệ thống.
|
||||||
|
2. Vào mục Người dùng để tạo mới hoặc cập nhật thông tin nhân sự.
|
||||||
|
3. Vào mục Ứng dụng để thêm các hệ thống cần quản lý.
|
||||||
|
4. Vào mục Tài khoản để gán tài khoản ứng dụng cho đúng người.
|
||||||
|
5. Dùng nút Xem chi tiết trong danh sách người dùng để kiểm tra đầy đủ thông tin trước khi chỉnh sửa.
|
||||||
|
|
||||||
### Phát triển local
|
## Quy trình vận hành gợi ý
|
||||||
|
|
||||||
\\\ash
|
1. Khi có nhân sự mới:
|
||||||
npm install
|
- Tạo người dùng.
|
||||||
npm start
|
- Gán quyền phù hợp.
|
||||||
\\\
|
- Cấp các tài khoản ứng dụng cần thiết.
|
||||||
|
|
||||||
Truy cập: http://localhost:3000
|
2. Khi thay đổi công việc:
|
||||||
|
- Cập nhật lại danh sách ứng dụng được cấp.
|
||||||
|
- Thu hồi các tài khoản không còn sử dụng.
|
||||||
|
|
||||||
### Chạy bằng Docker
|
3. Khi nhân sự nghỉ việc:
|
||||||
|
- Khóa hoặc ngừng kích hoạt người dùng.
|
||||||
|
- Rà soát và thu hồi toàn bộ tài khoản liên quan.
|
||||||
|
|
||||||
\\\ash
|
## Lợi ích chính
|
||||||
docker compose build
|
|
||||||
docker compose up -d
|
|
||||||
\\\
|
|
||||||
|
|
||||||
## 🐳 Triển khai với Docker
|
- Giảm thất lạc thông tin tài khoản.
|
||||||
|
- Rõ ràng trách nhiệm ai đang dùng tài khoản nào.
|
||||||
|
- Tiết kiệm thời gian bàn giao và thu hồi quyền truy cập.
|
||||||
|
- Dễ kiểm tra trước khi cấp quyền mới.
|
||||||
|
|
||||||
### Máy DEV: Build & Push
|
## Tài liệu liên quan
|
||||||
|
|
||||||
\\\powershell
|
- Hướng dẫn triển khai: [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md)
|
||||||
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
|
Phiên bản tài liệu: 3.0.0
|
||||||
**Cập nhật:** Tháng 4 năm 2026
|
Cập nhật: Tháng 4 năm 2026
|
||||||
**Trạng thái:** Production-ready ✅
|
|
||||||
|
|||||||
Reference in New Issue
Block a user