Faire un site web comme Khaganat
Vous trouverez pleins de tutoriels sur internet sur divers CMS pour faire de superbes sites, et même comment faire des sites de zéro. Cet article ne prétend pas faire plus complet. Cependant, si vous appréciez certains des outils que nous utilisons, si vous voulez faire “comme ici” mais chez vous, nos solutions sont détaillées dans les pages suivantes.
Et puis, ça nous aide aussi quand on a besoin de bidouiller…
Si vous souhaitez nous aider à améliorer techniquement notre site web, rendez-vous plutôt sur cette page.
La sécurité et le web
Vaste sujet, mieux vaut se former en douceur.
À savoir qu'il y a principalement trois sortes d'attaques sur un site web :
- Attaque généraliste. Le but de l'attaquant est d'exploiter des failles connues pour prendre possession de serveurs/sites. La façon la plus simple pour s'en protéger est d'avoir son système (sous linux) et ses CMS à jour, et de ne pas faire comme tout le monde mais en toute sécurité (simplement de changer le nom d'utilisateur de base, les endroits où sont les CMS, etc). Ces attaques font des dégâts surtout chez les néophytes mais peuvent s'éviter assez facilement en principe.
- Attaque ciblée : ça veut dire que quelqu'un vous en veut, personnellement. S'il est à moitié bon, il arrivera à ses fins, quoi qu'il arrive. Pour contrer ça :
- Ne vous fâchez pas avec les gens ;
- Ne devenez pas une cible intéressante (petit et caché, vous êtes peinard) ;
- Devenez un pro de la sécurité et veillez à tous les détails1).
- Spam : tout le monde y a droit. Ce n'est pas “grave”, mais désagréable. Les CMS ont divers outils pour contrer ça et faire le ménage, plus ou moins efficace. Chaque fois que possible, interdisez aux utilisateurs non connectés de poster, et mettez une question personnalisée propre à votre site pour l'enregistrement des utilisateurs. Les questions personnalisées sont plus efficaces que les captchas, et moins pénibles pour les humains.
Soyez humble. Il est très facile d'exploiter les failles d'un site web, et très long et complexe de tout savoir sécuriser. Prenez les conseils qu'on vous donne, même quand ils viennent d'un individu désagréable qui est entré chez vous par effraction : ça évitera de se faire avoir deux fois de suite. Soyez conscient que la plus grosse faille du système est en train de lire ces lignes : le crack, ce n'est pas forcément des lignes de code, c'est souvent juste être au bon endroit pour lire votre mot de passe.
Et donc, puisque que vous risquez fort probablement de vous faire cracker un jour : faites des backups ! sauvez votre site, sur un autre ordinateur, voir plusieurs.
Quelques articles sur des pratiques permettant d'augmenter la sécurité de votre site :
- Sécurité sur les serveurs (sysadmin) et Consignes de sécurité (généraliste), un condensé de bonnes pratiques.
- SSH : configurez correctement ssh, générez une clé pour dire “coucou c'est moi” en entrant dans votre serveur, et éviter que ses clés à lui soient visibles partout. Minimise les risques de noter sur papier/cloud ses mots de passe, à la portée du premier voleur venu, vu qu'il y en a moins à retenir.
- Pass, un petit logiciel très simple qui permet de stocker de façon sécurisé ses mots de passe, et aussi de les partager au sein d'une équipe. Non, on n'écrit pas ça en clair dans un mail ou sur un chat !!!!
- Suivez aussi le tag Sécurité.
Page Description Étiquettes Configuration d'Apache Apache est un serveur web, que nous utilisons sur certains de nos serveurs. Une autre solution populaire est Nginx. Les deux sont très b… serveur, web, sysadmin, securite Consignes de sécurité Ces consignes de sécurité peuvent sembler inutiles ou paranoïaques mais, en fait, non. C'est le minimum pour se protéger de quelques dang… serveur, sysadmin, securite Consignes de sécurité supplémentaires Ce document concerne toute personne ayant un accès “admin” à un ou des services de Khaganat, dont les serveurs, VM, etc. … securite Consignes de sécurité pour les modératrices Vous avez déjà lu Consignes de sécurité générique et Consignes de sécurité supplémentaires ? Pas d'inquiétude, il n… securite Consignes de sécurité générique Vous trouverez des informations pour les pratiques plus avancées sur la page portail des consignes de sécurité. Cet article con… securite Consignes de sécurité pour les sysadmins Voici les autres documents dont vous devez vous imprégner : * Consignes de sécurité générique * Consignes de sécu… securite, serveur, sysadmin Keeweb / Keepass Nous avons installé sur le cloud une application appelée Keeweb, permettant d'ouvrir des fichiers kbdx. Les fichiers kbdx sont chiffrés et pe… securite, tutoriel Openvpn OpenVPN peut servir à divers usages ; ici il permet d'accéder à un réseau interne uniquement si on est autorisé. apt-gt install openvpn Création de l'a… serveur, securite Pass Installation Installer Pass sur son ordinateur (dans les dépôts de toute version linux digne de ce nom). Sous Debian Stable, il faut ajouter les dépôts … serveur, securite Sécurité sur les serveurs (sysadmin) Cet article s'adresse aux personnes qui gèrent l'infrastructure et le système des serveurs : les sysadmin. Il concerne un … serveur, sysadmin, securite SSH La façon la plus pratique de se connecter à un serveur pour l'administrer est de passer par ssh (sous linux ; sous les autres OS je vous laisse chercher). … serveur, sysadmin, securite
Installation de la base
La première chose est d'avoir un système où installer les bidouilles. Plusieurs choix sont possibles :
- Installer en local
- Installer en local, mais dans une VM (ou bien faire une VM sur un serveur en ligne)
- Utiliser un hébergement mutualisé (bonne chance)
- Utiliser une VPS ou un serveur dédié et installer linux dessus.
À compléter avec des liens vers l'installation d'un serveur de base, l'utilisation d'un mutualisé ou d'un vps…
Une fois qu'on a Linux sur son serveur (car, oui, on a Linux sur un serveur, ou BSD, mais y'a pas d'autre choix possible !), il faut se livrer à quelques manipulations de base afin de sécuriser son installation et de la rendre pratique à utiliser.
Il faut ensuite installer quelques services de base : Apache, Mysql, Php. C'est l'installation “basique” qui marchera avec tous les CMS, et c'est détaillé ici :
Il est possible d'installer Nginx au lieu d'Apache, Postgresql au lieu de Mysql, ce qui rendra le système moins sensible aux attaques (c'est moins répandu), mais c'est plus technique pour la suite.
Choix d'un outil : "tout faire" ou "KISS" ?
Cela nous a pris du temps (et des tests) pour se décider.
Il existe des CMS très complets, qui permettent de faire “tout” en une seule installation : forum, gestion des paies, blog, calendrier, mail, etc. Malheureusement, d'après notre expérience, ces CMS sont souvent très compliqués à prendre en main, difficiles à personnaliser dans les moindres détails, bourrés de trucs qui finalement ne nous servent à rien mais alourdisse le système et la compréhension, et jamais complètement adapté à nos besoins sur un problème précis. Et quand ça plante, tout plante. Bon, sinon, ils ont l'avantage d'avoir une authentification unifiée de base, un style unifié aussi, et puis une fois qu'on a appris à s'en servir, ben y'a plus besoin d'apprendre d'autres choses.
D'autres CMS se contentent de faire une chose, mais de la faire à fond. Par exemple des CMS comme PhpBB ou SMF fournissent principalement le côté forum2) : mais ces forums sont complets, avec tout ce qu'on peut attendre d'un forum, avec des modules pour leur ajouter quelques fonctionnalités au besoin. L'intérêt des CMS qui font “une chose à la fois” c'est qu'ils sont souvent plus simples à installer et à comprendre, la courbe d'apprentissage est plus rapide, ils sont plus simples à personnaliser/adapter/modifier, il y a moins de choses qui ne serviront jamais. Par contre, cela peut être difficile d'harmoniser plusieurs CMS sur le même site, y compris au niveau de la connexion.
Nous avons préféré la seconde solution. Cela nous permet de déléguer à diverses personnes les administrations d'un élément ou de l'autre et nous avons pu apprendre en douceur (malgré un grand manque de compétences initiales). Le fait de pouvoir facilement répartir les tâches, y compris à des gens sans grande connaissances informatiques, a permis que l'ensemble fonctionne et voit le jour. Lorsqu'un élément ne nous convenait pas, il a été plus facile de le remplacer.
“Fait une chose à la fois, et fait-la bien” est une philosophie qui nous a bien convenu. Mais tout dépend des projets et des compétences des gens…
Choix des CMS
SPIP est un outil complet pour gérer un site. Nous ne l'avons finalement pas installé, préférant d'autres CMS, mais ça reste une solution de choix.
Nous avons prévu, dans un futur indéterminé, d'utiliser Django afin de répondre aux besoins spécifique des API du MMORPG et du web accessible en jeu. Lorsque ce sera fait, certains des CMS listés ci-dessous seront remplacés par des modules Django. Ce framework est un outil puissant permettant de couvrir tous les usages, mais comme toute solution “tout inclus”, il demande plus de connaissances pour être mis en place et maintenu ; si vous ne maîtrisez pas déjà python, ce n'est peut-être pas le premier choix pour démarrer un site web.
Blog
Nous avons utilisé Dotclear, un gestionnaire de blog moins “usine à gaz” que Wordpress. Nous avons découvert après coup Pluxml, un moteur de blog avec une base de donnée en fichier texte (comme Dokuwiki), très simple à mettre en place et utiliser ; c'est sans doute le plus adapté pour un blog simple.
Dokuwiki peut être configuré pour faire “blog”, mais ce n'est pas sa destination première. Comme nous maitrisons bien ce CMS, c'est finalement le choix que nous avons fait pour notre propre blog.
On peut aussi se servir des forums pour ça.
Avoir un blog n'est utile que si on a réellement du contenu à publier. Chez nous, son existence est toujours suspendue à un fil ; nous le trouvons utile pour résumer ce qui a été fait de temps en temps, et y publier ce qui n'a pas sa place ailleurs, mais nous manquons de motivation pour l'alimenter régulièrement.
Wiki
Notre moteur de wiki est Dokuwiki, l'un des meilleur moteur jamais inventé3). Il n'a pas besoin d'une base de donnée Mysql, tout est contenu dans des fichiers textes, faciles à lire. Il est facile à mettre en place même quand on ne connaît pas grand chose à l'informatique. Ça se corse un peu quand on tente de faire une “ferme de wiki” (un truc compliqué), mais il y a beaucoup de documentation, y compris en français, ce qui permet de s'en sortir, et la communauté est relativement réactive. De nombreux plugins permettent d'ajouter pleins de fonctionnalités et tous s'installent en un clic.
Côté performance, Dokuwiki tient la comparaison avec Mediawiki (le moteur de wiki utilisé entre autre par Wikipédia), y compris sur les très gros volumes.
Pour les débutants, il est clairement plus simple à installer et maintenir que Mediawiki.
Pour plus de choix, le site Wikimatrix (en anglais) permet de comparer plusieurs moteurs de wiki et de choisir suivant ce qu'on cherche.
Plus d'infos sur notre installation de Dokuwiki
À noter, notre utilisation particulière de Dokuwiki comme gestionnaire de tâche, au lieu des habituels gestionnaires de bug.
Forum
De nombreux moteurs de forum existent. Ce qui doit décider du choix, c'est les fonctionnalités annexes. Le site Forummatrix (en anglais) permet de comparer plusieurs moteurs de forum et de choisir suivant ce qu'on cherche.
Nous utilisons SimpleMachineForum (abrégé SMF), un bon choix, avec de nombreuses fonctionnalités (plus que nous n'avons besoin) et de nombreux plugins, dont celui qui nous intéresse : de quoi gérer plusieurs identités avec un seul compte, pour le roleplay.
Phpbb est aussi une valeur sûre, depuis de nombreuses années.
Ces deux forums peuvent être un peu délicat à installer pour un débutant, mais ça reste accessible. Les forums des communautés sont actifs, y compris en français, ce qui permet de trouver de l'aide.
Pastebin
Nous utilisons le logiciel Stikked pour fournir un service type pastebin. C'est un assez bon outil, un peu complexe à mettre en place cependant, et il faut le configurer et le surveiller côté spam.
Images
Pour gérer des galeries d'images, nous utilisons un logiciel très simple à mettre en place, Photoshow-gallery. Il convient bien à un petit nombre de participant, cependant il manque de robustesse et de sécurité pour accueillir beaucoup d'utilisateurs (on ne peux pas gérer finement les permissions par dossier d'image, par exemple).
Dokuwiki a aussi des plugins pour afficher les galeries d'images ; on peut aussi faire ça sur les moteurs de blog. Cependant, là aussi, les limites sont vite atteintes.
Pad
Nous utilisons etherpad-lite.
Si vous débutez dans la configuration de site, évitez de l'installer. Etherpad-lite n'a de lite que le nom (et la comparaison avec la version encore plus lourde qui l'a précédé). C'est un logiciel complexe à faire tourner, encore plus complexe à modifier.
Vous pouvez utiliser notre propre instance, ou ceux proposés sur le net par divers services, dont l'excellent Framapad.
Si vous souhaitez vous lancer dans l'aventure, vous trouverez quelques infos sur notre installation d'etherpad ici.
Gitlab
Nous utilisons actuellement Gitlab pour gérer nos dépôts. C'est un outil gourmand en ressource et complexe à mettre en place, mais très complet au niveau des fonctionnalités. Ce n'est utile que dans le cadre d'un gros projet, comme un MMORPG ; sinon, il est plus simple de passer par des forges logicielles type Framagit, Github, etc. Voir aussi l'article sur l'utilisation des gestionnaires de versions.
Autres outils utiles autour du site web
XMPP
Nous utilisons XMPP, un protocole intéressant dans le cadre du MMORPG. Actuellement4) nos services sont gérés par https://jabberfr.org/.
IRC
Nous avons utilisé pendant longtemps IRC. XMPP permet de se connecter à IRC via une passerelle, et l'ancienne documentation continue de nous servir pour des projets amis.
Piwik
Pour les statistiques d'utilisation du site.
Par pitié, n'utilisez pas la solution de google. Ne traquez pas vos visiteurs. Piwik est un excellent outil, facile à mettre en place, qui respecte la vie privée de chacun et permet d'avoir des statistiques utiles sur les usages de votre site. De toute façon, les statistiques, ça doit s'utiliser avec modération. Le but n'est pas de s'enorgueillir du nombre de visiteur, mais de voir ce qui les intéresse, ou ce qu'ils peuvent manquer parce que votre site est mal fichu.
Plus d'infos sur notre installation de Piwik.
Notre propre installation de Piwik n'est pas toujours en route, cela dépend un peu de la motivation de Zatalyz et de son envie de regarder si une communication publique amène réellement un peu plus de visiteurs.