Compare commits

..

50 Commits

Author SHA1 Message Date
Yves Dubromelle
8845300555 awesome: activation du raccourci xrandr-auto + au démarrage 2017-02-25 11:51:16 +01:00
dce783708c désactivation modification IO scheduler pour SSD 2017-02-20 22:23:13 +01:00
f2305d0a81 tinc: ajout @IP dubro vivo 2017-02-20 22:22:51 +01:00
a6e957afae ménage config-generator 2017-02-20 22:21:00 +01:00
edfac07129 pru: + de paquets par défaut 2017-02-20 22:20:39 +01:00
7799eb106f haskell: ajout threadscope pour analyser les logs d'application 2017-02-19 21:28:58 +01:00
Yves Dubromelle
754a1ec934 nix-server: ajout de monstre 2017-02-12 22:58:00 +01:00
Yves Dubromelle
80f7b32af6 phenom: est un client nix-serve 2017-02-12 22:38:04 +01:00
Yves Dubromelle
5cd1cd0e6f phenom: desactivation de latitude comme source nix-serve 2017-02-12 22:10:30 +01:00
Yves Dubromelle
fae4a8237c /run/current-system/sw/bin/bash: q : commande introuvable 2017-02-12 22:06:38 +01:00
Yves Dubromelle
5f09c0896d ajout de machines fixes comme serveur nix 2017-02-12 22:04:08 +01:00
Yves Dubromelle
2244b917ac radx: activation nix-server 2017-02-12 22:00:48 +01:00
458362bece git: alias d'affichage des branches triées par date de modification 2017-02-11 01:42:45 +01:00
b4b213e836 client internet: ajout de quassel simple pour se connecter sans bouncer 2017-02-11 01:41:33 +01:00
cc7f911141 radx: activation postgresql 2017-02-11 01:41:14 +01:00
4ffd71f10f haskell: ajout hlint 2017-02-11 01:40:48 +01:00
Yves Dubromelle
07cf33a086 police hasklig 2017-02-04 13:44:11 +01:00
f3741782e3 munin: réduction du temps d'attente au lancement. On verra s'il est suffisant 2017-02-02 16:14:32 +01:00
b8c3447767 fix: syntax 2017-02-01 13:40:33 +01:00
eb3a945c7c prunetwork: disable hydra 2017-02-01 02:18:35 +01:00
6f19fdec07 ajout de time devant les commandes nix potentiellement longues 2017-01-31 13:10:55 +01:00
91e81d50a6 radx: profils de dev 2017-01-31 12:43:32 +01:00
Yves Dubromelle
293dd76025 profil pour Elm (et plugin vim) 2017-01-30 21:35:53 +01:00
65a21c197c ajout hostname pour {radx, hydra, ocean} 2017-01-29 23:56:58 +01:00
Yves Dubromelle
c11cd5d456 formatage 2017-01-29 23:34:52 +01:00
Yves Dubromelle
805ef707f5 fix: plus de matching sur le hostname, is<machine> à mettre à true dans configuration.nix 2017-01-29 23:31:44 +01:00
Yves Dubromelle
1ee426f50a hostname dans le config-generator pour phenom 2017-01-29 23:29:50 +01:00
Yves Dubromelle
0bcd327679 -hydra pour phenom 2017-01-29 23:28:53 +01:00
04c3397ff3 suppression de la variable enable car toujours à vraie 2017-01-29 19:28:40 +01:00
5f86c78e1b smokeping: ajout hydra 2017-01-28 00:15:26 +01:00
715a3519f4 Merge remote-tracking branch 'origin/master' into nixos-unstable 2017-01-27 19:31:38 +01:00
0b08c7dbd0 munin: ajout dépendances sur 'sensors' 2017-01-27 19:30:04 +01:00
0dab828682 activation de hydra sur hydra.pru 2017-01-27 19:22:46 +01:00
b4786c8fdf ajout de la clef ssh serveur de hydra 2017-01-27 19:22:27 +01:00
11a69418a7 ajout machine hydra.prunetwork.fr 2017-01-27 18:17:02 +01:00
d7f2b4fd38 ajout monitoring smokeping pour toutes les machines 2017-01-26 11:49:18 +01:00
Yves Dubromelle
ce1cae293c ajout hindent 2017-01-26 10:42:52 +01:00
Yves Dubromelle
1c58705adf latitude sert son nix-store 2017-01-26 10:42:52 +01:00
Yves Dubromelle
84802f8604 ajout hindent 2017-01-26 10:41:38 +01:00
Yves Dubromelle
28092fb029 latitude sert son nix-store 2017-01-26 10:39:17 +01:00
Yves Dubromelle
1cc773c034 outils de ménage de fichier 2017-01-26 00:12:19 +01:00
Yves Dubromelle
58c32c79fb ajout de paquets haskell 2017-01-26 00:12:19 +01:00
d1a5228a92 MaJ config pulseaudio : nouvel argument pour déclarer les options du daemon 2017-01-26 00:12:19 +01:00
79a3fd779b munin: ajout bc 2017-01-26 00:12:02 +01:00
fcf73d4249 commande pour afficher les emplacements contenant des expressions nix construites 2017-01-26 00:11:52 +01:00
ce7e111128 on reste dans la branche courante 2017-01-26 00:11:06 +01:00
Yves Dubromelle
c0832c7ccb munin: augmentation du lelais de timeout pour le démarrage du daemon 2017-01-22 19:07:16 +01:00
Yves Dubromelle
10a42e4cbd monstre est un serveur nix 2017-01-22 00:00:38 +01:00
Yves Dubromelle
f0627eb800 nix-serve est disponible uniquement par tinc 2017-01-21 23:57:51 +01:00
Yves Dubromelle
ae4c1edee0 prise en compte du fichier jetbrains 2017-01-21 16:35:22 +01:00
19 changed files with 417 additions and 133 deletions

View File

@@ -1,17 +1,18 @@
GSF=git submodule foreach
TIME=time
all: rebuild-switch
date
##--------- Commandes spécifiques pour NixOS
clean:
nix-collect-garbage -d --delete-older-than 15d
$(TIME) nix-collect-garbage -d --delete-older-than 15d
clean-aggressive:
nix-collect-garbage -d --delete-older-than 1d
$(TIME) nix-collect-garbage -d --delete-older-than 1d
clean-total:
nix-collect-garbage -d
$(TIME) nix-collect-garbage -d
clean-log:
journalctl --vacuum-size=1G
@@ -20,16 +21,19 @@ full-auto: submodules-update upgrade clean optimise
@date
optimise:
nix-store --optimise
$(TIME) nix-store --optimise
rebuild-switch:
nixos-rebuild switch --fallback --show-trace
$(TIME) time nixos-rebuild switch --fallback --show-trace
show-roots:
nix-store --gc --print-roots
store-repair:
nix-store --verify --check-contents --repair
$(TIME) nix-store --verify --check-contents --repair
upgrade:
nixos-rebuild switch --upgrade --fallback --show-trace
$(TIME) nixos-rebuild switch --upgrade --fallback --show-trace
##--------- Commandes spécifiques pour NixOS -- Opérations non courantes
@@ -45,7 +49,7 @@ push: submodules-push
submodules-update:
#git submodule update --remote
$(GSF) git co master
#$(GSF) git co master
$(GSF) git ff
$(GSF) git gc --auto

View File

@@ -14,9 +14,14 @@ mkIf cfg.nix-serve-client {
requireSignedBinaryCaches = false;
binaryCaches = [
(mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
#(mkIf (profiles.isDubronetwork && computers.isPhenom) "http://latitude.grudu.net:5000")
(mkIf (profiles.isDubronetwork && computers.isPhenom) "http://monstre.grudu.net:5000")
(mkIf (profiles.isDubronetwork && computers.isPhenom) "http://radx.grudu.net:5000")
(mkIf profiles.isPrunetwork "https://cache.nixos.org/")
(mkIf (profiles.isPrunetwork && !profiles.isServer) "http://nix-cache.dubronetwork.fr:5001")
(mkIf (profiles.isPrunetwork && !profiles.isServer) "http://nix-cache.dubronetwork.fr:5001")
(mkIf (profiles.isPrunetwork && computers.isRadx) "http://monstre.grudu.net:5000")
(mkIf (profiles.isPrunetwork && computers.isRadx) "http://phenom.grudu.net:5000")
];
extraOptions = ''
connect-timeout = 5

View File

@@ -19,9 +19,13 @@ mkIf cfg.nix-serve-server {
# Réseau
networking.firewall = {
allowedTCPPorts = [
5000
#5000 # ouvert sur tinc
];
allowedUDPPorts = [
];
extraCommands = ''
iptables -A INPUT -i tinc.grudunet -p tcp --dport 5000 -j ACCEPT
ip6tables -A INPUT -i tinc.grudunet -p tcp --dport 5000 -j ACCEPT
'';
};
}

View File

@@ -9,116 +9,101 @@ let
in
{
###### interface
###### interface
options = {
options = {
#* Utilisé pour afecter des capacités aux machines
r6d.profiles = {
# Domaine
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).";
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
};
#* Utilisé dans les fichiers .nix
r6d.config-generator = {
enable = mkEnableOption "Génération de la configuration d'une machine.";
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques.";
conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D";
database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL.";
developpement = mkEnableOption "Profil pour activer les outils de développement";
developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell";
developpement-java = mkEnableOption "Profil pour activer les outils de développement Java";
developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust";
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
dovecot = mkEnableOption "Profil pour activer le serveur Dovecot.";
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
edition-musique = mkEnableOption "Profil pour la création/édition de musique.";
edition-photo = mkEnableOption "Profil pour la création/édition de photos.";
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.";
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.";
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.";
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";
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
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.";
swap = mkEnableOption "Profil pour que le swap soit activé.";
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
tincAddress = mkOption {
default = "";
example = "192.168.1.1";
description = "Adresse du noeud tinc local";
type = lib.types.string;
};
tincExtraConfig = mkOption {
default = "";
example = ''
Mode = router
ConnecTo = bar
'';
description = "Configuration supplémentaire pour tinc";
type = lib.types.string;
};
};
#* Utilisé pour avoir des raccourcis de machine
r6d.computers = {
isLatitude = mkEnableOption "Identification du nom de machine.";
isMonstre = mkEnableOption "Identification du nom de machine.";
isNeoNomade = mkEnableOption "Identification du nom de machine.";
isNomade = mkEnableOption "Identification du nom de machine.";
isOcean = mkEnableOption "Identification du nom de machine.";
isPedro = mkEnableOption "Identification du nom de machine.";
isPhenom = mkEnableOption "Identification du nom de machine.";
isRadx = mkEnableOption "Identification du nom de machine.";
isRollo = mkEnableOption "Identification du nom de machine.";
};
#* Utilisé pour afecter des capacités aux machines
r6d.profiles = {
# Domaine
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).";
isServer = mkEnableOption "Pour indiquer qu'il s'agit d'un serveur.";
isWorkstation = mkEnableOption "Pour indiquer que la machine sert à travailler.";
};
###### implementation
# https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
# https://nixos.org/wiki/NixOS:extend_NixOS
config = mkMerge
[ # Unconditional stuff.
{
r6d.config-generator.enable = true;
r6d.computers = {
isLatitude = host == "latitude.dubronetwork.fr";
isMonstre = host == "monstre.dubronetwork.fr";
isNeoNomade = host == "neo-nomade.dubronetwork.fr";
isNomade = host == "nomade.dubronetwork.fr";
isOcean = host == "ocean.prunetwork.fr";
isPedro = host == "pedro.dubronetwork.fr";
isPhenom = host == "phenom.dubronetwork.fr";
isRadx = host == "radx.prunetwork.fr";
isRollo = host == "rollo.dubronetwork.fr";
#* Utilisé dans les fichiers .nix
r6d.config-generator = {
#enable = mkEnableOption "Génération de la configuration d'une machine.";
awesome = mkEnableOption "Profil pour activer le gestionnaire de fenêtre awesome.";
auto-upgrade = mkEnableOption "Profil pour activer les mises à jour automatiques.";
cartographie = mkEnableOption "Profil pour activer les outils de gestion de données géographiques.";
conception-assistee = mkEnableOption "Profil pour activer les outils de conception électronique & modélisation 3D";
database_postgres = mkEnableOption "Profil pour activer le SGBD PostgreSQL.";
developpement = mkEnableOption "Profil pour activer les outils de développement";
developpement-elm = mkEnableOption "Profil pour activer les outils de développement Elm";
developpement-haskell = mkEnableOption "Profil pour activer les outils de développement Haskell";
developpement-java = mkEnableOption "Profil pour activer les outils de développement Java";
developpement-rust = mkEnableOption "Profil pour activer les outils de développement Rust";
docker = mkEnableOption "Profil pour l'utilisation de Docker.";
dovecot = mkEnableOption "Profil pour activer le serveur Dovecot.";
dns_autorite = mkEnableOption "Profil pour servir les fichiers de zone DNS.";
dns_resolveur = mkEnableOption "Profil pour activer un résolveur DNS local.";
edition-musique = mkEnableOption "Profil pour la création/édition de musique.";
edition-photo = mkEnableOption "Profil pour la création/édition de photos.";
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.";
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.";
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.";
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";
print = mkEnableOption "Profil pour activer cups & pouvoir imprimer.";
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.";
swap = mkEnableOption "Profil pour que le swap soit activé.";
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
znc = mkEnableOption "Profil pour activer le relais IRC ZNC.";
tincAddress = mkOption {
default = "";
example = "192.168.1.1";
description = "Adresse du noeud tinc local";
type = lib.types.string;
};
}
# Conditional stuff
tincExtraConfig = mkOption {
default = "";
example = ''
Mode = router
ConnecTo = bar
'';
description = "Configuration supplémentaire pour tinc";
type = lib.types.string;
};
};
#* Utilisé pour avoir des raccourcis de machine
r6d.computers = {
isHydra = mkEnableOption "Identification du nom de machine.";
isLatitude = mkEnableOption "Identification du nom de machine.";
isMonstre = mkEnableOption "Identification du nom de machine.";
isNeoNomade = mkEnableOption "Identification du nom de machine.";
isNomade = mkEnableOption "Identification du nom de machine.";
isOcean = mkEnableOption "Identification du nom de machine.";
isPedro = mkEnableOption "Identification du nom de machine.";
isPhenom = mkEnableOption "Identification du nom de machine.";
isRadx = mkEnableOption "Identification du nom de machine.";
isRollo = mkEnableOption "Identification du nom de machine.";
};
};
###### implementation
# https://nixos.org/releases/nixos/14.12-small/nixos-14.12.374.61adf9e/manual/sec-writing-modules.html
# https://nixos.org/wiki/NixOS:extend_NixOS
config = mkMerge
[
## Définition des profils génériques
(mkIf pfl.isDesktop {
r6d.config-generator = {
@@ -169,6 +154,7 @@ in
conception-assistee = true;
docker = true;
developpement = true;
developpement-elm = true;
developpement-haskell = true;
developpement-java = true;
developpement-rust = true;
@@ -193,21 +179,44 @@ in
(mkIf (pfl.isPrunetwork && pfl.isWorkstation) {
r6d.config-generator = {
cartographie = true;
conception-assistee = true;
docker = true;
developpement = true;
#developpement-elm = true;
developpement-haskell = true;
developpement-java = true;
#developpement-rust = true;
#edition-musique = true;
developpement-rust = true;
edition-musique = true;
edition-photo = true;
#edition-video = true;
edition-video = true;
hydra-core = false; # DO NOT ENABLE ON WORKSTATION, YOU CAN CRASH YOUR SYSTEM
print = true;
virtualbox = true;
#virtualbox = true;
#xmonad = true;
};
})
## Affectation des profils aux machines
(mkIf comp.isHydra {
networking.hostName = "hydra.prunetwork.fr"; # Define your hostname.
r6d.profiles = {
isPrunetwork = true;
isServer = true;
};
r6d.config-generator = {
docker = true;
hydra-builder = true;
hydra-core = true;
#tincAddress = "192.168.12.6/24";
#tincExtraConfig = ''
# ConnectTo = rollo_dubronetwork_fr
# '';
};
})
(mkIf comp.isOcean {
networking.hostName = "ocean.prunetwork.fr"; # Define your hostname.
r6d.profiles = {
isPrunetwork = true;
isServer = true;
@@ -219,10 +228,11 @@ in
tincAddress = "192.168.12.6/24";
tincExtraConfig = ''
ConnectTo = rollo_dubronetwork_fr
'';
'';
};
})
(mkIf comp.isRadx {
networking.hostName = "radx.prunetwork.fr"; # Define your hostname.
r6d.profiles = {
isHome = true;
isPrunetwork = true;
@@ -230,17 +240,20 @@ in
};
r6d.config-generator = {
database_postgres = true;
elasticsearch = true;
hydra-builder = true;
hydra-core = true;
#hydra-core = false; # DO NOT ENABLE ON WORKSTATION
kibana = true;
nix-serve-client = true;
nix-serve-server = true;
rabbitmq = true;
tincAddress = "192.168.12.3/24";
tincExtraConfig = ''
ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr
'';
'';
};
})
@@ -259,7 +272,8 @@ in
ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr
'';
'';
nix-serve-server = true;
};
})
(mkIf comp.isMonstre {
@@ -272,12 +286,13 @@ in
fail2ban = true;
murmur = true;
nix-serve-client = true;
nix-serve-server = true;
nixStoreProxyCache = true;
tincAddress = "192.168.12.4/24";
tincExtraConfig = ''
ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr
'';
'';
};
})
(mkIf comp.isNeoNomade{
@@ -293,9 +308,11 @@ in
ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr
'';
'';
};
})
# Dubro Vivo - St Malo
#tincAddress = "192.168.12.8/24";
(mkIf comp.isNomade{
r6d.profiles.isDubronetwork = true;
@@ -314,6 +331,7 @@ in
};
})
(mkIf comp.isPhenom {
networking.hostName = "phenom.dubronetwork.fr"; # Define your hostname.
r6d.profiles = {
isDubronetwork = true;
isHome = true;
@@ -322,7 +340,8 @@ in
r6d.config-generator = {
jetbrains-licensed = true;
hydra-core = true;
#hydra-core = true;
nix-serve-client = true;
nix-serve-server = true;
edition-photo = true;
tincAddress = "192.168.12.1/24";
@@ -330,7 +349,7 @@ in
ConnectTo = monstre_dubronetwork_fr
ConnectTo = rollo_dubronetwork_fr
ConnectTo = ocean_prunetwork_fr
'';
'';
};
})
(mkIf comp.isRollo {
@@ -347,7 +366,7 @@ in
tincAddress = "192.168.12.5/24";
tincExtraConfig = ''
ConnectTo = ocean_prunetwork_fr
'';
'';
znc = true;
};
})

View File

@@ -49,6 +49,7 @@ in
fira-code # idem fira-mono + ligatures pour la programmation
fira-mono # dérivée de fira en monospace
hack-font # police monospace créée explicitement pour coder
hasklig # police dérivée de source-code-pro mais avec des ligatures
];
nixpkgs.config.packageOverrides = pkgs: {

View File

@@ -36,6 +36,7 @@ mkIf true {
exfat # Pour monter les FAT avec Fuse
hubicfuse # montage hubic
ntfs3g # ntfs
squashfsTools # squashfs
sshfsFuse # ssh
## Gestion de FS
@@ -43,6 +44,7 @@ mkIf true {
## Exploitation FS
inotify-tools # être notifié lorsque le contenu d'un répertoire change
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

View File

@@ -25,6 +25,7 @@ environment.systemPackages = with pkgs; [
## Mail & Discussion (texte, audio)
clawsMail
hexchat
quassel
quasselClient
mumble
mutt

View File

@@ -0,0 +1,26 @@
{ 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 {
# Paquets
environment.systemPackages = with pkgs; [
elmPackages.elm
];
# Services
# Réseau
networking.firewall = {
allowedTCPPorts = [
];
allowedUDPPorts = [
];
};
}

View File

@@ -18,8 +18,16 @@ mkIf cfg.developpement-haskell {
stack # pour les paquets en LTS de stackage
haskellPackages.stylish-haskell # qualité de code
haskellPackages.hindent
haskellPackages.hlint
haskellPackages.threadscope
# Application perso
haskellPackages.hahp
# Application
haskellPackages.autoproc # ? procmail
haskellPackages.darcs # Gestionnaire de version éponyme
haskellPackages.turtle # genre shell-scripting
];
}

View File

@@ -14,5 +14,13 @@ mkIf cfg.edition-video {
# Vidéo
#cinelerra # editeur video
pitivi # montage vidéo
ffmpeg-full # assemblage de flux audio & video en ligne de commande
];
nixpkgs.config.packageOverrides = pkgs: {
ffmpeg-full = pkgs.ffmpeg-full.override {
nonfreeLicensing = true;
nvenc = true;
};
};
}

View File

@@ -343,8 +343,8 @@ globalkeys = awful.util.table.join(
awful.key({ modkey }, "F7", function () awful.util.spawn("claws-mail") 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 }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-auto") end),
awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") end),
awful.key({ modkey }, "F11", function () awful.util.spawn("xrandr-auto") 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),
@@ -564,6 +564,6 @@ client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_n
-- }}}
-- Au démarrage
-- awful.util.spawn_with_shell("/home/taeradan/bin/xrandr-auto")
awful.util.spawn_with_shell("xrandr-auto || true")
-- awful.util.spawn_with_shell("gnome-sound-applet")
-- awful.util.spawn_with_shell("nm-applet")

View File

@@ -8,6 +8,7 @@
status = auto
[alias]
a = add -p
br = for-each-ref --sort=committerdate refs/heads/ --format='%(committerdate:short)\t%(authorname)\t%(refname:short)'
ci = commit
co = checkout
ff = pull --ff-only

View File

@@ -16,7 +16,8 @@ in
#./network-ipv6.nix
./sudo.nix
./service-haveged.nix
./service-monitoring.nix
./service-monitoring-munin.nix
./service-monitoring-smokeping.nix
./service-ssh.nix
./udev.nix
@@ -26,8 +27,10 @@ in
./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

View File

@@ -73,6 +73,7 @@ mkIf cfg.hydra-core {
### Machines connues
programs.ssh.knownHosts = {
"hydra.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMhXFlj2oyArVyEwEwDxNXthB/JljHkq+UhTLxbekkMB";
"monstre.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTTrLhq1Cwm0rpnwEIxSLqVrJWZnt+/9dt+SKd8NiIc";
"pedro.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7fjo2ysLqlfSo6BKnc6I6m1ayoPrbwEEyTKZmUzsOD";
"ocean.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINCaRuTl8iCTUE4XInOpkSlwQj5Re4w4Iq+gNIlJe8pA";

View File

@@ -11,6 +11,7 @@ mkIf true {
# Paquets
environment.systemPackages = with pkgs; [
bc
mailutils
];
@@ -20,6 +21,10 @@ mkIf true {
services.munin-node = {
enable = true;
};
systemd.services.munin-node = {
path = [ pkgs.munin pkgs.lm_sensors ];
serviceConfig.TimeoutStartSec = "1min";
};
## Munin server -- generate /var/www/munin
services.munin-cron = {

View File

@@ -0,0 +1,194 @@
{ 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
];
security.setuidPrograms = [ "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 DNS
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 = [
];
};
}

View File

@@ -13,6 +13,7 @@ mkIf profiles.isDesktop {
hardware.pulseaudio = {
enable = true;
support32Bit = true;
daemon.config = { flat-volumes = "no"; };
};
environment.etc."pulse/daemon.conf".text = "flat-volumes = no";
#environment.etc."pulse/daemon.conf".text = "flat-volumes = no";
}

View File

@@ -7,7 +7,7 @@ let
profiles = config.r6d.profiles;
in
{
mkIf false {
# Définition du IO Scheduler pour les SSD
services.udev.extraRules = ''
# set deadline scheduler for non-rotating disks

View File

@@ -12,6 +12,7 @@ vim_configurable.customize {
# Here you can place all your vim plugins
# They are installed managed by `vam` (a vim plugin manager)
#"vim-addon-nix"
"elm-vim"
"vim-nix"
"wombat256-vim"
]; }