Guide d'installation
Ce guide couvre l'installation de WimaZone Billing depuis le dépôt officiel.
Déploiement MikroTik en priorité
Si votre cible principale est MikroTik, commencez par ce parcours :
- Déployez WimaZone Billing sur un serveur ou un hôte Docker (recommandé), puis connectez les routeurs via API.
- Consultez d'abord la page dédiée :
- Pour les workflows container RouterOS et la stratégie d'image :
- Guide Docker
- section README projet : MikroTik RouterOS 7 (container).
- Validez les identifiants API, le port (
8728/8729) et la synchronisation hotspot avant trafic réel.
Cette approche évite de surcharger les containers RouterOS et stabilise l'exécution queue/scheduler.
Prérequis généraux
- PHP : 8.2 ou supérieur (8.4 recommandé)
- Composer : 2.x
- Node.js : 20+ (build frontend)
- Base : SQLite 3.x (dev/MikroTik) ou MySQL 8.0 / MariaDB 11.5 (production)
- Extensions :
mbstring,openssl,json,pdo_sqlite,pdo_mysql
Installation manuelle (Linux/VPS)
Recommandé pour VPS Ubuntu/Debian avec Nginx/Apache.
1. Préparer le système
bash
sudo apt update
sudo apt install git unzip php php-cli php-fpm php-mysql php-sqlite3 php-curl php-mbstring php-xml php-zip2. Cloner le dépôt
bash
cd /var/www/html
git clone https://github.com/ITDev-Success/billing.git
cd billing3. Installer les dépendances
bash
composer install --no-dev --optimize-autoloader
npm ci
npm run build4. Configurer l'environnement
bash
cp .env.example .env
php artisan key:generate5. Base de données
Développement (SQLite) :
bash
touch database/database.sqliteProduction (MySQL/MariaDB) : renseignez les identifiants dans .env :
env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=wimazone
DB_USERNAME=wimazone
DB_PASSWORD=votre-mot-de-passePour un déploiement Docker avec MySQL 8.0 ou MariaDB 11.5, consultez le Guide Docker.
6. Migrations
bash
php artisan migrate --force
php artisan optimize:clearDocker (recommandé)
Pour un déploiement en conteneurs, utilisez :
Serveurs Web
Apache / OpenLiteSpeed
- Définir le
document rootsurpublic/. - Activer la réécriture d'URL.
- Vérifier les permissions d'écriture sur
storage/etbootstrap/cache/.
Nginx
nginx
server {
listen 80;
server_name your-domain.com;
root /var/www/billing/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}Hébergement mutualisé
Possible, mais VPS recommandé pour la fiabilité queue/scheduler.
- Téléverser le code source.
- Pointer le
document rootverspublic/. - Utiliser PHP 8.2+.
- Vérifier extensions et permissions d'écriture.
VPS et Cloud
aaPanel
- Créer le site avec PHP 8.x.
- Régler le Running Directory sur
/public. - Utiliser une règle de réécriture compatible Laravel.
- Vérifier les permissions de l'utilisateur web.
PaaS (Railway / Render / Heroku)
Utiliser un stockage persistant et lancer explicitement les workers queue/scheduler.
Post-installation
- Lancer le worker queue :bash
php artisan queue:work --queue=mikrotik,default --tries=2 --timeout=300 - Ajouter le cron scheduler :cron
* * * * * cd /var/www/billing && php artisan schedule:run >> /dev/null 2>&1 - Configurer les routeurs MikroTik depuis l'interface admin et valider la connectivité API.
Variables critiques en production
Ajouter et vérifier ces variables:
env
APP_ENV=production
APP_DEBUG=false
APP_URL=https://billing.example.com
REDIRECT_URL=https://portail.example.com
SEED_SUPER_ADMIN_EMAIL=admin@example.com
SEED_SUPER_ADMIN_PASSWORD=remplacer-par-un-mot-de-passe-fort
LARAVEL_ENABLE_QUEUE_WORKER=true
LARAVEL_ENABLE_SCHEDULER=true
LARAVEL_QUEUE_WORKER_OPTIONS=--queue=mikrotik,default --tries=1 --timeout=1200 --sleep=2Recommandé pour la stabilité hotspot:
env
HOTSPOT_STATUS_TIMEOUT_SECONDS=2
HOTSPOT_STATUS_CACHE_SECONDS=3
HOTSPOT_STATUS_FAILURE_COOLDOWN_SECONDS=20
MIKROTIK_BOOT_HOTSPOT_SYNC=false
MIKROTIK_BOOT_HOTSPOT_SYNC_PROCESS_NOW=false