Tao dich vu webnext

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

====

viết lại chi tiết cách làm

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ầnVị trí
Node.jsC:\Program Files\nodejs\
App Next.jsC:\myapp
NSSMC:\nssm\nssm.exe
Service userthynb (user thường)
Start typeAUTO + 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 xét

Bài đăng phổ biến từ blog này

CVE-2023–41425 but only RCE part

Tanr man 2024