Sous le capot

JEIKO tourne sur Django.

Le framework web de Python, maintenu depuis 2005 et adossé à une fondation indépendante. JEIKO n'invente pas sa propre mécanique : il s'appuie sur des briques éprouvées, et consacre son code à ce qu'un site professionnel demande vraiment.

La pile, couche par couche

Rien d'exotique : chaque outil est le choix standard de sa catégorie, maintenu, documenté, connu de n'importe quel administrateur système. C'est ce qui permet à votre site de survivre à son prestataire.

CoucheOutilCe qu'il fait pour votre site
LangagePython 3.13Le même langage pour le site, l'API, les tâches planifiées et les scripts d'installation.
FrameworkDjango 5.2Base de données, migrations, gabarits, formulaires, protections contre les attaques web courantes.
Base de donnéesPostgreSQLPages, fiches, commandes, rendez-vous, comptes : toutes les données, avec leurs contraintes d'intégrité.
CacheMemcachedGarde en mémoire le corps des pages, les menus et les compteurs anti-abus.
Serveur d'applicationGunicornExécute Django, un service par site.
Serveur webNginxReçoit les visiteurs, chiffre la connexion, sert les fichiers statiques avec un cache d'un an.
CertificatsLet's EncryptLe HTTPS, renouvelé automatiquement.
SystèmeDebian 12La distribution serveur la plus conservatrice : peu de surprises, des correctifs longtemps.
Comptesdjango-allauthInscription, e-mail vérifié, connexion, double authentification.
PaiementStripePaiement par carte, sans que les numéros ne transitent par votre serveur.
Contenusnh3, tinycss2, PillowAssainir le HTML saisi, analyser le CSS, décliner les images en cinq largeurs.

Pourquoi Django

Parce qu'il règle d'avance les problèmes qu'un site finit toujours par rencontrer, et qu'on ne veut pas résoudre soi-même.

  1. Le schéma de la base suit le code. Chaque évolution de JEIKO arrive avec ses migrations ; la mise à jour les applique, et rétablit la version précédente si l'une d'elles échoue.
  2. Les protections de base sont actives dès le départ : jeton anti-falsification sur chaque formulaire, échappement des gabarits, interdiction d'afficher le site dans un cadre tiers, cookies sécurisés et HSTS dès que le HTTPS est activé.
  3. Une version maintenue longtemps. Django 5.2 est une version à support étendu : ses correctifs de sécurité sont publiés pendant trois ans.
  4. Un écosystème lisible. N'importe quel développeur Python sait reprendre un projet Django : votre site ne dépend pas d'une seule personne.

Quatorze applications, un seul paquet

JEIKO est un paquet Python composé de quatorze applications Django. Elles s'installent ensemble : le contrôle de démarrage refuse une installation partielle et nomme ce qui manque, plutôt que de laisser une erreur surgir loin de sa cause.

  1. administration — réglages, identité, couleurs et polices, CSS global, mise à jour
  2. administration_pages — pages, éditeur, médiathèque, cache des pages
  3. administration_menu — menus principal et de pied de page
  4. shop — boutique : produits, panier, commandes, stock, TVA
  5. payments — passerelles de paiement
  6. custom_objects — fiches personnalisées et leurs gabarits
  7. calendars — rendez-vous, disponibilités, Google Calendar
  8. courses — formations en ligne
  9. questionnaires_expert — questionnaires et profils
  10. emailing — e-mails transactionnels
  11. users — comptes, rôles, double authentification, données personnelles
  12. cookies — bannière et preuves de consentement
  13. stats — mesure d'audience
  14. agents — API des agents, serveur MCP, connexion OAuth

Un paquet, autant de sites que vous voulez

Chaque site est un projet Django à part sur la même machine : son compte Unix, sa base, son service, son préfixe de cache. Le paquet est commun ; ce qui est propre au site vit dans un seul fichier, le .env placé à côté de settings.py, lisible par lui seul.

Le .env d'un site

SECRET_KEY=… # jamais en base, jamais dans le dépôt
DOMAIN_NAME=monsite.fr
JEIKO_SITE_NAME=monsite
DB_NAME=monsite
DB_USER=monsite
DB_PASS=…
JEIKO_LANGUAGE=fr-fr # langue par défaut du site
JEIKO_TIMEZONE=Europe/Paris
JEIKO_SSL=true # HTTPS, cookies sécurisés, HSTS

La mise à jour remplace settings.py par le gabarit de la nouvelle version : c'est ce qui permet à une version d'ajouter une application sans qu'on touche au serveur. Elle ne peut donc rien écraser de votre configuration — tout ce qui vous appartient est dans le .env.

Vérifié à chaque version

Plus de deux mille quatre cents tests automatisés passent avant chaque publication : ils couvrent l'éditeur, la boutique, les rendez-vous, l'API, la sécurité des comptes. Un défaut corrigé arrive avec le test qui l'empêche de revenir.

python manage.py check # contrôles de configuration
python manage.py test jeiko # 2 407 tests

Installer JEIKOToutes les fonctionnalités