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