Application web d'utilitaires pour le jeu EVE Online permettant de gérer des flottes de minage, des projets industriels, calculer des gains PVE et lancer des alertes intel.
- Backend: Symfony 7.2 + API Platform 3.x
- Runtime PHP: FrankenPHP (PHP 8.4 Alpine)
- Base de données: PostgreSQL 16
- Queue: RabbitMQ
- Cache: Redis
- Auth: JWT (lexik/jwt-authentication-bundle) + OAuth2 EVE ESI
- Docker et Docker Compose
- (Optionnel) Make
- Cloner le repository
git clone <repository-url>
cd evetools- Copier et configurer les variables d'environnement
cp .env.local.example .env.local
# Éditer .env.local avec vos credentials EVE ESI- Construire et démarrer les containers
make build
make up- Installer les dépendances
make install- Générer les clés JWT
make jwt-keys- Créer la base de données et lancer les migrations
make db-create
make db-migrate- Créer une application sur https://developers.eveonline.com/
- Configurer les scopes requis:
esi-assets.read_assets.v1esi-assets.read_corporation_assets.v1esi-characters.read_corporation_roles.v1esi-corporations.read_divisions.v1
- Copier le Client ID et Client Secret dans
.env.local - Générer une clé de chiffrement pour les tokens:
php -r "echo base64_encode(random_bytes(32));"make help # Afficher l'aide
make up # Démarrer les containers
make down # Arrêter les containers
make logs # Voir les logs
make shell # Shell dans le container app
make test # Lancer les tests
make db-migrate # Lancer les migrations
make messenger # Démarrer le consumer messengerGET /auth/eve/redirect- Obtenir l'URL de redirection EVE OAuthGET /auth/eve/callback- Callback OAuthPOST /auth/refresh- Rafraîchir le JWTPOST /auth/logout- Déconnexion
GET /api/me- Infos utilisateur courant
GET /api/me/characters- Liste des charactersPOST /api/me/characters/add- Ajouter un altDELETE /api/me/characters/{id}- Supprimer un altPOST /api/me/characters/{id}/set-main- Définir le main
GET /api/me/characters/{id}/assets- Assets personnelsPOST /api/me/characters/{id}/assets/refresh- Forcer refreshGET /api/me/corporation/assets- Assets corporationPOST /api/me/corporation/assets/refresh- Forcer refresh corp
GET /api/me/corporation- Infos corporation + divisions
make test # Tous les tests
make test-unit # Tests unitaires uniquement
make test-coverage # Tests avec couverturesrc/
├── ApiResource/ # Resources API Platform
├── Controller/ # Controllers Symfony
├── Dto/ # Data Transfer Objects
├── Entity/ # Entities Doctrine
├── EventListener/ # Event Listeners
├── Exception/ # Exceptions personnalisées
├── Message/ # Messages Messenger
├── MessageHandler/ # Handlers Messenger
├── Repository/ # Repositories Doctrine
├── Scheduler/ # Scheduler Symfony
├── Security/ # Voters et listeners sécurité
├── Service/ # Services métier
│ ├── ESI/ # Services ESI (API EVE)
│ └── Sync/ # Services de synchronisation
└── State/ # Providers et Processors API Platform
Proprietary