Compare commits
20 Commits
2017-02-25
...
2017-03-01
| Author | SHA1 | Date | |
|---|---|---|---|
| 06aaf3cc23 | |||
| 0e1a1b0107 | |||
| c500c59732 | |||
| 9e3b1d163f | |||
| 9bdaae4593 | |||
| 1a80e445ce | |||
| 50d486565c | |||
| b6cf3b2674 | |||
| c0427bb622 | |||
|
|
5be0164cb9 | ||
|
|
9d0c04810c | ||
|
|
e5de46f1d3 | ||
|
|
2a2c0a56fe | ||
| 8ef6642024 | |||
| e77df9816d | |||
|
|
ba09f97684 | ||
|
|
b0696f1983 | ||
|
|
2d9c9415a2 | ||
|
|
7e7736b631 | ||
|
|
52670ebd9c |
File diff suppressed because one or more lines are too long
34
byobu-adminsys
Executable file
34
byobu-adminsys
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
SESSION_NAME="Adminsys"
|
||||||
|
PROJECT_DIR="/etc/nixos"
|
||||||
|
PROJECT_MODULES="base private server"
|
||||||
|
HEAD_ADDITIONNAL_TABS="git config"
|
||||||
|
TAIL_ADDITIONNAL_TABS="glances"
|
||||||
|
|
||||||
|
# création de la session
|
||||||
|
byobu new-session -d -s ${SESSION_NAME} -n 'run' -c ${PROJECT_DIR};
|
||||||
|
|
||||||
|
# définition des onglets
|
||||||
|
|
||||||
|
## onglets courants au début. Positionnés dans dossier projet
|
||||||
|
for i in ${HEAD_ADDITIONNAL_TABS}
|
||||||
|
do
|
||||||
|
byobu new-window -n ${i} -c ${PROJECT_DIR};
|
||||||
|
done
|
||||||
|
|
||||||
|
## onglets spécifiques au projet. Positionnés dans les dossiers enfants
|
||||||
|
for i in ${PROJECT_MODULES}
|
||||||
|
do
|
||||||
|
byobu new-window -n ${i} -c ${PROJECT_DIR}/${i};
|
||||||
|
done
|
||||||
|
|
||||||
|
## onglets courants à la fin. Positionnés dans dossier projet
|
||||||
|
for i in ${TAIL_ADDITIONNAL_TABS}
|
||||||
|
do
|
||||||
|
byobu new-window -n ${i} -c ${PROJECT_DIR};
|
||||||
|
done
|
||||||
|
|
||||||
|
# affiche la session
|
||||||
|
byobu -2 attach-session -t ${SESSION_NAME};
|
||||||
|
|
||||||
@@ -15,54 +15,17 @@ in
|
|||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
environment.systemPackages = with pkgs; mkIf profiles.isDesktop [
|
environment.systemPackages = with pkgs; mkIf profiles.isDesktop [
|
||||||
# Environement de bureau
|
|
||||||
arandr # interface graphique pour xrandr
|
|
||||||
wmname # pour définir le nom du gestionnaire de fenêtre (utile pour java)
|
|
||||||
#kde4.ksnapshot # capture d'écran
|
|
||||||
xorg.xbacklight # pour gérer la luminosité de l'écran
|
|
||||||
xorg.xev # pour repérer les codes + noms standard des actions clavier/souris
|
|
||||||
xorg.xkill # pour 'tuer une application'
|
|
||||||
|
|
||||||
## Gestionnaire de fenêtre & Thème
|
|
||||||
gnome3.adwaita-icon-theme # thème d'icone - semble fonctionner avec spaceFM
|
|
||||||
|
|
||||||
## Manipulation de fichier
|
|
||||||
pcmanfm # gestionnaire de fichiers graphique
|
|
||||||
spaceFM # gestionnaire de fichiers graphique
|
|
||||||
vifm # gestionnaire de fichiers basé sur VIM (console)
|
|
||||||
|
|
||||||
## Terminal
|
|
||||||
sakura # terminal
|
|
||||||
|
|
||||||
# A trier
|
# A trier
|
||||||
cowsay
|
cowsay
|
||||||
fgallery # générateur de gallerie statique http://www.thregr.org/~wavexx/software/fgallery/
|
fgallery # générateur de gallerie statique http://www.thregr.org/~wavexx/software/fgallery/
|
||||||
samba
|
|
||||||
taskwarrior # gestionnaire de tâches en console
|
taskwarrior # gestionnaire de tâches en console
|
||||||
udevil # pour le montage des media amovibles
|
|
||||||
xclip # manipulation du clipboard X depuis la console
|
xclip # manipulation du clipboard X depuis la console
|
||||||
];
|
];
|
||||||
|
|
||||||
# Polices supplémentaires
|
# Paquets avec setuid root
|
||||||
fonts.fonts = with pkgs; mkIf profiles.isDesktop [
|
security.wrappers = {
|
||||||
fira # police créée pour Firefox
|
# pour le montage des media amovibles
|
||||||
fira-code # idem fira-mono + ligatures pour la programmation
|
devmon.source = "${pkgs.udevil}/bin/devmon";
|
||||||
fira-mono # dérivée de fira en monospace
|
udevil.source = "${pkgs.udevil}/bin/udevil"; # utilisé par spacefm
|
||||||
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: {
|
|
||||||
clawsMail = pkgs.clawsMail.override {
|
|
||||||
enablePluginFancy = true;
|
|
||||||
enablePluginPdf = true;
|
|
||||||
enablePluginRavatar = true;
|
|
||||||
enablePluginSmime = true;
|
|
||||||
enablePluginVcalendar = true;
|
|
||||||
enableSpellcheck = true;
|
|
||||||
};
|
|
||||||
mumble = pkgs.mumble.override { pulseSupport = true; };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
security.setuidPrograms = [ "udevil" ];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ mkIf true {
|
|||||||
exfat # Pour monter les FAT avec Fuse
|
exfat # Pour monter les FAT avec Fuse
|
||||||
hubicfuse # montage hubic
|
hubicfuse # montage hubic
|
||||||
ntfs3g # ntfs
|
ntfs3g # ntfs
|
||||||
|
samba # partages windows
|
||||||
squashfsTools # squashfs
|
squashfsTools # squashfs
|
||||||
sshfsFuse # ssh
|
sshfsFuse # ssh
|
||||||
|
|
||||||
|
|||||||
42
public/app-bureau.nix
Normal file
42
public/app-bureau.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 profiles.isDesktop {
|
||||||
|
|
||||||
|
# Paquets
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# Environement de bureau
|
||||||
|
arandr # interface graphique pour xrandr
|
||||||
|
wmname # pour définir le nom du gestionnaire de fenêtre (utile pour java)
|
||||||
|
#kde4.ksnapshot # capture d'écran
|
||||||
|
xorg.xbacklight # pour gérer la luminosité de l'écran
|
||||||
|
xorg.xev # pour repérer les codes + noms standard des actions clavier/souris
|
||||||
|
xorg.xkill # pour 'tuer une application'
|
||||||
|
|
||||||
|
## Gestionnaire de fenêtre & Thème
|
||||||
|
gnome3.adwaita-icon-theme # thème d'icone - semble fonctionner avec spaceFM
|
||||||
|
|
||||||
|
## Manipulation de fichier
|
||||||
|
pcmanfm # gestionnaire de fichiers graphique
|
||||||
|
spaceFM # gestionnaire de fichiers graphique
|
||||||
|
#vifm # gestionnaire de fichiers basé sur VIM (console)
|
||||||
|
|
||||||
|
## Terminal
|
||||||
|
sakura # terminal
|
||||||
|
];
|
||||||
|
|
||||||
|
# Polices supplémentaires
|
||||||
|
fonts.fonts = with pkgs; mkIf profiles.isDesktop [
|
||||||
|
fira # police créée pour Firefox
|
||||||
|
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
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -37,4 +37,16 @@ environment.systemPackages = with pkgs; [
|
|||||||
transmission_gtk
|
transmission_gtk
|
||||||
transmission_remote_gtk
|
transmission_remote_gtk
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
clawsMail = pkgs.clawsMail.override {
|
||||||
|
enablePluginFancy = true;
|
||||||
|
enablePluginPdf = true;
|
||||||
|
enablePluginRavatar = true;
|
||||||
|
enablePluginSmime = true;
|
||||||
|
enablePluginVcalendar = true;
|
||||||
|
enableSpellcheck = true;
|
||||||
|
};
|
||||||
|
mumble = pkgs.mumble.override { pulseSupport = true; };
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,5 +16,6 @@ mkIf cfg.developpement-java {
|
|||||||
|
|
||||||
# Java
|
# Java
|
||||||
maven
|
maven
|
||||||
|
zulu
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,16 @@ mkIf true {
|
|||||||
## Diagnostic
|
## Diagnostic
|
||||||
arp-scan
|
arp-scan
|
||||||
nmap # outil de scan de port réseau
|
nmap # outil de scan de port réseau
|
||||||
mtr # outil de diagnostic réseau
|
|
||||||
#wireshark
|
#wireshark
|
||||||
whois
|
whois
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Paquets avec setuid root
|
||||||
|
security.wrappers = {
|
||||||
|
# outil de diagnostic réseau
|
||||||
|
mtr.source = "${pkgs.mtr}/bin/mtr";
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [
|
||||||
5201 # iperf
|
5201 # iperf
|
||||||
|
|||||||
@@ -15,8 +15,12 @@ mkIf profiles.isDesktop {
|
|||||||
gnome3.seahorse # gestionnaire graphique de clef GPG
|
gnome3.seahorse # gestionnaire graphique de clef GPG
|
||||||
pass # gestionnaire de mots de passe
|
pass # gestionnaire de mots de passe
|
||||||
pwgen # générateur de mots de passe
|
pwgen # générateur de mots de passe
|
||||||
slock # vérouiller l''écran. "cannot disable the out-of-memory killer for this process (make sure to suid or sgid slock)" --> en root
|
|
||||||
#yubikey-personalization-gui # utilisation de la clef Yubikey
|
#yubikey-personalization-gui # utilisation de la clef Yubikey
|
||||||
];
|
];
|
||||||
security.setuidPrograms = [ "slock" ];
|
|
||||||
|
# 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";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,13 +69,10 @@ in
|
|||||||
#git-loc = "git ls-files | while read f; do git blame --line-porcelain "${f}" | grep '^author '; done | sort -f | uniq -ic | sort -n";
|
#git-loc = "git ls-files | while read f; do git blame --line-porcelain "${f}" | grep '^author '; done | sort -f | uniq -ic | sort -n";
|
||||||
grep = "grep --color=auto";
|
grep = "grep --color=auto";
|
||||||
vi = "vim";
|
vi = "vim";
|
||||||
|
byobu-adminsys = "/etc/nixos/base/byobu-adminsys";
|
||||||
};
|
};
|
||||||
etc.gitconfig.text = builtins.readFile ./gitconfig;
|
etc.gitconfig.text = builtins.readFile ./gitconfig;
|
||||||
};
|
};
|
||||||
# programmes qui n'ont pas besoin de sudo pour fonctionner
|
|
||||||
security.setuidPrograms = [
|
|
||||||
"mtr"
|
|
||||||
];
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
promptInit = builtins.readFile ./bash-prompt.sh;
|
promptInit = builtins.readFile ./bash-prompt.sh;
|
||||||
|
|||||||
3
public/munin-muttrc
Normal file
3
public/munin-muttrc
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
set copy=no
|
||||||
|
set realname = "Munin daemon"
|
||||||
|
|
||||||
@@ -14,7 +14,6 @@ in
|
|||||||
./localisation.nix
|
./localisation.nix
|
||||||
./network.nix
|
./network.nix
|
||||||
#./network-ipv6.nix
|
#./network-ipv6.nix
|
||||||
./sudo.nix
|
|
||||||
./service-haveged.nix
|
./service-haveged.nix
|
||||||
./service-monitoring-munin.nix
|
./service-monitoring-munin.nix
|
||||||
./service-monitoring-smokeping.nix
|
./service-monitoring-smokeping.nix
|
||||||
@@ -51,6 +50,7 @@ in
|
|||||||
|
|
||||||
## if isDesktop
|
## if isDesktop
|
||||||
./app-adminsys.nix # pour gérer le système dans son ensemble et les services
|
./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-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-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-multimedia.nix # pour gérer le son, l'image et la vidéo
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ mkIf true {
|
|||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
systemd.services.munin-node = {
|
systemd.services.munin-node = {
|
||||||
path = [ pkgs.munin pkgs.lm_sensors ];
|
path = with pkgs; [ munin lm_sensors ];
|
||||||
serviceConfig.TimeoutStartSec = "1min";
|
serviceConfig.TimeoutStartSec = "3min";
|
||||||
};
|
};
|
||||||
|
|
||||||
## Munin server -- generate /var/www/munin
|
## Munin server -- generate /var/www/munin
|
||||||
@@ -34,7 +34,7 @@ mkIf true {
|
|||||||
address 127.0.0.1
|
address 127.0.0.1
|
||||||
'';
|
'';
|
||||||
extraGlobalConfig = ''
|
extraGlobalConfig = ''
|
||||||
contact.email.command mail -s "Munin notification for ''${var:host}" root@${config.networking.hostName}
|
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
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,11 @@ mkIf true {
|
|||||||
bind
|
bind
|
||||||
];
|
];
|
||||||
|
|
||||||
security.setuidPrograms = [ "fping" ];
|
# Paquets avec setuid root
|
||||||
|
security.wrappers = {
|
||||||
|
# outil de diagnostic réseau
|
||||||
|
fping.source = "${pkgs.fping}/bin/fping";
|
||||||
|
};
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
|
|
||||||
|
|||||||
@@ -15,5 +15,4 @@ mkIf profiles.isDesktop {
|
|||||||
support32Bit = true;
|
support32Bit = true;
|
||||||
daemon.config = { flat-volumes = "no"; };
|
daemon.config = { flat-volumes = "no"; };
|
||||||
};
|
};
|
||||||
#environment.etc."pulse/daemon.conf".text = "flat-volumes = no";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +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 true {
|
|
||||||
|
|
||||||
# Authorisation de certaines applications par sudo sans mot de passe
|
|
||||||
|
|
||||||
security.sudo.extraConfig = ''
|
|
||||||
%users ALL = NOPASSWD: ${pkgs.mtr}/bin/mtr
|
|
||||||
%users ALL = NOPASSWD: ${pkgs.slock}/bin/slock
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user