diff --git a/.env b/.env index cbb018a..61f9142 100644 --- a/.env +++ b/.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 diff --git a/README.md b/README.md index ce2050b..e578b40 100644 --- a/README.md +++ b/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