Info
Accès

A propos de

11 août 2019 Mise à jour 26 mai 2020

Ce site web est un CMS / Blog multilingue que j'ai construit avec Python, le framework Flask et SQLAlchemy. Il est déployé sur mon serveur ISPConfig3 (Nginx + Mariadb) en utilisant Docker qui est également utilisé pour le développement. Le site web comprend l'enregistrement user , de nombreuses fonctions d'administration, la confidentialité et la sécurité, il ne s'agit donc pas d'un petit projet. Quelques "points forts" :

Tech

  • Python 3 (3.7)
  • Flask
  • SQLAlchemy
  • Mariadb
  • Docker, docker-compose
  • Bootstrap4
  • Fontawesome
  • Tinymce
  • ISPConfig3

Déploiement

Les étapes sont le développement, staging et la production, toutes utilisant le docker et docker-compose. Le développement utilise le serveur de développement Flask , staging et la production utilise le serveur Gunicorn . Enfin, ISPConfig3 est utilisé pour contrôler le domaine, la base de données et le courrier électronique SMTP , Nignx est configuré comme un serveur reverse proxy.

Vie privée

Ne vous attendez pas à trouver ici des solutions comme l'utilisation des plugins CDN, Google Analytics, Facebook , etc. La vie privée est l'une des choses les plus importantes dans la vie. Bien qu'il soit impossible d'empêcher la traque et la collecte de nos précieuses données privées, je crois que nous devons tous faire un effort pour minimiser cela.

Sécurité

La sécurité est toujours un travail en cours. Elle commence avec la conception de la sécurité, ce qui signifie également que vous devez faire beaucoup d'efforts pour enregistrer les choses. Il existe d'excellents outils comme le ZAP OWASP et des services en ligne comme securityheaders.com et detectify.com qui peuvent vous aider à identifier les vulnérabilités.

Multilingue

Bien que le texte de ce site soit écrit en anglais, il supporte plusieurs langues en utilisant l'extension Flask-Babel . Les textes des autres langues sont pour l'instant traduits automatiquement à l'aide de l'extension DeepL API et sont parfois loin d'être parfaits, mais vous pouvez toujours modifier les fichiers messages.po .

L'apprentissage machine

L'intelligence artificielle (AI) envahit nos vies de nombreuses façons. Python est le langage utilisé avec l'apprentissage machine et l'apprentissage profond. Personnellement, je n'aime pas ces développements car personne ne peut être tenu responsable des décisions prises. Mais AI peut également nous aider de manière positive, par exemple en recommandant d'autres sujets d'actualité à la fin d'un article.

Plus : Kivy

Cherche également un Python GUI. J'ai commencé à utiliser le tkinter mais j'ai vite constaté que celui-ci avait de nombreuses limites pour mon objectif. Je suis tombé sur Kivy et j'ai créé une première application avec. Vous pouvez également déployer une application Kivy sur Android, mais voulons-nous soutenir l'écosystème Android ? Je vais également publier des informations sur mon projet Kivy .

Quelle est la prochaine étape ?

Les prochains mois, j'essaierai de documenter certaines des choses que j'ai faites pour que cela fonctionne, comme utiliser SQLAlchemy sans Flask-SQLAlchemy, éviter les extensions Flask mal entretenues, les migrations utilisant des configurations Alembic, minimiser la taille d'une configuration Docker image, docker-compose .

Merci, Peter

Laissez un commentaire

Commentez anonymement ou connectez-vous pour commenter.

Commentaires

Laissez une réponse

Répondez de manière anonyme ou connectez-vous pour répondre.

Les plus consultés