Compare commits
29 Commits
2017-03-20
...
2017-04-22
| Author | SHA1 | Date | |
|---|---|---|---|
| c6fc32fbe7 | |||
|
|
42db758638 | ||
|
|
07d8924ecd | ||
|
|
2dc04d849b | ||
| 184de980a5 | |||
|
|
f16e4d8934 | ||
| e204ffb841 | |||
| 8c0a18a55b | |||
| fd834eb186 | |||
| f12b21f620 | |||
| 09212b7b67 | |||
| b518d9a525 | |||
| bda5db0417 | |||
| 37ae56a380 | |||
|
|
50085c2961 | ||
|
|
40426c1ad2 | ||
|
|
c1d112a10a | ||
|
|
9997092984 | ||
|
|
da41826e33 | ||
|
|
708e5fcbce | ||
|
|
097472cca0 | ||
|
|
eeb4543f1f | ||
|
|
4660f79017 | ||
|
|
3963027f04 | ||
|
|
156cbc8c27 | ||
|
|
a51024633f | ||
|
|
c8f8ad898d | ||
|
|
937565f885 | ||
|
|
15ce896f9c |
3
Makefile
3
Makefile
@@ -41,6 +41,9 @@ download-sources:
|
||||
# https://nixos.org/wiki/Download_all_sources
|
||||
nix-store -r $$(grep -l outputHash $$(nix-store -qR $$(nix-instantiate '<nixpkgs>' -A geeqie) | grep '.drv$$'))
|
||||
|
||||
build-iso:
|
||||
nix-build '<nixpkgs/nixos>' -A config.system.build.isoImage -I nixos-config=/etc/nixos/base/iso-image/livecd-minimal.nix
|
||||
|
||||
##--------- Commandes spécifiques pour GIT
|
||||
|
||||
push: submodules-push
|
||||
|
||||
18
applications/graphical/adminsys.nix
Normal file
18
applications/graphical/adminsys.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.graphical {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Gestion de FS
|
||||
gparted # Gestion graphique de partitions
|
||||
unetbootin # création de clefs USB bootables
|
||||
];
|
||||
}
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
mkIf profiles.isDesktopEnvironment {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -33,7 +33,7 @@ mkIf profiles.isDesktop {
|
||||
];
|
||||
|
||||
# Polices supplémentaires
|
||||
fonts.fonts = with pkgs; mkIf profiles.isDesktop [
|
||||
fonts.fonts = with pkgs; [
|
||||
fira # police créée pour Firefox
|
||||
fira-code # idem fira-mono + ligatures pour la programmation
|
||||
fira-mono # dérivée de fira en monospace
|
||||
@@ -46,5 +46,7 @@ mkIf profiles.isDesktop {
|
||||
# pour le montage des media amovibles
|
||||
devmon.source = "${pkgs.udevil}/bin/devmon";
|
||||
udevil.source = "${pkgs.udevil}/bin/udevil"; # utilisé par spacefm
|
||||
# vérouiller l''écran. "cannot disable the out-of-memory killer for this process (make sure to suid or sgid slock)" --> en root
|
||||
slock.source = "${pkgs.slock}/bin/slock";
|
||||
};
|
||||
}
|
||||
37
applications/graphical/bureautique.nix
Normal file
37
applications/graphical/bureautique.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.officeSuite && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Bureautique
|
||||
gnumeric # tableur
|
||||
#kde4.ksnapshot# réalisation de capture d'écran
|
||||
|
||||
## Cartes mentales
|
||||
freemind
|
||||
|
||||
## Diagrammes & Schémas
|
||||
dia # dessin & schéma technique
|
||||
|
||||
## Editeur de texte
|
||||
#lyx # surcouche WISIWIM à LaTeX
|
||||
#focuswriter # outil pour l'écriture
|
||||
textadept # un éditeur de texte facile pour copier-coller graphique
|
||||
#zim # outil de prise de notes, wiki de bureau
|
||||
|
||||
## Visionneuse
|
||||
#kde5.okular # pdf
|
||||
mcomix # livres (cbr, liste d'images), gestion d'une bibliothèque
|
||||
pdfpc # pdf
|
||||
qpdfview # pdf
|
||||
gqview # visionneuse image & gestion basique de collection
|
||||
];
|
||||
}
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.conception-assistee {
|
||||
mkIf (cfg.conception-assistee && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -7,13 +7,11 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.cartographie {
|
||||
mkIf (cfg.cartographie && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Gestion de données géographiques
|
||||
expat
|
||||
gpsbabel # pour convettir les données des GPS
|
||||
josm # outil de contribution à OpenStreetMap
|
||||
#qgis # client lourd de manipulation de données géographiques
|
||||
viking # analyse de topo, gestion de données GPS
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
# TODO: ménage
|
||||
mkIf profiles.isDesktop {
|
||||
mkIf (cfg.internetSuite && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -17,18 +17,12 @@ environment.systemPackages = with pkgs; [
|
||||
chromium
|
||||
firefox
|
||||
|
||||
## Réseaux sociaux
|
||||
#python27Packages.turses # client twitter en ncurse
|
||||
python27Packages.rainbowstream # client twitter en console
|
||||
rtv # client reddit en console
|
||||
|
||||
## Mail & Discussion (texte, audio)
|
||||
clawsMail
|
||||
hexchat
|
||||
quassel
|
||||
quasselClient
|
||||
mumble
|
||||
mutt
|
||||
pidgin
|
||||
thunderbird
|
||||
|
||||
@@ -53,5 +47,4 @@ environment.systemPackages = with pkgs; [
|
||||
#nixpkgs.config.permittedInsecurePackages = [
|
||||
# "webkitgtk-2.4.11" # pour que le plugin fancy de claws-mail fonctionne
|
||||
#];
|
||||
|
||||
}
|
||||
15
applications/graphical/default-applications.nix
Normal file
15
applications/graphical/default-applications.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (true && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
}
|
||||
39
applications/graphical/default.nix
Normal file
39
applications/graphical/default.nix
Normal file
@@ -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, ...)
|
||||
];
|
||||
}
|
||||
25
applications/graphical/developpement-elm.nix
Normal file
25
applications/graphical/developpement-elm.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.developpement-elm && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
|
||||
# Services
|
||||
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
18
applications/graphical/developpement-haskell.nix
Normal file
18
applications/graphical/developpement-haskell.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.developpement-haskell && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
] ++ (with pkgs.haskellPackages; [
|
||||
# Haskell lib
|
||||
threadscope # visualisation des threads (<bidule>.eventlog)
|
||||
]);
|
||||
}
|
||||
17
applications/graphical/developpement-java.nix
Normal file
17
applications/graphical/developpement-java.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.developpement-java && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# IDE
|
||||
idea.idea-community # IntelliJ IDEA
|
||||
];
|
||||
}
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.jetbrains-licensed {
|
||||
mkIf (cfg.jetbrains-licensed && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
15
applications/graphical/developpement-rust.nix
Normal file
15
applications/graphical/developpement-rust.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.developpement-rust && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
}
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.developpement {
|
||||
mkIf (cfg.developpement && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -15,29 +15,18 @@ mkIf cfg.developpement {
|
||||
pgadmin # interface d'administration de postgres
|
||||
sqlitebrowser # interface d'administration de sqlite
|
||||
|
||||
# C / C++
|
||||
gcc # pour les appels depuis les scripts
|
||||
|
||||
# Documentation
|
||||
#zeal # consulter la documentation hors ligne
|
||||
|
||||
# Gestion des sources
|
||||
cloc # outil pour compter les lignes de code source
|
||||
git # déjà présent dans "base"
|
||||
#gitg # interface pour utiliser git (historique, commit)
|
||||
gitstats # génère un site web statique avec des statistiques
|
||||
gitAndTools.gitFull # pour gitk
|
||||
git-cola # interface pour utiliser git (historique, commit)
|
||||
mercurial
|
||||
subversion
|
||||
|
||||
# Mono
|
||||
#mono46 # interpréteur .NET
|
||||
|
||||
## Visualisation & outils de diff
|
||||
#gource # visualisation en mouvement de l'historique git
|
||||
meld # outil de comparaison graphique
|
||||
#vbindiff # diff de fichier hexadecimaux avec vim
|
||||
|
||||
# Editeur texte
|
||||
atom
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.edition-musique {
|
||||
mkIf (cfg.edition-musique && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -7,18 +7,13 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.edition-photo {
|
||||
mkIf (cfg.edition-photo && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Méta données
|
||||
exif
|
||||
exiftags
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Retouche, modification & dessin vectoriel
|
||||
gimp # logiciel d'édition/montage/retouche photo
|
||||
inkscape # édition d'image vectorielle (svg & autre)
|
||||
imagemagick # modification image en CLI
|
||||
#rawtherapee # développemen de photos en RAW
|
||||
|
||||
# TEST d'outil de gestion de catalogue de photos
|
||||
18
applications/graphical/edition-video.nix
Normal file
18
applications/graphical/edition-video.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.edition-video && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Vidéo
|
||||
#cinelerra # editeur video
|
||||
pitivi # montage vidéo
|
||||
];
|
||||
}
|
||||
17
applications/graphical/jeux.nix
Normal file
17
applications/graphical/jeux.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.jeux && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Jeux
|
||||
urbanterror
|
||||
];
|
||||
}
|
||||
@@ -7,19 +7,14 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
# TODO ranger le spécifique pulseaudio
|
||||
mkIf (cfg.multimediaSuite && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Multimedia
|
||||
|
||||
## Audio
|
||||
beep
|
||||
cmus # lecteur audio console
|
||||
espeak # synthèse vocale
|
||||
paprefs # préferences pulseaudio
|
||||
pavucontrol # mixer pulseaudio
|
||||
vorbis-tools # codec
|
||||
|
||||
## Video
|
||||
smplayer # lecteur vidéo
|
||||
17
applications/graphical/network.nix
Normal file
17
applications/graphical/network.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (true && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
## Diagnostic
|
||||
wireshark
|
||||
];
|
||||
}
|
||||
17
applications/graphical/securite.nix
Normal file
17
applications/graphical/securite.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf (cfg.securitySuite && cfg.graphical) {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome3.seahorse # gestionnaire graphique de clef GPG
|
||||
#yubikey-personalization-gui # utilisation de la clef Yubikey
|
||||
];
|
||||
}
|
||||
@@ -50,13 +50,5 @@ mkIf true {
|
||||
detox # The detox utility renames files to make them easier to work with.
|
||||
duff # outil de recherche de fichiers en doublons
|
||||
rdfind # recherche de fichiers doublons pour remplacement par hard/soft link
|
||||
|
||||
(mkIf profiles.isDesktop
|
||||
## Gestion de FS
|
||||
gparted # Gestion graphique de partitions
|
||||
)
|
||||
(mkIf profiles.isDesktop
|
||||
unetbootin # création de clefs USB bootables
|
||||
)
|
||||
];
|
||||
}
|
||||
17
applications/terminal/bureau.nix
Normal file
17
applications/terminal/bureau.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf true {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
## Manipulation de fichier
|
||||
vifm # gestionnaire de fichiers basé sur VIM (console)
|
||||
];
|
||||
}
|
||||
@@ -7,37 +7,16 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
mkIf cfg.officeSuite {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Bureautique
|
||||
aspell aspellDicts.fr # correction d'ortographe
|
||||
gnumeric # tableur
|
||||
#kde4.ksnapshot# réalisation de capture d'écran
|
||||
|
||||
# Gestion de tâche
|
||||
taskwarrior # gestionnaire de tâches en console
|
||||
|
||||
## Cartes mentales
|
||||
freemind
|
||||
|
||||
## Diagrammes & Schémas
|
||||
dia # dessin & schéma technique
|
||||
|
||||
## Editeur de texte
|
||||
#lyx # surcouche WISIWIM à LaTeX
|
||||
#focuswriter # outil pour l'écriture
|
||||
textadept # un éditeur de texte facile pour copier-coller graphique
|
||||
#zim # outil de prise de notes, wiki de bureau
|
||||
|
||||
## Visionneuse
|
||||
#kde5.okular # pdf
|
||||
mcomix # livres (cbr, liste d'images), gestion d'une bibliothèque
|
||||
pdfpc # pdf
|
||||
qpdfview # pdf
|
||||
gqview # visionneuse image & gestion basique de collection
|
||||
|
||||
## Convertisseurs (texte -> <autre format>)
|
||||
gnuplot # générateur de graphes à partir de données numériques
|
||||
graphviz # dot, neato : traçage de graphes (carré, rond)
|
||||
15
applications/terminal/cao.nix
Normal file
15
applications/terminal/cao.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.conception-assistee {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
}
|
||||
18
applications/terminal/cartographie.nix
Normal file
18
applications/terminal/cartographie.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.cartographie {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Gestion de données géographiques
|
||||
expat
|
||||
gpsbabel # pour convertir les données des GPS
|
||||
];
|
||||
}
|
||||
27
applications/terminal/client-internet.nix
Normal file
27
applications/terminal/client-internet.nix
Normal file
@@ -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
|
||||
# TODO: ménage
|
||||
mkIf cfg.internetSuite {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Clients Internet
|
||||
|
||||
## Réseaux sociaux
|
||||
#python27Packages.turses # client twitter en ncurse
|
||||
python27Packages.rainbowstream # client twitter en console
|
||||
rtv # client reddit en console
|
||||
|
||||
## Mail & Discussion (texte, audio)
|
||||
mutt
|
||||
|
||||
## Sauvegarde nuagique (cloud storage)
|
||||
rclone
|
||||
];
|
||||
}
|
||||
42
applications/terminal/default-applications.nix
Normal file
42
applications/terminal/default-applications.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf true {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
bind # utilisé pour les utilitaires comme dig
|
||||
byobu # permet de se déconnecter d'un terminal sans l'aréter
|
||||
dhcp # client dhcp
|
||||
git gitAndTools.gitSVN gitAndTools.tig gti # outil de gestion de version
|
||||
gnumake # pour décrire les recettes de compilation
|
||||
gnupg # GPG
|
||||
gpm # prise en charge de la souris en console
|
||||
htop # monitoring
|
||||
lsb-release # pour les scripts qui utilisent cet outil
|
||||
#libressl # librairie pour faire du TLS et les algorithmes de crypto par OpenBSD
|
||||
ncdu # outil pour voir l'espace utilisé
|
||||
par2cmdline # outil de récupération de fichiers corrompus - .par2
|
||||
p7zip # compression de fichier
|
||||
parted # partitionnement de disque
|
||||
pciutils
|
||||
pinentry # pour taper les mots de passe gpg
|
||||
psmisc # fournis les utilitaires comme killall, fuser, pstree
|
||||
python # python -- python -m SimpleHTTPServer 8000
|
||||
#python34Packages.glances # monitoring
|
||||
pwgen # générateur de mot de passe
|
||||
rtorrent # TODO outil de téléchargement de torrent & magnet
|
||||
tmux # nécessaire pour byobu
|
||||
tree # affiche une arborescence de fichiers et dossiers
|
||||
usbutils
|
||||
(import ./vim.nix)
|
||||
wget # client HTTP console
|
||||
which # pour connaitre le chemin d'un exécutable
|
||||
];
|
||||
}
|
||||
39
applications/terminal/default.nix
Normal file
39
applications/terminal/default.nix
Normal file
@@ -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, ...)
|
||||
];
|
||||
}
|
||||
@@ -25,7 +25,6 @@ mkIf cfg.developpement-haskell {
|
||||
hlint # qualite de code, analyse statique de code + astuces & bonnes pratiques
|
||||
#postgrest # mapper HTTP <-> PostgreSQL
|
||||
stylish-haskell # qualité de code
|
||||
threadscope # visualisation des threads (<bidule>.eventlog)
|
||||
turtle # genre shell-scripting
|
||||
|
||||
# Application perso
|
||||
@@ -11,9 +11,6 @@ mkIf cfg.developpement-java {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# IDE
|
||||
idea.idea-community # IntelliJ IDEA
|
||||
|
||||
# Java
|
||||
maven
|
||||
openjdk
|
||||
15
applications/terminal/developpement-jetbrains.nix
Normal file
15
applications/terminal/developpement-jetbrains.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.jetbrains-licensed {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
}
|
||||
29
applications/terminal/developpement.nix
Normal file
29
applications/terminal/developpement.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.developpement {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# C / C++
|
||||
gcc # pour les appels depuis les scripts
|
||||
|
||||
# Gestion des sources
|
||||
cloc # outil pour compter les lignes de code source
|
||||
git # déjà présent dans "base"
|
||||
mercurial
|
||||
subversion
|
||||
|
||||
# Mono
|
||||
#mono46 # interpréteur .NET
|
||||
|
||||
## Visualisation & outils de diff
|
||||
#vbindiff # diff de fichier hexadecimaux avec vim
|
||||
];
|
||||
}
|
||||
15
applications/terminal/edition-musique.nix
Normal file
15
applications/terminal/edition-musique.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.edition-musique {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
];
|
||||
}
|
||||
21
applications/terminal/edition-photo.nix
Normal file
21
applications/terminal/edition-photo.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.edition-photo {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Méta données
|
||||
exif
|
||||
exiftags
|
||||
|
||||
# Retouche, modification & dessin vectoriel
|
||||
imagemagick # modification image en CLI
|
||||
];
|
||||
}
|
||||
@@ -11,9 +11,6 @@ mkIf cfg.edition-video {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Vidéo
|
||||
#cinelerra # editeur video
|
||||
pitivi # montage vidéo
|
||||
ffmpeg-full # assemblage de flux audio & video en ligne de commande
|
||||
];
|
||||
|
||||
@@ -11,7 +11,5 @@ mkIf cfg.jeux {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Jeux
|
||||
urbanterror
|
||||
];
|
||||
}
|
||||
20
applications/terminal/multimedia.nix
Normal file
20
applications/terminal/multimedia.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.multimediaSuite {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
## Audio
|
||||
beep
|
||||
cmus # lecteur audio console
|
||||
espeak # synthèse vocale
|
||||
vorbis-tools # codec
|
||||
];
|
||||
}
|
||||
@@ -8,7 +8,6 @@ let
|
||||
in
|
||||
|
||||
mkIf true {
|
||||
#mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -21,7 +20,6 @@ mkIf true {
|
||||
## Diagnostic
|
||||
arp-scan
|
||||
nmap # outil de scan de port réseau
|
||||
#wireshark
|
||||
whois
|
||||
];
|
||||
|
||||
17
applications/terminal/securite.nix
Normal file
17
applications/terminal/securite.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.securitySuite {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
pass # gestionnaire de mots de passe
|
||||
pwgen # générateur de mots de passe
|
||||
];
|
||||
}
|
||||
9
base.nix
9
base.nix
@@ -9,10 +9,13 @@ in
|
||||
|
||||
{
|
||||
imports = [
|
||||
# recettes
|
||||
./public/public.nix
|
||||
|
||||
# moulinette de configuration
|
||||
./config-generator.nix
|
||||
|
||||
# subfolders
|
||||
./applications/graphical/default.nix
|
||||
./applications/terminal/default.nix
|
||||
./configuration/default.nix
|
||||
./services/default.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -9,7 +9,10 @@ let
|
||||
in
|
||||
|
||||
{
|
||||
# TODO: ménage
|
||||
# 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 = {
|
||||
@@ -20,8 +23,7 @@ in
|
||||
isDubronetwork = mkEnableOption "Pour distinguer les machines dubronetwork.";
|
||||
isPrunetwork = mkEnableOption "Pour distinguer les machines prunetwork.";
|
||||
# Utilisation machine
|
||||
isDesktop = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
||||
isHome = mkEnableOption "Pour indiquer que la machine sert à la maison (divertissement & autre).";
|
||||
isDesktopEnvironment = mkEnableOption "Pour indiquer une machine avec interface graphique.";
|
||||
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
|
||||
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
|
||||
};
|
||||
@@ -48,22 +50,28 @@ in
|
||||
edition-video = mkEnableOption "Profil pour la création/édition de video.";
|
||||
elasticsearch = mkEnableOption "Profil pour activer le service elasticsearch.";
|
||||
fail2ban = mkEnableOption "Profil pour activer Fail2ban.";
|
||||
graphical = mkEnableOption "Profil pour activer les applications graphgiques.";
|
||||
hydra-builder = mkEnableOption "Profil pour une machine qui compile pour hydra.";
|
||||
hydra-core = mkEnableOption "Profil pour un serveur hydra.";
|
||||
kibana = mkEnableOption "Profil pour activer le service kibana.";
|
||||
internetSuite = mkEnableOption "Profil pour la suite de logiciels pour Internet.";
|
||||
jetbrains-licensed = mkEnableOption "Profil pour la suite de développement Jetbrains payante (sous-ensemble).";
|
||||
jeux = mkEnableOption "Profil pour les jeux vidéos.";
|
||||
laptop = mkEnableOption "Profil pour les outils spécifiques aux ordinateurs portables.";
|
||||
locate = mkEnableOption "Profil pour activer la fonction locate.";
|
||||
mailboxes = mkEnableOption "Profil pour stocker les mails dans des boîtes aux lettres.";
|
||||
multimediaSuite = mkEnableOption "Profil pour la suite multimédia.";
|
||||
murmur = mkEnableOption "Profil pour activer un serveur Mumble (murmur)";
|
||||
nix-serve-client = mkEnableOption "Profil pour que la machine soit un client de cache nix.";
|
||||
nix-serve-server = mkEnableOption "Profil pour que la machine soit un serveur de cache nix.";
|
||||
nixStoreProxyCache = mkEnableOption "Profil pour activer le proxy cahce nginx pour le nix store";
|
||||
officeSuite = mkEnableOption "Profil pour la suite bureautique";
|
||||
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
|
||||
pulseaudio = mkEnableOption "Profil pour activer pulseaudio.";
|
||||
rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP.";
|
||||
radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts.";
|
||||
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
|
||||
securitySuite = mkEnableOption "Profil pour la suite de logiciels de sécurité.";
|
||||
smokeping = mkEnableOption "Profil pour activer le monitoring réseau par smokeping.";
|
||||
swap = mkEnableOption "Profil pour que le swap soit activé.";
|
||||
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
|
||||
@@ -107,16 +115,16 @@ in
|
||||
config = mkMerge
|
||||
[
|
||||
## Définition des profils génériques
|
||||
(mkIf pfl.isDesktop {
|
||||
(mkIf pfl.isDesktopEnvironment {
|
||||
r6d.config-generator = {
|
||||
awesome = true;
|
||||
#nix-serve-client = true;
|
||||
scanner = true;
|
||||
internetSuite = true;
|
||||
multimediaSuite = true;
|
||||
officeSuite = true;
|
||||
pulseaudio = true;
|
||||
securitySuite = true;
|
||||
};
|
||||
})
|
||||
(mkIf pfl.isHome {
|
||||
r6d.profiles.isDesktop = true;
|
||||
})
|
||||
(mkIf (pfl.isServer && !comp.isMonstre) {
|
||||
r6d.config-generator = {
|
||||
#database_postgres = true;
|
||||
@@ -136,10 +144,11 @@ in
|
||||
};
|
||||
})
|
||||
(mkIf pfl.isWorkstation {
|
||||
r6d.profiles.isDesktop = true;
|
||||
r6d.profiles.isDesktopEnvironment = true;
|
||||
|
||||
r6d.config-generator = {
|
||||
docker = true;
|
||||
graphical = true;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -164,6 +173,7 @@ in
|
||||
edition-musique = true;
|
||||
edition-photo = true;
|
||||
edition-video = true;
|
||||
scanner = true;
|
||||
virtualbox = true;
|
||||
xmonad = true;
|
||||
};
|
||||
@@ -195,6 +205,7 @@ in
|
||||
edition-video = true;
|
||||
hydra-core = false; # DO NOT ENABLE ON WORKSTATION, YOU CAN CRASH YOUR SYSTEM
|
||||
print = true;
|
||||
scanner = true;
|
||||
#virtualbox = true;
|
||||
#xmonad = true;
|
||||
};
|
||||
@@ -244,7 +255,6 @@ in
|
||||
(mkIf comp.isRadx {
|
||||
networking.hostName = "radx.prunetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isHome = true;
|
||||
isPrunetwork = true;
|
||||
isWorkstation = true;
|
||||
};
|
||||
@@ -256,7 +266,7 @@ in
|
||||
kibana = true;
|
||||
nix-serve-client = true;
|
||||
nix-serve-server = true;
|
||||
rabbitmq = true;
|
||||
#rabbitmq = true;
|
||||
tincAddress = "192.168.12.3/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
@@ -272,7 +282,6 @@ in
|
||||
networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isHome = true;
|
||||
isWorkstation = true;
|
||||
};
|
||||
|
||||
@@ -315,11 +324,13 @@ in
|
||||
networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isHome = true;
|
||||
isDesktopEnvironment = true;
|
||||
};
|
||||
|
||||
r6d.config-generator = {
|
||||
laptop = true;
|
||||
graphical = true;
|
||||
scanner = true;
|
||||
tincAddress = "192.168.12.7/24";
|
||||
tincExtraConfig = ''
|
||||
ConnectTo = monstre_dubronetwork_fr
|
||||
@@ -353,7 +364,6 @@ in
|
||||
networking.hostName = "phenom.dubronetwork.fr"; # Define your hostname.
|
||||
r6d.profiles = {
|
||||
isDubronetwork = true;
|
||||
isHome = true;
|
||||
isWorkstation = true;
|
||||
};
|
||||
|
||||
|
||||
27
configuration/default.nix
Normal file
27
configuration/default.nix
Normal file
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -13,7 +13,7 @@ in
|
||||
nix.buildCores = 0;
|
||||
|
||||
# The NixOS release to be compatible with for stateful data such as databases.
|
||||
system.stateVersion = "16.09";
|
||||
system.stateVersion = "17.03";
|
||||
|
||||
# copies the NixOS configuration file (usually /etc/nixos/configuration.nix) and links it from the resulting system (getting to /run/current-system/configuration.nix)
|
||||
system.copySystemConfiguration = true;
|
||||
@@ -29,35 +29,6 @@ in
|
||||
|
||||
# Paquets
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
bind # utilisé pour les utilitaires comme dig
|
||||
byobu # permet de se déconnecter d'un terminal sans l'aréter
|
||||
dhcp # client dhcp
|
||||
git gitAndTools.gitSVN gitAndTools.tig gti # outil de gestion de version
|
||||
gnumake # pour décrire les recettes de compilation
|
||||
gnupg # GPG
|
||||
gpm # prise en charge de la souris en console
|
||||
htop # monitoring
|
||||
lsb-release # pour les scripts qui utilisent cet outil
|
||||
#libressl # librairie pour faire du TLS et les algorithmes de crypto par OpenBSD
|
||||
ncdu # outil pour voir l'espace utilisé
|
||||
par2cmdline # outil de récupération de fichiers corrompus - .par2
|
||||
p7zip # compression de fichier
|
||||
parted # partitionnement de disque
|
||||
pciutils
|
||||
pinentry # pour taper les mots de passe gpg
|
||||
psmisc # fournis les utilitaires comme killall, fuser, pstree
|
||||
python # python -- python -m SimpleHTTPServer 8000
|
||||
#python34Packages.glances # monitoring
|
||||
pwgen # générateur de mot de passe
|
||||
rtorrent # TODO outil de téléchargement de torrent & magnet
|
||||
tmux # nécessaire pour byobu
|
||||
tree # affiche une arborescence de fichiers et dossiers
|
||||
usbutils
|
||||
(import ./vim.nix)
|
||||
wget # client HTTP console
|
||||
which # pour connaitre le chemin d'un exécutable
|
||||
];
|
||||
shellAliases = {
|
||||
byobu = "byobu-tmux";
|
||||
gpg = "gpg2";
|
||||
@@ -24,4 +24,10 @@ mkIf cfg.laptop {
|
||||
networkmanagerapplet # gestionnaire réseau graphique + console (nm-applet + nmtui)
|
||||
wirelesstools # fournis iwconfig
|
||||
];
|
||||
|
||||
# Services
|
||||
services.xserver.synaptics = {
|
||||
enable = true;
|
||||
twoFingerScroll = true;
|
||||
};
|
||||
}
|
||||
7
iso-image/Makefile.installation
Normal file
7
iso-image/Makefile.installation
Normal file
@@ -0,0 +1,7 @@
|
||||
all:
|
||||
nixos-generate-config --root /mnt
|
||||
git config --global user.email "nixos-live@example.org"
|
||||
git config --global user.name "NixOS Live"
|
||||
cd /mnt/etc/nixos && git init . && git add . && git commit -m "initial commit"
|
||||
cd /mnt/etc/nixos && git submodule add http://gogs.prunetwork.fr:80/nixos-config/nixos-template-base.git base
|
||||
cd /mnt/etc/nixos && git submodule add https://gogs.prunetwork.fr/Capgemini-CDS-Arkea/template-nixos.git capgemini-cmb
|
||||
23
iso-image/configuration.nix
Normal file
23
iso-image/configuration.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
capgemini-cmb/default.nix
|
||||
/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix
|
||||
nixos-template-base/base.nix
|
||||
];
|
||||
# Custom name
|
||||
isoImage.isoName = pkgs.lib.mkForce "${config.isoImage.isoBaseName}-capgemini-${config.system.nixosLabel}-${pkgs.stdenv.system}.iso";
|
||||
# Avoid having the terminal flooded by kernel audit messages
|
||||
boot.kernelParams = [ "audit=0" ];
|
||||
|
||||
# Files to copy to the liveCD
|
||||
isoImage.contents = [
|
||||
{
|
||||
source = ./Makefile.installation;
|
||||
target = "/custom/Makefile";
|
||||
}
|
||||
];
|
||||
environment.shellAliases = { nixos-generate-custom-config = "cd /iso/custom/ && make";};
|
||||
networking.hostName = "nixos-livecd.corp.capgemini.com";
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Securité
|
||||
gnome3.seahorse # gestionnaire graphique de clef GPG
|
||||
pass # gestionnaire de mots de passe
|
||||
pwgen # générateur de mots de passe
|
||||
#yubikey-personalization-gui # utilisation de la clef Yubikey
|
||||
];
|
||||
|
||||
# Paquets avec setui root
|
||||
security.wrappers = {
|
||||
# vérouiller l''écran. "cannot disable the out-of-memory killer for this process (make sure to suid or sgid slock)" --> en root
|
||||
slock.source = "${pkgs.slock}/bin/slock";
|
||||
};
|
||||
}
|
||||
@@ -341,11 +341,12 @@ globalkeys = awful.util.table.join(
|
||||
awful.key({ modkey }, "F5", function () awful.util.spawn("spacefm") end),
|
||||
awful.key({ modkey }, "F6", function () awful.util.spawn("vlc") end),
|
||||
awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") end),
|
||||
awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end),
|
||||
awful.key({ modkey }, "F12", function () awful.util.spawn("slock") end),
|
||||
awful.key({ modkey, "Shift" }, "F1", function () awful.util.spawn("claws-mail") end),
|
||||
awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end),
|
||||
awful.key({ modkey }, "F10", function () awful.util.spawn("xrandr-auto-2") end),
|
||||
awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") end)
|
||||
awful.key({ modkey, "Shift" }, "F6", function () awful.util.spawn("clementine") end),
|
||||
awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("xrandr-auto-2") end)
|
||||
-- awful.key({ modkey, "Shift" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-left") end),
|
||||
-- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end),
|
||||
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
{ 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
|
||||
./service-haveged.nix
|
||||
./service-monitoring-munin.nix
|
||||
./service-monitoring-smokeping.nix
|
||||
./service-ssh.nix
|
||||
./udev.nix
|
||||
|
||||
# commandées par config-generator
|
||||
## option de configuration spécifique
|
||||
./app-awesome.nix # pour le gestionaire de fenêtres awesome
|
||||
./app-cao.nix # de conception assisté par ordinateur & modélisation
|
||||
./app-cartographie.nix # manipuler les données géographiques & cartes
|
||||
./app-developpement.nix # développer des programmes/scripts
|
||||
./app-developpement-elm.nix # développer en elm
|
||||
./app-developpement-haskell.nix # développer en haskell
|
||||
./app-developpement-java.nix # développer en java
|
||||
./app-developpement-jetbrains.nix # outils jetbrains
|
||||
./app-developpement-rust.nix # développer en rust
|
||||
./app-docker.nix # activer docker
|
||||
./app-edition-musique.nix # modifier les fichiers musicaux
|
||||
./app-edition-photo.nix # modifier les photos & assimilé
|
||||
./app-edition-video.nix # modifier les vidéos
|
||||
./app-jeux.nix # jouer, tout simplement ;)
|
||||
./app-virtualbox.nix # activer virtualbox
|
||||
./auto-upgrade.nix # mise à jour automatique du système
|
||||
./laptop.nix # appli & configuration adaptée pour un PC portable
|
||||
./print.nix # configuration de base de cups
|
||||
./service-elasticsearch.nix # service de stockage et recher de données
|
||||
./service-hoogle.nix # service hoogle pour haskell
|
||||
./service-hydra-build.nix # service de construction de paquet. -> la machine compile des paquets
|
||||
./service-hydra-core.nix # service pour l'instance d'hydra
|
||||
./service-kibana.nix # service de visualisation de données stockées dans elasticsearch
|
||||
./service-laptop.nix # services spécifiques aux pc portables
|
||||
./service-locate.nix # service locate
|
||||
./swap.nix # définition de l'utilisation du swap
|
||||
./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad
|
||||
|
||||
## if isDesktop
|
||||
./app-adminsys.nix # pour gérer le système dans son ensemble et les services
|
||||
./app-bureau.nix # éléments pour avoir un environement graphique minimal utilisable
|
||||
./app-bureautique.nix # dédiée à la bureautique (traitement de texte, dessin, ...)
|
||||
./app-client-internet.nix # pour accéder & utiliser des ressources par le réseau
|
||||
./app-multimedia.nix # pour gérer le son, l'image et la vidéo
|
||||
./app-network.nix # de gestion, de diagnostique & surveillance réseau
|
||||
./app-securite.nix # relatives à la sécurité (chiffrement, gpg, mots de passe, ...)
|
||||
./hardware-scanner.nix # utilisation d'un scanner
|
||||
./service-pulseaudio.nix # activation du serveur audio
|
||||
./service-x11.nix # activation du serveur graphique X
|
||||
];
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.laptop {
|
||||
|
||||
# Gestion spécifique pour PC portable
|
||||
|
||||
# Services
|
||||
services.xserver.synaptics = {
|
||||
enable = true;
|
||||
twoFingerScroll = true;
|
||||
};
|
||||
}
|
||||
@@ -1,198 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.smokeping {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
bind
|
||||
];
|
||||
|
||||
# Paquets avec setuid root
|
||||
security.wrappers = {
|
||||
# outil de diagnostic réseau
|
||||
fping.source = "${pkgs.fping}/bin/fping";
|
||||
};
|
||||
|
||||
# Services
|
||||
|
||||
services.smokeping = {
|
||||
enable = true;
|
||||
probeConfig = ''
|
||||
+ FPing
|
||||
#binary = ${pkgs.fping}/bin/fping
|
||||
binary = ${config.security.wrapperDir}/fping
|
||||
|
||||
+DNS
|
||||
#binary = ${pkgs.bind}/bin/dig
|
||||
binary = /run/current-system/sw/bin/dig
|
||||
forks = 5
|
||||
offset = 50%
|
||||
step = 300
|
||||
timeout = 15
|
||||
'';
|
||||
targetConfig = ''
|
||||
probe = FPing
|
||||
menu = Top
|
||||
title = Suivi de la latence reseau
|
||||
remark = Monitoring de la latence reseau. \
|
||||
Here you will learn all about the latency of our network.
|
||||
+ Local
|
||||
probe = FPing
|
||||
menu = Local
|
||||
title = Local Network
|
||||
++ LocalMachine
|
||||
menu = Local Machine
|
||||
title = This host
|
||||
host = localhost
|
||||
|
||||
+ Grudu_Tinc
|
||||
probe = FPing
|
||||
title = Grudu_Tinc
|
||||
menu = Grudu.net - Tinc
|
||||
|
||||
++ Hydra
|
||||
menu = hydra.grudu.net
|
||||
title = hydra.grudu.net
|
||||
host = hydra.grudu.net
|
||||
|
||||
++ Monstre
|
||||
menu = monstre.grudu.net
|
||||
title = monstre.grudu.net
|
||||
host = monstre.grudu.net
|
||||
|
||||
++ Rollo
|
||||
menu = rollo.grudu.net
|
||||
title = rollo.grudu.net
|
||||
host = rollo.grudu.net
|
||||
|
||||
++ Ocean
|
||||
menu = ocean.grudu.net
|
||||
title = ocean.grudu.net
|
||||
host = ocean.grudu.net
|
||||
|
||||
++ MultiHost
|
||||
menu = Multihost
|
||||
title = Ensemble de mesures de latence
|
||||
host = /Grudu_Tinc/Monstre /Grudu_Tinc/Rollo /Grudu_Tinc/Ocean /Grudu_Tinc/Hydra
|
||||
|
||||
+ Grudu_DNS
|
||||
title = Grudu_DNS
|
||||
menu = Grudu.net - DNS
|
||||
probe = DNS
|
||||
pings = 5
|
||||
++ Ocean
|
||||
title = ocean
|
||||
menu = serveur ocean
|
||||
server = ocean.prunetwork.fr
|
||||
+++ ocean
|
||||
host = ocean.grudu.net
|
||||
lookup = ocean.grudu.net
|
||||
+++ rollo
|
||||
host = rollo.grudu.net
|
||||
lookup = rollo.grudu.net
|
||||
++ Rollo
|
||||
title = rollo
|
||||
menu = serveur rollo
|
||||
server = rollo.dubronetwork.fr
|
||||
+++ ocean
|
||||
host = ocean.grudu.net
|
||||
lookup = ocean.grudu.net
|
||||
+++ rollo
|
||||
host = rollo.grudu.net
|
||||
lookup = rollo.grudu.net
|
||||
++ MultiHost
|
||||
menu = Multihost
|
||||
title = Ensemble de mesures DNS
|
||||
host = /Grudu_DNS/Ocean/ocean /Grudu_DNS/Ocean/rollo /Grudu_DNS/Rollo/ocean /Grudu_DNS/Rollo/rollo
|
||||
+ France
|
||||
probe = FPing
|
||||
title = France
|
||||
menu = Operateur francais
|
||||
|
||||
++ Atos
|
||||
menu = Atos
|
||||
title = www.atos.fr
|
||||
host = www.atos.fr
|
||||
|
||||
++ Axialys
|
||||
menu = Axialys
|
||||
title = www.axialys.fr
|
||||
host = www.axialys.fr
|
||||
|
||||
++ Azurtel
|
||||
menu = azurtel
|
||||
title = www.azurtel.fr
|
||||
host = www.azurtel.fr
|
||||
|
||||
++ Bouygues-Telecom
|
||||
menu = Bouygues-Telecom
|
||||
title = www.bouygues-telecom.fr
|
||||
host = www.bouygues-telecom.fr
|
||||
|
||||
++ Colt
|
||||
menu = Colt
|
||||
title = www.colt.fr
|
||||
host = www.colt.fr
|
||||
|
||||
++ Completel
|
||||
menu = completel
|
||||
title = www.completel.fr
|
||||
host = www.completel.fr
|
||||
|
||||
++ Free
|
||||
menu = Free
|
||||
title = www.free.fr
|
||||
host = www.free.fr
|
||||
|
||||
++ Kosmos
|
||||
menu = Kosmos
|
||||
title = www.kosmos.fr
|
||||
host = www.kosmos.fr
|
||||
|
||||
++ Orange
|
||||
menu = Orange
|
||||
title = www.orange.fr
|
||||
host = www.orange.fr
|
||||
|
||||
++ Renater
|
||||
menu = Renater
|
||||
title = www.renater.fr
|
||||
host = www.renater.fr
|
||||
|
||||
++ SFR
|
||||
menu = SFR
|
||||
title = www.sfr.fr
|
||||
host = www.sfr.fr
|
||||
|
||||
++ MultiHost
|
||||
menu = Multihost
|
||||
title = Ensemble de mesures de latence
|
||||
host = /France/Atos /France/Axialys /France/Azurtel \
|
||||
/France/Bouygues-Telecom \
|
||||
/France/Completel \
|
||||
/France/Free \
|
||||
/France/Kosmos \
|
||||
/France/Orange \
|
||||
/France/Renater \
|
||||
/France/SFR
|
||||
|
||||
# /France/Colt
|
||||
'';
|
||||
};
|
||||
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
#8081 # accès depuis localhost uniquement ou à travers un proxy nginx
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
35
services/default.nix
Normal file
35
services/default.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{ 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
|
||||
./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
|
||||
];
|
||||
}
|
||||
@@ -11,6 +11,6 @@ mkIf cfg.developpement-haskell {
|
||||
|
||||
services.hoogle = {
|
||||
enable = true;
|
||||
# port 8080
|
||||
port = 10080;
|
||||
};
|
||||
}
|
||||
@@ -62,6 +62,8 @@ mkIf cfg.hydra-core {
|
||||
#package = hydra-src-pkg ;
|
||||
};
|
||||
|
||||
systemd.services.hydra-evaluator.serviceConfig.Nice = -19;
|
||||
|
||||
#systemd.services.hydra-evaluator = {
|
||||
# path = [ pkgs.nettools config.services.hydra.package ];
|
||||
#};
|
||||
@@ -27,6 +27,12 @@ mkIf true {
|
||||
path = with pkgs; [ munin lm_sensors ];
|
||||
serviceConfig.TimeoutStartSec = "3min";
|
||||
};
|
||||
users.extraUsers.munin = {
|
||||
#extraGroups = [ "postfix" "root" ];
|
||||
extraGroups = [ "postfix" ];
|
||||
};
|
||||
|
||||
# chmod a+rX -Rv /var/lib/postfix/queue/
|
||||
|
||||
## Munin server -- generate /var/www/munin
|
||||
services.munin-cron = {
|
||||
@@ -36,7 +42,7 @@ mkIf true {
|
||||
address 127.0.0.1
|
||||
'';
|
||||
extraGlobalConfig = ''
|
||||
contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/public/munin-muttrc -s "Munin notification for ''${var:host}" jean-pierre@ocean.prunetwork.fr
|
||||
contact.email.command ${pkgs.mutt}/bin/mutt -F /etc/nixos/base/public/services/munin-muttrc -s "Munin notification for ''${var:host}" root@prunetwork.fr
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -7,7 +7,7 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
mkIf cfg.pulseaudio {
|
||||
|
||||
# Pulse Audio
|
||||
hardware.pulseaudio = {
|
||||
@@ -7,12 +7,12 @@ let
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
mkIf profiles.isDesktopEnvironment {
|
||||
|
||||
# Services
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver = {
|
||||
#enable = true;
|
||||
enable = true;
|
||||
layout = "fr";
|
||||
xkbOptions = "eurosign:e";
|
||||
displayManager.lightdm.enable = true;
|
||||
Reference in New Issue
Block a user