Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Nginx

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 !

Nginx et Let's Encrypt

Rédigé par dada / 22 décembre 2016 / 3 commentaires


Ces derniers temps, j'ai changé pas mal de choses sur ce serveur. Ceci étant, je ne me suis pas rendu compte tout de suite que j'avais cassé le flux RSS de ce blog en configurant Nginx en proxy pour le SSL. #Boulette. Pourtant, j'avais bien remarqué que les applications Wallabag et EasyRSS ne fonctionnaient plus. Ça aurait du me mettre la puce à l'oreille.

M'enfin, Cypouz m'a gentiment remonté le bug en m'envoyant un message privé sur diaspora* pour me rappeler que je devais faire quelque chose, l'erreur suivante commençant à se voir :
cURL error 60: SSL certificate problem: unable to get local issuer certificate [https://www.dadall.info/blog/feed.php?rss]
C'est maintenant chose faite et voici l'astuce : Let's Encypt dans Nginx demande un peu plus de lignes pour fonctionner qu'avec un Apache :

        ssl_certificate /chemin/vers/letsencrypt/live/dadall.info/fullchain.pem;
        ssl_certificate_key /chemin/vers/letsencrypt/live/dadall.info/privkey.pem;
 
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /chemin/vers/letsencrypt/live/dadall.info/fullchain.pem;

Voila !

Vous remarquerez que le certificat est délivré par le fullchain.pem et non le cert.pem.

Bon, je n'ai pas incroyablement creusé la question, mais comme j'ai l'habitude de dire : chez moi ça marche ;-)