Hub développeur — monitoring de projets, dépendances et vulnérabilités.
Un dashboard. Tous tes projets. Zéro angle mort.
Features · Architecture · Stack · Installation · Commandes
Catalog — Importe tes projets depuis GitHub et GitLab. Détection automatique du tech stack (langages, frameworks, versions). Suivi des merge requests et métadonnées.
Dépendances — Scan Composer, npm et pip. Inventaire avec versions courantes, latest et LTS. Classification runtime vs dev. Détection automatique des dépendances obsolètes.
Vulnérabilités — Scan CVE avec classification par sévérité. Suivi du statut (open, acknowledged, fixed, ignored). Zéro surprise en prod.
Dashboard — Stats agrégées, widgets configurables par utilisateur, journal d'activité chronologique avec filtres. Notifications in-app et email.
Temps réel — Mercure pour les push notifications. RabbitMQ + Symfony Messenger pour le traitement asynchrone.
Quatre bounded contexts, des frontières strictes, et Deptrac pour s'assurer que personne ne triche.
- Identity — Authentification JWT, profils, gestion des tokens d'accès providers.
- Catalog — Projets, repos externes, détection de stack, sync metadata.
- Dependency — Inventaire des dépendances, versions LTS, scan CVE.
- Activity — Dashboard, journal d'activité, notifications.
Le backend suit DDD/CQRS. Chaque contexte a sa propre couche Domain, Application, Infrastructure et Presentation. Le frontend Vue.js reflète exactement la même structure par module.
Voir la structure complète
monark/
├── backend/
│ └── src/
│ ├── Identity/ # Auth, profils, tokens
│ ├── Catalog/ # Projets, tech stacks
│ ├── Dependency/ # Dépendances, CVE
│ ├── Activity/ # Dashboard, notifications
│ └── Shared/ # Cross-cutting
│ Each context:
│ ├── Domain/ # Entités, value objects, ports
│ ├── Application/ # Commands, queries, DTOs
│ ├── Infrastructure/ # Repositories, adapters
│ └── Presentation/ # Controllers API
│
├── frontend/src/
│ ├── identity/ # Auth & profils
│ ├── catalog/ # Gestion projets
│ ├── dependency/ # Suivi dépendances
│ ├── activity/ # Dashboard
│ ├── shared/ # Composants, layouts, i18n
│ └── app/ # Router, entry point
│
└── docker/ # Compose, Dockerfiles
| Couche | Technologie |
|---|---|
| Backend | Symfony 8.0, PHP 8.4 |
| Frontend | Vue.js 3, TypeScript, Tailwind CSS 4 |
| Base de données | PostgreSQL 17 |
| Messaging | RabbitMQ 4 + Symfony Messenger |
| Temps réel | Mercure |
| Tests | Pest (PHP), Vitest (TS) |
| Qualité | PHPStan, PHP-CS-Fixer, ESLint, Prettier |
| Mutation testing | Infection |
| Architecture | Deptrac (isolation des bounded contexts) |
| Infra | Docker Compose, Make |
Note
Tout passe par Docker et Make. Aucune dépendance à installer en local.
git clone git@github.com:keyxmare/monark.git
cd monark
make doctor # Vérifie les prérequis
make install # Build, start, install deps, migrate DBC'est tout. L'application tourne sur localhost:3000 (frontend) et localhost:8000 (API).
# Dev quotidien
make up # Démarrer les containers
make down # Stopper les containers
make logs # Suivre les logs
make shell-backend # Shell dans le container PHP
make shell-frontend # Shell dans le container Node
# Qualité
make test # Tests backend + frontend
make lint # Lint complet
make quality # Lint + tests
make ci # CI dashboard (lint, tests, coverage, mutation)
# Base de données
make migrate # Appliquer les migrations
make seed # Charger les fixtures
# Audit
make outdated # Dépendances obsolètes
make audit # Audit de sécuritéMIT · Fait avec Symfony et du café