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

./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
Custom fedora distribition, powered by bootc
Readme 165 KiB
Languages
Dockerfile 76.2%
Shell 23.8%