Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Installer Collabora Online avec Nextcloud

Rédigé par dada / 05 avril 2017 / 7 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 !

7 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

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est la dernière lettre du mot anzq ?