]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - modules/private/system.nix
Prepare migration to ZFS
[perso/Immae/Config/Nix.git] / modules / private / system.nix
CommitLineData
619e4f46 1{ pkgs, lib, config, name, ... }:
8d213e2b
IB
2{
3 config = {
d2e703c5 4 services.duplyBackup.profiles.system = {
6a8252b1
IB
5 rootDir = "/var/lib";
6 excludeFile = lib.mkAfter ''
7 + /var/lib/nixos
8 + /var/lib/udev
9 + /var/lib/udisks2
10 + /var/lib/systemd
11 + /var/lib/private/systemd
12 - /var/lib
13 '';
14 };
9dd3eb0b 15 nixpkgs.overlays = builtins.attrValues (import ../../overlays) ++ [
4e3e4761
IB
16 (self: super: {
17 postgresql = self.postgresql_pam;
18 mariadb = self.mariadb_pam;
19 }) # don’t put them as generic overlay because of home-manager
9dd3eb0b 20 ];
8d213e2b
IB
21 _module.args = {
22 pkgsNext = import <nixpkgsNext> {};
23 pkgsPrevious = import <nixpkgsPrevious> {};
8d213e2b
IB
24 };
25
26 services.journald.extraConfig = ''
27 MaxLevelStore="warning"
28 MaxRetentionSec="1year"
29 '';
30
8a304ef4
IB
31 users.users =
32 builtins.listToAttrs (map (x: lib.attrsets.nameValuePair x.name ({
33 isNormalUser = true;
34 home = "/home/${x.name}";
35 createHome = true;
36 linger = true;
37 } // x)) (config.hostEnv.users pkgs))
38 // {
39 root.packages = let
40 nagios-cli = pkgs.writeScriptBin "nagios-cli" ''
41 #!${pkgs.stdenv.shell}
42 sudo -u naemon ${pkgs.nagios-cli}/bin/nagios-cli -c ${./monitoring/nagios-cli.cfg}
43 '';
44 in
45 [
46 pkgs.telnet
47 pkgs.htop
48 pkgs.iftop
49 pkgs.bind.dnsutils
50 pkgs.httpie
51 pkgs.iotop
52 pkgs.whois
53 pkgs.ngrep
54 pkgs.tcpdump
55 pkgs.tshark
56 pkgs.tcpflow
57 pkgs.mitmproxy
58 pkgs.nmap
59 pkgs.p0f
60 pkgs.socat
61 pkgs.lsof
62 pkgs.psmisc
ca732a83 63 pkgs.openssl
8a304ef4 64 pkgs.wget
781c3202 65
8a304ef4
IB
66 pkgs.cnagios
67 nagios-cli
68 ];
69 };
8d213e2b 70
8a304ef4 71 users.mutableUsers = false;
8d213e2b 72
8a304ef4 73 environment.etc.cnagios.source = "${pkgs.cnagios}/share/doc/cnagios";
258dd18b
IB
74 environment.systemPackages = [
75 pkgs.git
76 pkgs.vim
77 ] ++
78 (lib.optional (builtins.length (config.hostEnv.users pkgs) > 0) pkgs.home-manager);
31e11cdf
IB
79
80 systemd.targets.maintenance = {
81 description = "Maintenance target with only sshd";
82 after = [ "network-online.target" "sshd.service" ];
83 requires = [ "network-online.target" "sshd.service" ];
84 unitConfig.AllowIsolate = "yes";
85 };
8d213e2b
IB
86 };
87}