Tìm kiếm trang web

Cách Cài Đặt ONLYOFFICE Docs trên Ubuntu 24.04


ONLYOFFICE Docs là một bộ công cụ văn phòng trực tuyến miễn phí nhưng mạnh mẽ, cho phép làm việc nhóm, kèm theo các trình xem và chỉnh sửa tài liệu cho văn bản, bài thuyết trình, bảng tính, biểu mẫu và PDF. Bộ công cụ ONLYOFFICE hoàn toàn tương thích với các định dạng Office Open XML: .docx, .xlsx, .pptx và hỗ trợ chỉnh sửa tài liệu cùng lúc theo thời gian thực. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách cài đặt và cấu hình ONLYOFFICE Docs trên Ubuntu 24.04 (Noble Numbat).

Sổ Tay Ubuntu Desktop Tối Thượng

Làm chủ Ubuntu như một chuyên gia - từ tùy chỉnh giao diện đẹp mắt đến tự động hóa terminal mạnh mẽ. Hoàn hảo cho các nhà phát triển, quản trị hệ thống và người dùng cao cấp muốn kiểm soát hoàn toàn không gian làm việc của mình.

ONLYOFFICE Docs được đóng gói với các thành phần sau:

  • máy chủ – Đây là một lớp máy chủ backend điều khiển tất cả các thành phần của ONLYOFFICE Docs.
  • cốt lõi – Cho phép giao tiếp giữa các định dạng tài liệu văn phòng (DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP).
  • sdkjs – SDK JavaScript API cho tất cả các thành phần được bao gồm, tương tác phía client.
  • web-apps – Đây là giao diện frontend cho ONLYOFFICE Docs
  • từ điển – Chứa các từ điển của nhiều ngôn ngữ khác nhau được sử dụng để kiểm tra chính tả trong ONLYOFFICE Docs.

Đây là danh sách các trình soạn thảo đi kèm với ONLYOFFICE Docs:

  • Trình chỉnh sửa tài liệu ONLYOFFICE
  • Trình chỉnh sửa Bảng tính ONLYOFFICE
  • Trình chỉnh sửa bài thuyết trình ONLYOFFICE
  • Trình Tạo Biểu Mẫu ONLYOFFICE
  • Trình chỉnh sửa, đọc và chuyển đổi PDF ONLYOFFICE

Thiết lập yêu cầu

Trong bài viết này, chúng tôi sẽ cài đặt Community Edition của ONLYOFFICE Docs trên một máy chủ Ubuntu cục bộ. Yêu cầu phần cứng tối thiểu của máy chủ như sau:

  • CPU: Tối thiểu hai lõi 2 GHz
  • RAM: Tối thiểu 2 GB
  • Dung lượng ổ đĩa: Ít nhất 40 GB dung lượng trống
  • SWAP: Ít nhất 4 GB hoặc nhiều RAM hơn nếu không có trao đổi.
  • Hệ điều hành: Hệ thống Ubuntu hoặc Debian Linux 64-bit

Nếu bạn đáp ứng các yêu cầu, đây là thời điểm tốt để chuyển sự chú ý sang việc thiết lập máy chủ Tài liệu của bạn.

Bước 1: Thiết lập cơ sở dữ liệu PostgreSQL

Bắt đầu quá trình thiết lập bằng cách đảm bảo hệ thống của bạn được cập nhật:

sudo apt update && sudo apt upgrade -y

Chúng ta có thể cài đặt máy chủ PostgreSQL phiên bản có sẵn trong kho mặc định của hệ điều hành.

sudo apt install postgresql

Khi gói phần mềm được cài đặt, dịch vụ sẽ tự động khởi động, bước tiếp theo là tạo cơ sở dữ liệu và người dùng PostgreSQL:

sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';"
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice OWNER onlyoffice;"

Bước 2: Cài đặt Máy chủ RabbitMQ

ONLYOFFICE sử dụng RabbitMQ như một bộ trung gian nhắn tin để cho phép giao tiếp giữa các dịch vụ khác nhau trong bộ ONLYOFFICE. Cài đặt gói bằng cách chạy lệnh sau:

sudo apt install rabbitmq-server

Bạn có thể kiểm tra tình trạng dịch vụ:

$ systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ Messaging Server
     Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-07-30 08:20:24 UTC; 6s ago
   Main PID: 15046 (beam.smp)
      Tasks: 24 (limit: 4658)
     Memory: 102.8M (peak: 107.9M)
        CPU: 3.770s
     CGroup: /system.slice/rabbitmq-server.service
             ├─15046 /usr/lib/erlang/erts-13.2.2.5/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -pc unicode -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sb>
             ├─15056 erl_child_setup 65536
             ├─15108 /usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4
             ├─15109 /usr/lib/erlang/erts-13.2.2.5/bin/inet_gethost 4
             └─15112 /bin/sh -s rabbit_disk_monitor

Jul 30 08:20:20 ubuntu-cloudspinx-com systemd[1]: Starting rabbitmq-server.service - RabbitMQ Messaging Server...
Jul 30 08:20:24 ubuntu-cloudspinx-com systemd[1]: Started rabbitmq-server.service - RabbitMQ Messaging Server.

Bước 3: Cài đặt ONLYOFFICE Docs

Bây giờ khi chúng ta đã cấu hình xong môi trường, chúng ta đã sẵn sàng cài đặt ONLYOFFICE Docs vào hệ thống Ubuntu của mình. Tuy nhiên, bước đầu tiên là chúng ta phải nhập khóa GPG được sử dụng để ký gói.

curl -fsSL  https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/onlyoffice.gpg

Khi GPG đã được nhập, chúng ta có thể thêm kho APT của ONLYOFFICE:

echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

Cập nhật bộ nhớ đệm của trình quản lý gói và cài đặt ONLYOFFICE Docs.

sudo apt update
sudo apt install onlyoffice-documentserver ttf-mscorefonts-installer

Khi được yêu cầu cung cấp mật khẩu cơ sở dữ liệu, chỉ cần nhấn phím <ENTER> trên bàn phím để tiếp tục. Tiếp theo, chấp nhận các điều khoản của thỏa thuận cấp phép.

Kiểm tra xem có lỗi nào xảy ra trong quá trình cài đặt không. Nếu mọi thứ suôn sẻ, ONLYOFFICE có thể được truy cập trong trình duyệt của bạn tại http://localhost hoặc http://serverdomain_or_ip.

Bước 4: Bảo mật ONLYOFFICE Docs bằng SSL

Chúng ta có thể cấu hình ONLYOFFICE Docs để truy cập bằng giao thức HTTPS, vốn an toàn hơn nhiều so với HTTP. Theo mặc định, nó được cấu hình để chạy trên HTTP.

Trong cấu hình của chúng tôi, máy chủ sử dụng đang chạy trong môi trường đám mây. Điều này cho phép sử dụng SSL miễn phí của Let’s Encrypt.

Sử dụng SSL của Let’s Encrypt

Cách dễ nhất để cấu hình HTTPS cho ONLYOFFICE Docs là sử dụng Chứng chỉ SSL của Let’s Encrypt thông qua certbot. Sử dụng lệnh sau để cài đặt certbot.

  • Debian/Ubuntu:
sudo apt update && sudo apt install certbot
sudo apt install python3-certbot-nginx
  • Hệ thống dựa trên RHEL:
sudo dnf -y install epel-release
sudo dnf -y install certbot python3-certbot-nginx

Sau khi bạn đã cài đặt certbot, hãy chạy script của ONLYOFFICE để tự động cấu hình SSL.

sudo bash /usr/bin/documentserver-letsencrypt.sh [email  yourdomain.com

Thay [email bằng địa chỉ email thực tế của bạn, và yourdomain.com bằng tên miền được cấu hình trong DNS cho máy chủ ONLYOFFICE Docs.

Khi bạn chạy các lệnh, nó sẽ xuất ra đường dẫn đến một tệp nhật ký, nơi bạn có thể kiểm tra tiến trình tạo SSL và bất kỳ lỗi nào cũng sẽ được ghi lại ở đó.

Saving debug log to /var/log/letsencrypt/letsencrypt.log

Để kiểm tra nội dung tệp nhật ký, sử dụng lệnh cat:

sudo cat /var/log/letsencrypt/letsencrypt.log

Ví dụ các dòng cuối cùng xuất ra từ tệp:

...

-----BEGIN CERTIFICATE-----
MIIEVzCCAj+gAwIBAgIRAIOPbGPOsTmMYgZigxXJ/d4wDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
WhcNMjcwMzEyMjM1OTU5WjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCRTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNCzqK
a2GOtu/cX1jnxkJFVKtj9mZhSAouWXW0gQI3ULc/FnncmOyhKJdyIBwsz9V8UiBO
VHhbhBRrwJCuhezAUUE8Wod/Bk3U/mDR+mwt4X2VEIiiCFQPmRpM5uoKrNijgfgw
gfUwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD
ATASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBSfK1/PPCFPnQS37SssxMZw
i9LXDTAfBgNVHSMEGDAWgBR5tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcB
AQQmMCQwIgYIKwYBBQUHMAKGFmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0g
BAwwCjAIBgZngQwBAgEwJwYDVR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVu
Y3Iub3JnLzANBgkqhkiG9w0BAQsFAAOCAgEAH3KdNEVCQdqk0LKyuNImTKdRJY1C
2uw2SJajuhqkyGPY8C+zzsufZ+mgnhnq1A2KVQOSykOEnUbx1cy637rBAihx97r+
bcwbZM6sTDIaEriR/PLk6LKs9Be0uoVxgOKDcpG9svD33J+G9Lcfv1K9luDmSTgG
6XNFIN5vfI5gs/lMPyojEMdIzK9blcl2/1vKxO8WGCcjvsQ1nJ/Pwt8LQZBfOFyV
XP8ubAp/au3dc4EKWG9MO5zcx1qT9+NXRGdVWxGvmBFRAajciMfXME1ZuGmk3/GO
koAM7ZkjZmleyokP1LGzmfJcUd9s7eeu1/9/eg5XlXd/55GtYjAM+C4DG5i7eaNq
cm2F+yxYIPt6cbbtYVNJCGfHWqHEQ4FYStUyFnv8sjyqU8ypgZaNJ9aVcWSICLOI
E1/Qv/7oKsnZCWJ926wU6RqG1OYPGOi1zuABhLw61cuPVDT28nQS/e6z95cJXq0e
K1BcaJ6fJZsmbjRgD5p3mvEf5vdQM7MCEvU0tHbsx2I5mHHJoABHb8KVBgWp/lcX
GWiWaeOyB7RP+OfDtvi2OsapxXiV7vNVs7fMlrRjY1joKaqmmycnBvAq14AEbtyL
sVfOS66B8apkeFX2NY4XPEYV4ZSCe8VHPrdrERk2wILG3T/EGmSIkCYVUMSnjmJd
VQD9F6Na/+zmXCc=
-----END CERTIFICATE-----

2024-07-30 08:56:34,141:DEBUG:acme.client:Storing nonce: Ma8ZwRNA9J1JoJ_IMl_v_1HLCTTt5G01XNs8p_Mvri6JbKsSWrI
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive.
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live.
2024-07-30 08:56:34,142:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/README.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/archive/docs.cloudlabske.com.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Creating directory /etc/letsencrypt/live/docs.cloudlabske.com.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing certificate to /etc/letsencrypt/live/docs.cloudlabske.com/cert.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing private key to /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing chain to /etc/letsencrypt/live/docs.cloudlabske.com/chain.pem.
2024-07-30 08:56:34,143:DEBUG:certbot._internal.storage:Writing full chain to /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem.
2024-07-30 08:56:34,144:DEBUG:certbot._internal.storage:Writing README to /etc/letsencrypt/live/docs.cloudlabske.com/README.
2024-07-30 08:56:34,156:DEBUG:certbot.configuration:Var account=985390e388f48deb37eab1e67d361272 (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2024-07-30 08:56:34,157:DEBUG:certbot._internal.plugins.selection:Requested authenticator webroot and installer None
2024-07-30 08:56:34,157:DEBUG:certbot.configuration:Var webroot_path=['/var/www/onlyoffice/documentserver/letsencrypt'] (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot.configuration:Var webroot_map={'docs.cloudlabske.com': '/var/www/onlyoffice/documentserver/letsencrypt'} (set by user).
2024-07-30 08:56:34,157:DEBUG:certbot._internal.storage:Writing new config /etc/letsencrypt/renewal/docs.cloudlabske.com.conf.
2024-07-30 08:56:34,159:DEBUG:certbot._internal.display.obj:Notifying user:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem
This certificate expires on 2024-10-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
2024-07-30 08:56:34,161:DEBUG:certbot._internal.display.obj:Notifying user: If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le

Sử dụng chứng chỉ SSL tự ký

Đối với các hệ thống nằm trong mạng riêng, bạn có thể tạo chứng chỉ tự ký. Ngoài ra, nếu bạn quản lý DNS trên Cloudflare, hãy tham khảo bài viết của chúng tôi về cách cấu hình Let’s Encrypt với DNS của Cloudflare.

Người dùng sử dụng chứng chỉ tự ký có thể chỉnh sửa nội dung các tệp sau và điều chỉnh đường dẫn đến khóa và chứng chỉ tên miền:

sudo nano /etc/onlyoffice/documentserver/nginx/ds.conf

Xem nội dung bên dưới từ thiết lập của chúng tôi trong bài viết này sử dụng Let’s Encrypt.

include /etc/nginx/includes/http-common.conf;

## Normal HTTP host
server {
  listen 0.0.0.0:80;
  listen [::]:80 default_server;
  server_name _;
  server_tokens off;
  set $secure_link_secret nsdy8N28Ylobmp5EL4wF;

  ## Redirects all traffic to the HTTPS host
  root /nowhere; ## root doesn't have to be a valid path since we are redirecting
  rewrite ^ https://$host$request_uri? permanent;
}

#HTTP host for internal services
server {
  listen 127.0.0.1:80;
  listen [::1]:80;
  server_name localhost;
  server_tokens off;
  set $secure_link_secret nsdy8N28Ylobmp5EL4wF;

  include /etc/nginx/includes/ds-common.conf;
  include /etc/nginx/includes/ds-docservice.conf;
}

## HTTPS host
server {
  listen 0.0.0.0:443 ssl;
  listen [::]:443 ssl default_server;
  server_tokens off;
  set $secure_link_secret nsdy8N28Ylobmp5EL4wF;
  root /usr/share/nginx/html;

  ## Strong SSL Security
  ## https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
  ssl_certificate /etc/letsencrypt/live/docs.cloudlabske.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/docs.cloudlabske.com/privkey.pem;
  # Uncomment string below and specify the path to the file with the password if you use encrypted certificate key
  # ssl_password_file {{SSL_PASSWORD_PATH}};
  ssl_verify_client off;

  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

  ssl_protocols TLSv1.2;
  ssl_session_cache  builtin:1000  shared:SSL:10m;

  ssl_prefer_server_ciphers   on;

  add_header Strict-Transport-Security max-age=31536000;
  # add_header X-Frame-Options SAMEORIGIN;
  add_header X-Content-Type-Options nosniff;

  ## [Optional] If your certficate has OCSP, enable OCSP stapling to reduce the overhead and latency of running SSL.
  ## Replace with your ssl_trusted_certificate. For more info see:
  ## - https://medium.com/devops-programming/4445f4862461
  ## - https://www.ruby-forum.com/topic/4419319
  ## - https://linux-console.net/community/tutorials/how-to-configure-ocsp-stapling-on-apache-and-nginx
  # ssl_stapling on;
  # ssl_stapling_verify on;
  # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt;
  # resolver 208.67.222.222 208.67.222.220 valid=300s; # Can change to your DNS resolver if desired
  # resolver_timeout 10s;

  ## [Optional] Generate a stronger DHE parameter:
  ##   cd /etc/ssl/certs
  ##   sudo openssl dhparam -out dhparam.pem 4096
  ##
  # ssl_dhparam /etc/ssl/certs/dhparam.pem;

  include /etc/nginx/includes/ds-*.conf;

}

Cập nhật ssl_certificate và ssl_certificate_key để phù hợp với môi trường của bạn.

Truy cập Tài liệu OnlyOffice tại https://yourdomain

Bạn sẽ nhận được trang chào mừng ONLYOFFICE Docs kèm theo các hướng dẫn chi tiết về cách bạn có thể bật các ví dụ tài liệu và tích hợp vào ứng dụng của mình bằng API được cung cấp.

Bước 5: Tích hợp các ứng dụng bên thứ ba

Quá trình tích hợp ONLYOFFICE với các ứng dụng bên thứ ba như Pydio, Zimbra, WordPress, Odoo, SuiteCRM, Mattermost, v.v. diễn ra rất mượt mà. Hãy xem tất cả các kết nối tại liên kết sau:

  • Danh sách các kết nối ONLYOFFICE