Nextcloud [Part 7] – Cài đặt Collabora Online và tích hợp với NextCloud

30/12/2020

Mục lục :

  1. Cài đặt Collabora Online server
  2. Tích hợp Collabora Online với Nextcloud

1. Cài đặt Collabora server

Môi trường cài đặt Collabora server :

  • OS : Ubuntu 16.04
  • RAM : 2048
  • CPU : 2 core
  • Disk : 20GB
  • Public IP
  • Domain

Chú ý : Collabora server và Nextcloud server bắt buộc phải có Domain để có thể tích hợp với nhau. Để đăng ký một tên miền đơn giản nhất, hãy truy cập vào trang đăng ký tên miền của Onet

Tại bài viết trên các domain tương ứng như sau :

  • Nextcloud server : nextOnet.nextcloudvn.com
  • Collabora server : collaboraOnet.nextcloudvn.com

Bước 1 : Trên Colabora Server, thực hiện cài đặt Docker và down image Collabora :

apt-get install docker.io -y docker pull collabora/code 

Bước 2 : Thực hiện chạy docker image cho Collabora và thực hiện khai báo máy chủ NextCloud được phép tích hợp với Collabora server.

Chú ý : Trong mục domain khai báo domain của NextCloud Server

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextOnet\.nextcloudvn\.com' --restart always --cap-add MKNOD collabora/code

Chú ý : Ví dụ ta cần tích hợp máy chủ có domain nextcloud366.nextcloudvn.com với Collabora server. Khi sử dụng Collabora với nhiều  domain nextcloud khác nhau. Cần chạy câu lệnh docker như sau : 

docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextOnet\.nextcloudvn\.com|nextcloud366\.nextcloudvn\.com'  --restart always --cap-add MKNOD collabora/code

Bước 3 : Cài đặt Let’s Encrypt với domain là  collaboraOnet.nextcloudvn.com

apt install -y letsencrypt python-letsencrypt-apache letsencrypt --apache --agree-tos --email manhdinh1994@gmail.com -d collaboraOnet.nextcloudvn.com 

Chú ý chọn Y để cài đặt và chọn 2 để redirect toàn bộ request từ http => https :

  • Cài đặt và enable các mode của apache
apt-get install -y apache2 a2enmod proxy a2enmod proxy_wstunnel a2enmod proxy_http a2enmod ssl
  • Cấu hình tạo file httpd :
cat << EOF >> /etc/apache2/sites-available/collaboraOnet.nextcloudvn.com.conf <VirtualHost *:80> ServerName collaboraOnet.nextcloudvn.com  RewriteEngine on RewriteCond %{SERVER_NAME} =collaboraOnet.nextcloudvn.com  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost> EOF
  • Cấu hình tạo file httpd với SSL
cat << EOF >> /etc/apache2/sites-enabled/collaboraOnet.nextcloudvn.com-le-ssl.conf <IfModule mod_ssl.c> <VirtualHost *:443> ServerName collaboraOnet.nextcloudvn.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/collaboraOnet.nextcloudvn.com/fullchain.pem SSLCertificateChainFile /etc/letsencrypt/live/collaboraOnet.nextcloudvn.com/chain.pem SSLCertificateKeyFile /etc/letsencrypt/live/collaboraOnet.nextcloudvn.com/privkey.pem SSLProtocol             all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS SSLHonorCipherOrder     on      SSLCertificateFile /etc/letsencrypt/live/collaboraOnet.nextcloudvn.com/fullchain.pem    SSLCertificateKeyFile /etc/letsencrypt/live/collaboraOnet.nextcloudvn.com/privkey.pem    Include /etc/letsencrypt/options-ssl-apache.conf  # Encoded slashes need to be allowed    AllowEncodedSlashes NoDecode     # Container uses a unique non-signed certificate  SSLProxyEngine On   SSLProxyVerify None   SSLProxyCheckPeerCN Off   SSLProxyCheckPeerName Off    # keep the host   ProxyPreserveHost On   # static html, js, images, etc. served from loolwsd   # loleaflet is the client part of LibreOffice Online   ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0   ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet    # WOPI discovery URL   ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0    ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery    # Main websocket   ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon    # Admin Console websocket   ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws    # Download as, Fullscreen presentation and Image upload operations   ProxyPass /lool https://127.0.0.1:9980/lool   ProxyPassReverse /lool https://127.0.0.1:9980/lool </VirtualHost> </IfModule> EOF
  • Enable domain và restart httpd
a2ensite collaboraOnet.nextcloudvn.com systemctl restart apache2

2. Tích hợp Collabora Online trên NextCloud

Truy cập trang :  https://nextOnet.nextcloudvn.com với user admin . Tại mục Setting => App

Tại mục Office and Text, tìm kiếm Collabora Online, ấn và Download và Enable, nhập password để thực hiện

Tại mục Setting => Collabora online. Điền thông tin của domain Collabora là https://collaboraOnet.nextcloudvn.com và ấn Apply

Tạo 1 file word, file sẽ tự kết nối tới Collabora server. Khi hiện lên giao diện chỉnh sửa của file nghĩa là việc kết nối tới Collabora Online đã thành công .

Tại bài tiếp theo, team #Onet sẽ hướng dẫn các bạn update NextCloud server bằng các cách khác nhau.

Xin cảm ơn đã quan tâm và theo dõi !

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

How to Install Hyper.js Terminal on CentOS 8

Hyper terminal is built with web technologies such as HTML, CSS, JavaScript, Electron.js etc. It looks very modern and...
29/12/2020

How to Set Timezone on CentOS

Timezone determines the local time of your location. Setting the correct timezone is an important task for Linux or CentOS...
29/12/2020

Change Hostname Permanently on CentOS7

The hostname of a system can be used to make it easier to identify the host and not rely on an IP address which is difficult...
28/12/2020