From 4fe209fc98bae09b780a9ff370ed5aa8a017cb3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20FAMIBELLE-PRONZOLA?= Date: Mon, 18 May 2026 17:53:09 +0400 Subject: [PATCH] docs: rewrite README for social media aggregator --- README.adoc | 570 ++++++++++++++++++---------------------------------- 1 file changed, 194 insertions(+), 376 deletions(-) diff --git a/README.adoc b/README.adoc index bc03428..f5742d7 100644 --- a/README.adoc +++ b/README.adoc @@ -1,203 +1,106 @@ -= 🎬 kaubuntu.re - Plateforme Multimédia += kaubuntu.re - Hub Multimédia :toc: left :toc-title: Sommaire :toclevels: 3 -🌍 *Une plateforme multimédia indépendante au service de la vision panafricaniste et indépendantiste réunionnaise* +*Agrégateur des réseaux sociaux du mouvement panafricaniste et indépendantiste réunionnais Ka-Ubuntu.* -== 📖 Description +== Description -kaubuntu.re est une interface web responsive qui permet de consulter et rechercher des vidéos hébergées sur une instance PeerTube. Il est également possible de suivre le fil du réseau social koze.kaubuntu.re (Mastodon). Développée par le mouvement politique *Ka-Ubuntu*, cette plateforme est conçue pour être légère, facilement déployable sur un serveur mutualisé, et optimisée pour les appareils mobiles et desktop. +kaubuntu.re centralise en une seule page les contenus publiés par Ka-Ubuntu sur YouTube, Instagram, TikTok et le site WordPress kaubuntu.com. Développée en PHP vanilla, sans framework, la plateforme est conçue pour fonctionner sur un hébergement mutualisé standard (o2Switch) et s'affiche correctement sur tous les appareils. -🎯 *Mission* : Offrir une alternative libre et décentralisée aux plateformes vidéo traditionnelles, en phase avec les valeurs d'indépendance et de souveraineté numérique défendues par Ka-Ubuntu. +== Fonctionnalités -== ✨ Fonctionnalités +- Grille YouTube avec détection automatique des Shorts (3 Shorts portrait + 6 vidéos paysage) +- Compteurs de followers/abonnés en temps réel (YouTube, Instagram, TikTok, articles WordPress), mis en cache 24h +- Profil embed Instagram et TikTok (iframes officiels) +- Grille d'articles WordPress via REST API (kaubuntu.com) +- Mode clair / sombre avec détection de la préférence système +- Scroll animé vers les sections avec highlight d'arrivée +- Bouton retour en haut de page +- Progressive Web App (PWA) : installation native, mode hors ligne, cache Service Worker +- Détection automatique de l'état de connexion +- Annonce du prochain live configurable (multi-fuseaux horaires) +- Système de dons PayPal Me +- Page de compte à rebours / maintenance +- Headers de sécurité (CSP, HSTS, X-Frame-Options…) -- 🎥 Affichage des vidéos à la une et récentes -- 📚 Navigation par catégories -- ▶️ Lecture de vidéos -- 🔍 Recherche de contenu -- 📱 Interface responsive (mobile et desktop) -- 🔗 Intégration avec une instance PeerTube -- 📲 Progressive Web App (PWA) avec installation native -- 🌐 Mode hors ligne avec cache intelligent -- 📡 Détection automatique d'état de connexion -- 📊 Analytics intégré avec Plausible (respectueux de la vie privée) -- 📰 *Intégration WordPress* : Affichage des articles depuis un site WordPress via REST API -- 💝 *Système de dons* : Interface PayPal Me configurable pour collecter des dons -- ⏰ *Système de countdown* : Page de lancement configurable avec compte à rebours multi-fuseaux -- 📺 *Annonce du prochain live* : Affichage dynamique avec multi-fuseaux horaires et image personnalisable +== Technologies -== 🛠️ Technologies utilisées +- PHP 8.0+ (backend, APIs, cache fichier) +- HTML5 / CSS3 / JavaScript vanilla +- YouTube Data API v3 (optionnel, avec fallback RSS public) +- WordPress REST API +- Font Awesome (icônes) +- Service Worker (PWA) -- 📄 HTML5 -- 🎨 CSS3 avec Media Queries pour le responsive design -- 🐘 PHP pour le backend -- ⚡ JavaScript pour les interactions côté client -- 🔧 Service Worker pour le cache offline et PWA -- 📋 Web App Manifest pour l'installation native -- 📦 Bibliothèques externes via CDN: - * 🎯 Font Awesome (icônes) - * 📊 Plausible Analytics (statistiques respectueuses de la vie privée) - -== 📁 Structure du projet +== Structure du projet [source] ---- ├── css/ -│ ├── styles.css -│ ├── video-page.css -│ ├── categories.css -│ └── search.css -├── img/ -│ ├── categories/ -│ ├── video-thumbnails/ -│ └── channels/ -├── js/ -│ └── main.js +│ ├── styles.css # Styles globaux, thème, composants +│ └── social.css # Styles spécifiques à l'agrégateur ├── includes/ +│ ├── social/ +│ │ ├── youtube.php # YouTube Data API v3 + fallback RSS + détection Shorts +│ │ └── stats.php # Compteurs followers (YouTube, Instagram, TikTok) +│ ├── wordpress.php # Intégration WordPress REST API +│ ├── config.php # Chargement config (default + local) +│ ├── config.default.php # Valeurs par défaut +│ ├── config.local.php.sample # Modèle de configuration locale +│ ├── security.php # Headers HTTP et CSP │ ├── header.php │ ├── footer.php -│ ├── mobile-menu.php -│ ├── featured-videos.php -│ ├── recent-videos.php -│ ├── categories.php -│ ├── pwa-init.php -│ └── config.local.php.sample # Exemple de configuration locale +│ ├── sidebar.php +│ └── mobile-menu.php +├── js/ +│ └── main.js # Thème, scroll animé, retour en haut, menu mobile +├── img/ ├── conf/ -│ ├── .htaccess.sample # Configuration Apache sécurisée -│ └── nginx.conf.sample # Configuration Nginx sécurisée -├── index.php -├── video.php -├── categories.php -├── search.php -├── sw.js # Service Worker pour PWA -├── site.webmanifest.sample # Exemple de manifest PWA -├── browserconfig.xml # Configuration Windows -├── sitemap.xml.sample # Exemple de sitemap -├── robots.txt.sample # Exemple de robots.txt -├── mentions-legales.php.sample # Exemple de mentions légales +│ ├── .htaccess.sample +│ └── nginx.conf.sample +├── index.php # Page principale +├── sw.js # Service Worker +├── site.webmanifest.sample └── README.adoc ---- -== 📋 Prérequis +== Prérequis -- 🐘 *PHP 7.4+* (recommandé : PHP 8.0+) -- 📦 *Extensions PHP requises :* - * `curl` - Pour les appels API vers PeerTube - * `json` - Pour le traitement des données JSON - * `intl` - Pour la gestion des dates internationales et traductions - * `mbstring` - Pour la manipulation des chaînes multi-octets -- 🌐 *Serveur web* : Apache ou Nginx -- 🔒 *HTTPS* : Requis pour les fonctionnalités PWA - -=== Installation de l'extension intl - -L'extension `intl` est nécessaire pour l'affichage des dates et heures de directs en plusieurs langues et fuseaux horaires. +- *PHP 8.0+* +- Extensions PHP : `curl`, `json`, `intl`, `mbstring`, `simplexml` +- Serveur web Apache ou Nginx +- HTTPS (requis pour PWA) [source,bash] ---- -# Sur Ubuntu/Debian -sudo apt-get install php-intl +# Ubuntu/Debian +sudo apt-get install php-curl php-intl php-mbstring php-xml -# Sur Fedora/RHEL/CentOS -sudo dnf install php-intl - -# Puis redémarrer le serveur web -sudo systemctl restart apache2 -# ou pour nginx avec php-fpm -sudo systemctl restart php8.3-fpm +# Vérifier les extensions +php -m | grep -E 'curl|intl|mbstring|simplexml' ---- -Pour vérifier que l'extension est bien chargée : -[source,bash] ----- -php -m | grep intl ----- +== Installation -== 🚀 Installation - -. 📥 Clonez ce dépôt -. 📦 *Vérifiez les prérequis :* Assurez-vous que toutes les extensions PHP requises sont installées -. 🔧 Configurez votre serveur web (Apache, Nginx, etc.) pour pointer vers le répertoire racine -. 🔒 *Important :* Assurez-vous que votre serveur supporte HTTPS (requis pour PWA) -. 🛡️ *Configuration serveur sécurisée :* Copiez le fichier de configuration approprié depuis `conf/` - -== ⚙️ Configuration - -Le site utilise un système de configuration en deux parties : - -- 📋 `includes/config.php` : La configuration de base (versionnée) -- 🔧 `includes/config.local.php` : Votre configuration locale (non versionnée) - -Pour configurer votre environnement local : - -. Copiez le fichier d'exemple vers le fichier local : +. Cloner le dépôt +. Copier le fichier de configuration : + [source,bash] ---- cp includes/config.local.php.sample includes/config.local.php ---- - -. Modifiez `includes/config.local.php` selon vos besoins : - * URL de l'instance PeerTube - * Clé API - * Catégories à afficher - * Nombre de vidéos par section - * Fuseau horaire par défaut (`DEFAULT_TIMEZONE`) - * etc. - -Les modifications apportées à `config.local.php` ne seront pas suivies par Git, ce qui vous permet de personnaliser votre instance sans affecter le code source principal. - -=== Configuration du fuseau horaire - -Par défaut, le site utilise le fuseau horaire `Indian/Reunion`. Vous pouvez le changer en définissant la constante `DEFAULT_TIMEZONE` dans votre `config.local.php` : - -[source,php] +. Renseigner les variables dans `includes/config.local.php` (voir section Configuration) +. Copier la configuration serveur : ++ +[source,bash] ---- -// Fuseau horaire par défaut pour l'affichage des dates -// Liste des fuseaux disponibles : https://www.php.net/manual/fr/timezones.php -define('DEFAULT_TIMEZONE', 'Indian/Reunion'); +cp conf/.htaccess.sample .htaccess +# ou pour Nginx : +sudo cp conf/nginx.conf.sample /etc/nginx/sites-available/kaubuntu.re ---- - -Cette configuration affecte : - -- L'affichage des dates et heures sur tout le site -- Les annonces de directs à venir avec leurs horaires -- Le système de compte à rebours -- La gestion des fuseaux horaires multiples dans les annonces - -== 🏷️ Personnalisation des catégories - -Pour personnaliser les catégories affichées sur la page d'accueil, modifiez la constante `PRIORITY_CATEGORIES` dans votre fichier `config.local.php` : - -[source,php] ----- -define('PRIORITY_CATEGORIES', [ - 11 => 'Actualité & Politique', - 14 => 'Activisme', - 15 => 'Science & Technologie', - 1 => 'Musique', - // Ajoutez d'autres catégories selon vos besoins -]); ----- - -- Les clés sont les IDs des catégories dans PeerTube -- Les valeurs sont les noms personnalisés que vous souhaitez afficher -- L'ordre dans le tableau détermine l'ordre d'affichage sur la page - -== 🎨 Personnalisation - -Vous pouvez personnaliser l'apparence de la plateforme en modifiant les fichiers CSS dans le dossier `css/`. Pour changer le logo et les couleurs principales: - -. 🖼️ Remplacez le fichier `img/logo.png` par votre propre logo -. 🎨 Modifiez les couleurs dans `css/styles.css` - -== 📝 Personnalisation du sitemap, robots.txt, webmanifest et mentions légales - -Les fichiers `sitemap.xml`, `robots.txt`, `site.webmanifest` et `mentions-legales.php` contiennent des données spécifiques au domaine (`kaubuntu.re`). Pour les adapter à votre domaine : - -. Copiez les fichiers samples pour créer vos propres versions : +. Copier les fichiers domaine-spécifiques : + [source,bash] ---- @@ -207,245 +110,186 @@ cp site.webmanifest.sample site.webmanifest cp mentions-legales.php.sample mentions-legales.php ---- -. Remplacez les placeholders par vos informations réelles : - * `VOTRE-DOMAINE` par votre nom de domaine - * `VOTRE-DATE-MAJ` par la date de dernière mise à jour des mentions légales +== Configuration -Ces fichiers sont listés dans le `.gitignore` afin que vos modifications ne soient pas suivies par Git, ce qui vous permet de personnaliser votre instance sans affecter le code source principal. +Le système de configuration est en deux couches : -== 📺 Annonce du prochain live +- `includes/config.default.php` — valeurs par défaut (versionné) +- `includes/config.local.php` — surcharges locales (non versionné, ignoré par Git) -kaubuntu.re intègre un système d'annonce configurable qui s'affiche automatiquement lorsqu'il n'y a pas de diffusion en direct en cours. - -=== ✨ Fonctionnalités - -- 📅 *Date et heure dynamiques* : Génération automatique à partir de `NEXT_LIVE_DATE` -- 🌍 *Multi-fuseaux horaires* : Affichage automatique pour 5 territoires (Ma'ohi Nui, Martinique/Guadeloupe, Guyane, France, Kanaky) -- ⏰ *Décalage UTC* : Affichage du fuseau horaire de référence (UTC+04:00 pour La Réunion) -- 📅 *Indicateurs de jour* : Affichage des décalages de jour (+1j/-1j) si nécessaire -- 🖼️ *Image personnalisable* : Support des formats Instagram (portrait 4:5, carré 1:1) et paysage (16:9) -- 📱 *Responsive complet* : Layouts adaptés pour desktop (50/50), tablette (vertical), et mobile -- 🔄 *Flexbox intelligent* : Réorganisation automatique des fuseaux horaires selon la largeur d'écran - -=== ⚙️ Configuration - -Pour configurer l'annonce du prochain live, ajoutez dans votre `config.local.php` : +=== Réseaux sociaux [source,php] ---- -// Activer l'annonce du prochain live -define('NEXT_LIVE_ENABLED', true); +define('YOUTUBE_URL', 'https://www.youtube.com/@votre-chaine'); +define('YOUTUBE_HANDLE', 'votre-chaine'); -// Titre (la date sera ajoutée automatiquement) -define('NEXT_LIVE_TITLE', 'Prochain live'); +define('INSTAGRAM_URL', 'https://www.instagram.com/votre-compte/'); +define('INSTAGRAM_HANDLE', 'votre-compte'); -// Description (l'heure sera ajoutée automatiquement) -define('NEXT_LIVE_DESCRIPTION', 'Constitution du futur état réunionnais & Hommage à Thomas Sankara.'); - -// Date du prochain live au format Y-m-d H:i:s -define('NEXT_LIVE_DATE', '2025-10-11 10:00:00'); - -// Chemin vers l'image d'annonce (optionnel) -define('NEXT_LIVE_IMAGE', 'uploads/next-live.jpg'); +define('TIKTOK_URL', 'https://www.tiktok.com/@votre-compte'); +define('TIKTOK_HANDLE', 'votre-compte'); ---- -=== 📁 Gestion des images +=== YouTube — Option A : clé API (recommandée) -. Placez vos images dans le dossier `uploads/` (non tracké par Git) -. Formats recommandés : - * Portrait 4:5 : 1080×1350px ou 1280×1600px - *Idéal* - * Carré 1:1 : 1080×1080px - *Parfait* - * Paysage 16:9 : 1920×1080px -. Optimisez vos images (< 500 Ko recommandé) +Permet la détection des Shorts, les compteurs d'abonnés et les meilleurs résultats de recherche. -=== 🎯 Affichage - -*Desktop (≥1700px)* : Layout 50/50 (image à gauche, informations à droite) - -*Tablette (1025-1699px)* : Hero seul sur une ligne, Mastodon et WordPress côte à côte en dessous - -*Mobile (<769px)* : Stack vertical avec scroll si nécessaire - -=== 🌍 Fuseaux horaires affichés - -L'annonce calcule automatiquement les heures locales pour : - -- *Ma'ohi Nui* (Polynésie française) - UTC-10:00 -- *Martinique / Guadeloupe* - UTC-04:00 -- *Guyane* - UTC-03:00 -- *France* - UTC+02:00 -- *Kanaky* (Nouvelle-Calédonie) - UTC+11:00 - -L'heure de référence (La Réunion, UTC+04:00) est affichée dans le badge principal. - -== 💝 Système de dons - -kaubuntu.re intègre un système de dons configurable qui permet de collecter des contributions via PayPal Me. - -=== ✨ Fonctionnalités - -- 💳 *PayPal Me intégré* : Redirection sécurisée vers votre compte PayPal -- 🎯 *Montants prédéfinis* : Boutons rapides avec montants suggérés -- ✍️ *Montant personnalisé* : Champ libre pour des dons de montant libre -- 🔒 *Sécurisé* : Validation stricte des URLs et protection XSS -- 📱 *Responsive* : Interface optimisée mobile et desktop -- 🎨 *Intégré* : Design cohérent avec la charte graphique du site -- ♿ *Accessible* : Conforme aux standards d'accessibilité - -=== ⚙️ Configuration - -Pour activer le système de dons, ajoutez dans votre `config.local.php` : +. Créer un projet sur https://console.cloud.google.com +. Activer *YouTube Data API v3* +. Créer une clé API (*APIs & Services > Credentials*) + +[source,php] +---- +define('YOUTUBE_API_KEY', 'AIzaSy...'); +define('YOUTUBE_CHANNEL_HANDLE', 'votre-chaine'); +define('YOUTUBE_CHANNEL_ID', 'UC...'); // optionnel si handle défini +define('YOUTUBE_VIDEOS_COUNT', 9); // 3 Shorts + 6 vidéos normales +---- + +NOTE: Le quota gratuit est de 10 000 unités/jour. Chaque chargement non mis en cache coûte ~101 unités (100 pour `search.list` + 1 pour `videos.list`). Avec un cache de 15 minutes, la consommation réelle est très faible. + +=== YouTube — Option B : flux RSS public (sans clé API) + +Aucune détection des Shorts, ordre chronologique uniquement. + +[source,php] +---- +define('YOUTUBE_CHANNEL_ID', 'UC...'); +define('YOUTUBE_VIDEOS_COUNT', 9); +---- + +=== WordPress + +[source,php] +---- +define('WORDPRESS_ENABLED', true); +define('WORDPRESS_URL', 'https://votre-site.com'); +define('WORDPRESS_POSTS_COUNT', 6); +---- + +=== Contenu embarqué optionnel + +Des posts Instagram ou vidéos TikTok spécifiques peuvent remplacer les iframes de profil : + +[source,php] +---- +define('INSTAGRAM_POST_URLS', [ + 'https://www.instagram.com/p/XXX/', +]); + +define('TIKTOK_VIDEO_URLS', [ + 'https://www.tiktok.com/@compte/video/XXXXX', +]); +---- + +=== Fuseau horaire + +[source,php] +---- +define('DEFAULT_TIMEZONE', 'Indian/Reunion'); +---- + +== Annonce du prochain live + +Système d'annonce configurable avec calcul automatique multi-fuseaux (Ma'ohi Nui, Martinique/Guadeloupe, Guyane, France, Kanaky). + +[source,php] +---- +define('NEXT_LIVE_ENABLED', true); +define('NEXT_LIVE_TITLE', 'Prochain live'); +define('NEXT_LIVE_DESCRIPTION', 'Description de l\'événement.'); +define('NEXT_LIVE_DATE', '2025-10-11 10:00:00'); +define('NEXT_LIVE_IMAGE', 'uploads/next-live.jpg'); +---- + +Images supportées : portrait 4:5 (1080×1350px), carré 1:1, paysage 16:9. + +== Système de dons [source,php] ---- -// Activer le système de dons define('DONATIONS_ENABLED', true); - -// URL PayPal Me (sans le montant) -define('PAYPAL_ME_URL', 'https://www.paypal.com/paypalme/votre-compte'); - -// Montants suggérés (optionnel) -define('DONATION_AMOUNTS', [5, 10, 20, 50, 100]); - -// Devise (optionnel, EUR par défaut) +define('PAYPAL_ME_URL', 'https://www.paypal.com/paypalme/votre-compte'); +define('DONATION_AMOUNTS', [5, 10, 20, 50, 100]); define('DONATION_CURRENCY', 'EUR'); ---- -=== 📄 Personnalisation - -. Copiez le fichier sample pour créer votre page de dons : -+ [source,bash] ---- cp dons.sample.php dons.php ---- -. Personnalisez le contenu en remplaçant les placeholders : - * `[VOTRE ORGANISATION]` par le nom de votre organisation - * `[VOTRE CAUSE]` par votre cause/mission - * `[OBJECTIF X]` par vos objectifs spécifiques +== Système de compte à rebours -=== 🎯 Interface utilisateur +Page de maintenance ou de lancement avec compte à rebours multi-fuseaux. -Une fois activé, le système de dons ajoute : +[source,php] +---- +define('COUNTDOWN_ENABLED', true); +define('COUNTDOWN_TARGET_DATE', '2025-10-11 00:00:00'); +---- -- 💝 *Icône cœur rouge* dans le header (sans cadre) -- 📋 *Lien "Soutenir"* dans la sidebar -- 📄 *Page dédiée* accessible via `/dons.php` +== Sécurité -=== 🔒 Sécurité - -Le système intègre plusieurs protections : - -- ✅ *Validation URL PayPal* : Seules les URLs PayPal Me valides sont acceptées -- ✅ *Protection XSS* : Échappement de toutes les sorties utilisateur -- ✅ *Validation montants* : Contrôle des montants min/max -- ✅ *Headers sécurisés* : CSP et autres headers de sécurité -- ✅ *Ouverture sécurisée* : Liens avec `noopener noreferrer` - -== 🛡️ Configuration de sécurité Apache - -Le fichier `conf/.htaccess.sample` fourni inclut des règles de sécurité importantes pour protéger votre installation : - -=== Protections incluses : - -- 🚫 *Blocage des fichiers de configuration* : Empêche l'accès direct aux fichiers `.php`, `.config`, etc. -- 🔒 *Protection des répertoires sensibles* : Bloque l'accès aux dossiers `/includes/`, `/cache/`, `/docs/` -- 🗂️ *Désactivation de l'exploration* : Empêche la liste des fichiers dans les répertoires -- 🔐 *Blocage des fichiers cachés* : Protège les fichiers commençant par `.` -- 📄 *Blocage des fichiers temporaires* : Empêche l'accès aux `.sample`, `.bak`, `.log`, etc. - -=== Installation : +=== Apache [source,bash] ---- cp conf/.htaccess.sample .htaccess ---- -WARNING: Cette configuration est essentielle pour la sécurité de votre installation. Ne pas l'utiliser expose vos fichiers de configuration aux visiteurs. +Le fichier protège les répertoires sensibles (`/includes/`, `/cache/`), bloque l'accès aux `.sample`, `.bak`, `.log`, désactive l'exploration des répertoires. -== 🛡️ Configuration de sécurité Nginx +WARNING: Ne pas déployer sans ce fichier — les fichiers de configuration seraient accessibles publiquement. -Pour les serveurs Nginx, utilisez le fichier `conf/nginx.conf.sample` qui inclut les mêmes protections : - -=== Protections incluses : - -- 🚫 *Blocage des fichiers de configuration* : Empêche l'accès direct aux fichiers sensibles -- 🔒 *Protection des répertoires sensibles* : Bloque l'accès aux dossiers critiques -- 🗂️ *Désactivation de l'exploration* : `autoindex off` -- 🔐 *Blocage des fichiers cachés* : Protection des fichiers commençant par `.` -- 📄 *Optimisations* : Cache, compression gzip, headers de sécurité - -=== Installation : +=== Nginx [source,bash] ---- -# Adaptez les chemins dans conf/nginx.conf.sample puis : sudo cp conf/nginx.conf.sample /etc/nginx/sites-available/votre-site sudo ln -s /etc/nginx/sites-available/votre-site /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx ---- -== 📱 Progressive Web App (PWA) +== Progressive Web App (PWA) -Cette plateforme est une PWA complète offrant : +- Installation native (bouton automatique dans le header) +- Mode hors ligne via Service Worker +- Indicateur visuel de perte de connexion -=== ✨ Fonctionnalités PWA +Compatibilité : Chrome/Edge (Android/Desktop), Safari (iOS 11.3+), Firefox Android, Samsung Internet. -- 📲 *Installation native* : Bouton d'installation automatique dans l'interface -- 🌐 *Mode hors ligne* : Cache intelligent des pages et ressources visitées -- 📡 *Détection d'état* : Indicateur visuel en cas de perte de connexion -- ⚡ *Performance* : Chargement instantané des ressources en cache -- 📱 *Responsive* : Interface adaptée pour l'utilisation en application mobile +[source,bash] +---- +cp site.webmanifest.sample site.webmanifest +---- -=== 📥 Comment installer l'application +== Déploiement (hébergement mutualisé) -. 🔄 *Automatique* : Un bouton "Installer" apparaît dans le header lors de la première visite -. 🔧 *Manuel* : - * 🌐 *Chrome/Edge* : Menu → "Installer kaubuntu.re" - * 🍎 *Safari iOS* : Partager → "Ajouter à l'écran d'accueil" - * 🦊 *Firefox Android* : Menu → "Installer" +. Vérifier que PHP 8.0+ avec les extensions requises est disponible +. Transférer les fichiers via FTP/SFTP +. Créer `includes/config.local.php` sur le serveur +. Vérifier que le dossier `cache/` est accessible en écriture : `chmod 755 cache/` +. Configurer HTTPS -=== 🌐 Compatibilité PWA +== Développement -- ✅ Chrome/Edge (Android/Desktop) -- ✅ Safari (iOS 11.3+) -- ✅ Firefox (Android) -- ✅ Samsung Internet +[source,bash] +---- +git checkout -b ma-fonctionnalite +# ... modifications ... +git commit -m "feat: description courte" +git push origin ma-fonctionnalite +---- -=== 📄 Fichiers PWA +== Licence -- 🔧 `sw.js` : Service Worker gérant le cache et mode offline -- 📋 `site.webmanifest` : Configuration de l'application (nom, icônes, etc.) -- 🪟 `browserconfig.xml` : Support des tuiles Windows - -== 🚀 Déploiement - -Pour déployer sur un serveur mutualisé: - -. 🐘 Assurez-vous que votre hébergeur supporte PHP (version 7.0 minimum recommandée) -. 🔒 *Configurez HTTPS* (obligatoire pour les fonctionnalités PWA) -. 📤 Transférez tous les fichiers via FTP dans le répertoire racine de votre site -. 🔧 Vérifiez que les permissions des fichiers sont correctement définies (644 pour les fichiers, 755 pour les dossiers) -. 🌐 Configurez votre domaine pour pointer vers le dossier où vous avez installé l'application -. 🧪 Testez l'installation PWA via les outils de développement du navigateur - -== 👨‍💻 Développement - -Si vous souhaitez contribuer au développement: - -. 🌿 Créez une branche pour vos modifications: `git checkout -b ma-nouvelle-fonctionnalité` -. 💾 Committez vos changements: `git commit -m 'Ajout d'une nouvelle fonctionnalité'` -. 📤 Poussez vers la branche: `git push origin ma-nouvelle-fonctionnalité` -. 🔀 Soumettez une pull request - -== 📜 License - -Copyright (C) 2025 Cédric Famibelle-Pronzola & *Ka-Ubuntu* +Copyright (C) 2025 *ORGANISATION KA INTERNATIONALE* (OKI) & *Ka-Ubuntu* NOTE: *Ka-Ubuntu* est un parti politique panafricaniste et indépendantiste réunionnais, œuvrant pour la souveraineté numérique et technologique de La Réunion dans une perspective panafricaniste. -=== 🇫🇷 FR +=== FR Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU Affero publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure. @@ -453,7 +297,7 @@ Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GAR Vous devriez avoir reçu une copie de la licence publique générale GNU Affero avec ce programme. Si ce n'est pas le cas, consultez https://www.gnu.org/licenses/. -=== 🇺🇸 EN +=== EN This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. @@ -461,36 +305,10 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/. -== 📊 Analytics et Statistiques +== Contact -=== 🔒 Respect de la vie privée - -Cette plateforme utilise *Plausible Analytics*, une solution d'analyse web respectueuse de la vie privée qui : - -- ✅ *Sans cookies* : Aucun cookie de suivi n'est installé -- ✅ *Conforme RGPD* : Respecte les réglementations européennes sur la protection des données -- ✅ *Open Source* : Code source ouvert et auditable -- ✅ *Données anonymes* : Aucune donnée personnelle collectée -- ✅ *Sans collecte inter-sites* : Pas de profilage des utilisateurs - -=== 📈 Données collectées - -Plausible collecte uniquement des statistiques anonymes : - -- 📍 Pages visitées -- 🌍 Pays d'origine (basé sur l'IP, sans stockage) -- 📱 Type d'appareil (mobile, desktop, tablette) -- 🌐 Navigateur utilisé -- 📊 Temps passé sur le site - -=== ⚙️ Configuration - -Les analytics sont automatiquement activés via le script Plausible intégré dans le `` de chaque page. La configuration est gérée dans `includes/security.php` avec les autorisations CSP appropriées. - -== 📞 Contact - -Pour toute question ou suggestion concernant cette plateforme, veuillez nous contacter à mailto:multimedia@kaubuntu.re[multimedia@kaubuntu.re]. +mailto:zinfoskaubuntu@gmail.com[zinfoskaubuntu@gmail.com] --- -🌍 *Ka-Ubuntu* - _Pour une Réunion libre et souveraine dans l'unité panafricaniste_ ✊🏿 \ No newline at end of file +*Ka-Ubuntu* - _Pour une Réunion libre et souveraine dans l'unité panafricaniste_