Qwerty-Lafayette v0.5 avec setxkbmap

Petit article pour remettre au propre les étapes pour intégrer qwerty-lafayette à une distrib basée sur Debian.

Résultat attendu : la commande setxkbmap fr lafayette vous fera changer de layout.

Qwerty-Lafayette, c’est là : http://fabi1cazenave.github.io/qwerty-lafayette/

Cet article est basé sur http://simos.info/blog/archives/1134

Version courte en mode copier/coller :

Pour tester que le layout fr «habituel» fonctionne toujours :

setxkbmap fr

Pour (enfin!) tester le layout qwerty-lafayette

setxkbmap fr lafayette

twitter-bootstrap 3.x, the easy way for customization

create an empty bootstrap.less inside your project that will import variables.less, then customize variables you want, then import bootstrap.less.

Less @import is an implicit « import once » (like the php require_once) , so the @import variables.less present in official bootstrap.less file will not reload the default variables.

This way allows you to update easier the twitter bootstrap library when you need.

 

Traitement des images en lignes de commandes

Quelques commandes rapides

Et sinon grosso modo mon script pour générer toutes les bonnes favicon (merci https://realfavicongenerator.net/ pour la marche à suivre)

 

 

[QuickStart] Thélia – brouillon/prises de notes

Cela fait 3 ans que j’ai quitté Prestashop, et que je m’intéressais à Thélia sans jamais oser l’essayer « pour de vrai ».

Je me suis lancé, et en moins de 10 minutes le nouveau site était en ligne. il m’a quand même fallu une petite demi journée pour me familiariser avec l’interface et être capable de rendre la boutique exploitable (question de configuration des messages, moyens de paiement, etc.).

Je commence cet article sans être vraiment « à l’aise » avec le code mais il me semble à priori beaucoup plus clair et stable que ce que j’ai pu voir avant :) .

Au sommaire

  1. Conclusion sur Thélia
  2. L’installation (à partir de rien, jusqu’à la mise en ligne « basique »)
  3. Adaptation de la Configuration à mes besoins
  4. Personnalisation plus importante

Conclusion

  • +++ installation / opérations de maintenance en ligne de commande
  • +++ Code solide
  • +++++ Symfony2
  • +++++ Utilisation intelligente de Smarty (si vous voyez ici une critique importante de PrestaShop, c’est tout à fait ça :) )
  • +++ fonctions de base (ajout produits/catégories ok)
  • ±±± On ne peut pas ordonner les produits dans chaque catégorie, uniquement la principale, mais ça va changer !!
  • — Mauvaise surprise d’arrondis que paypal refuse… du coup modification du module pour n’envoyer que le total commande. Mais bon c’est un problème présent sur tous les cms d’ecommerce.
  • — rajouter un transporteur n’est pas facile (ou je m’y prends mal)
  • — offrir les frais de ports à partir d’un certain montant n’est pas très simple
  • — les fonctions de bases, ok, mais il manque d’autres fonctions très utiles à un site d’e-commerce (faut que je fasse une liste)
  • — Mise à jour manuelle (pour l’instant … * teasing * )

Les fonctions de bases sont là: produits, catégories, commandes, clients. Il n’y a pas de paillette, l’interface admin est propre.

Les différences avec Prestashop ne sont pas très « visible » (l’essentiel se passe sous le code), mais j’étais surpris de la rapidité avec laquelle une action en back-office était traité (Ajouter un produit, une catégorie, un module, changer une traduction, une config, …).

Coté code source, les fichiers occupent (dépot git uniquement) 109M pour Thélia contre 231M pour PrestaShop , mais le chiffre augmente beaucoup pour Thélia après installation car il se base sur le framework Symfony, PHPUnit et autre librairies, là où prestashop n’utilise rien d’autre que Smarty (et très très mal, mais c’est un autre sujet !).

Thélia propose nativement l’installation en ligne de commande (c’est par là que je vais commencer), utilise une version encore maintenu de PHP, des normes qui respectent les « bonnes pratiques de développement », bref tout pour plaire. Ah, c’est libre aussi !

 

Préparer l’installation (download, dépendances)

suivre les instructions, installer les dépendances, entre les php composer et apt-get install php5-curl ou php5-mcrypt  (au passage je déplore que seul composer soit disponible, en tant que développeur j’aurais préféré un git submodule update –init –recursive )

Installation (génération du sql, config de base)

Voilà pour l’install de base (pas très utilisable avec le logo thélia d’origine et toutes les valeurs par défaut). Voyons voir maintenant ce que je peux personnaliser rapidement sans trop me fatiguer …

Personnalisation minimale

J’ai trouvé tout de suite ce qu’il fallait faire (après avoir longtemps cherché :/ ) d’abord dans l’administration, puis dans les fichiers sur le serveur

Configuration de la boutique (français et euros uniquement)

Version courte: je regarde ce qui est dispo dans la partie « configuration » et je met ce que je veux.

La boutique aura des clients français, je vais donc mettre par défaut la bonne langue, et même désactiver les autres (au pire, je pourrais toujours les remettre j’imagine !)

Ah.. et en fait je vais carrément supprimer les autres langues, car apparemment on ne peux pas juste les désactiver :/ (Au passage au lieu de « Langues et URLs » j’aurais plutôt mis « Langues et Domaines »

Devises, je ne veux que des euros.

Informations sur la boutique, je sais quoi mettre (adresse, téléphone, email, …)

Administrateur: je créé un 2eme compte admin pour un pote qui n’est pas dev (car la boutique c’est pour lui, et en plus il me fait des retours pertinents sur ce qui ne marche pas ou ce qui n’est pas clair).

Le logo de la boutique

version courte : sautez ce paragraphe, c’est même pas du reverse engineering…

Apparemment les développeurs ne se sont pas fatigué à faire une fonction pour changer facilement de logo. C’est une position qui se défend, mais du coup, ça demande un minimum de connaissance technique, ou d’avoir en main une documentation qui indique comment faire (ce que je n’ai pas trouvé) (pour l’instant).

C’est pas grave, je me débrouille (clic droit, regarder la source, hop je navigue sur le serveur, et je change le logo à la main qui se trouve dans /assets/frontOffice/default/template-assets/assets/dist/img/9d31666.gif ). Je verrai plus tard (apparemment il y a du cache :) )

Page d’accueil (config basique)

Version courte: je veux les « nouveaux produits », je coche la case « c’est un nouveau produit » dans leur fiche.

Bon comme je ne sais pas trop ce que je veux, je vais juste activer le module « nouveau produits » (j’en ai déjà créé 2, ils devraient apparaitre). Rien ne s’affiche, je cherche longtemps (je vide les cache avec php Thelia cache:clear  (et perd du coup mon logo, zut, je refais la manip précédente), mais rien ne marche.. Je pose la question sur twitter, et je trouve juste après une case à cocher « ceci est un nouveau produit » dans la fiche produit, donc j’efface ma question :)

Un thème perso

Version courte: je copie celui par défaut / j’édite la configuration des variables / je met mon logo / j’édite le layout.tpl

Je ne vais pas me lancer dans le fait de faire un thème perso compliqué. Mais je cherche comment faire pour le savoir pour plus tard. Et puis c’est facile, ça doit être dans templates/ . Plus précisément pour l’instant je m’intéresse qu’au look extérieur, donc le frontOffice. Facile !

(La 2eme ligne permet de corriger le problème de traduction que j’ai eu dans le paragraphe suivant)

Je vais en suite sur le back office de ma boutique pour changer la variable concernée dans http://localhost/admin/configuration/variables ( active-front-template )

Thélia est mal traduit (ah non, c’est encore ma faute)

Premier test d’achat de produit (en activant le module chèque), j’ai trouvé pas mal de termes qui sont en anglais (donc la traduction manque?). Ça m’étonne je croyais que Thélia était plutôt sérieux. Tant pis, je cherche. Pour le coup, le système de traduction est assez proche de celui de PrestaShop (je ne me sens pas très dépaysé), et donc je dois modifier la config php pour autoriser au minimum 1100 champs dans un envoi post (au moins Thélia me prévient, c’est gentil :) , mais je me dit qu’un truc en ajax pour sauver les champs que l’on modifie un par un pourrait être une contribution future plutôt utile de ma part ).

Bref, je cherche d’abord à changer « Derniers produits » en « Dernières parutions » (oui, je préfère ça pour la boutique que je prépare). Et j’en profite pour traduire les termes qui me manque… et qui sont en fait déjà traduit ! Je ne comprends pas trop donc qu’un bug aussi énorme (c’est traduit dans le BO, mais ça reste en anglais) soit dans une version pourtant stable..

En fait, (apparemment) le thème par défaut contenait {default_translation_domain domain='fo.default'} et il y avait un problème (quelque part, je sais pas où) entre le fait d’utilisé le thème nommé « perso » et les traductions de « default »

Configuration module de paiement

La encore je ne suis pas dépaysé, on dirait encore du PrestaShop, mais plus beau, plus rapide et avec moins de bug :)

 

 

Installer qwerty-lafayette

Qwerty-Lafayette, c’est là : http://fabi1cazenave.github.io/qwerty-lafayette/

(Basé sur : http://simos.info/blog/archives/1134 )

# 1 – download layout

# 2 – enlever les 80 premières lignes + le « }; » à la fin

# 3 – ajouter dans /usr/share/X11/xkb/symbols/fr

# 4 – ajouter dans evdev.xml and base.xml

dans la balise variableList adéquate (fr donc :) )

# 5 – vérifier qu’il n’y a pas d’erreur et que le fichier « fr » se recharge bien

# 6 – tester la variation lafayette

Sous Ubuntu (unity), le raccourci pour changer de langue est +

avec i3, j’utilise <super> + <w> pour tourner entre en/fr/fr-lafayette

Et ces lignes pour afficher le layout actuel dans la barre i3:

(voir ici : https://github.com/Asenar/dotfiles/blob/master/i3/keymap.sh )

tripwire

Installing tripwire on Debian Sid

un peu d’admin sys

Outils pratique pour débutant (parce qu’il faut bien commencer quelquepart).

  • logwatch : envoi un rapport sur les événements des dernières 24h, avec le nombre de tentative de connexion ssh et diverses stats qui peuvent être utiles.
  • shorewall  : outil pour gérer iptables (à configurer)
  • mrtg          : graphiques et stats de traffic et d’utilisation (à configurer)
  • rkhunter   : recherche si le serveur est infecté ou si des fichiers « importants » ont été modifiés (penser à utiliser rkhunter --propupd après un apt-get upgrade
  • chkrootkit : détermine si la machine est infectée par un rootkit

  • cron-apt: vérifie tous les jour si le serveur doit être mis à jour. (a configurer)
  • clamav : détecte trojans, viruses, malware, …
  • spamassassin : détermine si un email est un spam (utile si on utilise la machine comme serveur de mail)

 

shorewall

pour gérer iptables avec des fichiers de configuration.
installation : apt-get ?
utilisation  : editer les fichiers /etc/shorewall  & service start
config : nécessaire, un peu complexe
http://biowikifarm.net/meta/Server_ports_and_shorewall_installation

mrtg

pour avoir des stats temps réel sur l’état de santé de la machine (cpu, hits apache, traffic réseau)
Installation: apt-get ?
Utilisation : (se cron
utiliser cfgmaker > mrtg.cfg / indexmaker mrtg.cfg > index.html
config : nécessaire
difficulté moyenne
http://blog.nicolargo.com/2010/02/mrtg-un-tutoriel-simple-et-rapide.html
http://www.onlamp.com/pub/a/bsd/2000/10/05/Big_Scary_Daemons.html

rkhunter

cherche les trucs louche sur la machine (malware, rootkit, faille potentielles)
installation: apt-get
utilisation: se lance en cron tout seul comme un grand
configuration : nécessaire si vous voulez recevoir un rapport par mail
/etc/rkhunter.conf ( MAIL-ON-WARNING )
/etc/default/rkhunter ( REPORT_EMAIL pour recevoir tous les rapports)
plutot simple
la commande –propupd est à connaitre

chkrootkit

détermine si la machine est infectée par un rootkit
installation: apt-get
utilisation: exécuter en root
configuration: rien de particulier

spamassassin

pour filtrer les spams
installation:
utilisation:
configuration:

logwatch

recevoir un rapport journalier (ou plus, ou moins) sur ce qui s’est passé sur le serveur
installation:
utilisation:
configuration:

cron-apt

exécuter un apt-cron –update automatique et recevoir un message quand une mise à jour est à faire
installation:
utilisation:
configuration:

vim colorscheme

Note: bon, va falloir contribuer à highlight.js pour que vim soit ajouté on dirait …

script to quickly create vhost + dir + chrooted sftp user

Attention ! This script is a draft. A lot of checks are not made.

Note: This require a little configuration in /etc/ssh/sshd_config