LaNotif
Intro
Serveur
MySQL
Upload
APNs
Firebase
Stripe
Install
Cron
Check

1 Vue d'ensemble

LaNotif est une plateforme de notifications push auto-hebergee. Elle permet d'envoyer des notifications iOS (APNs) et Android (FCM) via une API REST, un dashboard web et une app mobile de gestion.

Avant de commencer Ce guide vous accompagne pour preparer tout ce dont vous aurez besoin AVANT de lancer install.php. Suivez chaque etape dans l'ordre pour une installation sans accroc.
Ce que vous allez configurer
Temps estime

Environ 30 a 45 minutes si vous avez deja un serveur et les comptes developeur Apple / Google.

2 Prerequis serveur

Logiciels requis
Composant Version minimum
PHP >= 8.0
MySQL / MariaDB >= 5.7 / >= 10.3
Apache ou Nginx Derniere version stable
Extensions PHP requises
Verifier les extensions Lancez php -m en SSH pour lister les extensions installees, ou creez un fichier phpinfo.php temporaire.
# Verifier la version PHP
php -v

# Lister les extensions
php -m | grep -iE "pdo|curl|openssl|mbstring|json|fileinfo"

# Installer les extensions manquantes (Ubuntu/Debian)
sudo apt install php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml
Apache : mod_rewrite

Le module mod_rewrite doit etre actif pour les URLs propres de l'API.

# Activer mod_rewrite
sudo a2enmod rewrite
sudo systemctl restart apache2
Nginx ? Si vous utilisez Nginx, vous devrez adapter les regles de rewrite du .htaccess dans votre configuration de vhost. Un exemple est fourni dans nginx.conf.example.

3 Base de donnees MySQL

Creez une base de donnees dediee et un utilisateur avec les permissions appropriees.

Creer la base et l'utilisateur
-- Connectez-vous a MySQL en root
mysql -u root -p

-- Creer la base de donnees
CREATE DATABASE lanotif_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Creer l'utilisateur
CREATE USER 'lanotif_user'@'localhost' IDENTIFIED BY 'VotreMotDePasseSecurise123!';

-- Accorder les permissions
GRANT ALL PRIVILEGES ON lanotif_db.* TO 'lanotif_user'@'localhost';

-- Appliquer
FLUSH PRIVILEGES;
Securite Utilisez un mot de passe fort et unique. N'utilisez jamais le compte root pour l'application.
Informations a noter
ChampExemple
Hotelocalhost
Nom de la baselanotif_db
Utilisateurlanotif_user
Mot de passeVotreMotDePasseSecurise123!

Vous aurez besoin de ces informations lors de l'installation.

4 Upload des fichiers

Transferez les fichiers du projet sur votre serveur via FTP, SFTP ou SSH.

Structure des dossiers
/var/www/lanotif/            # Racine du projet
├── api/                     # Endpoints API REST
├── cron/                    # Scripts cron jobs
├── dashboard/               # Dashboard web
├── includes/                # Classes PHP et helpers
├── keys/                    # Cles APNs et FCM (securise)
│   ├── apns_key.p8          # Cle privee APNs
│   └── firebase_sa.json     # Service account FCM
├── .htaccess                # Regles de rewrite
├── config.php               # Configuration (genere par install.php)
└── install.php              # Installateur
Permissions des fichiers
# Permissions des dossiers
find /var/www/lanotif -type d -exec chmod 755 {} \;

# Permissions des fichiers
find /var/www/lanotif -type f -exec chmod 644 {} \;

# Securiser les cles privees
chmod 600 /var/www/lanotif/keys/apns_key.p8
chmod 600 /var/www/lanotif/keys/firebase_sa.json

# Securiser la config
chmod 600 /var/www/lanotif/config.php
Important Le dossier keys/ ne doit JAMAIS etre accessible depuis le web. Verifiez que votre .htaccess ou configuration Nginx bloque l'acces a ce repertoire.

5 Apple Push Notifications (APNs)

Pour envoyer des notifications push sur iOS, vous devez creer une cle d'authentification APNs dans votre compte Apple Developer.

Prerequis Un compte Apple Developer actif (99 $/an) est necessaire. Rendez-vous sur developer.apple.com.
Etape par etape
  1. Connectez-vous sur developer.apple.com > Account
  2. Dans le menu lateral, cliquez sur Certificates, Identifiers & Profiles
  3. Allez dans Keys (dans la barre de gauche)
  4. Cliquez sur le bouton + pour creer une nouvelle cle
  5. Donnez un nom a la cle (ex: LaNotif APNs Key)
  6. Cochez la case Apple Push Notifications service (APNs)
  7. Cliquez sur Continue puis Register
  8. Telechargez le fichier .p8 — vous ne pourrez le telecharger qu'une seule fois !
  9. Notez le Key ID affiche sur la page (10 caracteres, ex: ABC123DEF4)
Attention Le fichier .p8 ne peut etre telecharge qu'une seule fois. Conservez-le en lieu sur et faites-en une sauvegarde.
Trouver votre Team ID
  1. Sur developer.apple.com, cliquez sur votre nom en haut a droite
  2. Selectionnez Account > Membership Details
  3. Le Team ID est affiche (10 caracteres, ex: ABCDE12345)
Trouver votre Bundle ID
  1. Dans Certificates, Identifiers & Profiles
  2. Cliquez sur Identifiers
  3. Trouvez votre app iOS et notez son Bundle ID (ex: com.votreentreprise.lanotif)
Informations a noter
ChampExemple
Fichier .p8AuthKey_ABC123DEF4.p8
Key IDABC123DEF4
Team IDABCDE12345
Bundle IDcom.votreentreprise.lanotif

6 Firebase Cloud Messaging (FCM)

Pour envoyer des notifications sur Android (et en complement d'APNs), configurez un projet Firebase.

Creer un projet Firebase
  1. Allez sur console.firebase.google.com
  2. Cliquez sur Ajouter un projet (ou selectionnez un projet existant)
  3. Donnez un nom au projet (ex: LaNotif)
  4. Vous pouvez desactiver Google Analytics si non necessaire
  5. Cliquez sur Creer le projet
Obtenir le fichier Service Account
  1. Dans le projet Firebase, cliquez sur l'icone Engrenage > Parametres du projet
  2. Allez dans l'onglet Comptes de service (Service accounts)
  3. Cliquez sur Generer une nouvelle cle privee
  4. Un fichier JSON sera telecharge — c'est votre fichier de credentials FCM
  5. Renommez-le en firebase_sa.json et placez-le dans le dossier keys/
Trouver votre Project ID
  1. Dans les Parametres du projet, onglet General
  2. Le Project ID est affiche (ex: lanotif-12345)
Astuce Le Project ID est aussi present dans le fichier JSON telecharge, dans le champ project_id.
Informations a noter
ChampExemple
Fichier JSONfirebase_sa.json
Project IDlanotif-12345

7 Stripe (optionnel)

Si vous souhaitez monetiser votre service avec des abonnements, configurez un compte Stripe.

Optionnel Cette etape n'est necessaire que si vous activez les plans payants. Vous pouvez la faire plus tard.
Creer un compte Stripe
  1. Inscrivez-vous sur stripe.com
  2. Completez la verification de votre compte
  3. Dans le Dashboard Stripe, allez dans Developers > API keys
  4. Copiez votre Publishable key (commence par pk_)
  5. Copiez votre Secret key (commence par sk_)
Mode Test vs Live Utilisez les cles de test (pk_test_... / sk_test_...) pendant le developpement. Passez aux cles live uniquement en production.
Configurer le Webhook
  1. Dans Stripe, allez dans Developers > Webhooks
  2. Cliquez sur Ajouter un endpoint
  3. URL de l'endpoint : https://votredomaine.com/api/stripe/webhook
  4. Selectionnez les evenements : checkout.session.completed, customer.subscription.updated, customer.subscription.deleted, invoice.payment_succeeded, invoice.payment_failed
  5. Copiez le Webhook signing secret (commence par whsec_)
Informations a noter
ChampExemple
Publishable Keypk_test_...
Secret Keysk_test_...
Webhook Secretwhsec_...

8 Lancer l'installation

Maintenant que tout est prepare, lancez l'installateur web.

Etapes
  1. Ouvrez votre navigateur et allez sur https://votredomaine.com/install.php
  2. L'installateur verifiera automatiquement les prerequis (PHP, extensions, permissions)
  3. Remplissez le formulaire avec les informations collectees dans les etapes precedentes :
    • Connexion MySQL (hote, base, utilisateur, mot de passe)
    • Cle APNs (.p8), Key ID, Team ID, Bundle ID
    • Fichier FCM JSON, Project ID
    • Cles Stripe (si applicable)
    • URL du serveur et compte administrateur
  4. Cliquez sur Installer — l'installateur creera les tables et le fichier config.php
  5. Une fois l'installation terminee, supprimez install.php pour des raisons de securite
Securite critique Supprimez ou renommez install.php immediatement apres l'installation. Ce fichier permet de reinitialiser completement votre instance.
# Supprimer l'installateur apres usage
rm /var/www/lanotif/install.php

# Ou le deplacer hors de la racine web
mv /var/www/lanotif/install.php /var/www/lanotif_backup/

9 Configuration des cron jobs

Les cron jobs sont indispensables pour le traitement asynchrone des notifications.

Les 5 cron jobs a configurer
ScriptFrequenceRole
push_worker.php Toutes les minutes Envoie les notifications push en file d'attente
digest_worker.php Toutes les 5 min Compile et envoie les digests groupes
dispatch_worker.php Toutes les minutes Dispatche les notifications vers les abonnes
scheduled_publisher.php Toutes les minutes Publie les notifications planifiees
cleanup.php 1x par jour Nettoie les anciennes donnees et tokens expires
Editer la crontab
# Ouvrir l'editeur crontab
crontab -e

# Ajouter les lignes suivantes :

# Push worker — toutes les minutes
* * * * * /usr/bin/php /var/www/lanotif/cron/push_worker.php >> /var/log/lanotif/push.log 2>&1

# Digest worker — toutes les 5 minutes
*/5 * * * * /usr/bin/php /var/www/lanotif/cron/digest_worker.php >> /var/log/lanotif/digest.log 2>&1

# Dispatch worker — toutes les minutes
* * * * * /usr/bin/php /var/www/lanotif/cron/dispatch_worker.php >> /var/log/lanotif/dispatch.log 2>&1

# Scheduled publisher — toutes les minutes
* * * * * /usr/bin/php /var/www/lanotif/cron/scheduled_publisher.php >> /var/log/lanotif/scheduled.log 2>&1

# Cleanup — tous les jours a 3h du matin
0 3 * * * /usr/bin/php /var/www/lanotif/cron/cleanup.php >> /var/log/lanotif/cleanup.log 2>&1
Astuce Creez le dossier de logs avant : sudo mkdir -p /var/log/lanotif && sudo chown www-data: /var/log/lanotif
Verifier les cron jobs
# Lister les cron jobs actifs
crontab -l

# Tester manuellement un script
/usr/bin/php /var/www/lanotif/cron/push_worker.php

# Verifier les logs
tail -f /var/log/lanotif/push.log

10 Verification finale

Verifiez que tout fonctionne correctement apres l'installation.

Tester l'API
# Verifier que l'API repond
curl -s https://votredomaine.com/api/health | python3 -m json.tool

# Reponse attendue :
{
    "status": "ok",
    "version": "1.0"
}

# Tester l'authentification
curl -s -H "Authorization: Bearer VOTRE_TOKEN" \
  https://votredomaine.com/api/device/info | python3 -m json.tool
Verifications de securite
# Verifier que les fichiers sensibles sont proteges
curl -s -o /dev/null -w "%{http_code}" https://votredomaine.com/config.php
# Doit retourner 403 ou 404

curl -s -o /dev/null -w "%{http_code}" https://votredomaine.com/keys/apns_key.p8
# Doit retourner 403 ou 404
Tester le dashboard
  1. Ouvrez https://votredomaine.com/dashboard/
  2. Connectez-vous avec le device token cree lors de l'installation
  3. Creez un flux de test et envoyez une notification
  4. Verifiez que la notification apparait dans le dashboard et sur votre appareil
Felicitations ! Si tout fonctionne, votre instance LaNotif est prete. Vous pouvez maintenant configurer vos flux et commencer a envoyer des notifications push.