Compare commits
34 Commits
2016-08-12
...
2016-09-15
| Author | SHA1 | Date | |
|---|---|---|---|
| b622554b42 | |||
| 332f40265d | |||
|
|
781973228f | ||
|
|
65e1c6ff0e | ||
| b42c8e3080 | |||
| adaa4eeb61 | |||
| 56d2c04cd6 | |||
| ebe63ea5e0 | |||
| ea69ceba37 | |||
|
|
e8521880e1 | ||
|
|
313457be31 | ||
| df0951ce65 | |||
| 1323e6dee1 | |||
|
|
d16271c61e | ||
| 6c45e0bfa2 | |||
| c2d3bb8cb4 | |||
| d5c79218fa | |||
| e7ef51ecbe | |||
| 6c02c2200c | |||
| c8592c769e | |||
| 7b298ac8a3 | |||
| 9190d21a65 | |||
|
|
b4c960d3d3 | ||
| 516976ccf9 | |||
| 634af07219 | |||
| 91d414d3e1 | |||
| ca0171b70e | |||
| 48361328dd | |||
| ee34e1a138 | |||
| ea307cc5dc | |||
| 1cce1ec034 | |||
| 32a05e2124 | |||
|
|
23cb4c79a9 | ||
|
|
160ec79b0f |
37
Makefile
37
Makefile
@@ -1,5 +1,6 @@
|
||||
all: rebuild-switch
|
||||
date
|
||||
##--------- Commandes spécifiques pour NixOS
|
||||
|
||||
clean:
|
||||
nix-collect-garbage -d --delete-older-than 15d
|
||||
@@ -14,20 +15,26 @@ clean-log:
|
||||
journalctl --vacuum-size=1G
|
||||
|
||||
full-auto: submodules-update upgrade clean optimise
|
||||
@date
|
||||
|
||||
optimise:
|
||||
nix-store --optimise
|
||||
|
||||
push: submodules-push
|
||||
git push --all
|
||||
git push --tags
|
||||
|
||||
rebuild-switch:
|
||||
nixos-rebuild switch --fallback --show-trace
|
||||
|
||||
store-repair:
|
||||
nix-store --verify --check-contents --repair
|
||||
|
||||
upgrade:
|
||||
nixos-rebuild switch --upgrade --fallback --show-trace
|
||||
|
||||
##--------- Commandes spécifiques pour GIT
|
||||
|
||||
push: submodules-push
|
||||
git push --all
|
||||
git push --tags
|
||||
|
||||
submodules-update:
|
||||
#git submodule update --remote
|
||||
git submodule foreach git co master
|
||||
@@ -40,9 +47,27 @@ submodules-push:
|
||||
submodules-tag:
|
||||
git submodule foreach git tag -f "$$(date +%F)-$$(hostname -s)"
|
||||
|
||||
template:
|
||||
find . -name "*.nix" -exec meld /etc/nixos/base/module-template.nix {} \;
|
||||
|
||||
tag: submodules-tag
|
||||
git tag -f "$$(date +%F)-$$(hostname -s)"
|
||||
|
||||
upgrade:
|
||||
nixos-rebuild switch --upgrade --fallback --show-trace
|
||||
##--------- Munin
|
||||
|
||||
munin:
|
||||
pushd /var/www/munin/ ; python -m SimpleHTTPServer 8000
|
||||
##--------- Gestion d'un système de fichier monté en mémoire
|
||||
|
||||
tmpfs-create:
|
||||
mkdir -p /mnt/tmpfs
|
||||
|
||||
tmpfs-mount: tmpfs-create
|
||||
mount -t tmpfs -o size=10G tmpfs /mnt/tmpfs
|
||||
|
||||
tmpfs-umount:
|
||||
umount /mnt/tmpfs
|
||||
|
||||
tmpfs-destroy: tmpfs-umount
|
||||
rmdir /mnt/tmpfs
|
||||
|
||||
|
||||
9
base.nix
9
base.nix
@@ -1,4 +1,11 @@
|
||||
{ ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
#inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge;
|
||||
profiles = config.r6d.profiles;
|
||||
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 = [
|
||||
"https://cache.nixos.org/"
|
||||
(mkIf (profiles.isDubronetwork && (! computers.isPedro) && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
|
||||
|
||||
(mkIf (profiles.isDubronetwork && (! computers.isRollo)) "http://nix-cache.dubronetwork.fr:5001")
|
||||
(mkIf profiles.isPrunetwork "https://cache.nixos.org/")
|
||||
(mkIf (profiles.isPrunetwork && !profiles.isServer) "http://192.168.1.20:5000")
|
||||
];
|
||||
extraOptions = ''
|
||||
|
||||
@@ -1,12 +1,27 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
in {
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.nix-serve-server {
|
||||
|
||||
# Cache http pour le store
|
||||
|
||||
services.nix-serve.enable = cfg.nix-serve-server;
|
||||
networking.firewall.allowedTCPPorts = mkIf cfg.nix-serve-server [ 5000 ];
|
||||
# Services
|
||||
services.nix-serve = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
5000
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,17 +1,28 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
{ 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 {
|
||||
|
||||
in {
|
||||
# Gestion de fail2ban
|
||||
|
||||
services = mkIf cfg.fail2ban {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
mailutils
|
||||
whois
|
||||
];
|
||||
|
||||
|
||||
# Services
|
||||
services = {
|
||||
fail2ban = {
|
||||
enable = true;
|
||||
jails = {
|
||||
@@ -27,13 +38,27 @@ in {
|
||||
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]
|
||||
maxretry = 3
|
||||
'';
|
||||
# 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,4 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
#inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ 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 = [
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
# exemple utilisé pour commencer bird.nix
|
||||
let
|
||||
inherit (lib) mkEnableOption mkIf mkMerge mkOption singleton types;
|
||||
cfg = config.r6d.config-generator;
|
||||
@@ -107,7 +106,7 @@ in
|
||||
(mkIf pfl.isHome {
|
||||
r6d.profiles.isDesktop = true;
|
||||
})
|
||||
(mkIf pfl.isServer {
|
||||
(mkIf (pfl.isServer && !comp.isMonstre) {
|
||||
r6d.config-generator = {
|
||||
#database_postgres = true;
|
||||
dns_autorite = true;
|
||||
@@ -119,7 +118,7 @@ in
|
||||
};
|
||||
})
|
||||
# /!\ PAS un serveur
|
||||
(mkIf (!pfl.isServer) {
|
||||
(mkIf (!pfl.isServer || comp.isMonstre) {
|
||||
r6d.config-generator = {
|
||||
dns_resolveur = true;
|
||||
};
|
||||
@@ -145,9 +144,6 @@ in
|
||||
print = true;
|
||||
};
|
||||
})
|
||||
(mkIf (pfl.isDubronetwork && pfl.isServer) {
|
||||
r6d.config-generator.nix-serve-server = true;
|
||||
})
|
||||
(mkIf (pfl.isDubronetwork && pfl.isWorkstation) {
|
||||
r6d.config-generator = {
|
||||
conception-assistee = true;
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
in mkIf cfg.xmonad {
|
||||
# Paquets spécifiques pour xmonad
|
||||
mkIf cfg.xmonad {
|
||||
|
||||
environment.systemPackages = with pkgs;[
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
dmenu
|
||||
haskellPackages.xmobar
|
||||
];
|
||||
|
||||
# Services
|
||||
services.xserver.windowManager.xmonad = {
|
||||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
|
||||
@@ -13,6 +13,7 @@ in
|
||||
./activation-manuelle/xmonad/xmonad.nix # gestionnaire de fenêtres xmonad
|
||||
];
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; mkIf profiles.isDesktop [
|
||||
# Environement de bureau
|
||||
arandr # interface graphique pour xrandr
|
||||
@@ -54,4 +55,6 @@ in
|
||||
clawsMail = pkgs.clawsMail.override { enablePluginFancy = true; };
|
||||
mumble = pkgs.mumble.override { pulseSupport = true; };
|
||||
};
|
||||
|
||||
security.setuidPrograms = [ "udevil" ];
|
||||
}
|
||||
|
||||
@@ -1,11 +1,25 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
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; [
|
||||
];
|
||||
|
||||
# Services
|
||||
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
pushd /var/www/munin/ && python -m SimpleHTTPServer 8000
|
||||
@@ -1,14 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
mkIf true {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Adminsys
|
||||
iotop
|
||||
@@ -22,22 +23,30 @@ mkIf profiles.isDesktop {
|
||||
python27Packages.glances
|
||||
usbutils
|
||||
|
||||
# DNS
|
||||
unbound
|
||||
|
||||
# Compression
|
||||
lz4
|
||||
lzop
|
||||
|
||||
# Système de fichier
|
||||
curlftpfs
|
||||
gparted
|
||||
inotify-tools
|
||||
nfs-utils
|
||||
ntfs3g
|
||||
sshfsFuse
|
||||
## Montage de filesystem
|
||||
curlftpfs # ftp
|
||||
ntfs3g # ntfs
|
||||
sshfsFuse # ssh
|
||||
|
||||
#
|
||||
unetbootin # création de clefs USB bootables
|
||||
## Gestion de FS
|
||||
nfs-utils
|
||||
|
||||
## Exploitation FS
|
||||
inotify-tools # être notifié lorsque le contenu d'un répertoire change
|
||||
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
|
||||
)
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Bureautique
|
||||
aspell aspellDicts.fr
|
||||
@@ -34,6 +35,7 @@ mkIf profiles.isDesktop {
|
||||
gnuplot # générateur de graphes à partir de données numériques
|
||||
graphviz # dot, neato : traçage de graphes (carré, rond)
|
||||
jekyll # générateur statique de site web
|
||||
odpdown # conversion md -> presentation ODP : https://github.com/thorstenb/odpdown
|
||||
pandoc
|
||||
texLiveFull # distribution LaTeX
|
||||
#texLive # distribution LaTeX de base
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,7 +9,8 @@ in
|
||||
|
||||
mkIf cfg.conception-assistee {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# CAO
|
||||
## Modélisation 3D
|
||||
freecad # modélisation de pièces en 3D
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf cfg.cartographie {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Gestion de données géographiques
|
||||
expat
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Clients Internet
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,36 +9,40 @@ in
|
||||
|
||||
mkIf cfg.developpement {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Base de données
|
||||
pgadmin
|
||||
sqlitebrowser
|
||||
pgadmin # interface d'administration de postgres
|
||||
sqlitebrowser # interface d'administration de sqlite
|
||||
|
||||
# Développement
|
||||
cloc
|
||||
idea.idea-community
|
||||
gcc # pour les appels depuis les scripts
|
||||
idea.idea-community # IntelliJ IDEA
|
||||
gcc # pour les appels depuis les scripts
|
||||
|
||||
# Documentation
|
||||
zeal
|
||||
zeal # consulter la documentation hors ligne
|
||||
|
||||
## Gestion des sources
|
||||
# git # déjà présent dans "base"
|
||||
git-cola
|
||||
# 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
|
||||
|
||||
## Haskell
|
||||
ghc
|
||||
ghc # pour les appels depuis les scripts
|
||||
stack
|
||||
|
||||
## Rust
|
||||
cargo # récupération des dépendances + compilation projet rust
|
||||
rustPlatform.rustc
|
||||
cargo # récupération des dépendances + compilation projet rust
|
||||
rustPlatform.rustc # pour les appels depuis les scripts
|
||||
|
||||
## Visualisation & outils de diff
|
||||
gource
|
||||
meld
|
||||
vbindiff # diff de fichier hexadecimaux avec vim
|
||||
gource # visualisation en mouvement de l'historique git
|
||||
meld # outil de comparaison graphique
|
||||
vbindiff # diff de fichier hexadecimaux avec vim
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf cfg.docker {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Ecosystème Docker
|
||||
docker
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,7 +9,8 @@ in
|
||||
|
||||
mkIf cfg.edition-musique {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
#
|
||||
audacity # montage audio
|
||||
easytag # gestion des métadonnées des fichiers musicaux
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf cfg.edition-photo {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Méta données
|
||||
exif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,7 +9,8 @@ in
|
||||
|
||||
mkIf cfg.edition-video {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Vidéo
|
||||
#cinelerra # editeur video
|
||||
pitivi # montage vidéo
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf cfg.jeux {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Jeux
|
||||
urbanterror
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Multimedia
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Outils réseau
|
||||
iperf # outil de mesure de la qualité du réseau
|
||||
@@ -23,7 +24,11 @@ mkIf profiles.isDesktop {
|
||||
];
|
||||
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [5201]; # iperf
|
||||
allowedUDPPorts = [5201]; # iperf
|
||||
allowedTCPPorts = [
|
||||
5201 # iperf
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
5201 # iperf
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Securité
|
||||
gnome3.seahorse # gestionnaire graphique de clef GPG
|
||||
@@ -17,4 +18,5 @@ mkIf profiles.isDesktop {
|
||||
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
|
||||
];
|
||||
security.setuidPrograms = [ "slock" ];
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,10 +9,19 @@ in
|
||||
|
||||
mkIf cfg.virtualbox {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
linuxPackages.virtualbox
|
||||
linuxPackages.virtualboxGuestAdditions
|
||||
];
|
||||
|
||||
# À décommenter pour activer le pack d'extension
|
||||
#boot.kernelPackages = pkgs.linuxPackages // {
|
||||
# virtualbox = pkgs.linuxPackages.virtualbox.override {
|
||||
# enableExtensionPack = true;
|
||||
# pulseSupport = true;
|
||||
# };
|
||||
#};
|
||||
|
||||
virtualisation.virtualbox.host.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.auto-upgrade {
|
||||
|
||||
# Automatic update & automatic clean
|
||||
|
||||
system.autoUpgrade.enable = true;
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
{
|
||||
# Nombre de process d'installation en parrallèle effectués par Nix
|
||||
@@ -10,8 +17,7 @@
|
||||
# On autorise les paquets non-libres
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
# Paquets
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
bind # utilisé pour les utilitaires comme dig
|
||||
@@ -43,6 +49,7 @@
|
||||
];
|
||||
shellAliases = {
|
||||
byobu = "byobu-tmux";
|
||||
jacques-a-dit = "sudo";
|
||||
tree = "tree -C";
|
||||
tree1 = "tree -d -L 1";
|
||||
tree2 = "tree -d -L 2";
|
||||
@@ -52,6 +59,10 @@
|
||||
};
|
||||
etc.gitconfig.text = builtins.readFile ./gitconfig;
|
||||
};
|
||||
# programmes qui n'ont pas besoin de sudo pour fonctionner
|
||||
security.setuidPrograms = [
|
||||
"mtr"
|
||||
];
|
||||
programs.bash = {
|
||||
enableCompletion = true;
|
||||
promptInit = builtins.readFile ./bash-prompt.sh;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -19,6 +19,7 @@ mkIf cfg.laptop {
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
networkmanagerapplet
|
||||
];
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ 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 {
|
||||
|
||||
{
|
||||
# Select internationalisation properties.
|
||||
i18n = {
|
||||
consoleFont = "Lat2-Terminus16";
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ 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 {
|
||||
|
||||
{
|
||||
# Utilisation d'adresse IPv6 temporaire
|
||||
|
||||
## https://blog.linitx.com/control-privacy-addressing-ipv6-linux/
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.print {
|
||||
# Enable CUPS to print documents.
|
||||
|
||||
# Services
|
||||
## Enable CUPS to print documents.
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = [
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
#inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -6,6 +13,7 @@
|
||||
./environment.nix
|
||||
./localisation.nix
|
||||
#./network-ipv6.nix
|
||||
./sudo.nix
|
||||
./service-haveged.nix
|
||||
./service-monitoring.nix
|
||||
./service-ssh.nix
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Sécurité & Acces distant
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf true {
|
||||
|
||||
# Sécurité & Accès distant
|
||||
# Services
|
||||
|
||||
## Augmentation de l'entropie du système par un générateur de nombres aléatoires
|
||||
## cat /proc/sys/kernel/random/entropy_avail
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -11,6 +11,7 @@ mkIf cfg.laptop {
|
||||
|
||||
# Gestion spécifique pour PC portable
|
||||
|
||||
# Services
|
||||
services.xserver.synaptics = {
|
||||
enable = true;
|
||||
twoFingerScroll = true;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
@@ -9,6 +9,7 @@ in
|
||||
|
||||
mkIf cfg.locate {
|
||||
|
||||
# Services
|
||||
services.locate = {
|
||||
enable = true;
|
||||
interval = "hourly";
|
||||
|
||||
@@ -1,14 +1,27 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Monitoring
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
# Noeud de supervision munin = pas de stockage des données locales
|
||||
mkIf true {
|
||||
|
||||
# Paquets
|
||||
environment.systemPackages = with pkgs; [
|
||||
mailutils
|
||||
];
|
||||
|
||||
# Services
|
||||
|
||||
## Noeud de supervision munin = pas de stockage des données locales
|
||||
services.munin-node = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Munin server -- generate /var/www/munin
|
||||
## Munin server -- generate /var/www/munin
|
||||
services.munin-cron = {
|
||||
enable = true;
|
||||
hosts = ''
|
||||
@@ -20,12 +33,12 @@
|
||||
'';
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
# TODO configurer les bon ports lors de l'ouverture du service
|
||||
8000
|
||||
];
|
||||
|
||||
## Documentation
|
||||
# * https://nixos.org/wiki/Create_and_debug_nix_packages
|
||||
# * http://chriswarbo.net/essays/nixos/developing_on_nixos.html
|
||||
# Réseau
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
8000
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
mkIf = pkgs.lib.mkIf;
|
||||
in
|
||||
|
||||
{
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Pulse Audio
|
||||
hardware.pulseaudio = mkIf profiles.isDesktop {
|
||||
hardware.pulseaudio = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# OpenSSH daemon
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf true {
|
||||
|
||||
# Services
|
||||
## OpenSSH daemon
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
# https://wiki.mozilla.org/Security/Guidelines/OpenSSH#Modern_.28OpenSSH_6.7.2B.29
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
{ config, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
mkIf = pkgs.lib.mkIf;
|
||||
in
|
||||
|
||||
{
|
||||
mkIf profiles.isDesktop {
|
||||
|
||||
# Services
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver = mkIf profiles.isDesktop {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
layout = "fr";
|
||||
xkbOptions = "eurosign:e";
|
||||
|
||||
18
public/sudo.nix
Normal file
18
public/sudo.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 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
|
||||
'';
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkIf;
|
||||
inherit (lib) mkIf mkMerge mkThenElse;
|
||||
cfg = config.r6d.config-generator;
|
||||
computers = config.r6d.computers;
|
||||
profiles = config.r6d.profiles;
|
||||
in
|
||||
|
||||
mkIf cfg.swap {
|
||||
|
||||
# Gestion du swap
|
||||
|
||||
# https://en.wikipedia.org/wiki/Swappiness
|
||||
|
||||
Reference in New Issue
Block a user