Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Archives 2017

Installer Collabora Online avec Nextcloud

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

Vérifier la sécurité de son instance Nextcloud

Rédigé par dada / 07 mars 2017 / 2 commentaires


Avoir son informatique dans les nuages, c'est franchement chouette. Mettre en place les services dont on a besoin et s'en servir, c'est même carrément jouissif pour le bidouilleur que je suis. Et je ne vous parle même pas des services inutiles que je m'amuse à faire tourner quand même ! Ne me regardez pas comme ça, nous sommes nombreux dans ce cas-là !

Dans les services que j'utilise beaucoup, il y a ownCloud, devenu Nextcloud dans mon cas. Il fait vraiment le café et me rend un nombre impressionnant de services. Du coup, il est devenu particulièrement critique : à force de mettre des choses et d'autres dedans, on y retrouve une partie de ma vie loin de l'écran, carrément personnelle, que je ne veux pas voir traîner n'importe où.

Là aussi, je suppose que je ne suis pas le seul dans ce cas et c'est peut-être pour ça que les gars de NC ont sorti un utilitaire pour scanner et analyser la qualité de l'installation de leur bébé de part le grand Internet et ses habitants, qui ne sont pas toujours des grands spécialistes.



Voici ce que vous devriez tous avoir sous les yeux une fois l'adresse de votre instance donnée à bouffer au scanner, et c'est presque un minimum ! Le A+ traduit un serveur configuré avec les normes en vigueur chez les professionnels. Ça tombe bien, l'hébergement, c'est mon métier.

Cette note est tout de même trompeuse puisqu'elle ne s'intéresse pas à la configuration complète du serveur sur lequel Nextcloud tourne, mais c'est déjà ça.

Si vous passez par un prestataire, faites aussi le test et n'hésitez pas à lui remonter, poliment, d'éventuelles inquiétudes !

Nextcloud étant un outil qui doit rester ouvert sur le web, il doit impérativement faire l'objet d'une vigilance importante. D'autres outils peuvent tourner avec des accès très restreints, pas NC.

Je profite de ce billet pour balancer un lien vers cet article de l'excellent Reflets.info : Jacques Attali digital, au propre et au figuré. On peut y lire des choses à la fois drôles et tristes sur la vitrine web de gens qu'on imaginerait à l'écoute de ce genre de problématique. Et je ne parle même pas de Yahoo...

Fairphone 2 : corriger le GPS de votre téléphone

Rédigé par dada / 06 mars 2017 / 14 commentaires




Alors là, je viens de faire tomber le dernier blocage frustrant de mon Fairphone 2 : le GPS qui ne tournait pas. J'étais devenu fort en lecture de cartes sur OsmAnd~ mais je saturais aussi un peu. C'est marrant de faire le malin en sachant lire un carte dans tous les sens en 2017, mais bon, voilà, hein.
J'avais déjà passé trop de temps sur les moteurs de recherche et le forum Fairphone mais l'autre soir, dans une ultime tentative, j'ai débloqué ma situation ! Voici comment j'ai fait :

En préambule, notez que je me sers de l'Open Source OS du Fairphone, livrée sans les Google Apps. Si vous utilisez la version classique de l'OS, ce tutoriel n'est sans doute pas pour vous. Ah, et j'ai un Fairphone 2, pas le 1.
Et aussi, manipuler votre téléphone est à vos risques et périls ! Ne faites pas n'importe quoi ! Et puis, le GPS ne tourne toujours pas forcément très bien. Si je trouve des astuces pour l'améliorer, ou si vous en avez : je mettrais à jour ce billet.

Passer le téléphone en root

Pas besoin de brancher le téléphone au PC pour lancer le mode debug en ligne de commande depuis un terminal sous GNU/Linux... Pour passer root, il vous suffit de connaître le bon chemin et de taper plusieurs fois sur avec votre doigt sur Numéro de build.
Paramètres -> À propos du téléphone -> Numéro de build 
Tapotez votre écran au niveau de la case plusieurs fois et vous deviendrez le hacker de votre FP2. Retournez dans les paramètres et activez le Root Acces dans le nouveau menu "Options pour développeurs".

Passer Amaze en root

Maintenant, comme il va falloir modifier la configuration du GPS qui se trouve être un simple fichier texte dans les méandres de votre appareil, autorisez l'application Amaze à faire n'importe quoi.
Amaze -> Paramètres -> Divers 
Activez l'option "Gestionnaire Root" et le tour est joué : vous pouvez maintenant aller trifouiller dans la " / Racine" de votre Android.

Modifier le fichier gps.conf

Ce filou se trouve dans /system/etc/gps.conf.

Là, vous trouverez une ligne à commenter (en plaçant un # devant) une autre à dé-commenter et un 0 à remplacer par un 1 :
NTP_SERVER=time.gpsonextra.net
# NTP_SERVER=europe.pool.ntp.org
devient :
# NTP_SERVER=time.gpsonextra.net 
NTP_SERVER=europe.pool.ntp.org
Ensuite :
INTERMEDIATE_POS=0
devient :
INTERMEDIATE_POS=1
Vous pouvez enregistrer les modifications et redémarrer votre téléphone pour qu'elles soient prises en compte.

Un fois relancé, je vous invite à tester (depuis un endroit où vous pouvez capter du GPS !) votre nouvelle configuration avec l'application SatStat, disponible depuis F-Droid. Si tout va bien, vous devriez voir le nombre de satellites auxquels votre téléphone est connecté !

Maintenant, profitez enfin de OsmAnd~ et oubliez l'insupportable "Position Inconnue" quand vous voulez vous géolocaliser sur la carte. Bonheur.
 

Redis-stat ou comment monitorer Redis simplement

Rédigé par dada / 01 mars 2017 / Aucun commentaire


Redis est un outil que je continue de découvrir alors que je le manipule au boulot depuis maintenant des mois, et franchement, j'adore. Je ne ferai pas de cours sur son utilité, la page Wikipédia raconte ce qu'il faut. Ici, je vous propose un outil pour le monitorer très simplement : Redis-stat.

Plutôt qu'un long discours, la capture d'écran :



Comme vous pouvez le constater, les informations sont sommaires mais suffisantes pour donner un aperçu de comportement du Redis. Bon, après, s'il vous en faut plus, il faudra passer par un outil bien plus complexe que redis-stat !

Pour l'installation, c'est une Gem ruby simple qu'il faut récupérer, mais d'abord, les dépendances :
apt-get install ruby ruby-dev make g++
Puis :
gem install redis-stat 
Pour lancer l'outil, un petit (pourquoi petit ?) :
redis-stat --server --daemon 
La configuration par défaut est parfaite si vous n'avez pas trop bidouillé la configuration de votre instance.

Je termine ce rapide billet en vous disant que l'utilisation de Redis, c'est bon pour la santé ! Mon Nextcloud s'en sort bien mieux depuis qu'il tape dedans.

Compiler le client de synchronisation de Nextcloud

Rédigé par dada / 19 février 2017 / 2 commentaires




Voici un billet qui pourra être chouette pour les amateurs de compilation pas trop longue ni très compliquée. Comme contexte, il faut savoir que les développeurs de Nextcloud ne fournissent pas de paquet tout fait pour leur client de synchronisation. La raison ? Le trop grand nombre de distributions, le temps de travail et, sans doute, la compatibilité du client d'ownCloud.
M'enfin, si vous avez envie de profiter de votre instance avec le bon nom et le bon logo, voici les quelques étapes à suivre :

On installe les outils de base :
apt-get install git cmake
 On récupère les sources du client depuis le dépôt officiel :
git clone https://github.com/nextcloud/client_theming.git
On se place dans le répertoire de travail :
cd client_theming
 On met à jour les modules présents dans les sources :
git submodule update --init --recursive
 On récupère les dépendances facilement en s'appuyant sur ce qui est déjà fait avec le client ownCloud. Pourquoi ? Tout simplement parce que les bases sont les mêmes !
apt-get build-dep owncloud-client 
C'est à partir de là qu'on prépare la compilation :
mkdir build-linux
cd build-linux
cmake -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client
Voici le retour que vous devriez avoir si la préparation de la compilation se passe bien :
dada@dada-desktop:~/work/nextcloud/client_theming/build-linux$ cmake -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client
-- Build of crashreporter disabled.
-- GIT_SHA1 eaeed08544d1d7f4031d28a8e1bd9dd5e08a60fd
-- Could NOT find INOTIFY (missing:  INOTIFY_LIBRARY_DIR)
-- Could NOT find Sphinx (missing:  SPHINX_EXECUTABLE)
-- Could NOT find PdfLatex (missing:  PDFLATEX_EXECUTABLE)
-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so (Required is at least version "3.8.0")
CMake Warning (dev) at cmake/modules/CheckPrototypeDefinition.cmake:43 (if):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "HAVE_ICONV_CONST" will no longer be dereferenced
  when the policy is set to NEW.  Since the policy is not set the OLD
  behavior will be used.
Call Stack (most recent call first):
  cmake/modules/FindIconv.cmake:55 (check_prototype_definition)
  csync/CMakeLists.txt:22 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so;/usr/lib/x86_64-linux-gnu/libsqlite3.so (Required is at least version "3.8.0")
-- Found Qt5 core, checking for further dependencies...
-- Using Qt 5!
-- Found Qt5Keychain: /usr/lib/x86_64-linux-gnu/libqt5keychain.so  
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
CMake Warning at shell_integration/CMakeLists.txt:11 (find_package):
  By not providing "FindKF5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "KF5", but
  CMake did not find one.

  Could not find a package configuration file provided by "KF5" (requested
  version 5.16) with any of the following names:

    KF5Config.cmake
    kf5-config.cmake

  Add the installation prefix of "KF5" to CMAKE_PREFIX_PATH or set "KF5_DIR"
  to a directory containing one of the above files.  If "KF5" provides a
  separate development package or SDK, be sure it has been installed.

Dolphin plugin disabled: KDE Frameworks 5.16 not found
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dada/work/nextcloud/client_theming/build-linu

A partir de là, vous avez deux choix : installer le client directement après la compilation ou créer un paquet puis l'installer. Personnellement, je préfère la deuxième.

Installation directe :
make && sudo make install 
Création du paquet :
make && checkinstall 
Une fois avoir répondu aux quelques questions que l'outil vous demande, vous aurez un paquet .deb à installer en un clique !

Je vous laisse parcourir la doc de checkinstall, ce super outil !

Vous pouvez maintenant profiter d'un client de synchronisation avec les bonnes couleurs et le bon logo. Hey oui, il n'y a pas encore beaucoup de nouveautés...


Fatal error :
type : 8
message : file(): read of 8192 bytes failed with errno=21 Is a directory
file : /core/lib/class.plx.template.php
line : 229

See https://www.php.net/manual/en/errorfunc.constants.php about type of error