[101]Setup Sonatype Nexus Repository สำหรับ Nodejs Module(Local Registry)
Nexus คือไร
ตอบแบบกำปั้นทุบดิน คือ Repository Management เพื่อใช้สำหรับจัดเก็บ Library โดยความสามารถหลัก Dependency management
ในแต่ละบริษัทสาย Tech มักมี Library ที่เป็น Internal Library ที่สร้างขึ้นมาเพื่อใช้งานภายในบริษัทเท่านั้น อาจด้วยเหตุผลเรื่อง Data Privacy หรือเหตุผลอื่นๆ เลยมีความจำเป็นต้องสร้าง Private Local Registry ไว้ใช้งานภายในองค์กร
แล้วทำไมต้องใช้ Nexus
- Free (**มี Version เสียตังค์)
- รองรับหลากหลาย Package ทำให้สามารถใช้ร่วมกับการพัฒนาได้หลายภาษา เช่น Python, Java, Docker, npm …
ในที่นี่ขอรัน Nexus บน Docker
- สร้าง Volume สำหรับเก็บ Persistence data
docker volume create --name nexus-data
2.2 Start Nexus โดยใช้ Volume ที่สร้างในขั้นตอนก่อนหน้า
docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data --restart always sonatype/nexus3
3. เปิดหน้า Browser http://127.0.0.1:8081
ตามหา Admin Password รัน Command ด้านล่าง แล้วจะได้ Password เพื่อนำไปใช้ Login
docker exec -it nexus cat /nexus-data/admin.password
4. ปิดการเข้าถึงแบบไม่ผ่านการ Authen (Disable Anonymous access)
5. เริ่ม Config Repository เลือกเป็น npm
6. สร้าง Repository เลือกเป็น Proxy mode
จุดสำคัญคือตรง Remote storage เป็น https://registry.npmjs.org/ เพื่อให้ Nexus สามารถออกไปหา Package ที่ไม่มี Local Repository ได้
7. สร้าง Repository npm เป็น Mode Hosted เพื่อใช้สำหรับเก็บ Private Package
8. สร้าง Repository npm เป็น Mode group เพื่อใช้รวม Mode Proxy และ Mode Private เข้าด้วยกัน เวลาใช้งานจริง จะใช้งานผ่าน npm-group
9. ตั้งค่าการ Authentication ระหว่าง Client กับ Nexus Server ให้เลือก npm Bearer Token Realm
10. สร้าง Roles สำหรับ Users เพื่อให้สะดวกในการจัดการสิทธิการเข้าถึง
11. สร้าง Users และกำหนด Roles
*** ในที่สุดเราก็ได้ Nexus Server ส่วนตัวใช้ละ Part ต่อไปด้วยการ Deploy React Component ไปยัง Nexus Server ที่เราสร้างขึ้นมา
[101] Part 2 Deploy React Component to Nexus
[101] Part 3 How to use React Component from Nexus to our projects
[101] Part 4 Auto Document on React Component
[101] Part 5 Jenkins pipeline for deploy react component