Compare commits
8 Commits
2017-03-01
...
2017-03-01
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6a7f50ebd | ||
|
|
2fdaf24fae | ||
|
|
c193d944d9 | ||
|
|
7750d1a266 | ||
|
|
08195188b2 | ||
|
|
b12e1f9ae5 | ||
|
|
d0b3497ccb | ||
|
|
ba0d43670d |
2
base.nix
2
base.nix
@@ -10,8 +10,6 @@ in
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# recettes
|
# recettes
|
||||||
./base/base.nix
|
|
||||||
./desktop/desktop.nix
|
|
||||||
./public/public.nix
|
./public/public.nix
|
||||||
|
|
||||||
# moulinette de configuration
|
# moulinette de configuration
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/etc/nixos/base/Makefile
|
|
||||||
@@ -1,30 +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.nix-serve-client {
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
# Cache http pour le store
|
|
||||||
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 && computers.isRadx) "http://monstre.grudu.net:5000")
|
|
||||||
(mkIf (profiles.isPrunetwork && computers.isRadx) "http://phenom.grudu.net:5000")
|
|
||||||
];
|
|
||||||
extraOptions = ''
|
|
||||||
connect-timeout = 5
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,31 +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.nix-serve-server {
|
|
||||||
|
|
||||||
# Cache http pour le store
|
|
||||||
|
|
||||||
# Services
|
|
||||||
services.nix-serve = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Réseau
|
|
||||||
networking.firewall = {
|
|
||||||
allowedTCPPorts = [
|
|
||||||
#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
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) mkIf mkMerge mkThenElse;
|
|
||||||
cfg = config.r6d.config-generator;
|
|
||||||
computers = config.r6d.computers;
|
|
||||||
profiles = config.r6d.profiles;
|
|
||||||
|
|
||||||
ignoreip = "pedro.dubronetwork.fr cube.dubronetwork.fr voyage.prunetwork.fr xray.prunetwork.fr 192.168.0.0/16 172.16.0.0/16";
|
|
||||||
destemail = "admins@dubronetwork.fr";
|
|
||||||
in
|
|
||||||
|
|
||||||
mkIf cfg.fail2ban {
|
|
||||||
|
|
||||||
# Gestion de fail2ban
|
|
||||||
|
|
||||||
# Paquets
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
mailutils
|
|
||||||
whois
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
# Services
|
|
||||||
services = {
|
|
||||||
fail2ban = {
|
|
||||||
enable = true;
|
|
||||||
jails = {
|
|
||||||
DEFAULT = ''
|
|
||||||
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
|
|
||||||
ignoreip = 127.0.0.1/8 ${ignoreip}
|
|
||||||
|
|
||||||
# 1 jour
|
|
||||||
# bantime = 86400
|
|
||||||
# 5 jours
|
|
||||||
bantime = 432000
|
|
||||||
|
|
||||||
maxretry = 3
|
|
||||||
|
|
||||||
destemail = ${destemail}
|
|
||||||
|
|
||||||
# https://github.com/Baughn/nixpkgs/blob/master/nixos/modules/services/security/fail2ban.nix
|
|
||||||
findtime = 600
|
|
||||||
maxretry = 3
|
|
||||||
backend = systemd
|
|
||||||
enabled = true
|
|
||||||
'';
|
|
||||||
ssh-route = ''
|
|
||||||
filter = sshd
|
|
||||||
action = route[blocktype=blackhole]
|
|
||||||
'';
|
|
||||||
# désactivation car souci de PATH avec les commandes mail ou sendmail. Nécessite un path motifiable
|
|
||||||
# ticket à ouvrir
|
|
||||||
#ssh-mail = ''
|
|
||||||
# filter = sshd
|
|
||||||
# action = sendmail[sendername=Fail2ban @${config.networking.hostName}]
|
|
||||||
#'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/8437
|
|
||||||
services.fail2ban.jails.ssh-iptables = "enabled = true";
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,20 +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 = [
|
|
||||||
./network-dns.nix
|
|
||||||
|
|
||||||
# inclusion conditionnelle
|
|
||||||
./activation-manuelle/service-fail2ban.nix
|
|
||||||
./activation-manuelle/nix-serve-client.nix
|
|
||||||
./activation-manuelle/nix-serve-server.nix
|
|
||||||
./activation-manuelle/users.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,22 +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 {
|
|
||||||
|
|
||||||
# Définition des domaines utilisés lorsque un identifiant non-FQDN est donné (ping, nslookup)
|
|
||||||
networking = {
|
|
||||||
search = [
|
|
||||||
"dubronetwork.fr"
|
|
||||||
"prunetwork.fr"
|
|
||||||
"teleragno.fr"
|
|
||||||
"teleragno.net"
|
|
||||||
];
|
|
||||||
dnsExtensionMechanism = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,7 @@ SESSION_NAME="Adminsys"
|
|||||||
PROJECT_DIR="/etc/nixos"
|
PROJECT_DIR="/etc/nixos"
|
||||||
PROJECT_MODULES="base private server"
|
PROJECT_MODULES="base private server"
|
||||||
HEAD_ADDITIONNAL_TABS="git config"
|
HEAD_ADDITIONNAL_TABS="git config"
|
||||||
TAIL_ADDITIONNAL_TABS="glances"
|
TAIL_ADDITIONNAL_TABS="glances htop"
|
||||||
|
|
||||||
# création de la session
|
# création de la session
|
||||||
byobu new-session -d -s ${SESSION_NAME} -n 'run' -c ${PROJECT_DIR};
|
byobu new-session -d -s ${SESSION_NAME} -n 'run' -c ${PROJECT_DIR};
|
||||||
@@ -23,10 +23,10 @@ do
|
|||||||
byobu new-window -n ${i} -c ${PROJECT_DIR}/${i};
|
byobu new-window -n ${i} -c ${PROJECT_DIR}/${i};
|
||||||
done
|
done
|
||||||
|
|
||||||
## onglets courants à la fin. Positionnés dans dossier projet
|
## onglets courants à la fin. Positionnés dans dossier projet. Lance la commande du même nom que l'onglet
|
||||||
for i in ${TAIL_ADDITIONNAL_TABS}
|
for i in ${TAIL_ADDITIONNAL_TABS}
|
||||||
do
|
do
|
||||||
byobu new-window -n ${i} -c ${PROJECT_DIR};
|
byobu new-window -n ${i} -c ${PROJECT_DIR} ${i};
|
||||||
done
|
done
|
||||||
|
|
||||||
# affiche la session
|
# affiche la session
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.r6d.config-generator;
|
|
||||||
computers = config.r6d.computers;
|
|
||||||
profiles = config.r6d.profiles;
|
|
||||||
mkIf = lib.mkIf;
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ # applications :
|
|
||||||
# commandées par config-generator
|
|
||||||
./activation-manuelle/xmonad/xmonad.nix # gestionnaire de fenêtres xmonad
|
|
||||||
];
|
|
||||||
|
|
||||||
# Paquets
|
|
||||||
environment.systemPackages = with pkgs; mkIf profiles.isDesktop [
|
|
||||||
# A trier
|
|
||||||
cowsay
|
|
||||||
fgallery # générateur de gallerie statique http://www.thregr.org/~wavexx/software/fgallery/
|
|
||||||
taskwarrior # gestionnaire de tâches en console
|
|
||||||
xclip # manipulation du clipboard X depuis la console
|
|
||||||
];
|
|
||||||
|
|
||||||
# Paquets avec setuid root
|
|
||||||
security.wrappers = {
|
|
||||||
# pour le montage des media amovibles
|
|
||||||
devmon.source = "${pkgs.udevil}/bin/devmon";
|
|
||||||
udevil.source = "${pkgs.udevil}/bin/udevil"; # utilisé par spacefm
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -12,6 +12,7 @@ mkIf true {
|
|||||||
# Paquets
|
# Paquets
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Adminsys
|
# Adminsys
|
||||||
|
cowsay # pour ansible & 4lulz
|
||||||
iotop
|
iotop
|
||||||
lm_sensors
|
lm_sensors
|
||||||
lshw
|
lshw
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ let
|
|||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
# TODO: rc.lua par défaut (système)
|
||||||
mkIf cfg.awesome {
|
mkIf cfg.awesome {
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ mkIf profiles.isDesktop {
|
|||||||
arandr # interface graphique pour xrandr
|
arandr # interface graphique pour xrandr
|
||||||
wmname # pour définir le nom du gestionnaire de fenêtre (utile pour java)
|
wmname # pour définir le nom du gestionnaire de fenêtre (utile pour java)
|
||||||
#kde4.ksnapshot # capture d'écran
|
#kde4.ksnapshot # capture d'écran
|
||||||
|
xclip # manipulation du clipboard X depuis la console
|
||||||
xorg.xbacklight # pour gérer la luminosité de l'é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.xev # pour repérer les codes + noms standard des actions clavier/souris
|
||||||
xorg.xkill # pour 'tuer une application'
|
xorg.xkill # pour 'tuer une application'
|
||||||
@@ -39,4 +40,11 @@ mkIf profiles.isDesktop {
|
|||||||
hack-font # police monospace créée explicitement pour coder
|
hack-font # police monospace créée explicitement pour coder
|
||||||
hasklig # police dérivée de source-code-pro mais avec des ligatures
|
hasklig # police dérivée de source-code-pro mais avec des ligatures
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Paquets avec setuid root
|
||||||
|
security.wrappers = {
|
||||||
|
# pour le montage des media amovibles
|
||||||
|
devmon.source = "${pkgs.udevil}/bin/devmon";
|
||||||
|
udevil.source = "${pkgs.udevil}/bin/udevil"; # utilisé par spacefm
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ mkIf profiles.isDesktop {
|
|||||||
gnumeric # tableur
|
gnumeric # tableur
|
||||||
#kde4.ksnapshot# réalisation de capture d'écran
|
#kde4.ksnapshot# réalisation de capture d'écran
|
||||||
|
|
||||||
|
# Gestion de tâche
|
||||||
|
taskwarrior # gestionnaire de tâches en console
|
||||||
|
|
||||||
## Cartes mentales
|
## Cartes mentales
|
||||||
freemind
|
freemind
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ let
|
|||||||
computers = config.r6d.computers;
|
computers = config.r6d.computers;
|
||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
# TODO: ménage
|
||||||
mkIf profiles.isDesktop {
|
mkIf profiles.isDesktop {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ let
|
|||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
# TODO: ménage
|
||||||
{
|
{
|
||||||
# Nombre de process d'installation en parrallèle effectués par Nix
|
# Nombre de process d'installation en parrallèle effectués par Nix
|
||||||
nix.buildCores = 0;
|
nix.buildCores = 0;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ in
|
|||||||
|
|
||||||
# commandées par config-generator
|
# commandées par config-generator
|
||||||
## option de configuration spécifique
|
## option de configuration spécifique
|
||||||
./app-awesome.nix # pour les profils awesome
|
./app-awesome.nix # pour le gestionaire de fenêtres awesome
|
||||||
./app-cao.nix # de conception assisté par ordinateur & modélisation
|
./app-cao.nix # de conception assisté par ordinateur & modélisation
|
||||||
./app-cartographie.nix # manipuler les données géographiques & cartes
|
./app-cartographie.nix # manipuler les données géographiques & cartes
|
||||||
./app-developpement.nix # développer des programmes/scripts
|
./app-developpement.nix # développer des programmes/scripts
|
||||||
@@ -47,6 +47,7 @@ in
|
|||||||
./service-laptop.nix # services spécifiques aux pc portables
|
./service-laptop.nix # services spécifiques aux pc portables
|
||||||
./service-locate.nix # service locate
|
./service-locate.nix # service locate
|
||||||
./swap.nix # définition de l'utilisation du swap
|
./swap.nix # définition de l'utilisation du swap
|
||||||
|
./xmonad/xmonad.nix # pour le gestionaire de fenêtre xmonad
|
||||||
|
|
||||||
## 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
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ let
|
|||||||
computers = config.r6d.computers;
|
computers = config.r6d.computers;
|
||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
# TODO: ménage
|
||||||
mkIf cfg.hydra-builder {
|
mkIf cfg.hydra-builder {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ let
|
|||||||
# information pour l'état de hydra :
|
# information pour l'état de hydra :
|
||||||
# hydra-queue-runner --status | json_pp
|
# hydra-queue-runner --status | json_pp
|
||||||
in
|
in
|
||||||
|
# TODO: passe de ménage
|
||||||
mkIf cfg.hydra-core {
|
mkIf cfg.hydra-core {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ let
|
|||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
# TODO: ajouter option
|
||||||
|
# TODO: changer adresse mail
|
||||||
mkIf true {
|
mkIf true {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ let
|
|||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
# TODO: ajouter option
|
||||||
mkIf true {
|
mkIf true {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
|
|||||||
Reference in New Issue
Block a user