Recherche sur le site Web

Comment installer ONLYOFFICE Docs sur Ubuntu 24.04


ONLYOFFICE Docs est une suite bureautique en ligne collaborative, gratuite et puissante, incluant des visionneuses et des éditeurs pour les documents texte, les présentations, les feuilles de calcul, les formulaires et les fichiers PDF. La suite ONLYOFFICE est pleinement compatible avec les formats Office Open XML : .docx, .xlsx, .pptx et prend en charge l’édition collaborative des documents en temps réel. Dans cet article, nous vous montrerons comment installer et configurer ONLYOFFICE Docs sur Ubuntu 24.04 (Noble Numbat).

Le guide ultime du bureau Ubuntu

Maîtrisez Ubuntu comme un pro – de la personnalisation élégante du bureau à l'automatisation puissante du terminal. Parfait pour les développeurs, les administrateurs systèmes et les utilisateurs avancés qui veulent un contrôle total de leur espace de travail.

Les documents ONLYOFFICE sont fournis avec les composants suivants :

  • serveur – Il s'agit d'une couche serveur backend qui contrôle tous les composants de ONLYOFFICE Docs.
  • noyau – Permet la communication entre les formats de documents bureautiques (DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP).
  • sdkjs – SDK JavaScript API pour tous les composants inclus et l'interaction côté client.
  • applications web – Il s'agit de l'interface frontend de ONLYOFFICE Docs
  • dictionnaires – Contiennent les dictionnaires de diverses langues utilisés pour la vérification orthographique dans ONLYOFFICE Docs.

Voici la liste des éditeurs inclus avec ONLYOFFICE Docs :

  • Éditeur de documents ONLYOFFICE
  • Éditeur de feuilles de calcul ONLYOFFICE
  • Éditeur de présentation ONLYOFFICE
  • Créateur de formulaires ONLYOFFICE
  • Éditeur, lecteur et convertisseur PDF ONLYOFFICE

Configurer les exigences

Dans cet article, nous installons la Community Edition d'ONLYOFFICE Docs sur un serveur Ubuntu local. Les exigences minimales en matière de matériel serveur sont les suivantes :

  • Processeur : Au moins double cœur 2 GHz
  • RAM : au moins 2 Go
  • Espace disque : au moins 40 Go d'espace libre
  • SWAP : Au moins 4 Go, ou plus de RAM si aucun swap.
  • OS : système Ubuntu ou Debian Linux 64 bits

Si vous remplissez les exigences, c’est le bon moment pour concentrer votre attention sur la configuration de votre serveur de documents.

Étape 1 : Configurer la base de données PostgreSQL

Commencez l'installation en vous assurant que votre système est à jour :

sudo apt update && sudo apt upgrade -y

Nous pouvons installer la version du serveur PostgreSQL disponible dans les dépôts par défaut de notre système d'exploitation.

sudo apt install postgresql

Une fois le package installé, le service démarre automatiquement. La prochaine étape consiste à créer une base de données et un utilisateur PostgreSQL :

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

Étape 2 : Installer le serveur RabbitMQ

ONLYOFFICE utilise RabbitMQ en tant que broker de messagerie pour permettre la communication entre les différents services de la suite ONLYOFFICE. Installez le paquet en exécutant la commande suivante :

sudo apt install rabbitmq-server

Vous pouvez vérifier l'état du service :

$ 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.

Étape 3 : Installer ONLYOFFICE Docs

Maintenant que nous avons configuré l'environnement, nous sommes prêts à installer ONLYOFFICE Docs sur notre système Ubuntu. Cependant, nous devons d'abord importer la clé GPG utilisée pour la signature des paquets.

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

Une fois la clé GPG importée, nous pouvons ajouter le dépôt APT de ONLYOFFICE :

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

Mettez à jour le cache du gestionnaire de paquets et installez ONLYOFFICE Docs.

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

Lorsque vous êtes invité à fournir le mot de passe de la base de données, appuyez simplement sur la touche <ENTRÉE> de votre clavier pour continuer. Ensuite, acceptez les conditions du contrat de licence.

Vérifiez s'il y a eu des erreurs lors de l'installation. Si tout se passe bien, ONLYOFFICE peut être accédé dans votre navigateur à http://localhost ou http://serverdomain_or_ip.

Étape 4 : Sécuriser ONLYOFFICE Docs avec SSL

Nous pouvons configurer ONLYOFFICE Docs pour y accéder en utilisant le protocole HTTPS, qui est beaucoup plus sécurisé que HTTP. Par défaut, il est configuré pour fonctionner en HTTP.

Dans notre configuration, le serveur utilisé fonctionne dans un environnement Cloud. Cela permet d’utiliser le SSL gratuit de Let’s Encrypt.

Utilisation du SSL Let’s Encrypt

La façon la plus simple de configurer HTTPS pour ONLYOFFICE Docs est d'utiliser les certificats SSL Let’s Encrypt avec certbot. Utilisez la commande suivante pour installer certbot.

  • Debian/Ubuntu :
sudo apt update && sudo apt install certbot
sudo apt install python3-certbot-nginx
  • Systèmes basés sur RHEL :
sudo dnf -y install epel-release
sudo dnf -y install certbot python3-certbot-nginx

Une fois que vous avez installé certbot, exécutez le script ONLYOFFICE qui automatise les configurations SSL.

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

Remplacez [email par votre adresse courriel réelle, et votredomaine.com par le nom de domaine configuré dans le DNS pour le serveur ONLYOFFICE Docs.

Lorsque vous exécutez les commandes, elles afficheront le chemin vers un fichier journal où vous pourrez vérifier la progression de la génération SSL et où toutes les erreurs seront enregistrées.

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

Pour vérifier le contenu d'un fichier journal, utilisez la commande cat :

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

Exemple des dernières lignes de sortie du fichier :

...

-----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

Utilisation de certificats SSL auto-signés

Pour les systèmes situés dans un réseau privé, vous pouvez générer des certificats auto-signés. Sinon, si vous gérez le DNS sur Cloudflare, consultez notre article sur la configuration de Let’s Encrypt avec le DNS de Cloudflare.

Les utilisateurs utilisant des certificats auto-signés peuvent modifier le contenu des fichiers suivants et ajuster le chemin vers la clé et le certificat de domaine :

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

Voir le contenu ci-dessous de notre configuration dans cet article utilisant 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;

}

Mettez à jour ssl_certificate et ssl_certificate_key pour qu'ils correspondent à votre environnement.

Accédez aux documents OnlyOffice à https://yourdomain

Vous arriverez sur la page de bienvenue de ONLYOFFICE Docs avec des instructions supplémentaires sur la façon d’activer les exemples de documents et de les intégrer à vos applications en utilisant l’API fournie.

Étape 5 : Intégrer des applications tierces

L'intégration d'ONLYOFFICE avec vos applications tierces comme Pydio, Zimbra, WordPress, Odoo, SuiteCRM, Mattermost, etc., est un processus fluide. Consultez tous les connecteurs en suivant le lien ci-dessous :

  • Liste des connecteurs ONLYOFFICE