Détails techniques

Le frontend


Le frontend est assez simple. Il utilise pour cela une bibliothèque majeure, Bootstrap4.
Celle-ci permet un responsive design sans prise de tête (c'est faux, j'ai quand même dû faire quelques trucs à la main, mais ça aide beaucoup quand même), avec une interface plutôt jolie en prime.

Le backend


J'utilise Let's Encrypt pour le certificat TLS. Le serveur tourne sur Archlinux (je suis fou) avec Apache, PHP 7 et PostgreSQL dans des Docker organisés avec Docker-Compose.
Seul mon reverse-proxy n'est pas dans un conteneur (j'utilise Apache pour l'instant, mais j'entend migrer vers Nginx dès que possible).
J'ai aussi un serveur de backup qui tourne sur Lighttpd, et qui permet notamment d'accèder à l'interface de monitoring.
Tout est codé en PHP, frontend et backend en fait. Et tout est fait maison, de façon assez organisée, et en respectant les règles de bases de sécurités (mot de passes hashés et saltés, sessions vérifiée à chaque action importante, etc.).
Récemment, le reverse-proxy a vu ses paramètres des sécurité grandements changés : plus de TLSv1.1 ou inférieur, passage au HTTP/2, HSTS de 6 mois avec preload et tout le toutim, etc. L'objectif : obtenir un score parfait sur Mozilla Observatory

Le code complet du site est disponible sur Github, même si celui-ci n'est pas à jour.

Hardware


Nouveau hardware ! Enfin un CPU neuf, une carte mère neuve, une alim neuve et un boîtier neuf (une première pour l'un de mes serveurs) !
J'ai pris un AMD Ryzen 5 1600 AF (en gros un Ryzen 5 2600 rebrandé), une MSI B450 Tomahawk MAX (elle a les meilleures VRM de sa gamme de ce que j'ai pu lire - ça permettra de mettre un truc plus costaud dans le futur).
Pour l'alim, c'est une Seasonic 650W 80+ Gold (je me rappelle plus du modèle exact), et le boîtier, c'est un BitFenix Neos (Black).
Ce sont tous d'excellents composants, et le transfert d'un serveur à un autre m'a pris au total quelques minutes. Comme je n'avais pas de gros HDD en rab (pas les moyens), il y a eu un downtime de plusieurs dizaines de minutes malheureusement.


Par aviallon, le 03/04/19 à 21:19:29. Modifié le 24/04/20 à 16:33:27 par aviallon

Commentaires

Features à ajouter :
  • Permettre l'édition des tags après que la page a été créée (fait sur l'interface admin).
  • Permettre de changer le niveau d'accès d'une page (pour lui donner un niveau d'accès inférieur au sien par exemple) -> fait!
  • Rendre le système de commentaires plus pratiques
  • Mémoriser la position de scroll lorsque l'on édite une page et que l'on sauvegarde les changements.
  • Permettre à des utilisateurs d'enregistrer un compte sans que cela soit fait manuellement par un administrateur.
Et d'autres choses…
Écrit le 08/09/19 à 00:45:56
Bogues actuels connus :
  • Impossible d'envoyer des commentaires multi-lignes (l'astuce actuelle consiste à le modifier a posteriori).
  • L'éditeur de commentaire est moche, fait à la va-vite
  • La date de modification d'un commentaire n'est même pas sauvegardée !
  • Si une liste n'est pas terminée par un retour à la ligne (une ligne blanche), le dernier item n'est pas "dans" la liste. -> corrigé
Et sans doute plein d'autres bogues, dites-les moi en commentaires !
Écrit le 07/09/19 à 01:32:19