Supporting pages, examples and technical details in a cleaner layout.
Avant d'installer, le registry GitLab doit être public :
1. Allez sur https://gitlab.com/militant1/militant-api 2. Settings → General → Visibility, 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.
1. Ouvrir App Center 2. Cliquer sur Custom Install (en haut à droite) 3. Cliquer sur l'icône Docker Compose (en haut à droite)
Copier le contenu de api/docker-compose.casaos.yml et le coller dans CasaOS.
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=falseChemin 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:
uploads que l'application Militant principaledocker-compose.casaos.yml est déjà configuré pour utiliser le volume militant_militant_uploads
Cliquer sur Install
L'API sera accessible sur : http://IP-CASAOS:8081
sudo mkdir -p /DATA/AppData/militant-api
cd /DATA/AppData/militant-api
sudo git clone https://gitlab.com/militant1/millitant.git temp
sudo mv temp/api/* .
sudo rm -rf temp
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=falseChemin vers le dossier uploads (ajuster selon votre installation)
API_UPLOADS_PATH=/var/www/militant/uploads/
sudo nano docker-compose.yml
Coller le contenu de api/docker-compose.casaos.yml
sudo docker compose up -d
curl http://IP-CASAOS:8081/v1/index.php
Doit retourner la liste des endpoints.
curl -X POST http://IP-CASAOS:8081/v1/auth.php \
-H "Content-Type: application/json" \
-d '{"username": "ton_username", "password": "ton_password"}'
Dans CasaOS : 1. Ouvrir l'app Militant API 2. Cliquer sur Logs
Ou en ligne de commande :
sudo docker logs militant-api -f
Modifier dans le docker-compose :
ports:
- "8082:80" # Au lieu de 8081
Puis :
sudo docker compose down
sudo docker compose up -d
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
API_DEBUG=true
Redémarrer :
sudo docker compose restart
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.
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';
"
Changer le port dans docker-compose :
ports:
- "8082:80"
sudo chown -R 33:33 /DATA/AppData/militant-api
sudo chmod -R 755 /DATA/AppData/militant-api
cd /DATA/AppData/militant-api
sudo git pull
sudo docker compose restart
Avant de mettre à jour :
sudo cp .env .env.backup
1. Ouvrir l'app Militant API 2. Cliquer sur Uninstall
sudo docker compose down
sudo rm -rf /DATA/AppData/militant-api
| 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 !
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
Configurer Nginx Proxy Manager ou Traefik pour pointer vers http://IP-CASAOS:8081
C'est tout !