หมายเหตุฉบับปัจจุบันสำหรับปี 2026:เอกสารประกอบของ Nextcloud 35 ได้แยกNextcloud Officeซึ่งใช้ Euro-Office ออกจากCollabora Onlineซึ่งยังคงเป็นทางเลือกที่ได้รับการสนับสนุนและสามารถติดตั้งใช้งานเองได้โดยใช้ Docker image อย่างเป็นทางการของ CODE คู่มือนี้ใช้เส้นทาง Collabora/CODE ภายนอกนั้น การตั้งชื่อมีความสำคัญเนื่องจากคู่มือฉบับเก่ามักอธิบาย CODE ราวกับว่าเป็นเซิร์ฟเวอร์เดียวที่อยู่เบื้องหลัง “Nextcloud Office” โปรดดูภาพรวมของ Nextcloud Office ฉบับปัจจุบันก่อนนำคำแนะนำที่เขียนขึ้นสำหรับเวอร์ชันเก่าไปใช้
หากเว็บไซต์ Nextcloud ของคุณใช้งานผ่าน HTTPS อยู่แล้ว ติดตั้ง Docker และคุณมีชื่อ DNS ที่office.example.comพร้อมใช้งานสำหรับ Collabora การผสานรวมจะใช้เวลาประมาณ 10 นาที การเผยแพร่ DNS การออกใบรับรอง การเปลี่ยนแปลงไฟร์วอลล์ หรือการแก้ไขปัญหาพร็อกซีแบบย้อนกลับอาจใช้เวลานานกว่าและไม่รวมอยู่ในเวลาที่คาดการณ์ไว้นั้น
สิ่งที่คุณต้องเตรียมก่อนเริ่ม
วิธีการแบบรวดเร็วนี้สมมติว่ามีอินสแตนซ์ Nextcloud อยู่แล้วหนึ่งตัว โฮสต์ Linux หนึ่งตัวที่สามารถรัน Docker ได้ และชื่อโฮสต์ HTTPS เฉพาะสำหรับ CODE ตัวอย่าง Docker ปัจจุบันของ Nextcloud แนะนำให้ใช้โดเมนย่อยแยกต่างหากและใบรับรอง TLS ที่ถูกต้อง CODE รับฟังการเชื่อมต่อภายในที่พอร์ต 9980 ในขณะที่พร็อกซีแบบย้อนกลับจะเปิดเผยการเชื่อมต่ออย่างปลอดภัยไปยังเบราว์เซอร์และ Nextcloud
- เซิร์ฟเวอร์ Nextcloud ที่ใช้งานได้และสามารถเข้าถึงได้ที่ URL เช่น
https://cloud.example.com. - ติดตั้ง Docker Engine บนโฮสต์ที่จะใช้รัน CODE
- ระเบียน DNS เช่น
office.example.comระเบียนที่ชี้ไปยังรีเวิร์สพร็อกซีของคุณ - ใบรับรอง HTTPS ที่ถูกต้องสำหรับชื่อโฮสต์ของสำนักงาน
- ต้องมีสิทธิ์ผู้ดูแลระบบในการเข้าถึง Nextcloud และสิทธิ์ root หรือ sudo ในโฮสต์ Docker
เอกสารการติดตั้งปัจจุบันของ Nextcloud ระบุว่าเซิร์ฟเวอร์ CODE ในตัวนั้นใช้งานง่ายที่สุดสำหรับการใช้งานส่วนบุคคลหรือทีมขนาดเล็ก แต่แนะนำให้ติดตั้ง Collabora Online โดยเฉพาะเพื่อประสิทธิภาพที่ดีกว่าอิมเมจ collabora/code อย่างเป็นทางการบน Docker Hubคืออิมเมจที่ใช้ด้านล่างนี้
ตรวจสอบ Docker ก่อน จากนั้นดึงอิมเมจ Collabora CODE อย่างเป็นทางการ เวอร์ชัน Docker ที่แสดงเป็นเพียงตัวอย่างเท่านั้น โปรดใช้เวอร์ชัน Docker ที่ได้รับการสนับสนุนในปัจจุบันบนโฮสต์ของคุณ
ขั้นตอนที่ 1: ดึงอิมเมจ Docker ของ CODE
บนโฮสต์ Docker ให้ตรวจสอบว่า Docker พร้อมใช้งานแล้ว และดึงอิมเมจอย่างเป็นทางการ:
docker --version
docker pull collabora/code:latest
แท็ก นี้latestสะดวกสำหรับคู่มือการตั้งค่าแบบสั้น ๆ เนื่องจาก Collabora เผยแพร่การอัปเดตบ่อยครั้ง สำหรับสภาพแวดล้อมการใช้งานจริง ควรพิจารณากำหนดเวอร์ชันเฉพาะที่คุณได้ทดสอบแล้ว จากนั้นกำหนดเวลาการอัปเกรดอย่างรอบคอบแทนที่จะปล่อยให้เกิดการเปลี่ยนแปลงรูปภาพโดยไม่คาดคิดระหว่างการสร้างใหม่
ขั้นตอนที่ 2: เริ่มเขียนโค้ดสำหรับโฮสต์ Nextcloud ของคุณ
ตัวอย่าง Docker ของ Nextcloud ในปัจจุบันใช้aliasgroup1เพื่อบอก CODE ว่าโฮสต์ Nextcloud ใดได้รับอนุญาตให้ผสานรวมเข้าด้วยกัน แทนที่ชื่อโฮสต์ในตัวอย่างด้วย URL ของ Nextcloud จริงของคุณ:
docker run -t -d --name collabora-code -p 127.0.0.1:9980:9980 -e 'aliasgroup1=https://cloud.example.com:443' --restart always --cap-add MKNOD collabora/code:latest
การผูก127.0.0.1พอร์ต 9980 เข้ากับอินเทอร์เน็ตโดยตรงจะช่วยป้องกันไม่ให้พอร์ตนี้ถูกเปิดเผยสู่ภายนอกเมื่อพร็อกซีแบบย้อนกลับทำงานอยู่บนเซิร์ฟเวอร์เดียวกัน หากพร็อกซีของคุณทำงานอยู่บนเครื่องอื่น ให้กำหนดกฎเครือข่ายให้เฉพาะพร็อกซีเท่านั้นที่สามารถเข้าถึง CODE ได้ อย่าเปิดพอร์ต 9980 ให้ทุกคนเข้าถึงได้โดยตรง
เรียกใช้คำสั่ง CODE ที่ 127.0.0.1:9980 เมื่อมี Reverse Proxy บนโฮสต์เดียวกัน ซึ่งจะให้บริการ HTTPS Endpoint สาธารณะ
ตรวจสอบว่าคอนเทนเนอร์กำลังทำงานอยู่หรือไม่:
docker ps --filter name=collabora-code
docker logs --tail 50 collabora-code
ขั้นตอนที่ 3: ติดตั้ง HTTPS และ Reverse Proxy ไว้ด้านหน้าโค้ด
เอกสารของ Nextcloud ระบุเส้นทางที่จำเป็นสำหรับ Collabora ไว้ดังนี้/browser, /hosting/discovery, /hosting/capabilities, /cool/adminws, /cool, รวมถึงการรับส่งข้อมูล WebSocket ภายใต้/cool/.../wsนั่นเป็นเหตุผลว่าทำไมการตั้งค่าทั่วไปที่ "พร็อกซีทุกอย่างยกเว้น WebSockets" มักจะทำให้โปรแกรมแก้ไขข้อความเปิดขึ้นมาได้เพียงบางส่วนแล้วก็ตัดการเชื่อมต่อ
รีเวิร์สพร็อกซีของคุณต้องส่งต่อเอนด์พอยต์ Collabora browser, discovery, capabilities, /cool และ WebSocket ตรวจสอบให้แน่ใจว่าโปรโตคอลอัปสตรีมตรงกับโหมด SSL ของคอนเทนเนอร์ CODE ของคุณ
สำหรับ Nginx ตัวอย่างแบบกระชับต่อไปนี้จะคงการใช้งาน HTTPS ภายในตามค่าเริ่มต้นของ CODE ไว้ และยุติการเชื่อมต่อ TLS สาธารณะที่ Nginx ใช้เส้นทางใบรับรองของคุณเอง:
server {
listen 443 ssl http2;
server_name office.example.com;
ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;
location ^~ /browser { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $host; proxy_ssl_verify off; }
location ^~ /hosting/discovery { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $host; proxy_ssl_verify off; }
location ^~ /hosting/capabilities { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $host; proxy_ssl_verify off; }
location ^~ /cool/adminws { proxy_pass https://127.0.0.1:9980; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_ssl_verify off; }
location ~ ^/cool/(.*)/ws$ { proxy_pass https://127.0.0.1:9980; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_ssl_verify off; }
location ^~ /cool { proxy_pass https://127.0.0.1:9980; proxy_set_header Host $host; proxy_ssl_verify off; }
}
นี่เป็นตัวอย่างการกำหนดเส้นทางแบบขั้นต่ำโดยเจตนา ไม่ใช่มาตรฐานความปลอดภัยของ Nginx ที่สมบูรณ์ หากคุณใช้งาน CODE โดยปิดใช้งาน TLS ภายใน การกำหนดเส้นทางต้นทางจะเป็นhttp://127.0.0.1:9980และคอนเทนเนอร์จะต้องได้รับการกำหนดค่าให้สอดคล้องกัน อย่าใช้พร็อกซี HTTP ร่วมกับคอนเทนเนอร์ CODE ที่ยังคงคาดหวัง HTTPS
ขั้นตอนที่ 4: ตรวจสอบความถูกต้องของเอนด์พอยต์ CODE สาธารณะ
ก่อนที่จะเข้าไปแก้ไขการตั้งค่า Nextcloud โปรดเปิด URL นี้ในเบราว์เซอร์:
https://office.example.com/hosting/discovery
การได้รับคำตอบที่ถูกต้องจาก /hosting/discovery เป็นวิธีที่รวดเร็วในการยืนยันว่าเอนด์พอยต์ CODE สาธารณะและรีเวิร์สพร็อกซีตอบสนองอย่างถูกต้อง
คุณควรได้รับ XML การค้นหา WOPI แทนที่จะเป็นข้อผิดพลาดพร็อกซี คำเตือนใบรับรอง หรือการเชื่อมต่อล้มเหลวที่ว่างเปล่า คุณยังสามารถทดสอบจากบรรทัดคำสั่งได้อีกด้วย:
curl -fsS https://office.example.com/hosting/discovery | head
หากวิธีนี้ไม่ได้ผล ให้ลองแก้ไข DNS, TLS, พร็อกซี หรือคอนเทนเนอร์ก่อน การเชื่อมต่อ Nextcloud กับปลายทางที่เสียหายจะยิ่งเพิ่มขั้นตอนการแก้ไขปัญหาให้ซับซ้อนขึ้น
ขั้นตอนที่ 5: เปิดใช้งานการผสานรวม Nextcloud Office
ลงชื่อเข้าใช้ Nextcloud ในฐานะผู้ดูแลระบบ เปิดแอปไปที่Office & textแล้วเปิดใช้งานแอปการผสานรวม Office ที่มีให้สำหรับการติดตั้งของคุณ ตัวอย่าง Nextcloud Collabora Docker ในปัจจุบันยังคงแนะนำให้ผู้ดูแลระบบติดตั้งแอป “Nextcloud Office” จากนั้นกำหนดค่าเซิร์ฟเวอร์ภายนอกภายใต้การตั้งค่าการดูแลระบบ Office แม้ว่าภาพรวมของ Nextcloud 35 จะแยกความแตกต่างระหว่างผลิตภัณฑ์ Euro-Office และ Collabora แล้วก็ตาม
เปิดใช้งานแอปการผสานรวมสำนักงานใน Nextcloud ก่อนป้อนที่อยู่เซิร์ฟเวอร์ CODE ภายนอก
หากเวอร์ชัน Nextcloud ของคุณใช้ชื่อผลิตภัณฑ์ที่แตกต่างออกไปเล็กน้อย ให้ใช้ชื่อผลิตภัณฑ์ที่แสดงในอินเทอร์เฟซการจัดการของคุณเองแทนที่จะสันนิษฐานว่าภาพหน้าจอเก่าตรงกันทุกประการ
ขั้นตอนที่ 6: ตั้งค่า Nextcloud ให้เชื่อมต่อกับเซิร์ฟเวอร์ CODE ภายนอก
เปิดการตั้งค่าการดูแลระบบ → Officeเลือกตัวเลือกเซิร์ฟเวอร์ Collabora/Office ภายนอก แล้วป้อน:
https://office.example.com
หน้าการจัดการ Office คือหน้าที่ใช้ป้อน URL ภายนอกของ Collabora หลังจากที่พร็อกซีสามารถเข้าถึงได้แล้ว
บันทึกการตั้งค่าและรอการตรวจสอบการเชื่อมต่อของ Nextcloud Nextcloud แนะนำให้ใช้โปรโตคอลเดียวกันทั้งสองฝั่ง โดยแนะนำให้ใช้ HTTPS การตรวจสอบสำเร็จหมายความว่า Nextcloud สามารถเชื่อมต่อกับปลายทางของ Collabora ได้ แต่ยังไม่ได้ยืนยันว่าเส้นทาง WebSocket และคำขอ WOPI ทุกรายการในเบราว์เซอร์จะใช้งานได้ในระหว่างเซสชันการแก้ไขจริง
ขั้นตอนที่ 7: จำกัดคำขอ WOPI
หลังจากเชื่อมต่อพื้นฐานเสร็จแล้ว ให้ปรับแต่งการตั้งค่า WOPI ให้รัดกุมยิ่งขึ้น คู่มือการตั้งค่าปัจจุบันของ Nextcloud แนะนำอย่างยิ่งให้จำกัดการร้องขอ WOPI เฉพาะที่อยู่ IP ของเซิร์ฟเวอร์ Collabora ที่คาดว่าจะร้องขอไฟล์ ในการตั้งค่าการดูแลระบบ → Officeให้ใช้ ช่อง "อนุญาตการร้องขอ WOPI"หากมีให้ใช้งาน
หลังจากเชื่อมต่อสำเร็จแล้ว โปรดตรวจสอบรายการอนุญาต WOPI เพื่อให้แน่ใจว่าเฉพาะที่อยู่เซิร์ฟเวอร์ Collabora ที่คาดไว้เท่านั้นที่สามารถร้องขอไฟล์ได้
นี่เป็นมาตรการควบคุมความปลอดภัยที่สำคัญ เนื่องจากกระบวนการ WOPI เป็นวิธีการที่ Collabora ดึงและเขียนเอกสารในนามของผู้ใช้ Nextcloud โปรดใช้ที่อยู่ IP หรือเครือข่ายที่แสดงถึงเส้นทางเซิร์ฟเวอร์ CODE ของคุณอย่างถูกต้องตามที่กำหนดในการใช้งาน อย่าคัดลอกชื่อโฮสต์ลงในช่องรายการอนุญาต IP เพียงเพราะมันดูคล้ายกับช่อง URL ของเซิร์ฟเวอร์ โปรดตรวจสอบคำแนะนำการกำหนดค่า Collabora และ WOPI ของ Nextcloud สำหรับตัวเลือกปัจจุบัน
ขั้นตอนที่ 8: เปิดเอกสารจริงและยืนยันการบันทึก
สร้างไฟล์ ODT หรือ DOCX ขนาดเล็กใน Nextcloud เปิดไฟล์ พิมพ์ประโยคหนึ่งประโยค ปิดตัวแก้ไข แล้วเปิดไฟล์อีกครั้ง ขั้นตอนนี้จะตรวจสอบลำดับการทำงานทั้งหมด: เบราว์เซอร์ → ชื่อโฮสต์ CODE สาธารณะ → พร็อกซีแบบย้อนกลับ → CODE → คำขอ WOPI ไปยัง Nextcloud → บันทึกกลับไปยังที่เก็บข้อมูล
การทดสอบขั้นสุดท้ายเป็นการทดสอบเชิงปฏิบัติ: สร้างหรือเปิดเอกสาร และตรวจสอบว่าโปรแกรมแก้ไขโหลดขึ้นมา ยอมรับการเปลี่ยนแปลง และบันทึกการเปลี่ยนแปลงกลับไปยัง Nextcloud ได้
การตั้งค่าจะไม่เสร็จสมบูรณ์เพียงเพราะหน้าการตั้งค่า Office บอกว่าสามารถเข้าถึงเซิร์ฟเวอร์ได้ ผลลัพธ์ที่ดีคือโปรแกรมแก้ไขโหลดได้โดยไม่มีคำเตือนการเชื่อมต่อ สามารถแก้ไขเอกสารได้ และการเปลี่ยนแปลงที่บันทึกไว้จะยังคงอยู่หลังจากเปิดใหม่ หากโปรแกรมแก้ไขโหลดได้ แต่การแก้ไขตัดการเชื่อมต่อ ให้ตรวจสอบ/cool/.../wsปัญหา WebSocket ก่อน หากโปรแกรมแก้ไขไม่สามารถโหลดไฟล์ได้เลย ให้ตรวจสอบบันทึก CODE บันทึก Nextcloud การแก้ไข DNS ระหว่างเซิร์ฟเวอร์ทั้งสอง และกฎการอนุญาต WOPI
รายการตรวจสอบการแก้ไขปัญหาอย่างรวดเร็ว
| อาการ | ตรวจสอบครั้งแรก |
| Nextcloud แจ้งว่าไม่สามารถเข้าถึงเซิร์ฟเวอร์ของสำนักงานได้ | เปิดใช้/hosting/discoveryงานผ่าน HTTPS จากโฮสต์ Nextcloud |
| เบราว์เซอร์แสดงรหัส 502 หรือ 504 | ตรวจสอบว่าคอนเทนเนอร์ทำงานอยู่และพร็อกซีสามารถเข้าถึง127.0.0.1:9980ได้ |
| โปรแกรมแก้ไขข้อความเปิดขึ้น จากนั้นก็ตัดการเชื่อมต่อ | ตรวจสอบส่วนหัวการอัปเกรด WebSocket และ/cool/(...)/wsเส้นทาง |
| ข้อผิดพลาดเกี่ยวกับใบรับรอง | แก้ไขห่วงโซ่ใบรับรองสาธารณะและตรวจสอบให้แน่ใจว่า URL ที่กำหนดค่าไว้ใช้ชื่อโฮสต์ที่ถูกต้อง |
| การเข้าถึง WOPI ถูกปฏิเสธ | ตรวจสอบรายชื่อโฮสต์ที่อนุญาต WOPI ของ Nextcloud และการกำหนดค่าโฮสต์ Nextcloud ที่ได้รับอนุญาตของ CODE |
| ใช้งานได้บนเครือข่ายหนึ่ง แต่ใช้ไม่ได้กับอีกเครือข่ายหนึ่ง | ตรวจสอบการตั้งค่า DNS แบบแยกส่วน กฎไฟร์วอลล์ และตรวจสอบว่าทั้ง Nextcloud และ CODE สามารถระบุชื่อโดเมนสาธารณะของกันและกันได้หรือไม่ |
อัปเดต CODE ให้ทันสมัยอยู่เสมอโดยไม่ทำให้การอัปเกรดกลายเป็นเรื่องเซอร์ไพรส์
Collabora เผยแพร่การอัปเดต CODE บ่อยครั้ง หน้าเว็บ Docker Hub อย่างเป็นทางการแสดงแท็กที่ได้รับการดูแลรักษาอย่างต่อเนื่อง และคำแนะนำในการอัปเกรดของ Nextcloud ระบุว่าการปรับใช้ Docker จะได้รับการอัปเดตโดยการดึงอิมเมจเวอร์ชันใหม่กว่าและสร้างคอนเทนเนอร์ขึ้นใหม่ สำหรับเซิร์ฟเวอร์ที่บ้าน การติดตามlatestอาจเหมาะสม แต่สำหรับการใช้งานทางธุรกิจ ควรปักหมุดแท็กที่ผ่านการทดสอบแล้ว อ่านบันทึกการเผยแพร่ สำรองข้อมูลการกำหนดค่า แล้วอัปเกรดในช่วงเวลาการบำรุงรักษา
นอกจากนี้ โปรดคำนึงถึงขอบเขตการใช้งานของ CODE ด้วย Docker Hub อธิบายว่า CODE เป็นเวอร์ชันสำหรับการพัฒนาที่มุ่งเป้าไปที่ผู้ใช้ตามบ้าน ในขณะที่เอกสารของ Nextcloud ชี้ให้เห็นว่าสำหรับการใช้งานขนาดใหญ่หรือที่ต้องการความน่าเชื่อถือสูง ควรใช้ตัวเลือกสำหรับองค์กรที่ได้รับการสนับสนุน การตั้งค่า Docker ใน 10 นาทีนั้นยอดเยี่ยมสำหรับคลาวด์ส่วนตัว ห้องปฏิบัติการ หรือทีมขนาดเล็ก แต่ไม่สามารถทดแทนการวางแผนความจุ การตรวจสอบ การสำรองข้อมูล หรือการสนับสนุนระดับองค์กรได้
ผลลัพธ์สุดท้าย
เมื่อคอนเทนเนอร์ทำงานแล้ว การทำพร็อกซี HTTPS ถูกต้อง/hosting/discoveryตอบสนองได้ การผสานรวม Nextcloud ชี้ไปยังที่อยู่ IP ที่ถูกต้องhttps://office.example.comWOPI ถูกจำกัด และเอกสารจริงเปิดและบันทึกได้ การผสานรวมก็เสร็จสมบูรณ์ รายละเอียดที่สำคัญที่สุดไม่ใช่จำนวนคำสั่ง แต่เป็นการรักษาเส้นทางเครือข่ายให้สม่ำเสมอ Nextcloud, CODE, รีเวิร์สพร็อกซี และเบราว์เซอร์ของผู้ใช้ทั้งหมดต้องสามารถเข้าถึงชื่อโฮสต์ HTTPS ที่คาดหวังได้ด้วยเส้นทาง WebSocket และ WOPI ที่ถูกต้อง