997ed7b2eaf05e43ed7b924b0714655ec5bae7ae
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_namespacesaugmenté 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
./build.sh
Construit l'image localement avec le tag localhost/tintounn/my-fedora:latest
Générer une ISO bootable
./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
./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
Description
Languages
Dockerfile
76.2%
Shell
23.8%