Nouvelle vie, nouveau blog

Écrit le 10 février 2018 | Par Alysson | 0 commentaire | Logiciels libres

2018 commence relativement tard sur le blog. Apprendre demande plus de temps.

Pour être sincère, l'emménagement et le changement soudain de rythme de vie, assumer seule (et ce qui va avec) est particulièrement compliqué quand on plonge dans un océan d'éléments que l'on ne connait pas.
Mais je voulais marquer tout ça et pour la peine, développer et utiliser pour la première fois une application que j'ai personnellement développé.

I'm afraid

Si vous êtes ici et que vous avez lu les anciens articles, vous l'avez probablement remarqué: le design est différent et le site semble plus lent. C'est normal, plus rien n'est statique.

Le blog

Pour commencer, le nouveau blog est développé avec Python et Django 2 que je voulais tester depuis la bêta. Le réapprentissage a duré un peu plus d'un mois.

Vous pouvez à présent poster des commentaires et intéragir directement avec moi sans passer par Diaspora*, IRC ou Mastodon. Il existe des centaines de CMS mais je tenais à le développer moi-même ne fusse que pour apprendre à utiliser la nouvelle version de Django. Celle-ci est toujours aussi puissante et agréable à utiliser. L'atout majeur de Django est, pour moi et sans contestation sa documentation qui est absolument parfaite.

C'est actuellement la seule nouveauté, j'en mettrai davantage au fil du temps, au gré de mes besoins et des demandes sur le dépôt Git.

Déploiement

Côté serveur, il n'y a que nginx, gunicorn et un service qui tourne. Voici la configuration qu'il faut pour accéder au projet:

location / {
    include proxy_params;
    proxy_pass http://unix:/home/alysson/Alyve/gunicorn.sock;
}

location /uploads {
    alias /home/alysson/Alyve/uploads;
}

location /static {
    alias /home/alysson/Alyve/static2;
}

Explication:

  • Le service Gunicorn crée un socket (gunicorn.sock) et nginx fait un reverse engineering dessus pour renvoyer le contenu de la page.
  • Les uploads (images, couvertures,…) et fichiers statiques sont gérés directement par nginx. Concrètement, ça n'a jamais été le boulot de Django d'aller chercher tel ou tel fichier quant bien même celui-ci le fait lorsqu'il est en debug.
  • Le démon qui tourne est initialisé dés le démarrage du système, celui-ci démarre le script bash qui lance un nombre défini de "workers".

Je n'utilise pas de superviseur pour faire tourner gunicorn. J'ai préféré opter (ou plutôt: j'ai opter) pour un service systemd directement.

De toutes façons, supervisor est codé avec les pieds et j'ai une erreur de socket python 2 alors qu'il est installé directement à partir des dépôts de Debian 8.

Seriously ?

La suite

Le moteur n'est qu'un premier jet, je souhaite améliorer le tout à moyen et court terme. En faire quelque chose de propre, sécurisé et utilisable pour toutes les personnes qui utilisent Internet. Je veux mettre un point d'honneur à l'accessibilité car je pense qu'Internet est validiste et qu'il n'existe que peu de solutions utilisable pour les personnes ayants des invalidités quelles qu'elles soient (personnes mal-voyantes, aveugles, dyslexiques, etc).

Je vais certainement passer le blog en SPA (Single Page Application) histoire de pouvoir apprendre Vue.js ou autre moteur Javascript pour un autre projet qui me tient également fort à cœur.

Maintenant ?

Et bien… je vais me remettre à écrire. Pelican c'était bien, mais disons que je trouvais ça ennuyant de devoir chipoter et même si il y a des centaines de thèmes disponibles, ils ne me correspondaient pas.
La plupart des développeurs et développeuses codent eux-mêmes (moi inclus) des solutions lorsqu'iels ne sont pas totalement satisfait·e·s de ce qui existe. En réalité, je considère cela comme un problème inhérent au logiciel libre: trop de choix tue le choix.

Mais ce blog était l'occasion de faire quelque chose avec Django 2 et globalement, j'en suis satisfaite.

Des suggestions ?

Si vous avez la moindre suggestion ou si vous trouvez des bugs (et je suis sûre qu'il y en a qui m'ont échappés), n'hésitez pas à me le dire en commentaire ou créer une issue ou un pull request sur github qui est présent à cette addresse.

Toutes les sources sont disponibles sur le dépôt, excepté le démon. Si vous voulez, je peux l'ajouter.

Quoi qu'il en soit, je suis plutôt contente du résultat et j'ose espérer le voir grandir, évoluer en fonctionnalités et qu'il soit cool à utiliser, pour vous comme pour moi et toutes les personnes qui oseront l'installer.


Il n'y a pas encore de commentaires pour cet article

Ajouter un commentaire