Compare commits
55 Commits
2017-03-01
...
2017-03-18
| Author | SHA1 | Date | |
|---|---|---|---|
| f1c02b0625 | |||
| 0ffecb8804 | |||
| ac76e6e62b | |||
| 5a7ad25615 | |||
|
|
c3c7581a3e | ||
| e80018e273 | |||
| b829e708a0 | |||
| 3297760d21 | |||
| b983832308 | |||
| db66626208 | |||
|
|
14e9ddbc13 | ||
|
|
c96c981d20 | ||
| 4535ccf03c | |||
| 7bc21c0dc8 | |||
|
|
3f74486951 | ||
|
|
0dae9aef3c | ||
|
|
1a3e8f4528 | ||
|
|
b1d3ee4aae | ||
| e2178821d8 | |||
| 1e00db3864 | |||
|
|
3364f19ed7 | ||
|
|
c10d2c6d63 | ||
| 8dd973ede1 | |||
| aeeea3a743 | |||
| 3b76bd00af | |||
| e74a1825d9 | |||
|
|
b47c6807d1 | ||
|
|
a4728792b2 | ||
|
|
4c4c2fed3e | ||
| 93254f45c0 | |||
| c1ce935adb | |||
| e68cbcd8b9 | |||
| ac39a52fd7 | |||
| 3dc8184bca | |||
| 24ef44b100 | |||
| 9e9ea00cd2 | |||
| 464da39592 | |||
| 963c818875 | |||
|
|
2f99508331 | ||
|
|
b6a7f50ebd | ||
|
|
2fdaf24fae | ||
|
|
c193d944d9 | ||
|
|
7750d1a266 | ||
|
|
08195188b2 | ||
|
|
b12e1f9ae5 | ||
|
|
d0b3497ccb | ||
|
|
ba0d43670d | ||
|
|
493249ebd3 | ||
| e0a468bfeb | |||
| c4013be348 | |||
| 6cdd621db2 | |||
| a5bfdbcd3d | |||
| 5b954581db | |||
| ca11b46674 | |||
| aad2931967 |
184
README.md
184
README.md
@@ -1,18 +1,45 @@
|
|||||||
# nixos-template-base
|
# nixos-template-base
|
||||||
|
|
||||||
Version de nixos supportée : NixOs 16.09
|
Versions de NixOS supportées :
|
||||||
|
* NixOS 16.09
|
||||||
|
* NixOS unstable
|
||||||
|
|
||||||
Ce dépôt stocke une configuration générique des machines.
|
Ce dépôt stocke une configuration générique des machines.
|
||||||
Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN).
|
Une recette dite "config-generator" adapte la configuration selon le nom de la machine (FQDN).
|
||||||
|
|
||||||
Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs.
|
Actuellement, les scripts contiennent un peu de configuration spécifique pour les machines des mainteneurs.
|
||||||
|
|
||||||
# Lien pour install sur machine distante
|
# Notes de mise-à-jour
|
||||||
|
## pour le passage de 16.09 à unstable
|
||||||
|
|
||||||
* https://nixos.org/wiki/How_to_install_NixOS_from_Linux#Installing_through_a_chroot
|
* mettre à jour tous les dépôts
|
||||||
* https://github.com/NixOS/nixpkgs/issues/13305
|
* changer la branche de base vers `nixos-unstable`
|
||||||
|
* changer la declaration de la machine dans `configuration.nix`
|
||||||
|
|
||||||
# Notes pour l'upgrade de 16.03 vers 16.09
|
~~~
|
||||||
|
networking.hostName = "<bidule>";
|
||||||
|
~~~
|
||||||
|
|
||||||
|
devient
|
||||||
|
|
||||||
|
~~~
|
||||||
|
r6d.computers.is<bidule> = true;
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* mettre à jour le channel
|
||||||
|
|
||||||
|
~~~
|
||||||
|
nix-channel --add https://nixos.org/channels/nixos-unstable nixos
|
||||||
|
nix-channel --update
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* faire la mise à jour
|
||||||
|
|
||||||
|
~~~
|
||||||
|
make
|
||||||
|
~~~
|
||||||
|
|
||||||
|
## pour le passage de 16.03 à 16.09
|
||||||
|
|
||||||
* mettre le dépôt base sur la branche upgrade-16.09
|
* mettre le dépôt base sur la branche upgrade-16.09
|
||||||
* changer le channel nixos : ```nix-channel --add https://nixos.org/channels/nixos-16.09 nixos```
|
* changer le channel nixos : ```nix-channel --add https://nixos.org/channels/nixos-16.09 nixos```
|
||||||
@@ -41,3 +68,150 @@ Pour résoudre les soucis d'upgrade, il est conseillé :
|
|||||||
* d'ajouter `vim` aux paquets
|
* d'ajouter `vim` aux paquets
|
||||||
* de réactiver petit à petit les lignes désactivées
|
* de réactiver petit à petit les lignes désactivées
|
||||||
|
|
||||||
|
|
||||||
|
# Installation sur machine chez online.net
|
||||||
|
|
||||||
|
* https://nixos.org/wiki/Install_NixOS_on_Online.Net
|
||||||
|
* https://nixos.org/wiki/Install_NixOS_on_Linode
|
||||||
|
|
||||||
|
|
||||||
|
## Installation selon config online
|
||||||
|
|
||||||
|
* commander serveur
|
||||||
|
* lancer la procédure d'installation avec ubuntu LTS 64bits
|
||||||
|
* partitionner le disque avec l'interface web
|
||||||
|
* lancer l'installation de l'os.
|
||||||
|
* attendre que la procédure standard d'installation d'online ait terminée
|
||||||
|
* lorsque l'install est finie, dans l'onglet "Etat" se trouve l'option "Secours"
|
||||||
|
|
||||||
|
## Transformation en NixOS
|
||||||
|
|
||||||
|
* relancer la machine en mode "Secours"
|
||||||
|
* choisir un linux 64bits (préférence pour ubuntu LTS)
|
||||||
|
* le système de boot donne des identifiants SSH pour le connecter à la machine
|
||||||
|
|
||||||
|
* se connecter à la machine
|
||||||
|
* passer en root
|
||||||
|
|
||||||
|
~~~
|
||||||
|
sudo su -
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* formater les partitions
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mkfs.ext4 -L nixos /dev/sda1
|
||||||
|
swapoff -a
|
||||||
|
mkswap /dev/sda2
|
||||||
|
swapon -a
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* monter les partitions dans /mnt
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mount /dev/sda1 /mnt/
|
||||||
|
mkdir /mnt/etc/
|
||||||
|
mkdir /etc/nixos
|
||||||
|
mkdir /mnt/nix
|
||||||
|
mount --bind /mnt/nix/ /nix
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
|
* installer les paquets nécessaires
|
||||||
|
|
||||||
|
~~~
|
||||||
|
apt-get install bzip2 git byobu htop glances
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* création d'utilisateur (n'importe quil mot de passe)
|
||||||
|
|
||||||
|
~~~
|
||||||
|
adduser nix
|
||||||
|
groupadd -r nixbld
|
||||||
|
for n in $(seq 1 10); do useradd -c "Nix build user $n" -d /var/empty -g nixbld -G nixbld -M -N -r -s "$(which nologin)" nixbld$n; done
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* mise-à-jour des certificats
|
||||||
|
|
||||||
|
~~~
|
||||||
|
update-ca-certificates
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* installer nix
|
||||||
|
|
||||||
|
~~~
|
||||||
|
chown -R nix /nix
|
||||||
|
su - nix
|
||||||
|
bash <(curl https://nixos.org/nix/install)
|
||||||
|
exit
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* créer un profil nix pour root & un channel
|
||||||
|
|
||||||
|
~~~
|
||||||
|
. ~nix/.nix-profile/etc/profile.d/nix.sh
|
||||||
|
nix-channel --remove nixpkgs
|
||||||
|
nix-channel --add http://nixos.org/channels/nixos-unstable nixos
|
||||||
|
nix-channel --update
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* installer un editeur de texte
|
||||||
|
|
||||||
|
~~~
|
||||||
|
nix-env -i vim_configurable
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* installation de nixos-install
|
||||||
|
|
||||||
|
~~~
|
||||||
|
cat <<EOF > /root/configuration.nix
|
||||||
|
{ fileSystems."/" = {};
|
||||||
|
boot.loader.grub.enable = false;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos
|
||||||
|
export NIXOS_CONFIG=/root/configuration.nix
|
||||||
|
nix-env -i -A config.system.build.nixos-install \
|
||||||
|
-A config.system.build.nixos-option \
|
||||||
|
-A config.system.build.nixos-generate-config \
|
||||||
|
-f "<nixos>"
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* configuration de NixOS
|
||||||
|
|
||||||
|
si la machine existe déjà, cloner le dépôt dans /mnt/etc/nixos
|
||||||
|
pour cela, créer clef ssh et l'ajouter sur la forge
|
||||||
|
|
||||||
|
~~~
|
||||||
|
ssh-keygen -t ed25519
|
||||||
|
cp ~/.ssh/id_ed25519* /mnt/etc/nixos/
|
||||||
|
|
||||||
|
git clone <>
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* monter /etc/nixos vers /mnt/etc/nixos pour que la config clonée fonctionne
|
||||||
|
|
||||||
|
~~~
|
||||||
|
mount --bind /mnt/etc/nixos/ /etc/nixos/
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* mettre à jour la configuration matérielle
|
||||||
|
|
||||||
|
~~~
|
||||||
|
export NIX_PATH=nixpkgs=/root/.nix-defexpr/channels/nixos:nixos=/root/.nix-defexpr/channels/nixos/nixos
|
||||||
|
nixos-generate-config --root /mnt
|
||||||
|
~~~
|
||||||
|
|
||||||
|
* vérifier le /mnt/etc/nixos/configuration.nix
|
||||||
|
|
||||||
|
notamment le périphérique utilisé par grub
|
||||||
|
|
||||||
|
* installer le système sur le disque
|
||||||
|
|
||||||
|
~~~
|
||||||
|
unset NIXOS_CONFIG
|
||||||
|
nixos-install
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|||||||
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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
SESSION_NAME="Adminsys"
|
SESSION_NAME="Adminsys"
|
||||||
PROJECT_DIR="/etc/nixos"
|
PROJECT_DIR="/etc/nixos"
|
||||||
PROJECT_MODULES="base private server"
|
PROJECT_MODULES=$(cd $PROJECT_DIR && git submodule --quiet foreach 'echo $path')
|
||||||
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
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# TODO: ménage
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
@@ -63,6 +64,7 @@ in
|
|||||||
rabbitmq = mkEnableOption "Profil pour activer le service de messagerie AMQP.";
|
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.";
|
radicale = mkEnableOption "Profil pour activer le service d'hébergement de calendrier + tâches & contacts.";
|
||||||
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
|
scanner = mkEnableOption "Profil pour que les scanners soient utilisable.";
|
||||||
|
smokeping = mkEnableOption "Profil pour activer le monitoring réseau par smokeping.";
|
||||||
swap = mkEnableOption "Profil pour que le swap soit activé.";
|
swap = mkEnableOption "Profil pour que le swap soit activé.";
|
||||||
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
|
virtualbox = mkEnableOption "Profil pour l'utilisation de VirtualBox.";
|
||||||
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
|
xmonad = mkEnableOption "Profil pour activer le gestionnaire de fenêtres xmonad.";
|
||||||
@@ -122,6 +124,7 @@ in
|
|||||||
#dns_resolveur = true;
|
#dns_resolveur = true;
|
||||||
# inutile d'exposer la conf complète du serveur par le store tant qu'il n'y a pas de protection complémentaire - utilisation SSH ?
|
# inutile d'exposer la conf complète du serveur par le store tant qu'il n'y a pas de protection complémentaire - utilisation SSH ?
|
||||||
#nix-serve-server = true;
|
#nix-serve-server = true;
|
||||||
|
smokeping = true;
|
||||||
|
|
||||||
#rabbitmq = true;
|
#rabbitmq = true;
|
||||||
};
|
};
|
||||||
@@ -173,6 +176,7 @@ in
|
|||||||
docker = true;
|
docker = true;
|
||||||
locate = true;
|
locate = true;
|
||||||
fail2ban = true;
|
fail2ban = true;
|
||||||
|
smokeping = true;
|
||||||
swap = true;
|
swap = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
@@ -209,10 +213,12 @@ in
|
|||||||
docker = true;
|
docker = true;
|
||||||
hydra-builder = true;
|
hydra-builder = true;
|
||||||
hydra-core = true;
|
hydra-core = true;
|
||||||
#tincAddress = "192.168.12.6/24";
|
nix-serve-server = true;
|
||||||
#tincExtraConfig = ''
|
tincAddress = "192.168.12.9/24";
|
||||||
# ConnectTo = rollo_dubronetwork_fr
|
tincExtraConfig = ''
|
||||||
# '';
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
|
ConnectTo = ocean_prunetwork_fr
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkIf comp.isOcean {
|
(mkIf comp.isOcean {
|
||||||
@@ -224,9 +230,13 @@ in
|
|||||||
|
|
||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
docker = true;
|
docker = true;
|
||||||
|
hydra-builder = true;
|
||||||
radicale = true;
|
radicale = true;
|
||||||
|
nix-serve-client = true;
|
||||||
|
nix-serve-server = true;
|
||||||
tincAddress = "192.168.12.6/24";
|
tincAddress = "192.168.12.6/24";
|
||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@@ -242,7 +252,6 @@ in
|
|||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
database_postgres = true;
|
database_postgres = true;
|
||||||
elasticsearch = true;
|
elasticsearch = true;
|
||||||
hydra-builder = true;
|
|
||||||
#hydra-core = false; # DO NOT ENABLE ON WORKSTATION
|
#hydra-core = false; # DO NOT ENABLE ON WORKSTATION
|
||||||
kibana = true;
|
kibana = true;
|
||||||
nix-serve-client = true;
|
nix-serve-client = true;
|
||||||
@@ -252,12 +261,15 @@ in
|
|||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = monstre_dubronetwork_fr
|
ConnectTo = monstre_dubronetwork_fr
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
'';
|
'';
|
||||||
|
virtualbox = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(mkIf comp.isLatitude {
|
(mkIf comp.isLatitude {
|
||||||
|
networking.hostName = "latitude.dubronetwork.fr"; # Define your hostname.
|
||||||
r6d.profiles = {
|
r6d.profiles = {
|
||||||
isDubronetwork = true;
|
isDubronetwork = true;
|
||||||
isHome = true;
|
isHome = true;
|
||||||
@@ -267,16 +279,19 @@ in
|
|||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
jetbrains-licensed = true;
|
jetbrains-licensed = true;
|
||||||
laptop = true;
|
laptop = true;
|
||||||
|
nix-serve-client = true;
|
||||||
|
nix-serve-server = true;
|
||||||
tincAddress = "192.168.12.2/24";
|
tincAddress = "192.168.12.2/24";
|
||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = monstre_dubronetwork_fr
|
ConnectTo = monstre_dubronetwork_fr
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
'';
|
'';
|
||||||
nix-serve-server = true;
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkIf comp.isMonstre {
|
(mkIf comp.isMonstre {
|
||||||
|
networking.hostName = "monstre.dubronetwork.fr"; # Define your hostname.
|
||||||
r6d.profiles = {
|
r6d.profiles = {
|
||||||
isDubronetwork = true;
|
isDubronetwork = true;
|
||||||
isServer = true;
|
isServer = true;
|
||||||
@@ -291,11 +306,13 @@ in
|
|||||||
tincAddress = "192.168.12.4/24";
|
tincAddress = "192.168.12.4/24";
|
||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkIf comp.isNeoNomade{
|
(mkIf comp.isNeoNomade{
|
||||||
|
networking.hostName = "neo-nomade.dubronetwork.fr"; # Define your hostname.
|
||||||
r6d.profiles = {
|
r6d.profiles = {
|
||||||
isDubronetwork = true;
|
isDubronetwork = true;
|
||||||
isHome = true;
|
isHome = true;
|
||||||
@@ -307,6 +324,7 @@ in
|
|||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = monstre_dubronetwork_fr
|
ConnectTo = monstre_dubronetwork_fr
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@@ -314,6 +332,7 @@ in
|
|||||||
# Dubro Vivo - St Malo
|
# Dubro Vivo - St Malo
|
||||||
#tincAddress = "192.168.12.8/24";
|
#tincAddress = "192.168.12.8/24";
|
||||||
(mkIf comp.isNomade{
|
(mkIf comp.isNomade{
|
||||||
|
networking.hostName = "nomade.dubronetwork.fr"; # Define your hostname.
|
||||||
r6d.profiles.isDubronetwork = true;
|
r6d.profiles.isDubronetwork = true;
|
||||||
|
|
||||||
r6d.config-generator = {
|
r6d.config-generator = {
|
||||||
@@ -348,11 +367,13 @@ in
|
|||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
ConnectTo = monstre_dubronetwork_fr
|
ConnectTo = monstre_dubronetwork_fr
|
||||||
ConnectTo = rollo_dubronetwork_fr
|
ConnectTo = rollo_dubronetwork_fr
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkIf comp.isRollo {
|
(mkIf comp.isRollo {
|
||||||
|
networking.hostName = "rollo.dubronetwork.fr"; # Define your hostname.
|
||||||
r6d.profiles = {
|
r6d.profiles = {
|
||||||
isDubronetwork = true;
|
isDubronetwork = true;
|
||||||
isServer = true;
|
isServer = true;
|
||||||
@@ -363,10 +384,14 @@ in
|
|||||||
fail2ban = true;
|
fail2ban = true;
|
||||||
mailboxes = true;
|
mailboxes = true;
|
||||||
murmur = true;
|
murmur = true;
|
||||||
|
nix-serve-client = true;
|
||||||
|
nix-serve-server = true;
|
||||||
tincAddress = "192.168.12.5/24";
|
tincAddress = "192.168.12.5/24";
|
||||||
tincExtraConfig = ''
|
tincExtraConfig = ''
|
||||||
|
ConnectTo = hydra_prunetwork_fr
|
||||||
ConnectTo = ocean_prunetwork_fr
|
ConnectTo = ocean_prunetwork_fr
|
||||||
'';
|
'';
|
||||||
|
virtualbox = true;
|
||||||
znc = true;
|
znc = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{ stdenv, fetchurl
|
|
||||||
, boost
|
|
||||||
, bzip2
|
|
||||||
, cmake
|
|
||||||
, expat
|
|
||||||
, geos
|
|
||||||
, lua
|
|
||||||
, postgresql
|
|
||||||
, proj
|
|
||||||
, zlib
|
|
||||||
}
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
#version = "0.87.1";
|
|
||||||
version = "0.90.1";
|
|
||||||
name = "osm2pgsql-${version}-0";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://github.com/openstreetmap/osm2pgsql/archive/${version}.tar.gz";
|
|
||||||
sha256 = "0i0zg8di8nbh96qnyyr156ikwcsq1w9b2291bazm5whb351flmqx";
|
|
||||||
};
|
|
||||||
|
|
||||||
#nativeBuildInputs = [ ];
|
|
||||||
buildInputs = [ ];
|
|
||||||
|
|
||||||
#preConfigure = ''
|
|
||||||
'';
|
|
||||||
#buildPhase = ''jam "-j$NIX_BUILD_CORES" '';
|
|
||||||
#installPhase = ''
|
|
||||||
#'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
homepage = http://wiki.openstreetmap.org/wiki/Osm2pgsql;
|
|
||||||
description = "osm2pgsql is a tool for loading OpenStreetMap data into a PostgreSQL / PostGIS database suitable for applications like rendering into a map, geocoding with Nominatim, or general analysis.";
|
|
||||||
license = licenses.gpl2;
|
|
||||||
#maintainers = [ maintainers.phunehehe ];
|
|
||||||
maintainers = [ maintainers.jpierre03 ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -21,6 +22,7 @@ mkIf true {
|
|||||||
powertop
|
powertop
|
||||||
python27Packages.ansible2
|
python27Packages.ansible2
|
||||||
python27Packages.glances
|
python27Packages.glances
|
||||||
|
sysstat # pour la commande "iostat -x -1" de monitoring d'activité disque
|
||||||
usbutils
|
usbutils
|
||||||
|
|
||||||
# Backup
|
# Backup
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -40,7 +40,7 @@ environment.systemPackages = with pkgs; [
|
|||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
clawsMail = pkgs.clawsMail.override {
|
clawsMail = pkgs.clawsMail.override {
|
||||||
enablePluginFancy = true;
|
enablePluginFancy = false; # nécessite wekitgtk qui est troué
|
||||||
enablePluginPdf = true;
|
enablePluginPdf = true;
|
||||||
enablePluginRavatar = true;
|
enablePluginRavatar = true;
|
||||||
enablePluginSmime = true;
|
enablePluginSmime = true;
|
||||||
@@ -49,4 +49,9 @@ environment.systemPackages = with pkgs; [
|
|||||||
};
|
};
|
||||||
mumble = pkgs.mumble.override { pulseSupport = true; };
|
mumble = pkgs.mumble.override { pulseSupport = true; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
# "webkitgtk-2.4.11" # pour que le plugin fancy de claws-mail fonctionne
|
||||||
|
#];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,23 +11,24 @@ mkIf cfg.developpement-haskell {
|
|||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Haskell
|
# Haskell platform
|
||||||
cabal-install # fournis cabal
|
cabal-install # fournis cabal
|
||||||
cabal2nix # convertir les .cabal en .nix
|
cabal2nix # convertir les .cabal en .nix
|
||||||
ghc # pour les appels depuis les scripts
|
ghc # pour les appels depuis les scripts
|
||||||
stack # pour les paquets en LTS de stackage
|
stack # pour les paquets en LTS de stackage
|
||||||
|
] ++ (with pkgs.haskellPackages; [
|
||||||
haskellPackages.stylish-haskell # qualité de code
|
# Haskell lib
|
||||||
haskellPackages.hindent
|
autoproc # ? procmail
|
||||||
haskellPackages.hlint
|
darcs # Gestionnaire de version éponyme
|
||||||
haskellPackages.threadscope
|
ghc-mod
|
||||||
|
hindent # indentation code
|
||||||
|
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
|
# Application perso
|
||||||
haskellPackages.hahp
|
hahp
|
||||||
|
]);
|
||||||
# Application
|
|
||||||
haskellPackages.autoproc # ? procmail
|
|
||||||
haskellPackages.darcs # Gestionnaire de version éponyme
|
|
||||||
haskellPackages.turtle # genre shell-scripting
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ mkIf cfg.developpement-java {
|
|||||||
|
|
||||||
# Java
|
# Java
|
||||||
maven
|
maven
|
||||||
zulu
|
openjdk
|
||||||
];
|
];
|
||||||
|
environment.variables = {
|
||||||
|
JAVA_HOME = "${pkgs.openjdk}";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ mkIf cfg.developpement {
|
|||||||
# Gestion des sources
|
# Gestion des sources
|
||||||
cloc # outil pour compter les lignes de code source
|
cloc # outil pour compter les lignes de code source
|
||||||
git # déjà présent dans "base"
|
git # déjà présent dans "base"
|
||||||
gitg # interface pour utiliser git (historique, commit)
|
#gitg # interface pour utiliser git (historique, commit)
|
||||||
gitstats # génère un site web statique avec des statistiques
|
gitstats # génère un site web statique avec des statistiques
|
||||||
gitAndTools.gitFull # pour gitk
|
gitAndTools.gitFull # pour gitk
|
||||||
git-cola # interface pour utiliser git (historique, commit)
|
git-cola # interface pour utiliser git (historique, commit)
|
||||||
@@ -38,5 +38,8 @@ mkIf cfg.developpement {
|
|||||||
#gource # visualisation en mouvement de l'historique git
|
#gource # visualisation en mouvement de l'historique git
|
||||||
meld # outil de comparaison graphique
|
meld # outil de comparaison graphique
|
||||||
#vbindiff # diff de fichier hexadecimaux avec vim
|
#vbindiff # diff de fichier hexadecimaux avec vim
|
||||||
|
|
||||||
|
# Editeur texte
|
||||||
|
atom
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -344,6 +344,7 @@ globalkeys = awful.util.table.join(
|
|||||||
awful.key({ modkey }, "F12", function () awful.util.spawn("slock") 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" }, "F1", function () awful.util.spawn("claws-mail") end),
|
||||||
awful.key({ modkey, "Shift" }, "F3", function () awful.util.spawn("pcmanfm") 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 }, "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, "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),
|
-- awful.key({ modkey, "Control" }, "F11", function () awful.util.spawn("/home/taeradan/bin/xrandr-right") end),
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -47,7 +48,7 @@ in
|
|||||||
pinentry # pour taper les mots de passe gpg
|
pinentry # pour taper les mots de passe gpg
|
||||||
psmisc # fournis les utilitaires comme killall, fuser, pstree
|
psmisc # fournis les utilitaires comme killall, fuser, pstree
|
||||||
python # python -- python -m SimpleHTTPServer 8000
|
python # python -- python -m SimpleHTTPServer 8000
|
||||||
python34Packages.glances # monitoring
|
#python34Packages.glances # monitoring
|
||||||
pwgen # générateur de mot de passe
|
pwgen # générateur de mot de passe
|
||||||
rtorrent # TODO outil de téléchargement de torrent & magnet
|
rtorrent # TODO outil de téléchargement de torrent & magnet
|
||||||
tmux # nécessaire pour byobu
|
tmux # nécessaire pour byobu
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -28,18 +28,18 @@ mkIf cfg.hydra-builder {
|
|||||||
## Ménage automatique tous les jours
|
## Ménage automatique tous les jours
|
||||||
nix.gc.automatic = true;
|
nix.gc.automatic = true;
|
||||||
|
|
||||||
users.users."hydrabld" = {
|
# users.users."hydrabld" = {
|
||||||
description = "Execution des jobs hydra";
|
# description = "Execution des jobs hydra";
|
||||||
group = "nixbld";
|
# group = "nixbld";
|
||||||
extraGroups = [
|
# extraGroups = [
|
||||||
"docker"
|
# "docker"
|
||||||
"nixbld"
|
# "nixbld"
|
||||||
"vboxusers"
|
# "vboxusers"
|
||||||
];
|
# ];
|
||||||
isNormalUser = true; # devrait être à false: TODO débugger la conf ssh & users pour que ça marche en user système
|
# isNormalUser = true; # devrait être à false: TODO débugger la conf ssh & users pour que ça marche en user système
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = [
|
# openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGYpjcWJCf8dXpv2LmoIaNVbwZXEC50QUU6Az+lqeD89 hydra radx"
|
# "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGYpjcWJCf8dXpv2LmoIaNVbwZXEC50QUU6Az+lqeD89 hydra radx"
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -73,7 +74,7 @@ mkIf cfg.hydra-core {
|
|||||||
### Machines connues
|
### Machines connues
|
||||||
|
|
||||||
programs.ssh.knownHosts = {
|
programs.ssh.knownHosts = {
|
||||||
"hydra.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMhXFlj2oyArVyEwEwDxNXthB/JljHkq+UhTLxbekkMB";
|
"hydra.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHqja/yYsQeS5amZKPUG+EKSIkjEN6fYW54Fzvj1pFaP";
|
||||||
"monstre.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTTrLhq1Cwm0rpnwEIxSLqVrJWZnt+/9dt+SKd8NiIc";
|
"monstre.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBTTrLhq1Cwm0rpnwEIxSLqVrJWZnt+/9dt+SKd8NiIc";
|
||||||
"pedro.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7fjo2ysLqlfSo6BKnc6I6m1ayoPrbwEEyTKZmUzsOD";
|
"pedro.dubronetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7fjo2ysLqlfSo6BKnc6I6m1ayoPrbwEEyTKZmUzsOD";
|
||||||
"ocean.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINCaRuTl8iCTUE4XInOpkSlwQj5Re4w4Iq+gNIlJe8pA";
|
"ocean.prunetwork.fr".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINCaRuTl8iCTUE4XInOpkSlwQj5Re4w4Iq+gNIlJe8pA";
|
||||||
|
|||||||
@@ -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,7 +7,7 @@ let
|
|||||||
profiles = config.r6d.profiles;
|
profiles = config.r6d.profiles;
|
||||||
in
|
in
|
||||||
|
|
||||||
mkIf true {
|
mkIf cfg.smokeping {
|
||||||
|
|
||||||
# Paquets
|
# Paquets
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@@ -173,7 +173,7 @@ mkIf true {
|
|||||||
|
|
||||||
++ MultiHost
|
++ MultiHost
|
||||||
menu = Multihost
|
menu = Multihost
|
||||||
title = Ensemble de mesures DNS
|
title = Ensemble de mesures de latence
|
||||||
host = /France/Atos /France/Axialys /France/Azurtel \
|
host = /France/Atos /France/Axialys /France/Azurtel \
|
||||||
/France/Bouygues-Telecom \
|
/France/Bouygues-Telecom \
|
||||||
/France/Completel \
|
/France/Completel \
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ mkIf cfg.xmonad {
|
|||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
dmenu
|
dmenu
|
||||||
haskellPackages.xmobar
|
haskellPackages.xmobar
|
||||||
|
trayer
|
||||||
];
|
];
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
@@ -23,4 +24,7 @@ mkIf cfg.xmonad {
|
|||||||
haskellPackages.xmobar
|
haskellPackages.xmobar
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
environment.variables = {
|
||||||
|
_JAVA_AWT_WM_NONREPARENTING = "1";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user