DCG - Dossier de Conception Générale Arpelin
1. Objectif du document
Ce document a pour but de présenter l'architecture globale du CMS Arpelin, son environnement technique, sa cartographie fonctionnelle, et les éléments ayant un impact sur la conformité NF525 - Logiciel Gestion de l'Encaissement.
Le DCG constitue le référentiel technique du logiciel Arpelin dans le cadre de la certification NF525, conformément aux exigences du paragraphe 4.3.1 du référentiel.
2. Présentation d'Arpelin
2.1. Description générale
Arpelin est un CMS (Content Management System) cloud, accessible via navigateur web, permettant à tout client de créer et gérer un site web sans installation locale. Le CMS est entièrement hébergé sur un VPS maintenu par l'éditeur.
2.2. Positionnement fonctionnel
Arpelin combine les fonctionnalités d'un CMS traditionnel avec des modules de commerce électronique et de gestion de caisse conformes NF525 :
Création et gestion de contenu web
Boutique en ligne avec paiement sécurisé
Caisse enregistreuse web
Bornes de commande automatisées
Gestion complète des encaissements
2.3. Modèle de distribution
Hébergement : SaaS (Software as a Service)
Accès : Interface web sécurisée HTTPS
Maintenance : Centralisée par l'éditeur
Déploiement : Mutualisé avec isolation des données clients
3. Environnement technique
3.1. Infrastructure d'hébergement
Hébergeur : OVH SAS
Type : VPS dédié
Système d'exploitation : Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-60-generic x86_64)
Architecture : x86_64
3.2. Stack technique
Serveur web : Nginx 1.24
Langage serveur : PHP 8.3
Base de données : MariaDB 10.11.13 (MySQL compatible)
Chiffrement : HTTPS/TLS obligatoire
Gestion de version : Git local
3.3. Architecture mutualisée
Tous les clients partagent un répertoire de code commun (CMS), les données clients sont isolées logiquement par base de données MySQL séparée. Chaque client dispose :
D'une base de données dédiée avec identifiant propre
D'un répertoire d'assets personnalisés
D'un accès conditionné par nom de domaine
D'une séparation stricte des données utilisateurs
D'une traçabilité complète des actions dans chaque instance
4. Architecture détaillée
4.1. Structure des répertoires
/var/www/
├── _main/ ← Code CMS commun (versionné Git)
│ ├── core/ ← Fonctions principales
│ ├── modules/ ← Modules fonctionnels
│ ├── themes/ ← Templates d'affichage
│ └── api/ ← Interfaces API
├── _files/ ← Scripts privés PHP (versionné Git)
│ ├── config/ ← Configurations système
│ ├── security/ ← Fonctions sécurité
│ ├── database/ ← Accès base de données
│ └── payments/ ← Gestion paiements
├── cms_client1/ ← Instance client 1
│ ├── index.php ← Point d'entrée
│ ├── images/ ← Fichiers client
│ └── pages/ ← Pages personnalisées créées
├── cms_client2/ ← Instance client 2
└── .git/ ← Dépôt Git (gestion versions)
4.2. Architecture réseau
Internet
↓ HTTPS/TLS
[Nginx Load Balancer]
↓
[PHP-FPM 8.3]
↓
[MariaDB 10.11]
↓
[Stockage VPS OVH]
4.3. Bases de données
Convention nommage :
cms_domaine-client_fr
,cms_domaine-client2_com
,cms_domaine-clientX_org
Taille type : ~5 MB par client actif
Accès : Résolution automatique via domaine appelé
Isolation : Base dédiée par client, pas de données partagées
Sauvegarde : Dump SQL quotidien de chaque base
5. Cartographie fonctionnelle
5.1. Modules principaux
5.1.1. Gestion du contenu
Création de pages statiques et dynamiques
Gestion des menus de navigation
Édition de blocs de contenu
Gestion des médias (images, documents)
Optimisation SEO intégrée
5.1.2. Gestion des utilisateurs
Système d'authentification sécurisé
Gestion des rôles et permissions
Mode invité pour navigation publique
Sessions sécurisées (8 heures)
5.1.3. Commerce électronique
Réservation en ligne : Système de booking
Commande en ligne : Intégration Stripe/Stancer/Offline
Gestion des articles : Catalogue produits
Panier dynamique : Gestion temps réel
5.1.4. Paramétrage général
Configuration de l'identité visuelle (logo, couleurs)
Gestion de l'identification de l'entreprise
Paramètres SEO avancés
Configuration des moyens de paiement
5.1.5. Statistiques et reporting
Statistiques des ventes en temps réel
Rapports de performance
5.2. Modules conformes NF525
5.2.1. Caisse enregistreuse web ⭐
Interface caissier intuitive
Calcul automatique TVA (défini au préalable sur les articles)
Génération tickets horodatés
Gestion moyens de paiement multiples
Traçabilité complète des transactions
5.2.2. Clôtures de caisse ⭐
Clôtures automatiques : Programmées (quotidiennes, mensuelles, anuelles)
Clôtures manuelles : À la demande du manager ou de l'administrateur (sur période personnalisée)
Récapitulatifs détaillés par période
Archivage automatique des données
5.2.3. Bornes de commande ⭐
Interface client autonome
Intégration avec la caisse centrale
Validation automatique des commandes
Synchronisation temps réel
6. Performances et Dimensionnement
6.1. Capacité serveur
Clients simultanés maximum : 50 par VPS
Sessions PHP : Durée de vie 8 heures
Architecture : Scalable horizontalement (ajout VPS supplémentaires)
Temps de réponse : < 2 secondes pour les opérations courantes
6.2. Dimensionnement base de données
Taille moyenne par client : ~5 MB (client type avec quelques mois d'activité)
Isolation : Une base de données MySQL dédiée par client
Croissance estimée : Variable selon activité client
Optimisation : Index sur tables critiques (transactions, logs, closures)
6.3. Métriques de référence
Client type : 4.77 MB (activité e-commerce quelques mois)
Capacité VPS : 50 clients simultanés maximum
Temps session : 8 heures pour maintenir continuité caisse
Rétention backup : 7 jours (conformité opérationnelle)
7. Sauvegarde et Continuité
7.1. Stratégie de sauvegarde
Fréquence : Quotidienne via script cron automatisé
Contenu : Données clients (bases MySQL) + pages créées + images importées
Rétention : 7 jours glissants
Localisation : VPS OVH (stockage local sécurisé)
Format : Dumps SQL compressés + archive fichiers
7.2. Procédure de restauration
Méthode : Import manuel des dumps SQL de sauvegarde
Temps de restauration : Selon taille base client (quelques minutes)
Validation : Vérification fonctionnelle post-restauration
Documentation : Procédure détaillée disponible
Tests : Validation mensuelle des sauvegardes
7.3. Plan de continuité
RTO (Recovery Time Objective) : 4 heures maximum
RPO (Recovery Point Objective) : 24 heures maximum
Escalade : Contact éditeur 24h/24 en cas d'urgence
Communication : Information clients via canaux dédiés
8. Sécurité et Monitoring
8.1. Authentification et accès
HTTPS : Certificat SSL/TLS obligatoire pour tous les accès
Authentification : Mot de passe sécurisé par client/caissier
Sessions : Durée 8h avec régénération automatique
Accès base : Accès distant possible avec identifiants phpMyAdmin
Chiffrement : Données sensibles chiffrées en base
8.2. Isolation des données
Séparation physique : Base MySQL dédiée par client
Accès conditionnel : Résolution par nom de domaine
Logs d'audit : Traçabilité complète dans table 'logs'
Permissions : Droits granulaires par utilisateur
Conformité RGPD : Gestion des données personnelles
8.3. Monitoring et surveillance
Charge serveur : Surveillance via htop (ligne de commande)
Base de données : Monitoring via interface phpMyAdmin
Logs système : Centralisation et analyse
Alertes : Surveillance manuelle de la performance, e-mail reçu lorsque stockage VPS presque plein
Maintenance : Intervention réactive selon besoins
9. Modèle conceptuel de données
9.1. Tables principales
Users
Gestion des utilisateurs et caissiers
Traçabilité des actions
Commandes
Intentions de paiement (payées et non payées)
Base des transactions
Transactions ⭐
Commandes validées et archivées
Données certifiées
Totals
Total perpétuel des encaissements
Contrôle de cohérence
Panier_utilisateur
Paniers en cours (caissiers et clients)
Gestion temps réel
Logs ⭐
Historique des modifications et suppressions
Audit NF525
Closures ⭐
Clôtures manuelles et automatiques
Archivage NF525
Categories
Catégories des articles
Organisation catalogue
Articles
Catalogue produits et services
Base commerciale
Archives ⭐
Références des archives créées sur VPS
Traçabilité NF525
9.2. Relations critiques NF525
Articles → Panier_utilisateur → Commandes → Transactions
↓
Logs (audit)
↓
Closures → Archives
9.3. Contraintes d'intégrité
Transactions : Non modifiables après validation
Logs : Ajout uniquement (pas de modification/suppression)
Closures : Horodatage automatique et figé
Archives : Références immuables des fichiers générés
10. Gestion des flux d'interfaces
10.1. Interfaces externes
Le CMS Arpelin ne expose pas d'API publique, mais communique avec :
Stripe API : Paiements par carte bancaire en ligne.
Stancer API : Paiements par carte bancaire en ligne.
Sumup : Paiements par carte bancaire en personne.
Smile&Pay : Paiements par carte bancaire en personne.
Webhooks : Retours automatiques de validation
10.2. Flux d'échange sécurisés
Tous les flux d'échange sont journalisés :
Validation de commande
Confirmation de paiement
Retour webhook des passerelles
Mise à jour statuts en base client
10.3. Format des données
API REST : JSON pour les échanges
Chiffrement : HTTPS/TLS pour tous les flux
Authentification : Clés API sécurisées
Logs : Horodatage et traçabilité complète
11. Modules impactés par la conformité NF525
11.1. Périmètre de certification ⭐
Caisse enregistreuse web
Génération automatique de tickets numérotés et horodatés
Tickets non modifiables après validation
Traçabilité complète des opérations
Gestion TVA automatique et conforme
Bornes de commande
Intégration avec la caisse centrale
Processus de validation identique
Archivage selon même processus
Synchronisation temps réel des données
11.2. Exigences respectées
Ces modules sont soumis aux exigences de :
Traçabilité : Table logs + horodatage
Inaltérabilité : Données figées post-validation
Clôture : Automatique et manuelle
Archivage : Conservation données conformément à la réglementation
11.3. Processus de conformité
Encaissement → Enregistrement table transactions
Validation → Génération ticket horodaté
Archivage → Stockage immutable
Clôture → Récapitulatif période + archive
Audit → Accès logs complets via table logs et JET
12. Évolutions et Maintenance
12.1. Gestion des versions
Git : Versioning du code source (_main et _files)
Tags : Versions stables horodatées
Déploiement : Mise à jour centralisée
Rollback : Retour version antérieure possible
12.2. Maintenance préventive
Mises à jour sécurité : Automatiques (OS, PHP)
Optimisation base : Mensuelle
Nettoyage logs : Selon politique rétention
Tests fonctionnels : Avant chaque déploiement
12.3. Support et évolutions
Hotline : Support technique dédié
Évolutions : Roadmap produit documentée
Formation : Accompagnement utilisateurs par téléphone, sur place ou via des vidéos tutoriels
Documentation : Mise à jour continue
13. Conformité et Audit
13.1. Traçabilité NF525
Logs complets : Toutes actions tracées
Horodatage : Précision à la seconde
Immutabilité : Données figées après validation
Archivage : Conservation réglementaire
13.2. Procédures d'audit
Accès données : Via interface dédiée
Extraction : Exports conformes aux standards (Jet .CSV)
Vérification : Cohérence données garantie via empreinte numérique et contrôle intégrité
Documentation : Procédures formalisées
13.3. Mise à disposition administration
En cas de contrôle fiscal ou demande administrative :
Documentation technique : DCG complet
Accès aux données : Via outils d'extraction
Logs d'audit : Historique complet disponible
Support : Accompagnement procédures
Document établi dans le cadre de la certification NF525 Version : 2.0 Responsable : Emre KOSE
Last updated