diff --git a/Containerfile b/Containerfile index 5ddfc16..e37489c 100644 --- a/Containerfile +++ b/Containerfile @@ -18,6 +18,7 @@ RUN dnf install -y \ langpacks-fr \ code \ flatpak \ + distrobox \ buildah \ podman \ podman-docker \ @@ -43,7 +44,7 @@ RUN dnf install -y \ gstreamer1-vaapi \ ffmpeg \ xorg-x11-server-Xwayland \ - && dnf remove -y gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found || true \ + && dnf remove -y gnome-software gnome-software-rpm-ostree gnome-system-monitor showtime decibels snapshot PackageKit PackageKit-gstreamer-plugin PackageKit-command-not-found toolbox || true \ && dnf clean all \ && rm -rf /var/cache/dnf diff --git a/README.md b/README.md new file mode 100644 index 0000000..17b2109 --- /dev/null +++ b/README.md @@ -0,0 +1,115 @@ +# My Fedora - Distribution Fedora Personnalisée + +Distribution Fedora 43 personnalisée basée sur Fedora Bootc avec GNOME et un ensemble d'outils de développement préinstallés. + +## Caractéristiques + +### Environnement de Bureau +- **GNOME Desktop** avec support matériel complet +- Configuration des boutons de fenêtre style Windows (minimize, maximize, close) +- Plymouth pour l'animation de démarrage +- Support Vulkan et pilotes AMD + +### Outils de Développement +- **Visual Studio Code** (depuis le dépôt officiel Microsoft) +- **Development Tools** complet +- **Podman** et **Buildah** pour la conteneurisation +- **Podman Compose** pour orchestration +- Support Docker via podman-docker + +### Applications Préinstallées +- **Mullvad VPN** - Client VPN sécurisé +- **Yaak** (dernière version) - Client API REST +- **Filen** - Stockage cloud +- **Bazaar** (Flatpak) - Gestionnaire d'applications +- **CUPS** - Support d'impression (avec cups-pdf) + +### Configuration Système +- **Locale** : Français (fr_FR.UTF-8) +- **Clavier** : AZERTY (fr) +- **Fuseau horaire** : Europe/Paris +- **Système de fichiers root** : Btrfs +- **Flatpak** : Flathub configuré par défaut + +### Optimisations +- `user.max_user_namespaces` augmenté pour Podman +- Support FUSE pour overlayfs +- Mise à jour automatique Bootc désactivée +- GNOME Software supprimé (gestion via Flatpak) + +## Prérequis + +- Fedora avec Buildah et Podman installés +- Accès root pour la génération d'ISO +- Connexion Internet pour télécharger les dépendances + +## Utilisation + +### Construire l'image conteneur + +```bash +./build.sh +``` + +Construit l'image localement avec le tag `localhost/tintounn/my-fedora:latest` + +### Générer une ISO bootable + +```bash +./build-iso.sh +``` + +Construit l'image puis génère une ISO Anaconda dans le répertoire `output/`. L'ISO utilise Btrfs comme système de fichiers root. + +### Publier l'image sur Docker Hub + +```bash +./push-image.sh +``` + +Pousse l'image vers `docker.io/tintounn/my-fedora:latest` + +## Architecture + +- **Base** : `registry.fedoraproject.org/fedora-bootc:42` +- **Type** : Image conteneur bootable (Bootc) +- **Target** : Système graphique (graphical.target) + +## Services Activés + +- GDM (GNOME Display Manager) +- NetworkManager +- Bluetooth +- Podman Socket +- CUPS (Impression) + +## Intégration Continue + +Le projet utilise **Woodpecker CI** avec déclenchement automatique : +- **Sur push** vers la branche `main` +- **Nuit** via un cron nommé "upgrade base image" + +Le pipeline CI construit et publie automatiquement l'image sur Docker Hub. + +## Structure du Projet + +``` +. +├── Containerfile # Définition de l'image +├── build.sh # Script de construction d'image +├── build-iso.sh # Script de génération d'ISO +├── push-image.sh # Script de publication +├── .woodpecker/ +│ └── ci.yaml # Configuration Woodpecker CI +└── output/ # Répertoire de sortie pour les ISO (généré) +``` + +## Notes + +- Les mises à jour automatiques Bootc sont masquées pour un contrôle manuel +- L'image utilise l'isolation chroot lors de la construction +- Le builder d'ISO nécessite des privilèges élevés et l'accès au storage Podman + +## Licence + +Projet personnel