]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - modules/private/system.nix
Add environment file instead of hardcoding everything in makefiles
[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
22 services.journald.extraConfig = ''
23 MaxLevelStore="warning"
24 MaxRetentionSec="1year"
25 '';
26
8a304ef4
IB
27 users.users =
28 builtins.listToAttrs (map (x: lib.attrsets.nameValuePair x.name ({
29 isNormalUser = true;
30 home = "/home/${x.name}";
31 createHome = true;
32 linger = true;
33 } // x)) (config.hostEnv.users pkgs))
34 // {
35 root.packages = let
36 nagios-cli = pkgs.writeScriptBin "nagios-cli" ''
37 #!${pkgs.stdenv.shell}
38 sudo -u naemon ${pkgs.nagios-cli}/bin/nagios-cli -c ${./monitoring/nagios-cli.cfg}
39 '';
40 in
41 [
42 pkgs.telnet
43 pkgs.htop
44 pkgs.iftop
45 pkgs.bind.dnsutils
46 pkgs.httpie
47 pkgs.iotop
48 pkgs.whois
49 pkgs.ngrep
50 pkgs.tcpdump
51 pkgs.tshark
52 pkgs.tcpflow
2053ddac 53 # pkgs.mitmproxy # failing
8a304ef4
IB
54 pkgs.nmap
55 pkgs.p0f
56 pkgs.socat
57 pkgs.lsof
58 pkgs.psmisc
ca732a83 59 pkgs.openssl
8a304ef4 60 pkgs.wget
781c3202 61
8a304ef4
IB
62 pkgs.cnagios
63 nagios-cli
64 ];
65 };
8d213e2b 66
8a304ef4 67 users.mutableUsers = false;
8d213e2b 68
8a304ef4 69 environment.etc.cnagios.source = "${pkgs.cnagios}/share/doc/cnagios";
258dd18b
IB
70 environment.systemPackages = [
71 pkgs.git
72 pkgs.vim
73 ] ++
74 (lib.optional (builtins.length (config.hostEnv.users pkgs) > 0) pkgs.home-manager);
31e11cdf
IB
75
76 systemd.targets.maintenance = {
77 description = "Maintenance target with only sshd";
78 after = [ "network-online.target" "sshd.service" ];
79 requires = [ "network-online.target" "sshd.service" ];
80 unitConfig.AllowIsolate = "yes";
81 };
8d213e2b
IB
82 };
83}