readme
This commit is contained in:
2
.env
2
.env
@@ -7,7 +7,7 @@ NODE_ENV=production
|
||||
APP_PORT=3000
|
||||
|
||||
# Image used for server pull deployment
|
||||
DOCKER_IMAGE=toiiiiday/accmanager:1.0.2
|
||||
DOCKER_IMAGE=toiiiiday/accmanager:1.0.3
|
||||
|
||||
# Container app port
|
||||
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)
|
||||
- ✅ 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
|
||||
## Dự án này dùng để làm gì
|
||||
|
||||
## 🛠️ 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ệ |
|
||||
|-----------|----------|
|
||||
| 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 |
|
||||
## Ai sẽ sử dụng
|
||||
|
||||
## 📦 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.
|
||||
|
||||
\\\
|
||||
├── 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)
|
||||
\\\
|
||||
## Cách sử dụng nhanh
|
||||
|
||||
## 🚀 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
|
||||
npm install
|
||||
npm start
|
||||
\\\
|
||||
1. Khi có nhân sự mới:
|
||||
- Tạo người dùng.
|
||||
- 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
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
\\\
|
||||
## Lợi ích chính
|
||||
|
||||
## 🐳 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
|
||||
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
|
||||
- Hướng dẫn triển khai: [DEPLOYMENT_GUIDE.md](DEPLOYMENT_GUIDE.md)
|
||||
|
||||
---
|
||||
|
||||
**Phiên bản:** 2.0.0
|
||||
**Cập nhật:** Tháng 4 năm 2026
|
||||
**Trạng thái:** Production-ready ✅
|
||||
Phiên bản tài liệu: 3.0.0
|
||||
Cập nhật: Tháng 4 năm 2026
|
||||
|
||||
Reference in New Issue
Block a user