GNU/Linux >> Belajar Linux >  >> Ubuntu

Integrasikan Collabora Online dengan Nextcloud di Ubuntu tanpa Docker

Tutorial ini akan menunjukkan cara menginstal Collabora Online di Ubuntu dan kemudian mengintegrasikannya dengan server Nextcloud yang ada tanpa menggunakan Docker.

Kolaborasi Daring adalah suite kantor online sumber terbuka yang dapat dihosting sendiri dan berbasis LibreOffice. Fitur-fiturnya meliputi:

  • Pengeditan dasar
  • Fidelitas tinggi, rendering WYSIWYG
  • Mendukung format dokumen DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
  • Impor dan lihat Visio, Publisher, dan 100+ lainnya
  • Pengeditan Bersama

Collabora adalah kontributor besar untuk proyek LibreOffice. Semua kode Collabora Online pada akhirnya akan disertakan dalam LibreOffice.

Catatan:Tutorial ini berfungsi di Ubuntu 20.04, 18.04 dan 16.04. Jika Anda menggunakan versi Ubuntu lain, Anda dapat menginstal Collobaora Online dengan Docker.

Prasyarat

Diasumsikan bahwa Anda telah menyiapkan server Nextcloud, yang dapat berada di distribusi Linux apa pun. Jika Anda belum melakukannya, Anda dapat melihat panduan yang mudah dipahami berikut ini.

  • Cara Menginstal Nextcloud di Ubuntu 20.04 dengan LEMP Stack
  • Cara Menginstal Nextcloud di Ubuntu 20.04 dengan LAMP Stack
  • Cara Menginstal Nextcloud di CentOS 8 dengan LEMP Stack
  • Cara menyiapkan Nextcloud di Arch Linux

Server Collabora Online dan server Nextcloud dapat berada di mesin yang sama atau di dua mesin yang berbeda. Tutorial ini menunjukkan cara menginstal server online Collabora di Ubuntu menggunakan gambar Docker yang dibuat oleh Collabora dan Nextcloud. Kemudian integrasikan dengan server Nextcloud yang ada.

Langkah 1:Instal Collabora Online di Ubuntu Dari Repositori Resmi

Collabora memiliki repositori paket resmi untuk Ubuntu 20.04, 18.04 dan 16.04. Jalankan perintah berikut untuk menambahkannya ke sistem Ubuntu Anda.

Ubuntu 20.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Ubuntu 18.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Ubuntu 16.04

echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' | sudo tee /etc/apt/sources.list.d/collabora.list

Kemudian jalankan perintah berikut untuk mengunduh dan mengimpor kunci publik Collabora, yang memungkinkan manajer paket APT memverifikasi integritas paket yang diunduh dari repositori ini.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D

Jika Anda tidak dapat mengimpor kunci publik dengan perintah di atas, Anda dapat menggunakan perintah berikut untuk mengunduh dan mengimpor kunci.

wget https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd.xml.key && sudo apt-key add repomd.xml.key

Karena repositori ini menggunakan koneksi HTTPS, kita perlu menginstal apt-transport-https dan ca-certificates paket, sehingga manajer paket APT dapat membuat koneksi aman ke repositori.

sudo apt install apt-transport-https ca-certificates

Sekarang perbarui indeks paket lokal dan instal Collabora Online. Loollowsd adalah Daemon WebSocket LibreOffice Online.

sudo apt update
sudo apt install loolwsd code-brand

Langkah 2:Konfigurasikan LibreOffice Online WebSocket Daemon

Setelah terinstal, Anda dapat memeriksa status loolowsd.

systemctl status loolwsd

Petunjuk :Jika perintah di atas tidak segera berhenti, Anda dapat menekan tombol Q kunci untuk menghentikannya.

Seperti yang Anda lihat, itu gagal untuk memulai. Kami dapat memeriksa jurnal untuk melihat mengapa ini terjadi.

sudo journalctl -eu loolwsd

Contoh keluaran:

Apr 21 16:13:06 ubuntu loolwsd[13842]: File not found: /etc/loolwsd/ca-chain.cert.pem
Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Main process exited, code=exited, status
Apr 21 16:13:06 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Service hold-off time over, scheduling r
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Scheduled restart job, restart counter i
Apr 21 16:13:07 ubuntu systemd[1]: Stopped LibreOffice Online WebSocket Daemon.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Start request repeated too quickly.
Apr 21 16:13:07 ubuntu systemd[1]: loolwsd.service: Failed with result 'exit-code'.
Apr 21 16:13:07 ubuntu systemd[1]: Failed to start LibreOffice Online WebSocket Daemon.

Secara default, loolowsd mengaktifkan koneksi TLS. Namun, itu tidak menemukan file sertifikat TLS, karenanya kegagalan awal. Lebih baik menonaktifkan TLS di loowsd dan menghentikan TLS di proxy terbalik. File konfigurasi loolwsd terletak di /etc/loolwsd/loolwsd.xml . Namun, ini adalah file XML, yang tidak mudah dibaca dan diedit. Kita dapat menggunakan loolconfig alat untuk mengubah konfigurasi.

Jalankan perintah berikut untuk menonaktifkan TLS di loolowsd.

sudo loolconfig set ssl.enable false

Dan aktifkan penghentian TLS di proxy terbalik.

sudo loolconfig set ssl.termination true

Secara default, loolowsd hanya mengizinkan host yang dikenal untuk mengakses layanannya. Untuk mengizinkan Nextcloud mengakses layanan, jalankan perintah berikut untuk menambahkan nama host Nextcloud Anda ke daftar putih.

sudo loolconfig set storage.wopi.host nextcloud.example.com

Anda juga dapat mengaktifkan akun admin untuk loowsd dengan perintah berikut. Anda perlu mengatur nama pengguna dan kata sandi untuk akun admin.

sudo loolconfig set-admin-password

Mulai ulang loolowsd agar perubahan diterapkan.

sudo systemctl restart loolwsd

Sekarang seharusnya berjalan tanpa kesalahan.

systemctl status loolwsd

Keluaran:

Langkah 3:Siapkan Proksi Terbalik

Server Nextcloud memerlukan sertifikat TLS di Collabora Online, jadi kita perlu membuat host virtual, memberi host virtual nama domain, menyiapkan proxy terbalik, dan menginstal sertifikat TLS. Kita bisa menggunakan Apache atau Nginx untuk mencapai ini.

Apache

Instal server web Apache dengan perintah berikut:

sudo apt install apache2

Jalankan perintah berikut untuk membuat file host virtual Apache untuk Collabora Online.

sudo nano /etc/apache2/sites-available/collabora.conf

Masukkan teks berikut ke dalam file. Ganti nama domain dengan nama domain Anda yang sebenarnya untuk Collabora Online. Jangan lupa untuk membuat catatan A untuk sub-domain ini.

<VirtualHost *:80>
  ServerName collabora.example.com
  Options -Indexes

  ErrorLog "/var/log/apache2/collabora_error"
  # Encoded slashes need to be allowed
  AllowEncodedSlashes NoDecode

  # keep the host
  ProxyPreserveHost On

  # static html, js, images, etc. served from loolwsd
  # loleaflet is the client part of Collabora Online
  ProxyPass           /loleaflet http://127.0.0.1:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet http://127.0.0.1:9980/loleaflet

  # WOPI discovery URL
  ProxyPass           /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery http://127.0.0.1:9980/hosting/discovery

  # Capabilities
  ProxyPass           /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
  ProxyPassReverse    /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" ws://127.0.0.1:9980/lool/$1/ws nocanon

  # Admin Console websocket
  ProxyPass   /lool/adminws ws://127.0.0.1:9980/lool/adminws

  # Download as, Fullscreen presentation and Image upload operations
  ProxyPass           /lool http://127.0.0.1:9980/lool
  ProxyPassReverse    /lool http://127.0.0.1:9980/lool

</VirtualHost>

Simpan dan tutup file. Untuk dapat mem-proxy lalu lintas menggunakan Apache, kita perlu mengaktifkan beberapa modul Apache.

sudo a2enmod proxy proxy_wstunnel proxy_http

Aktifkan host virtual ini dengan perintah berikut:

sudo a2ensite collabora.conf

Kemudian restart Apache.

sudo systemctl restart apache2

Nginx

Instal Nginx di Ubuntu dengan perintah berikut:

sudo apt install nginx

Buat file host virtual untuk Collabora Online.

sudo nano /etc/nginx/conf.d/collabora.conf

Masukkan teks berikut ke dalam file. Ganti nama domain dengan nama domain Anda yang sebenarnya untuk Collabora Online. Jangan lupa untuk membuat catatan A untuk nama domain ini.

server {
    listen 80;
    listen [::]:80;
    server_name  collabora.example.com;

    error_log /var/log/nginx/collabora.error;

    # static files
    location ^~ /loleaflet {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # main websocket
    location ~ ^/lool/(.*)/ws$ {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }

    # download, presentation and image upload
    location ~ ^/lool {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Admin Console websocket
    location ^~ /lool/adminws {
        proxy_pass http://localhost:9980;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_read_timeout 36000s;
    }
}

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang server Nginx.

sudo systemctl reload nginx

Langkah 4:Dapatkan dan Instal Sertifikat TLS

Sekarang mari dapatkan sertifikat TLS gratis dari Let's encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) dari repositori perangkat lunak default.

sudo apt install certbot

Jika Anda menggunakan Apache web server, maka Anda juga perlu menginstal plugin Certbot Apache.

sudo apt install python3-certbot-apache

Kemudian jalankan perintah berikut untuk mendapatkan sertifikat TLS/SSL gratis.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com

Jika Anda menggunakan Nginx web server, maka Anda perlu menginstal plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Kemudian gunakan plugin Nginx untuk mendapatkan dan menginstal sertifikat dengan menjalankan perintah berikut.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d collabora.example.com

Anda akan melihat teks berikut yang menunjukkan bahwa Anda telah berhasil memperoleh sertifikat TLS.

Langkah Terakhir:Hubungkan Nextcloud ke Collabora Online

Di dasbor Nextcloud Anda, buka Apps halaman. Selanjutnya, buka Office & Text bagian, temukan Collabora Online aplikasi, klik Download and Enable tombol.

(Catatan :Ada aplikasi lain bernama Collabora Online - Built-in CODE server , yang tidak boleh Anda instal di server Nextcloud Anda.)

Setelah aplikasi ini diaktifkan, pergi ke Nextcloud Settings halaman. Klik Collabora Online tab di sebelah kiri. Secara default, ia menggunakan server CODE bawaan, yang tidak cocok untuk penggunaan produksi. Kami harus memilih Use your own server dan masukkan nama domain Collabora Online Anda termasuk https:// awalan, lalu klik Save tombol.

Di advance settings , Anda juga dapat mengatur OOXML sebagai format default, sehingga file akan kompatibel dengan perangkat lunak Microsoft Office.

Sekarang ketika Anda mengklik tombol tambah (+) di Nextcloud, Anda akan dapat membuat dokumen Word, spreadsheet, dan presentasi langsung dari server Nextcloud Anda.

Konsol admin loolwsd tersedia di https://collabora.example.com/loleaflet/dist/admin/admin.html . Anda harus memasukkan nama pengguna dan kata sandi, yang dibuat pada langkah 2.

Pemecahan Masalah

Jika Nextcloud memberi tahu Anda bahwa itu c tidak dapat membuat sambungan ke server Collabora Online , mungkin server Nginx Anda berjalan di belakang proxy terbalik seperti HAProxy dan Anda memiliki dua baris berikut di /etc/nginx/nginx.conf .

set_real_ip_from 127.0.0.1;
real_ip_header proxy_protocol;

Ini berarti Nginx mengharapkan koneksi HTTP dari proxy terbalik. Anda harus mengedit /etc/nginx/conf.d/collaboara.conf file dan tambahkan proxy_protocol ke arahan mendengarkan.

listen 127.0.0.1:443 ssl http2 proxy_protocol;

Kemudian edit /etc/hosts file dan tambahkan catatan DNS statis seperti di bawah ini. Ganti 12.34.56.78 dengan alamat IP publik server.

12.34.56.78          collaboara.example.com

collabora.example.com harus diarahkan ke alamat IP publik server Anda. Jangan arahkan ke 127.0.0.1.

Anda juga dapat memeriksa log loowsd untuk menemukan petunjuk. Mungkin tidak berjalan.

sudo journalctl -eu loolwsd

Dan periksa log server web.

  • Apache:/var/log/apache2/collabora_error
  • Nginx:/var/log/nginx/collabora.error

Ubuntu
  1. Cara Menginstal WordPress dengan Docker di Ubuntu

  2. Bagaimana mengintegrasikan Alfresco dengan ONLYOFFICE Online Editor di Ubuntu 14.04

  3. Cara Mengintegrasikan Collabora Online dengan Nextcloud di Ubuntu 20.04

  1. Cara membuat Gambar Docker dengan Dockerfile di Ubuntu 16.04 LTS

  2. Cara Mengelola Kontainer Docker dengan Rancher di Ubuntu

  3. Cara menginstal ONLYOFFICE 8.9.0 dengan Docker di Ubuntu

  1. Dockerizing LEMP Stack dengan Docker-Compose di Ubuntu

  2. Cara Menginstal GitLab dengan Docker di Ubuntu 20.04 LTS

  3. Bagaimana mengintegrasikan editor ONLYOFFICE dengan Moodle di Ubuntu