Tao dich vu webnext
- Nhận đường liên kết
- X
- Ứng dụng khác
Tao service bang nssm,
next run build
khi set gi thi nho tao cai do, nho them quyen cho thu muc
nho chu y ObjectName de set quyen cho user
====
OK 👍, anh muốn viết lại chi tiết – từ đầu đến cuối – làm đúng 1 lần là chạy vĩnh viễn khi boot, thì em viết chuẩn checklist, không sót bước nào.
Làm theo đúng thứ tự, đừng nhảy cóc.
🎯 MỤC TIÊU CUỐI
-
Windows Server boot lên
-
❌ KHÔNG cần login
-
✅ Service tự chạy
-
✅ Web Next.js lên cổng 3000
-
Export VM → máy khác import → vẫn chạy
🧩 KIẾN TRÚC ĐÚNG (ANH PHẢI THEO)
| Thành phần | Vị trí |
|---|---|
| Node.js | C:\Program Files\nodejs\ |
| App Next.js | C:\myapp |
| NSSM | C:\nssm\nssm.exe |
| Service user | thynb (user thường) |
| Start type | AUTO + DELAYED |
1️⃣ CÀI NODE.JS (SYSTEM-WIDE)
❗ BẮT BUỘC: cài cho All Users
-
Download Node.js LTS
-
Install
-
Tick:
-
✅ Add to PATH
-
✅ Install for all users
-
Check:
where node
Phải ra:
C:\Program Files\nodejs\node.exe
2️⃣ ĐẶT SOURCE CODE NEXT.JS
mkdir C:\myapp
Copy toàn bộ source vào C:\myapp
Build production:
cd C:\myapp
npm install
npm run build
Test chạy tay:
node node_modules\next\dist\bin\next start -H 0.0.0.0 -p 3000
👉 Truy cập được web = OK
3️⃣ TẠO USER CHẠY SERVICE
net user thynb StrongPassword123 /add
Cho quyền:
secpol.msc
Vào:
Local Policies → User Rights Assignment
Thêm user thynb vào:
-
✅ Log on as a service
4️⃣ TẠO PROFILE CHO USER (RẤT QUAN TRỌNG)
Login 1 lần duy nhất bằng user thynb
→ Logout
(để Windows tạo C:\Users\thynb)
5️⃣ SET QUYỀN THƯ MỤC APP
icacls C:\myapp /grant thynb:"(OI)(CI)F" /T
6️⃣ ĐẶT NSSM ĐÚNG CHỖ (QUAN TRỌNG NHẤT)
❌ KHÔNG để NSSM trong Downloads
mkdir C:\nssm
copy C:\Users\thynb\Downloads\NSSM_v2.25\win64\nssm.exe C:\nssm\
7️⃣ TẠO SERVICE BẰNG NSSM
C:\nssm\nssm.exe install nextjsapp
Điền như sau:
Application
C:\Program Files\nodejs\node.exe
Arguments
node_modules\next\dist\bin\next start -H 0.0.0.0 -p 3000
Startup directory
C:\myapp
Tab Log on
-
☑ This account
-
User:
.\thynb -
Password: (đúng)
❌ Không tick Interact with desktop
Tab Exit actions
-
On exit: Restart
-
Delay: 5000 ms
Save service.
8️⃣ SET SERVICE AUTO + DELAYED START
sc config nextjsapp start= delayed-auto
Check:
sc qc nextjsapp
Phải thấy:
START_TYPE : 2 AUTO_START (DELAYED)
BINARY_PATH_NAME : C:\nssm\nssm.exe
9️⃣ FIX CACHE + ENV (TRÁNH LỖI BOOT)
mkdir C:\myapp\.next-cache
icacls C:\myapp\.next-cache /grant thynb:"(OI)(CI)F" /T
nssm set nextjsapp AppEnvironmentExtra ^
"NODE_ENV=production" ^
"NEXT_TELEMETRY_DISABLED=1" ^
"NEXT_CACHE_DIR=C:\myapp\.next-cache"
🔟 BẬT LOG (ĐỂ DEBUG VĨNH VIỄN)
nssm set nextjsapp AppStdout C:\myapp\stdout.log
nssm set nextjsapp AppStderr C:\myapp\stderr.log
1️⃣1️⃣ MỞ FIREWALL
netsh advfirewall firewall add rule name="NextJS3000" dir=in action=allow protocol=TCP localport=3000
1️⃣2️⃣ TEST ĐÚNG CHUẨN (QUAN TRỌNG)
❌ KHÔNG restart service
❌ KHÔNG login
Chỉ làm:
shutdown /r /t 0
➡ Máy boot lên
Từ máy khác:
http://<ip>:3000
✅ LÊN WEB = DONE
📦 EXPORT VM
-
Export
.ova/.tar -
User khác import
-
Boot máy
-
❌ Không cần login
-
✅ Web tự chạy
- Nhận đường liên kết
- X
- Ứng dụng khác
Nhận xét
Đăng nhận xét