Repository navigation
Home
AkaStack est une "dev box" orientée production, conçue pour offrir aux équipes et aux apprenants un environnement stable, reproductible et évolutif pour les applications web modernes.
Il s'agit de la stack de référence utilisée pour l'onboarding de nos étudiants. Elle n'est pas conçue comme une simple démo, mais comme une fondation professionnelle qui simule les conditions de production et enseigne :
-
Les workflows collaboratifs (Gitflow, CI/CD).
-
La séparation stricte des responsabilités (SoC - Separation of Concerns).
-
La gestion de projets pérennes.
-
La parité des environnements (Dev/Staging/Prod).
AkaStack propose deux approches de virtualisation distinctes. Cette architecture à double voie est intentionnellement conçue pour l'excellence pédagogique :
-
L'approche Vagrant (Maîtrise bas-niveau) : Utilise des scripts de provisionnement Shell et Ansible. Cette voie permet aux étudiants de comprendre le "bare metal" de l'administration Linux, l'orchestration manuelle des services et la gestion de configuration. Maîtriser ce niveau garantit la capacité à opérer dans n'importe quel environnement hérité ou hautement personnalisé.
-
L'approche Docker (Standards industriels modernes) : Utilise la conteneurisation et Docker Compose. Cette voie s'aligne sur les meilleures pratiques actuelles de l'industrie pour les microservices, la portabilité et le déploiement cloud-native.
En maîtrisant les deux, les étudiants comblent le fossé entre la compréhension du fonctionnement des choses (fondamentaux de l'infrastructure) et la manière dont elles sont déployées (automatisation DevOps moderne).
AkaStack livre un environnement Full-Stack basé sur des standards industriels éprouvés, capable d'héberger n'importe quel framework moderne.
-
Apache – Point d'entrée HTTP unique, gestion SSL et Reverse Proxy.
-
Service Backend – Serveur API et/ou logique métier (compatible PHP, Node.js, Python, Go, etc.).
-
Service Frontend – Interface utilisateur moderne (compatible React, Vue, Angular, Svelte, etc.).
-
Base de données relationnelle – Stockage de données structurées (MariaDB).
-
Base de données NoSQL – Stockage orienté documents (MongoDB).
-
Cache & Queuing – Gestion du cache et des files d'attente de tâches (Redis).
PM2 – Gestion du runtime pour les services JavaScript/SSR.
-
Documentation API – Interface de test et documentation des points d'entrée (Swagger UI).
-
MailHog – Interception et test des flux d'emails locaux.
-
Administration DB – Accès simplifié aux données (phpMyAdmin / Mongo Express).
Cette box impose des principes d'ingénierie non négociables :
-
Une responsabilité par service : Chaque composant est isolé.
-
Aucun processus manuel en arrière-plan : Tout processus doit être supervisé.
-
Parité avec la production : Aucun raccourci de développement n'est autorisé à fuiter vers la production.
-
Séparation de l'infrastructure : Le code applicatif et la configuration serveur vivent dans des cycles de vie distincts.
Browser
↓
Apache (reverse proxy)
├── (domain.tld) → Documentation & Infra status
├── www.(domain.tld) → Client Application (Frontend)
├── back.(domain.tld) → Client Application (Backend)
├── api.(domain.tld) → Business Logic (Backend API)
├── swagger.(domain.tld) → API documentation
├── *.(domain.tld)/phpmyadmin → MariaDb administration
├── mongo.(domain.tld) → NoSQL DB Management
├── mail.(domain.tld) → Email testing interface
Ce dépôt est le cœur de l'orchestration. Il ne contient pas de code métier, mais l'intelligence de l'infrastructure :
Configuration Vagrant / VirtualBox & Docker.
Scripts de provisionnement automatisés (Shell & Ansible).
Configuration des services (Apache, Redis, etc.).
Documentation opérationnelle et guides d'onboarding.
Les applications (Frontend & Backend) sont intégrées via des dépôts dédiés (généralement en tant que sous-modules Git), permettant un versionnage indépendant et des pipelines CI distincts.
L'Intégration Continue est proposée via GitHub Actions pour garantir la stabilité de la stack :
-
Analyse statique du code de provisionnement et des playbooks Ansible.
-
Vérification de la cohérence des sous-modules.
-
Tests d'intégration des services.
-
Fail-fast feedback : Aucun changement n'est validé s'il casse l'environnement pour l'équipe ou les étudiants.
AkaStack est l'outil privilégié pour :
-
Nos Étudiants : Pour apprendre à gérer une stack complexe de A à Z, en passant des scripts bas-niveau à la conteneurisation de haut niveau.
-
Les Leads techniques : Pour assurer la cohérence entre tous les postes de travail des développeurs.
-
Les organisations : Nécessitant une traçabilité et une reproductibilité totale de leurs environnements.
Ce projet est distribué sous licence MIT. Vous êtes libre de l'utiliser, de le modifier et de le partager.