Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Aide

Mastodon : Oops! An unexpected error occured

Rédigé par dada / 14 avril 2017 / 3 commentaires




Si, par curiosité, vous avez monté votre instance Mastodon pour vérifier l'intérêt du nouveau réseau social libre du moment, vous êtes peut-être tombés sur cette erreur à la relance des services. Tout semble bien se passer mais votre timeline publique et vos notifications ne marchent plus. Enfin, elles ne contiennent que les événements en cours, pas les passés.

Oops! An unexpected error occured

Comme contexte, j'ai rencontré ce souci lors du passage à la 1.1.2. N'ayant pas fait le passage à la 1.1.1, vous aurez peut-être déjà fait une partie de ce que je vais raconter ci-dessous.

Mettre à jour Ruby et réinstaller ses dépendances

Ces opérations se font avec l'utilisateur dédié à Mastodon, pas en root.

Pour ruby :
rbenv install 2.4.1 
Pour ses dépendances :
gem install bundler 
bundle install --deployment --without development test 
yarn install && yarn upgrade 
Si vous avez le regard perçant, vous avez remarqué la présence du yarn upgrade qui va vous éviter l'erreur à l'origine de l'écriture de ce billet.

Nettoyer et recompiler les assets

Le nettoyage :
RAILS_ENV=production bundle exec rails assets:clean 
La recompilation :
RAILS_ENV=production bundle exec rails assets:precompile 
Une fois tout ça fait, vous pouvez relancer votre instance Mastodon et revenir tooter parmi nous !

Installer Collabora Online avec Nextcloud

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

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

Rédigé par dada / 06 mars 2017 / 8 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.
 

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 ;-)

Passer son C1 Scaleway sous PHP 7

Rédigé par dada / 12 décembre 2016 / 2 commentaires


Je laisse PHP 7 dans le titre mais je précise ici que je parle de PHP 7.0 et pas de PHP 7.1.

Notez que passer outre les dépôts officiels de Debian et qu'utiliser un dépôt maintenu par un tiers engage la stabilité de votre serveur et de votre installation. J'ai pas de souci chez moi, mais ça ne veut rien dire !

Les C1 de Scaleway sont des serveurs tournant sur une architecture ARM et si c'est sympa dans les faits, c'est un problème quand on veut utiliser PHP 7 avec sa Debian 8 Jessie.
Les dépôts bonus classiques que les debianneux doivent tous connaître sont les dotdeb. On y retrouve les dernières versions de PHP packagés avec sérieux par Guillaume Plessis, pour les architectures x86 et x86_64 mais pas d'ARM. Pas de support du C1 donc.

Pour remédier au problème, vous pouvez passer par le travail de mati75.
deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free 
Pour ajouter la clé GPG :
gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851
gpg --armor --export CCD91D6111A06851 | apt-key add -
Ceci-dit, comme ce ne sont pas des dépôts officiels et qu'il n'y a pas que PHP dedans, je n'ai pas ajouté cette clé pour empêcher APT d'aller taper dedans sans une double validation. C'est pas super propre, mais bon.

Notez que la totalité des modules PHP ne sont pas encore disponibles : j'ai en tête memcached puisque je m'en servais. Tant pis.

J'ai passé le serveur de ce blog sous PHP 7.0 ce week-end : RAS jusqu’à maintenant. Le gain de performance est légèrement notable mais je ne m'attendais pas non plus à une révolution compte tenu des caractéristiques faibles du C1.

Voici la liste des services qui tournent sur ce serveur et que je certifie fonctionner avec cette version de PHP :

Par contre, Sticky-Notes est dans les choux. Il va me falloir un autre pastbin-like !