Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.


Installer Collabora Online avec Nextcloud

Rédigé par dada / / 24 commentaires




Le soleil repointe le bout de son nez et je ne trouve plus le temps de sortir des billets. L'apéro passe avant tout mais malgré ça, j'ai quand même pas mal joué avec mon serveur.
D'abord, j'ai changé de crémerie, encore, pour laisser tomber mon C1 chez Scaleway pour une Kimsufi aux caractéristiques bien plus rigolotes : adieu l'ARM, coucou le Core i3. Ça m'a permis de mettre en place l'objet de ce billet : Collabora Online dans Nextcloud via Docker !

je présuppose que votre machine tourne sous Debian Jessie (what else ?) avec Nextcloud 11.0.2.

Installer Docker

Je suis passé par l'installation de Docker CE. Ça permet d'avoir une version plus récentes de la bête.

On commence par les dépendances qui vont bien :
apt-get install apt-transport-https ca-certificates curl software-properties-common 
On enchaîne sur la clé GPG du dépôt :
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
On ajoute le dépôt dan le sources.list :
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" 
Pour finir, on installe notre nouveau jouet et c'est parti !
apt-get update && apt-get install docker-ce

Mise en place du conteneur de Collabora

On le télécharge :
docker pull collabora/code 
On le lance :
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=votre\\.instance\\.com' --restart always --cap-add MKNOD collabora/code 
C'est pendant cette étape que je me suis le plus pris la tête... Ils disent de lancer docker avec pour paramètre un sous-domaine pour Collabora alors qu'il ne le faut pas, pas chez moi du moins. En fait, comme Collabora tourne sur le même serveur que mon instance, pas besoin de sous-domaine.

Configurer votre Vhost

Pour Nginx, ajoutez ces lignes dans votre vhost : (snippet ici).

    # static files     
    location ^~ /loleaflet {
        proxy_pass https://127.0.0.1:9980;
        proxy_set_header Host $http_host;
    }       
    # WOPI discovery URL
        location ^~ /hosting/discovery {
        proxy_pass https://127.0.0.1:9980;
        proxy_set_header Host $http_host;    
    }        
    # websockets, download, presentation and image upload
    location ^~ /lool {        
        proxy_pass https://127.0.0.1:9980;
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
   }
Pour Apache2. c'est trop long alors cliquez sur snippet !

Et voilà pour le plus chiant !

Activer Collabora

Maintenant, pour terminer, allez donc activer l'application en la configurant avec le sous-domaine de votre instance : https://votre.instance.com. Pensez bien à cliquer sur "Appliquer" si vous ne voulez pas risquer de devenir chèvre...

Tous ces efforts vous permettront de cliquer paisiblement sur ces 3 nouvelles options :



Amusez-vous bien !

24 commentaires

#1  - Nicolas K. a dit :

Deux questions :
- On fait comment pour mettre à jour le Collabora derrière ? Je ne suis pas familier avec Docker…
- La commande `docker run` continue à tourner en arrière plan ? Pas besoin de la lancer via un service systemd ou un truc dans le genre ? Je ne suis re pas familier avec Docker…

PS : Je fais comment pour résoudre mon bug avec mon Fairphone ? :-)

Répondre
#2  - dada a dit :

Pour mettre à jour, c'est par là, en bas de page : https://nextcloud.com/collaboraonline/ !
Une fois le conteneur lancé, il fait sa vie, pas besoin de systemd.

Pour corriger l'écran noir, il faut que tu recalibres le capteur de proximité en allant dans Paramètres / Maintenance : tout simplement :)

Répondre
#3  - hajar a dit :

Bonjour,
Dans l'étape "lancer Collabora" j'obtient l'erreur suivante :
237a6bff86277468fe6d36ca52ac1621904e57517358ae6302c5a50e65fb3558
docker: Error response from daemon: driver failed programming external connectivity on endpoint keen_jennings (453dd6 dec9b7abb3a1f3577342478aeba064c6803c71e97b03a4f223b8a7e6f4): Error starting userland proxy: listen tcp 0.0.0.0:9980: bind: address already in use.

Merci par avance pour votre aide

Répondre
#4  - Albirew a dit :

"listen tcp 0.0.0.0:9980: bind: address already in use"

ça veux dire que t'a déjà un truc qui tourne et qui utilise le port 9980...

Répondre
#5  - Albirew a dit :

Perso, au lancement, j'ai eu ce message:

`b88cf6c845e7307f11850cee29964f6d879bf5028465603dd5fc04ee51e0b024
docker: Error response from daemon: driver failed programming external connectivity on endpoint wizardly_roentgen (31df6c0042b367958a5cf16b75e748e91ed237cfb53d17fdb576b41fa19ccbd1): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 127.0.0.1 --dport 9980 -j DNAT --to-destination 172.17.0.2:9980 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).`

pour ceux qui tomberont dessus, il suffit de créer la chaine IPTable et de redémarrer docker:
iptables -N DOCKER
service docker restart

Bisous

Répondre
#6  - Typhlos a dit :

Bonjour,
J'aimerais savoir quel fichier il faut modifier pour le vhost avec nginx.
Merci d'avance.

Répondre
#7  - dada a dit :

Salut,

C'est le vhost de ton Nextcloud qu'il faut modifier :)

Répondre
#8  - Greg a dit :

Bonjour.
Pour ma part, j'ai un soucis avec la ligne de commande suivante :
(Je précise que j'ai une installation sur Raspian jessie avec Nextcloud 12 fonctionnel)

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

J'obtiens la réponse suivante :
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 167, in <module>
sp = SoftwareProperties(options=options)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 105, in __init__
self.reload_sourceslist()
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 595, in reload_sourceslist
self.distro.get_sources(self.sourceslist)
File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 89, in get_sources
(self.id, self.codename))
aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Raspbian/jessie

Quelqu'un a-t-il eu ce problème ?
Merci pour vos réponses.

Répondre
#9  - dada a dit :

Salut,

Pour installer Docker sur Raspbian : https://www.nextinpact.com/news/101174-raspberry-pi-installer-simplement-docker-dans-raspbian-jessie.htm

Par contre, il me semble que je n'avais pas réussi à installer Collabora sur mon serveur sur un processeur ARM, comme l'est Raspbian. C'est à vérifier mais j'crois que tu n'y arriveras pas...

Répondre
#10  - rafi59 a dit :

Bonjour

J'ai essayé d'installer collabora online mais je ne l'ai pas installé sur le même serveur que nextcloud

Comment je modifie le vhost nginx dans ce cas ?

Répondre
#11  - dada a dit :

Bonjour,

Du coup, il faut configurer Nginx pour qu'il pointe sur le vhost de l'autre serveur, c'est tout. Cela veut dire que l'autre serveur doit avoir un vhost pour Collabora.

Répondre
#12  - PrE a dit :

Et dans ce cas là qu'est-ce qu'il faudrait mettre dans le vhost de l'autre serveur ?

Répondre
#13  - dada a dit :

Le même servername entre les deux serveurs :
- si Nextcloud pointe vers toto.moncloud.com pour Collabora
- Collabora devra être derrière un Nginx/Apache répondant à toto.moncloud.com

Répondre
#14  - PrE a dit :

Merci,

Et si on a deux serveur l'un sur 1.moncloud.com (disons Collabora) et l'autre sur 2.moncloud.com (Nextcloud) ?

Répondre
#15  - Titi a dit :

J'ai suivi le Tudo, RAS pas de messages d'erreur lors de l'installation.
le plugin dans nextcloud 13 est correctement installé.

Lorsque je lance l'ouverture d'une feuille de calcul, je me retrouve avec
- d'abord une page blanche pendant quelques minutes,
- puis un message d'erreur de nextcloud.

le message ne demande de contacter l'administrateur sans plus me donner de détail.
quelqu'un aurait une piste pour moi ?

Répondre
#16  - dada a dit :

Coucou,

Il semblerait que ce soit un souci niveau docker. Je t'invite à restarter docker et ça devrait fonctionner !

Répondre
#17  - Mirabellette a dit :

Tu n'as besoin d'activier le httpS pour Collabora en local.

L'intérêt d'un point de vue sécurité n'est pas nécessaire. Cela va juste ralentir les performances.

Répondre
#18  - Thomas a dit :

Erreur 404 sur le lien de config apache...

Merci

Répondre
#19  - dada a dit :

C'est corrigé, merci de me l'avoir signalé :)

Répondre
#20  - Florent a dit :

J'ai suivi le tuto, tout fonctionne, sauf à partir de là:
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=votre.instance.com' --restart always --cap-add MKNOD collabora/code
Quand je tape cette commande tout ce télécharge bien mais à la fin j'ai cette erreur:
docker: write /var/lib/docker/tmp/GetImageBlob293660973: no space left on device.
Quand je fait un docker ps, il n'y a rien
(pour info je suis sous ubuntu server 18.04 avec apache). Quelqu'un à la solution svp ?

Répondre
#21  - dada a dit :

Salut,

D'après ton message d'erreur, tu n'as juste plus assez d'espace disque disponible dans ton disque dur pour lancer le conteneur collabora :(

PS : attention à bien changer "votre.instance.com" par l'adresse de ton Nextcloud.

Répondre
#22  - Arno a dit :

Bonjour et merci pour ce billet. Il ne correspond pas exactement à ce que j'ai fait mais comme des réponses pertinentes aux questions continuent d'y être apportées, je me lance.
J'ai installé un serveur ubuntu 20.04 et coché la case nexcloud. Tout s'est installé et miracle, nexcloud fonctionne directement sur le port 80 sans apache installé. Je fouille, c'est une installation snap et miracle, collabora est installé et fonctionne... sur localhost. Par contre, il m'affiche une page grise lorsque j'y accède depuis l'adresse de mon serveur (ajoutée dans les trusted domain de nextcloud). Comment rendre fonctionnel collabora depuis cette adresse ? je ne suis pas contre un peu d'aide, merci par avance !

Répondre
#23  - Arno a dit :

Bonjour,
Pas sûr d'être au bon endroit mais vous pourrez peut-être m'aider ou m'aiguiller.
J'ai installé ubuntu server 20.04 et coché nexcloud pendant l'installation. Il m'a installé un beau nextcloud qui fonctionne directement mais à partir d'un snap. j'ai donc perdu tous mes repères. Avec nextcloud, collabora online est installé. Tout cela fonctionne parfaitement sur mon serveur, directement à partir de l'adresse en localhost, nextcloud et collabora.
J'ai ajouté l'adresse de mon serveur (untruc.freeboxos.fr) aux trusted domains de Nextcloud. Ce dernier fonctionne très bien mais collabora n'ouvre pas les fichiers (écran gris). Si le fichier est ouvert en localhost sur mon serveur, par contre, il accepte de s'ouvrir.
Si vous avez une idée... un grand merci par avance !

Répondre
#24  - dada a dit :

Bonjour,

Navré, je n'utilise plus Collabora mais OnlyOffice. Je ne peux pas vous aider :/

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est le troisième caractère du mot 26qxsvj0 ?