56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
|
|
# Architecture Erminig
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Vue Globale
|
||
|
|
|
||
|
|
Erminig est une forge artisanale en 3 piliers :
|
||
|
|
|
||
|
|
- **Evezh** : Veille logicielle, détection de nouvelles versions.
|
||
|
|
- **Govel** : Construction et maintenance des paquets à partir des fichiers Pakva.
|
||
|
|
- **Keo** : Gestion du dépôt de paquets et mise à disposition publique.
|
||
|
|
|
||
|
|
Chaque module est indépendant, mais communique par base de données et sockets.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Détails
|
||
|
|
|
||
|
|
| Module | Rôle | Langage | Communication |
|
||
|
|
|:-------|:-----|:--------|:---------------|
|
||
|
|
| Evezh | Check des versions upstream | Python 3.13 | SQLite |
|
||
|
|
| Govel | Build + révision + création Pakva | Python 3.13 | SQLite, fichiers système |
|
||
|
|
| Keo | Mirroir de paquets `.bzh` | À venir | SQLite, HTTP (futur) |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Dossiers critiques
|
||
|
|
|
||
|
|
| Dossier | Contenu |
|
||
|
|
|:--------|:--------|
|
||
|
|
| `/var/lib/erminig` | Données persistantes (db, Pakva, builds, etc.) |
|
||
|
|
| `/var/cache/erminig` | Temporaire (compilations, archives, logs) |
|
||
|
|
| `/opt/erminig` | Sources du projet installées |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Principes
|
||
|
|
|
||
|
|
- **KISS** : Keep it simple, stupid.
|
||
|
|
- **Séparation stricte** entre utilisateur système (`pak`) et root.
|
||
|
|
- **Aucune dépendance inutile.**
|
||
|
|
- **Logs clairs** pour tout ce qui est critique.
|
||
|
|
- **Architecture modulaire.**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
# Motto
|
||
|
|
|
||
|
|
> **Un système simple.
|
||
|
|
> Une forge robuste.
|
||
|
|
> Un esprit libre.**
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
# FIN
|