www.RiffZone.net
code.RiffZone.net
login.RiffZone.net

Cette section regroupe un ensemble de notes, ou recettes auxquelles je peux me référer plus ou moins régulièrement, l'idée étant de les rendre publiques, pour le cas où elles pourraient servir à d'autres.

Concernant mes notes sur l'installation et l'entretien d'un serveur, ma configuration de prédilection est clairement celle d'un serveur Debian/Ubuntu nu, on trouve de très bons serveurs dédiés notamemnt chez DigitalOcean.com pour quelques dollars par mois, ou bien chez ScaleWay pour quelques euros.

Apache

Des sous-domaines en wildcards
La plupart des sites se contentent d'un domaine en www.monsite.com, d'autres (dont moi-même) multiplient les sous-domaines à tort et à travers; et trouvent que déclarer chaque sous-domaine dans la zone DNS puis dans les VHosts Apache c'est très fatiguant, et puis il faut attendre la propagation de la zone, bref c'est d'un ennui mortel. Heureusement, il y a les wildcards, aussi bien côté DNS que c
Activer le monitoring intégré d'un serveur Apache
Apache intègre un petit module de monitoring qui permet de suivre les requêtes en cours, la charge du serveur et toute cette sorte de choses. Le module en question est implémenté comme un classique module Apache 'mod_status', qu'on trouvera matérialisé dans /etc/apache2/mods-available sous deux fichiers 'mod_status.load' et 'mod_status.conf'. On l'activera par la commande a2enmod mais il se trouv
Configurer un serveur NodeJS comme sous-domaine Apache
Supposons que j'aie monté un petit serveur http NodeJS qui tourne sur le port 8080, bien. Maintenant, j'aimerais pouvoir l'appeler via un sous-domaine de mon site sous Apache, par exemple 'test.riffzone.net'. Côté Apache, on a besoin de deux modules, 'proxy' et 'proxy_http'. On les installe comme suit:
Compiler et installer un module custom en C pour Apache2 sous Debian
Pour réaliser un module Apache, le plus simple est de créer un module dynamique (DSO, pour Dynamic Shared Object), un poil moins efficace qu'un module statique mais pour la phase de mise au point c'est tout de même largement plus cool, et je dirais même pour la suite, plus facile à installer; tout ça reste au final une question de goût. Notre principal outil sera l'utilitaire Apxs (Apxs2 pour Apa
Déployer globalement les Python Server Pages sous Apache
L'exécution de scripts PHP à l'intérieur de pages HTML, c'est très pratique, c'est d'ailleurs la finalité historique de ce langage. On peut profiter du même fonctionnement avec Python, à condition d'activer les Python Server Pages dans Apache. La plupart des tutoriaux montreront comment les activer depuis un vhost ou un htaccess, voisi comment les activer globalement au niveau d'Apache. Tout d'ab

NodeJS

Un service web en NodeJS, monitoré par Supervisor
NodeJS permet de construire des services web plus efficaces pour certains usages; le problème classique étant de faire fonctionner cette application javascript en mode serveur. Laissons de côté l'installation de NodeJS, vous trouverez tous les éléments sur le site nodejs.org suivant votre distribution. Prenons l'exemple d'un script app.js logé dans '/home/mynodeapp'. Notre serveur est parfaiteme
Installer Node.JS sur une Debian 8 (Jessie)
L'installation de NodeJS sur une Debian 8 (Jessie) est toujours en retard de trois extinctions de masse sur le site de l'outil, on va donc l'installer depuis les sources téléchargés depuis le site:
Monitorer un service NodeJS avec PM2, sur une Debian 8 (Jessie)
J'ai déjà décrit le monitoring d'un service NodeJS avec Supervisor, c'est bien mais PM2 contrairement à Supervisor est spécialisé dans le pilotage de services NodeJS, et ça se voit. L'installation est on ne peut plus simple:

LAMP

Sauvegarder automatiquement son serveur avec sitecopy
Notre serveur Debian peut crasher, et de manière irrécupérable. Shit happens. Si vous n'avez pas une arborescence d'une centaine de Gigas de petits fichiers à sauvegarder, alors l'utilitaire sitecopy est une solution plutôt pratique que j'utilise régulièrement. Son principal défaut est de maintenir l'état des fichiers sauvegardés dans un fichier xml, ce qui est de la dernière crétinerie puisque c
Installation d'un serveur LAMP sous Debian
Quel que soit votre hébergeur (éventuellement vous-même, avec un vieux PC reconverti), je supposerai par la suite que vous avez installé une distribution Debian nue, sans aucun logiciel autre que le système de base. Une partie des sections ci-dessous est optionnelle, suivant vos besoins.
Des sauvegardes locales MySQL automatisées
Les sauvegardes, c'est important. Je ne m'étendrai pas ici sur les différents systèmes existants, mais sur le cas particulier des sauvegardes de bases MySQL vers un répertoire local du serveur, lequel sera sauvegardé ainsi que les autres répertoires de fichiers plats. Le cahier des charges est le suivant: Exporter chaque nuit à heure fixe l'intégralité des bases du serveur vers un répertoire défi
Un serveur LAMP sous Ubuntu Xenial avec PHP 7 et PHPMyAdmin
En cette année 2016, PHP 7 a un peu de mal à se faire une place, et pour cause. Debian est clairement à la traine sur le sujet, et la plupart des tutos en ligne expliquent surtout comment installer un PHP 5.6 avec les dernières distributions mais la version 7 semble garder un statut de paria. Dans le même temps, l'Ubuntu Xenial (LTS) propose PHP 7 par défaut donc allons-y, je pense avoir isolé le
Un serveur LAMP sous Ubuntu Focal Fossa avec PHP7 et PHPMyAdmin
On trouvera ici le modus operandi le plus simple pour installer sans soucis un serveur LAMP sous Ubuntu Focal Fossa avec PHP 7 et PHPMyAdmin. Pour installer Apache, PHP (en version 7 par défaut) et le module Apache pour PHP:
Redémarrer automatiquement MySQL avec Monit
Sans vouloir être plus mauvaise langue que d'habitude, inviter WordPress sur son serveur l'expose à un tas de problèmes, qu'ils soient liés ou non à des attaques extérieures. Passer de zéro plantages à un par semaine laisse pour le moins perplexe. Quelle que soit la cause, au final, on peut vouloir faire surveiller son MySQL par un superviseur indépendant, lequel le relancera si besoin; différent

Linux

Memento Debian
On a parfois besoin d'une référence rapide concernant certaines commandes utiles, notamment en cas de panique. Disque système qui déborde, processus bloqués, les cas ne manquent pas.
PHP snippets
Un service web en Go, monitoré par Supervisor
Pour des besoins particuliers, tel qu'un serveur de tracking, une architecture Apache/PHP/MySQL peut vite atteindre ses limites. Un serveur plus simple en Go peut suffire, retourner un pixel en enregistrant toutes les requêtes ne demande pas une sophistication extraordinaire. Nous partirons d'un serveur Debian nu, notamment sans Apache ou équivalent. Commençons par installer Go:
Trois services web sur un seul serveur avec HAProxy
Apache, c'est super. Les services NodeJS aussi, ou bien en GoLang, tant qu'on y est. Mais tout ce petit monde ne peut pas naturellement cohabiter sur le port 80, à moins de passer par un proxy qui traduira des (sous-)domaines différents en autant de ports locaux (pas le port 80, réservé au proxy). C'est ce que nous allons faire ici avec HAProxy. Apache en 8080 pour tous les domaines par défaut, Go
Graver une image ISO Debian NetInstall sur une clé USB bootable
Une seule adresse, Rufus: J'en ai testé d'autres avant de tomber sur le bon, Rufus m'a spontanément signalé des fichiers qui manquaient pour rendre vraiment ma clé USB bootable, me proposant de les télécharger lui-même sans plus de formalités. Le truc est gratuit et même open-source, que du bon.
Installation d'un anti-malware sur un serveur Debian
Inutile de débattre de l'utilité ou non d'un tel composant, on peut ne jamais en avoir besoin tout comme s'apercevoir un jour que tiens, on a été blacklisté sur telle RBL et que nos mails sortants n'arrivent plus à destination. Voyons comment installer et utiliser l'outil "Linux Malware Detect" proposé par R-fx Networks. L'adresse du projet est: https://www.rfxn.com/projects/linux-malware-detect
Un serveur PureFTPd-MySQL sous Linux
Un serveur FTP, on en a encore besoin assez couramment, que ce soit pour WordPress ou bien sitecopy. Nous allons donc voir les étapes nécessaires à l'installation d'un serveur PureFTPd, avec définition des comptes dans une base MySQL, pour ne pas avoir à les créer au niveau système. L'installtion du moteur proprement dit est triviale:
Sauvegarde automatique d'un serveur linux avec rsync
Prenons le cas de deux serveurs linux, un serveur "sandbox.riffzone.net" que je veux automatiquement sauvegarder sur un second serveur "carbon.riffzone.net". Sur carbon.riffzone.net, j'installe d'abord rsync:
Prendre en charge FTPS (SSL) sur PureFTPd
Depuis quelque temps, les clients FTP commencent à s'émouvoir de ce qu'on ne gère pas les connexions FTP sécurisées sur un serveur, voyons donc comment ajouter une couche SSL à PureFTPd, dont on a vu l'installation dans un précédent article.
Transférer salement un dossier entre deux serveurs avec rsync et sshpass
Pas de clé SSH, mais l'utilitaire sshpass, méthode donc à utiliser ponctuellement pour un besoin unique, quick & dirty. Commande lancée sur le serveur DESTINATION:
Un serveur de fichiers HTTP en C basé sur libmicrohttpd (GNU)

WxWidgets

Installation du framework wxWidgets sous MacOSX
Installation du framework wxWidgets sous Windows

Snippets

Snippets Javascript
Snippets PHP

Divers

Plusieurs versions d'un même projet sous AndroidStudio
dans app/build.gradle, section android, on ajoute: productFlavors { store { packageName "com.pixtos.app" buildConfigField "boolean", "STORE_FLAVOR", "true" } download { packageName "com.pixtos.app" buildConfigField "boolean", "STORE_FLAVOR", "false" } } Si erreur "Gradle DSL method not found: 'packageName()'"
Tracker les affichages de slides avec PhotoSwipe
PhotoSwipe (http://photoswipe.com) permet de mettre en place assez facilement une galerie de photos. Pour paramétrer la liste d'images à utiliser, on génère typiquement une liste JSON de ce type:
Un serveur MineCraft/Spigot sous Linux
Installer un serveur MineCraft, c'est plutôt simple quand on sait par où commencer, voilà donc une recette rapide pour installer un serveur suffisamment complet; qui dit complet implique de ne pas utiliser le package MineCraft vanille (celui de l'éditeur) mais un de ceux qui gèrent notamment les plugins, j'ai choisi pour ça Spigot. Je pars comme d'habitude d'une Debian nue, ici une Jessie (Debian

Documentation

Flexboxes
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
http://flexbox.malven.co

HTML Entities
https://dev.w3.org/html5/html-author/charref

Outils

Pixlr
https://pixlr.com

Composants

WkHTMLToPDF
https://wkhtmltopdf.org

API Tester
https://apitester.com

Lightbox
http://highslide.com

Sélecteur de couleurs
https://htmlcolorcodes.com/fr/selecteur-de-couleur

Sélecteur d'emojis
https://getemoji.com

Disclaimer

Je n'apporte aucune garantie d'aucune sorte sur le bon fonctionnement ou l'adéquation à votre problème ou configuration, les informations données ici le sont en l'état et à titre essentiellement didactique, même si un feedback est toujours le bienvenu. En particulier, si l'utilisation du contenu de ces pages devait provoquer l'incendie de votre disque dur, de votre maison, un débarquement d'aliens ou le prochain conflit thermonucléaire global, je ne saurais en être tenu responsable, merci.