diff --git a/applications/default.nix b/applications/default.nix new file mode 100644 index 0000000..315933b --- /dev/null +++ b/applications/default.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: + +let + #inherit (lib) mkIf mkMerge mkThenElse; + cfg = config.r6d.config-generator; + computers = config.r6d.computers; + profiles = config.r6d.profiles; +in + +{ + imports = [ + # installées systématiquement + ./default-applications.nix + + # commandées par config-generator + ## option de configuration spécifique + ./cao.nix # de conception assisté par ordinateur & modélisation + ./cartographie.nix # manipuler les données géographiques & cartes + ./developpement.nix # développer des programmes/scripts + ./developpement-elm.nix # développer en elm + ./developpement-haskell.nix # développer en haskell + ./developpement-java.nix # développer en java + ./developpement-jetbrains.nix # outils jetbrains + ./developpement-rust.nix # développer en rust + ./edition-musique.nix # modifier les fichiers musicaux + ./edition-photo.nix # modifier les photos & assimilé + ./edition-video.nix # modifier les vidéos + ./jeux.nix # jouer, tout simplement ;) + + ## if isDesktop + ./adminsys.nix # pour gérer le système dans son ensemble et les services + ./bureau.nix # éléments pour avoir un environement graphique minimal utilisable + ./bureautique.nix # dédiée à la bureautique (traitement de texte, dessin, ...) + ./client-internet.nix # pour accéder & utiliser des ressources par le réseau + ./multimedia.nix # pour gérer le son, l'image et la vidéo + ./network.nix # de gestion, de diagnostique & surveillance réseau + ./securite.nix # relatives à la sécurité (chiffrement, gpg, mots de passe, ...) + ]; +} diff --git a/base.nix b/base.nix index 93e894a..ac2d8d9 100644 --- a/base.nix +++ b/base.nix @@ -12,57 +12,9 @@ in # moulinette de configuration ./config-generator.nix - # installées systématiquement - ./applications/default-applications.nix - ./configuration/environment.nix - ./configuration/localisation.nix - ./configuration/network.nix - #./configuration/network-ipv6.nix - ./configuration/udev.nix - ./services/haveged.nix - ./services/monitoring-munin.nix - ./services/monitoring-smokeping.nix - ./services/ssh.nix - - # commandées par config-generator - ## option de configuration spécifique - ./applications/cao.nix # de conception assisté par ordinateur & modélisation - ./applications/cartographie.nix # manipuler les données géographiques & cartes - ./applications/developpement.nix # développer des programmes/scripts - ./applications/developpement-elm.nix # développer en elm - ./applications/developpement-haskell.nix # développer en haskell - ./applications/developpement-java.nix # développer en java - ./applications/developpement-jetbrains.nix # outils jetbrains - ./applications/developpement-rust.nix # développer en rust - ./applications/edition-musique.nix # modifier les fichiers musicaux - ./applications/edition-photo.nix # modifier les photos & assimilé - ./applications/edition-video.nix # modifier les vidéos - ./applications/jeux.nix # jouer, tout simplement ;) - ./configuration/auto-upgrade.nix # mise à jour automatique du système - ./configuration/awesome.nix # pour le gestionaire de fenêtres awesome - ./configuration/laptop.nix # appli & configuration adaptée pour un PC portable - ./configuration/swap.nix # définition de l'utilisation du swap - ./services/print.nix # configuration de base de cups - ./services/docker.nix # activer docker - ./services/elasticsearch.nix # service de stockage et recher de données - ./services/hoogle.nix # service hoogle pour haskell - ./services/hydra-build.nix # service de construction de paquet. -> la machine compile des paquets - ./services/hydra-core.nix # service pour l'instance d'hydra - ./services/kibana.nix # service de visualisation de données stockées dans elasticsearch - ./services/locate.nix # service locate - ./services/virtualbox.nix # activer virtualbox - ./services/xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad - - ## if isDesktop - ./applications/adminsys.nix # pour gérer le système dans son ensemble et les services - ./applications/bureau.nix # éléments pour avoir un environement graphique minimal utilisable - ./applications/bureautique.nix # dédiée à la bureautique (traitement de texte, dessin, ...) - ./applications/client-internet.nix # pour accéder & utiliser des ressources par le réseau - ./applications/multimedia.nix # pour gérer le son, l'image et la vidéo - ./applications/network.nix # de gestion, de diagnostique & surveillance réseau - ./applications/securite.nix # relatives à la sécurité (chiffrement, gpg, mots de passe, ...) - ./services/pulseaudio.nix # activation du serveur audio - ./services/scanner.nix # utilisation d'un scanner - ./services/x11.nix # activation du serveur graphique X + # subfolders + ./applications/default.nix + ./configuration/default.nix + ./services/default.nix ]; } diff --git a/config-generator.nix b/config-generator.nix index 1795905..dd76969 100644 --- a/config-generator.nix +++ b/config-generator.nix @@ -12,6 +12,7 @@ in # TODO camel case partout # TODO everything in english # TODO sortir ce qui est privé +# TODO portage du système d'annuaire de machines de capgemini ###### interface options = { diff --git a/configuration/default.nix b/configuration/default.nix new file mode 100644 index 0000000..e58bd01 --- /dev/null +++ b/configuration/default.nix @@ -0,0 +1,27 @@ +{ config, lib, pkgs, ... }: + +let + #inherit (lib) mkIf mkMerge mkThenElse; + cfg = config.r6d.config-generator; + computers = config.r6d.computers; + profiles = config.r6d.profiles; +in + +{ + imports = [ + + # installées systématiquement + ./environment.nix + ./localisation.nix + ./network.nix + #./network-ipv6.nix + ./udev.nix + + # commandées par config-generator + ## option de configuration spécifique + ./auto-upgrade.nix # mise à jour automatique du système + ./awesome.nix # pour le gestionaire de fenêtres awesome + ./laptop.nix # appli & configuration adaptée pour un PC portable + ./swap.nix # définition de l'utilisation du swap + ]; +} diff --git a/services/default.nix b/services/default.nix new file mode 100644 index 0000000..88e70ff --- /dev/null +++ b/services/default.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, ... }: + +let + #inherit (lib) mkIf mkMerge mkThenElse; + cfg = config.r6d.config-generator; + computers = config.r6d.computers; + profiles = config.r6d.profiles; +in + +{ + imports = [ + # installées systématiquement + ./haveged.nix + ./monitoring-munin.nix + ./monitoring-smokeping.nix + ./ssh.nix + + # commandées par config-generator + ## option de configuration spécifique + ./print.nix # configuration de base de cups + ./docker.nix # activer docker + ./elasticsearch.nix # service de stockage et recher de données + ./hoogle.nix # service hoogle pour haskell + ./hydra-build.nix # service de construction de paquet. -> la machine compile des paquets + ./hydra-core.nix # service pour l'instance d'hydra + ./kibana.nix # service de visualisation de données stockées dans elasticsearch + ./locate.nix # service locate + ./virtualbox.nix # activer virtualbox + ./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad + + ## if isDesktop + ./pulseaudio.nix # activation du serveur audio + ./scanner.nix # utilisation d'un scanner + ./x11.nix # activation du serveur graphique X + ]; +}