Guide : Déploiement d’ONLYOFFICE sur un Serveur Unique (Single Node)
1. Architecture et Concept (Serveur Unique)
Contrairement à un montage complexe impliquant plusieurs serveurs, l’architecture « Single Node » regroupe tout au même endroit. Votre serveur Apache gère directement les requêtes Internet (Nextcloud) ET sert de proxy local pour communiquer avec le conteneur Docker (ONLYOFFICE).
2. Le Prérequis : L’enregistrement DNS
Assurez-vous que vos deux sous-domaines pointent vers la même adresse IP publique :
cloud.votre-domaine.com(Pour Nextcloud)office.votre-domaine.com(Pour ONLYOFFICE)
3. Préparation du Serveur et Docker
A. Installation et dossier de persistance
Installez Docker et créez le dossier qui sauvegardera les données de votre éditeur de façon permanente.
sudo apt update && sudo apt install docker.io -y
sudo systemctl enable --now docker
sudo mkdir -p /app/onlyoffice/DocumentServer/data
B. Génération de la clé de sécurité (JWT)
Cette clé protègera votre serveur ONLYOFFICE des connexions non autorisées.
openssl rand -hex 16
Copiez le résultat de cette commande, vous en aurez besoin immédiatement.
4. Lancement du Conteneur ONLYOFFICE
Lancez le conteneur en liant le port interne 80 au port local 8099 de votre serveur. Remplacez VOTRE_CLE_HEX par la clé générée précédemment.
sudo docker run -i -t -d --restart=always --name onlyoffice-ds -p 127.0.0.1:8099:80 -p 127.0.0.1:8499:443 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=VOTRE_CLE_HEX onlyoffice/documentserver:latest
5. Certificat SSL avec Certbot
Générez un fichier VirtualHost de base pour laisser Certbot créer les certificats en toute sécurité.
Créez le fichier /etc/apache2/sites-available/office.votre-domaine.com.conf :
<VirtualHost *:80>
ServerName office.votre-domaine.com
</VirtualHost>
Activez-le et lancez Certbot :
sudo a2ensite office.votre-domaine.com.conf
sudo systemctl reload apache2
sudo certbot --apache -d office.votre-domaine.com
6. Configuration finale du VirtualHost Apache
Activez les modules proxy requis :
sudo a2enmod proxy proxy_http proxy_wstunnel headers rewrite
Éditez le fichier SSL créé par Certbot (souvent nommé office.votre-domaine.com-le-ssl.conf) et intégrez cette configuration de production. N’oubliez pas d’adapter vos noms de domaine !
<VirtualHost *:443>
ServerName office.votre-domaine.com
# Ces en-têtes informent ONLYOFFICE que la connexion est en HTTPS
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-SSL "on"
# Redirection vers l'IP interne du conteneur Docker
ProxyPass / http://127.0.0.1:8099/
ProxyPassReverse / http://127.0.0.1:8099/
# WebSockets (Nécessaire pour la co-édition en temps réel)
ProxyPassMatch "/([^\/]+)\/ws$" ws://127.0.0.1:8099/$1/ws
ProxyPassReverse /ws ws://127.0.0.1:8099/ws
# Gestion du délai d'attente
ProxyTimeout 1800
# Certificats SSL (Générés par Certbot, laissez vos chemins existants)
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/office.votre-domaine.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/office.votre-domaine.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
# Sécurité CSP (Évite l'erreur de page blanche dans Nextcloud)
Header unset Content-Security-Policy
Header always set Content-Security-Policy "frame-ancestors 'self' https://cloud.votre-domaine.com"
<Location />
Require all granted
</Location>
</VirtualHost>
Redémarrez Apache pour appliquer les règles :
sudo systemctl restart apache2
7. Paramètres dans l’interface Nextcloud
Connectez-vous à votre Nextcloud en tant qu’administrateur, rendez-vous dans Paramètres > ONLYOFFICE, développez les paramètres avancés et remplissez les champs exactement comme ceci :
| Champ | Valeur à saisir |
|---|---|
| Adresse de ONLYOFFICE Docs | https://office.votre-domaine.com/ |
| Clé secrète | La clé JWT hexadécimale générée à l’étape 3B |
| [Avancé] Demandes internes du serveur | http://127.0.0.1:8099/ |
| [Avancé] Demandes internes de ONLYOFFICE | https://cloud.votre-domaine.com/ |
Cliquez sur « Enregistrer ». Si votre configuration est correcte, un message de validation vert apparaîtra et vous pourrez commencer à éditer vos documents !