Militant API wiki

Installation API Militant sur CasaOS

Pages annexes, exemples et details techniques dans une mise en page plus lisible.

Prérequis : Rendre le registry GitLab public

Avant d'installer, le registry GitLab doit être public :

1. Allez sur https://gitlab.com/militant1/militant-api 2. SettingsGeneralVisibility, project features, permissions 3. Descendez à Container registry 4. Cochez "Everyone With Access can pull container images from container registry" 5. Save changes

L'image Docker sera alors accessible publiquement.

Méthode 1 : Installation automatique (recommandé)

1. Ouvrir CasaOS App Store

1. Ouvrir App Center 2. Cliquer sur Custom Install (en haut à droite) 3. Cliquer sur l'icône Docker Compose (en haut à droite)

2. Coller le docker-compose

Copier le contenu de api/docker-compose.casaos.yml et le coller dans CasaOS.

3. Configurer les variables

Avant d'installer, configurer ces variables :

API_DB_HOST=militant.revlibertaire.com
API_DB_NAME=militant
API_DB_USER=militant
API_DB_PASS=ton_mot_de_passe
API_DEBUG=false

Chemin vers le dossier uploads partagé

IMPORTANT: Doit pointer vers le même volume que l'application Militant principale

API_UPLOADS_PATH=/var/www/uploads/

Notifications Push (OneSignal)

ONESIGNAL_APP_ID=VOTRE_APP_ID ONESIGNAL_REST_API_KEY=VOTRE_REST_API_KEY

Note importante sur les uploads:

4. Installer

Cliquer sur Install

L'API sera accessible sur : http://IP-CASAOS:8081

Méthode 2 : Installation manuelle

1. Créer le dossier

sudo mkdir -p /DATA/AppData/militant-api
cd /DATA/AppData/militant-api

2. Télécharger les fichiers API

sudo git clone https://gitlab.com/militant1/millitant.git temp
sudo mv temp/api/* .
sudo rm -rf temp

3. Configurer

sudo cp .env.example .env
sudo nano .env

Modifier :

API_DB_HOST=militant.revlibertaire.com
API_DB_NAME=militant
API_DB_USER=militant
API_DB_PASS=ton_mot_de_passe
API_DEBUG=false

Chemin vers le dossier uploads (ajuster selon votre installation)

API_UPLOADS_PATH=/var/www/militant/uploads/

4. Créer le docker-compose

sudo nano docker-compose.yml

Coller le contenu de api/docker-compose.casaos.yml

5. Lancer

sudo docker compose up -d

Vérification

Tester l'API

curl http://IP-CASAOS:8081/v1/index.php

Doit retourner la liste des endpoints.

Se connecter

curl -X POST http://IP-CASAOS:8081/v1/auth.php \
  -H "Content-Type: application/json" \
  -d '{"username": "ton_username", "password": "ton_password"}'

Voir les logs

Dans CasaOS : 1. Ouvrir l'app Militant API 2. Cliquer sur Logs

Ou en ligne de commande :

sudo docker logs militant-api -f

Configuration avancée

Changer le port

Modifier dans le docker-compose :

ports:
  - "8082:80"  # Au lieu de 8081

Puis :

sudo docker compose down
sudo docker compose up -d

Connexion à la base de données locale

Si Militant est aussi sur CasaOS :

API_DB_HOST=militant-db
API_DB_NAME=militant
API_DB_USER=militant
API_DB_PASS=militant123

Ajouter au docker-compose :

networks:
  - militant-api-network
  - militant_default  # Réseau de Militant

Activer le debug

API_DEBUG=true

Redémarrer :

sudo docker compose restart

Problèmes courants

"Error response from daemon: pull access denied"

Le registry GitLab est privé. Solutions :

Solution 1 : Rendre le registry public (recommandé) 1. https://gitlab.com/militant1/militant-api 2. Settings → General → Visibility 3. Container registry → Cocher "Everyone With Access can pull" 4. Save changes

Solution 2 : Authentification Docker

docker login registry.gitlab.com
Username: votre_username
Password: votre_token_gitlab

Puis relancer l'installation.

"Database connection failed"

Vérifier : 1. Les credentials dans .env 2. Que le serveur MySQL est accessible depuis CasaOS 3. Le firewall du serveur MySQL

Test de connexion :

sudo docker exec militant-api php -r "
\$pdo = new PDO('mysql:host=HOST;dbname=DB', 'USER', 'PASS');
echo 'OK';
"

Port déjà utilisé

Changer le port dans docker-compose :

ports:
  - "8082:80"

Permissions

sudo chown -R 33:33 /DATA/AppData/militant-api
sudo chmod -R 755 /DATA/AppData/militant-api

Mise à jour

Mettre à jour l'API

cd /DATA/AppData/militant-api
sudo git pull
sudo docker compose restart

Sauvegarder la config

Avant de mettre à jour :

sudo cp .env .env.backup

Désinstallation

Via CasaOS

1. Ouvrir l'app Militant API 2. Cliquer sur Uninstall

Manuellement

sudo docker compose down
sudo rm -rf /DATA/AppData/militant-api

Résumé

| Action | Commande | |--------|----------| | Installer | Custom Install dans CasaOS | | Tester | curl http://IP:8081/v1/index.php | | Logs | Logs dans CasaOS ou docker logs militant-api | | Redémarrer | docker compose restart | | Mettre à jour | git pull && docker compose restart |

L'API est maintenant accessible sur ton réseau local !

Accès depuis l'extérieur

Avec Cloudflare Tunnel

1. Installer Cloudflare Tunnel sur CasaOS 2. Créer un tunnel vers http://localhost:8081 3. L'API sera accessible sur https://api.ton-domaine.com

Avec reverse proxy

Configurer Nginx Proxy Manager ou Traefik pour pointer vers http://IP-CASAOS:8081

C'est tout !